Pete Markowsky
9e124f4c51
Add kSyncEnableCleanSyncEventUpload to the _forcedConfigKeyTypes dict ( #1123 )
...
* Add kSyncEnableCleanSyncEventUpload to the _forcedConfigTypes dict.
* Add KVO helper.
---------
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2023-07-06 17:39:51 -04:00
Matt W
cd719ccef4
Fix issue with invalid lengths ( #1122 )
...
* Fix issue with invalid lengths
* Disable clang format around a small block of code for now
2023-07-06 11:22:18 -04:00
Matt W
dde42ee686
Fix check to detect changes to StaticRules ( #1121 )
2023-06-30 16:39:52 -04:00
Pete Markowsky
d144e27798
Fix rule evaluation for TeamID and SigningID rules when encountering broken signatures. ( #1120 )
2023-06-30 09:54:27 -04:00
Matt W
afc2c216b8
Add include for proto status stub ( #1119 )
2023-06-29 13:32:14 -04:00
Matt W
03d7556f22
Use angle brackets for includes ( #1118 )
2023-06-29 11:55:46 -04:00
Nick Gregory
020827b091
Fix memleak in fsspool ( #1115 )
2023-06-29 10:17:08 -04:00
Russell Hancox
baa31a5db0
Conf: Update notarization_tool in signing script ( #1116 )
2023-06-28 22:32:58 -04:00
Pete Markowsky
9ba7075596
Add macOS 13 to the test matrix. ( #1113 )
2023-06-27 13:22:36 -04:00
Pete Markowsky
5d08538639
Add Support for Logging to JSON (beta feature) ( #1112 )
...
* Add support for logging protobuf to JSON.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2023-06-23 10:06:45 -04:00
Matt W
e73bafb596
Fix build issues due to macOS 13.3 SDK changes ( #1110 )
...
* Fix minor build issues due to changes in the macOS 13.3 SDK
* Disable -Wunknown-warning-option
2023-06-20 22:23:55 -04:00
Matt W
1e92d109a7
Basic dialog functionality when access to a watch item is denied ( #1106 )
...
* Basic working prototype to display a UI on blocked file access
* Force watch items policies to be silent for now
* Remove unused view
* Refactor to not use newer SwiftUI features
* Address PR feedback
2023-06-19 14:00:35 -04:00
Matt W
6a6aa6dce8
Abstract TTY writing so multiple writers can be synchronized ( #1108 )
...
* Abstract TTY writing so multiple writers can be synchronized
* Address PR feedback
2023-06-13 20:19:50 -04:00
Matt W
0715033d6a
Migrate to new SNTRuleType enum values ( #1107 )
...
* Migrate to new SNTRuleType enum values
* Bump table version. Fix comments to address PR feedback.
* Add log message when a downgrade detected
2023-06-09 11:50:42 -04:00
Matt W
123d7a2d6a
Update docs for signing id rules ( #1105 )
...
* Update docs for signing id rules
* Formatting, Address PR feedback
2023-05-30 13:27:29 -04:00
Matt W
7b4d997589
Fix missing check for FileChangesRegex ( #1102 )
2023-05-22 16:13:06 -04:00
Matt W
5307bd9b7f
Fix precedence for static rule evaluation, update santactl fileinfo output. ( #1100 )
2023-05-18 15:05:23 -04:00
Matt W
0622e6de71
Handle database downgrade scenarios gracefully ( #1099 )
2023-05-17 04:31:40 +02:00
Russell Hancox
e7c32ae87d
Update SECURITY.md ( #1098 )
2023-05-12 10:30:58 -04:00
Matt W
deaf3a638c
Add new rule type for Signing IDs ( #1090 )
...
* WIP: Signing ID rules
* WIP: More work supporting signing ID rules
* Expanded exec controller tests for signing ID and team ID
* wip all current tests now pass
* Added integration tests
* Branch cleanup
* Update protobuf tests for signing id reason types
* Remove old commented out code
---------
Co-authored-by: Russell Hancox <russell@hancox.us >
2023-05-12 09:22:46 -04:00
Matt W
8a7f1142a8
Stop unmuting the default mute set unnecessarily. ( #1095 )
...
* Stop unmuting the default mute set unnecessarily.
* lint
* Added note to docs explaining operations from default mute set binaries aren't logged
2023-05-10 09:07:13 -04:00
Matt W
c180205059
Return unique_ptr from Enrich instead of shared_ptr ( #1093 )
2023-05-08 10:55:38 -04:00
Matt W
337df0aa31
Don't establish the FAA client pre-macOS 13 ( #1091 )
...
* Don't establish the FAA client pre-macOS 13
* Only watch FAA keys on macOS 13 and newer
2023-05-05 15:33:34 -04:00
Russell Hancox
e2b099aa50
santactl/rule: Fix --path argument ( #1089 )
...
Fixes #1088
2023-05-04 17:57:59 -04:00
Pete Markowsky
fc4e29f34c
Docs: Added instructions for how to use config-overrides.plist ( #1077 )
...
* Added instructions for how to use config-overrides
---------
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2023-05-01 16:16:11 -04:00
Matt W
bf3b6bc6e2
Inject additional dependencies into the serializers ( #1078 )
...
* Injects dependecies for decision cache and client mode lookup
* Fix up tests
* Stored client mode at decision time. Remove clientMode func injection.
* PR Feedback, group property members
2023-05-01 15:13:54 -04:00
Matt W
b810fc81e1
Add support to file monitoring config to invert process exceptions ( #1083 )
...
* Add support to file monitoring config to invert process exceptions
* Update docs
* Added link to github issue
2023-05-01 15:04:40 -04:00
Matt W
3b3aa999c5
Switch SNTEventState to uint64_t, reposition flag values and masks ( #1086 )
2023-05-01 14:37:11 -04:00
Faizan
59428f3be3
docs: Fix documentation for clean sync field in the preflight request. ( #1082 )
...
The 'request_clean_sync' field is set here: https://github.com/google/santa/blob/main/Source/santasyncservice/SNTSyncPreflight.m#L76
The constant is defined here: https://github.com/google/santa/blob/main/Source/common/SNTSyncConstants.m#L27
2023-04-27 23:38:44 -04:00
Jason McCandless
ae6451a9b2
docs: Clarify that execution_time, file_bundle_hash_millis and quarantine_timestamp are float64 ( #1080 )
2023-04-27 18:54:02 -04:00
Russell Hancox
feac080fa7
sync: Permit XSRF header between sync stages/sessions ( #1081 )
2023-04-27 10:52:35 -04:00
Nick Gregory
d0f2a0ac4d
One more TSAN fix ( #1079 )
2023-04-26 17:30:06 +02:00
Pete Markowsky
7fc06ea9d8
Make the sync client content encoding a tunable ( #1076 )
...
Make the sync client content encoding a tunable.
This makes the sync client's content encoding a tunable so that it can be
compatible with more sync servers.
Removed the "backwards compatibility" config option.
---------
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2023-04-24 15:00:29 +02:00
Russell Hancox
1dfeeac936
README: Add more badges ( #1075 )
2023-04-21 09:54:33 -04:00
Matt W
ac9b5d9399
Cache flush metrics ( #1074 )
...
* Added a reason enum when flushing auth result cache
* Set metrics when auth result cache is flushed.
2023-04-20 16:47:06 -04:00
Matt W
7f3f1c5448
Process unmount events first ( #1073 )
2023-04-19 11:13:13 -04:00
Russell Hancox
46efd6893f
config: Add EnableSilentTTYMode key to disable TTY notifications. ( #1072 )
...
Fixes #1067
2023-04-19 10:38:24 -04:00
Matt W
50232578d6
Fix string length issues ( #1070 )
2023-04-13 10:03:52 -04:00
Russell Hancox
d83be03a20
sync: Add more complete XSSI prefix to be stripped. ( #1068 )
...
Sync will try stripping both the new longer prefix and the existing short prefix if the response data begins with either. This should have no impact on existing sync servers but will allow sync servers in the future to use the longer prefix if they wish.
2023-04-07 15:27:41 -04:00
Russell Hancox
119b29b534
GUI: Device event window, handle empty remount args ( #1066 )
2023-04-05 16:34:05 -04:00
Matt W
be87b3eaf2
Change types of repeated args and envs fields ( #1063 )
...
* Change types of repeated args and envs fields
* Update args and env testdata strings to base64
* Remove whitespace
2023-03-31 13:18:09 -04:00
Russell Hancox
0fe672817e
sync: Fix case of empty header name ( #1062 )
2023-03-28 11:50:11 -04:00
Russell Hancox
c3b2fbf512
sync: Allow server to override the header for transmitting XSRF tokens ( #1060 )
...
This change allows a sync server to change the header that Santa will use to send XSRF tokens on subsequent requests by putting the header name in the header.
2023-03-27 18:11:11 -04:00
Matt W
2984d98cb9
Document SigningID and PlatformBinary exception keys ( #1059 )
...
* Document SigningID and PlatformBinary exception keys
* Minor spacing
2023-03-25 11:34:06 -04:00
Nick Gregory
5295faef0e
Fix a couple last TSAN failures ( #1056 )
...
* Skip testHandleMessage when testing with tsan
* fix other 2 tsan failures
* change action_env->test_env in bazelrc for sanitizers
* revert Source/santactl/BUILD formatting
2023-03-23 11:11:29 -04:00
Liam Nicholson
0209344f62
santad: Fix SD Card Block not operating on Internal SD Card Readers ( #1055 )
2023-03-22 17:54:11 -04:00
Matt W
53ca5eb811
Support filesystem monitoring config embedded in main Santa config ( #1054 )
...
* Allow setting file access policy in main Santa config
* Add some tests
2023-03-20 16:47:34 -04:00
Matt W
33c7aab9f1
Basic rate limiting for File Access Authorizer ( #1053 )
...
* WIP basic rate limiting support
* WIP added basic metrics when rate limited
* Hookup new metrics
* Cleanup old TODO
* PR feedback, update comments
2023-03-20 15:58:49 -04:00
Pål-Magnus Slåtto
f6d837ac31
chore(ci): Upgrade workflows to non-deprecated runtimes ( #1052 )
2023-03-15 09:42:16 -04:00
Matt W
5e0a383662
Properly report "file access client enabled" metrics ( #1051 )
2023-03-14 15:01:03 -04:00
Russell Hancox
8055b451bb
Config: Ignore static rules with an invalid identifier ( #1049 )
2023-03-07 10:33:13 -05:00
Russell Hancox
c5e7736eef
santactl/rule: Validate identifier is a valid SHA-256 for binary/cert rules ( #1045 )
...
Previously validation only applied when using the --sha256 flag, now it applies to --identifier too unless adding a team ID rule. The validation is also a bit more robust.
Fixes #1044
2023-03-01 13:44:44 -05:00
Matt W
61558048c0
Add basic metrics to report when the FAM client is enabled ( #1043 )
2023-02-17 11:57:18 -05:00
Matt W
cf0e3fd3db
Add support for platform binary to process exceptions ( #1041 )
...
* Add support for platform bianry to process exceptions
* Fun with bool types
2023-02-17 11:30:46 -05:00
Matt W
15519c6de8
Clear ES cache when watch items change ( #1042 )
2023-02-17 11:04:08 -05:00
Pete Markowsky
a415679980
Fix sync protocol diagram. ( #1037 )
2023-02-08 16:13:08 -05:00
Nick Gregory
27ae60e265
Small test fixes to make sanitizers happy ( #1030 )
...
* Small test fixes to make sanitizers happy
* lint
* missing authclient
* new MockEndpointSecurityAPI per subtest
2023-02-06 20:16:22 +00:00
Matt W
29a50f072c
Report log type in santactl status ( #1036 )
...
* Report log type in santactl status
* Remove unnecessary fallback case
2023-02-06 14:59:42 -05:00
Matt W
a97e82e316
Replace SNTDecisionCache dictionary with SantaCache ( #1034 )
...
* Replace SNTDecisionCache dictionary with SantaCache
* PR feedback. Fix tests.
2023-02-03 15:58:53 -05:00
Russell Hancox
532120ac02
Configurator: Return an unsafe_unretained pointer to avoid needless retain/release ( #1035 )
2023-02-03 15:55:15 -05:00
Russell Hancox
ec934854fc
santactl & syncservice: Use synchronousRemoteObjectProxy where it makes sense ( #1033 )
2023-02-03 14:31:37 -05:00
Matt W
ad0e2abdac
Restart daemon on log type change ( #1031 )
...
* WIP register for event log type changes. Flush metrics.
* Add Flush to writer interface. Flush logger on log type change.
* Standardize non-thread-safe method names
2023-02-03 11:04:57 -05:00
Matt W
dc11ea6534
Rework timeout handling in metrics HTTP writer ( #1029 )
...
* Change HTTP writer to use session config timeouts
* Remove unnecessary block variable
* Fix tests
* Revert serializer changes for now
* Remove setting timeoutIntervalForRequest
2023-02-02 10:58:28 -05:00
Matt W
3acf3c1d00
Use cached sizes when serializing ( #1028 )
2023-01-30 16:08:38 -05:00
Matt W
41bc3d2542
Perf: Translocate cache, reserve proto repeated fields ( #1027 )
...
* Translocate cache, reserve proto repeated fields
* Remove copy/paste
2023-01-30 12:18:32 -05:00
Pete Markowsky
45a5d4e800
Fix: Rewrite the SNTMetricHTTPWriter to avoid potential stack corruption ( #1019 )
...
* Updated the SNTMetricHTTPWriter to use a for loop to prevent crashes caused by writing to stop.
* Make requests serial again.
* Fix the typo, I just pushed.
* Ensure we only lookup the timeout value once.
* Make SNTConfigurator assignment only happen once.
2023-01-30 11:53:26 -05:00
Matt W
82bd981f31
Fix team ID and signing ID checks ( #1026 )
...
* Fix policy checks with missing team/signing ids
* Update docs to clarify how symbolic links are handled
2023-01-30 09:14:27 -05:00
Russell Hancox
6480d9c99b
docs: fix width of sidebar on larger windows ( #1025 )
2023-01-27 15:38:46 -05:00
Henry S
7e963080b3
add updated description ( #1023 )
...
Zentral has gained many more Santa-specific workflows since adding to this section in 2017. The updated description takes this into account.
2023-01-27 15:38:14 -05:00
Matt W
e58cd7d125
Remove Default column ( #1024 )
2023-01-27 15:28:31 -05:00
Russell Hancox
db597e413b
docs: Support wider pages, fix syntax highlighting of plist ( #1022 )
2023-01-27 15:18:45 -05:00
Matt W
78f46896d5
Try with more vertical space ( #1021 )
2023-01-27 14:37:02 -05:00
Matt W
cc0742dbfb
Fsmon docs table width ( #1020 )
...
* markdown spaces lol
* markdown vertical spaces lol
* more spaces why not
2023-01-27 14:32:58 -05:00
Matt W
9c2f76af72
Initial docs for file access auth feature ( #1017 )
...
* Initial docs for file access auth feature
* Apply suggestions from code review
Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com >
* Updates based on PR feedback
---------
Co-authored-by: Kathryn Hancox <44557882+kathancox@users.noreply.github.com >
2023-01-27 14:08:34 -05:00
Matt W
a3ed5ccb40
Log type metrics ( #1018 )
...
* Add event log type to metrics
* lint
* PR Feedback
2023-01-27 10:22:09 -05:00
Nick Gregory
b4149816c7
Add new continuous test run with various sanitizers ( #1016 )
...
* continuous tests with sanitizer matrix
* dyld insert lib
* remove msan config and upload logs
2023-01-26 16:00:47 -05:00
Matt W
2313d6338d
Remove extra expectation in test ( #1015 )
2023-01-26 11:42:14 -05:00
Russell Hancox
414fbff721
Project: Fix module maps for swift libraries and their dependencies ( #1014 )
2023-01-26 09:15:30 -05:00
Matt W
5a2e42e9b4
Reduce calls into configurator ( #1013 )
2023-01-25 16:51:13 -05:00
Matt W
f8d1b2e880
Reduce proto warning severity ( #1012 )
2023-01-25 14:37:00 -05:00
Matt W
5f4d2a92fc
Ensure watch item names conform to naming requirements ( #1011 )
...
* Ensure watch item names conform to naming requirements
* Only compile regex once
2023-01-25 13:27:27 -05:00
Russell Hancox
4ccffdca01
GUI: Migrate DeviceMessageWindow to SwiftUI ( #1010 )
2023-01-25 12:16:31 -05:00
Nick Gregory
e60bbe1b55
shadow rules_python for fuzzing ( #1009 )
2023-01-23 11:11:48 -05:00
Russell Hancox
eee2149439
GUI: Re-write AboutWindow view in SwiftUI ( #1007 )
2023-01-20 13:43:50 -05:00
Russell Hancox
dcbbc33e5e
Revert "Configurator: Apply config updates in non-daemon processes ( #1003 )" ( #1008 )
...
This reverts commit 1e88b88ee6 .
2023-01-20 13:30:06 -05:00
Matt W
ebe5166d77
Prevent recursive reconnect attempts ( #1005 )
2023-01-19 10:03:15 -05:00
Matt W
6e5a530df5
Low hanging fruit perf changes ( #1004 )
...
* Some minor changes for some easy perf wins based on trace info
* Manually track buffer offsets in File writer
* Add metrics tests
* Call members from appropriate shared object
2023-01-18 15:14:48 -05:00
Russell Hancox
1e88b88ee6
Configurator: Apply config updates in non-daemon processes ( #1003 )
2023-01-18 10:00:39 -05:00
Nick Gregory
2d74f36ddb
Reconnect to santametrics service on failure ( #1001 )
...
* Reconnect to santametrics service on failure
* use logging macros
2023-01-12 10:41:36 -05:00
Matt W
3a3564f36b
Add watch item state to santactl status ( #1000 )
...
* Add method to get WatchItems state
* Update santactl status with watch items state
* Update status label
* PR feedback - add missing dispatch_group_leave
2023-01-12 10:38:12 -05:00
Matt W
d3c7cbbcc3
Rename type aliases ( #999 )
2023-01-11 11:30:11 -05:00
Matt W
1ff6967934
Support configuring signing IDs for process exceptions ( #998 )
2023-01-11 09:42:32 -05:00
Matt W
53877f6114
Adopt new FS Access Auth config format and policy application logic ( #994 )
...
* WIP parsing new watch item config format
* Change WatchItemPolicy param order. Define policy default constants.
* rename write_only policy member to allow_read_access
* WIP parsing new config format, WatchItemsTest all pass
* Restructured process config parsing. Added tons of tests.
* Abstract NSError creation to a function
* Better errors. Bubble up NSErrors to reduce duplicate messages. More Tests.
* Validate min string lengths. Add a bunch more tests.
* Adopt new policy process logic and add tests
* Address PR feedback
2023-01-10 16:40:13 -05:00
Matt W
8c50af4041
Add policy version and name to basic string serializer ( #997 )
2023-01-10 13:17:21 -05:00
Russell Hancox
d0d4508f77
docs: Fix deployment/configuration doc ( #996 )
2023-01-10 09:23:52 -05:00
Matt W
df3aac5baf
Change name of santa config keys for file access monitoring ( #995 )
2023-01-09 21:08:57 -05:00
Nick Gregory
e289056e5e
lower fuzz case timeout to 5s ( #993 )
2023-01-09 12:28:45 -05:00
Matt W
4adad2ecfa
More event type support ( #992 )
...
* Add truncate and create support
* Add metrics support
2023-01-06 12:51:40 -05:00
Matt W
dc1a3c27c2
Add more event coverage in the file access client ( #991 )
...
* Support more file access protection event types
* Update tests for new events and method signatures
* lint
* Add metrics for new event types
* Add support for LINK event
* Fix spacing
2023-01-05 13:03:21 -05:00
Nick Gregory
a2f8030482
Fuzz embedded plist reading ( #990 )
...
* fuzz embedded plist reading
* remove newline
* consolidate size checking
* brackets
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2023-01-03 14:22:31 -05:00
Matt W
338a4f738f
Opportunistically use ES cache when possible ( #989 )
...
* WIP fixing up ES cacheability in file access client
* Removed old code from before simplification
* Add more tests
2023-01-03 14:09:21 -05:00
Nick Gregory
845d72eebd
Fix nightly run cron specification ( #986 )
2022-12-28 17:36:54 -05:00
Nick Gregory
ca81270bff
Fix SNTFileInfo Fuzzing ( #985 )
...
* fix SNTFileInfo fd leak
* auto poweroff VM after fuzzing
* lint
2022-12-27 16:20:32 -05:00
Matt W
42cf1b232a
Adopt new ES APIs to watch target paths in tamper client ( #984 )
2022-12-22 16:49:25 -05:00
Nick Gregory
57285c48dd
use new public api for booting VM into recoveryOS ( #983 )
2022-12-22 16:27:38 -05:00
Nick Gregory
2279cd8662
Run fuzzing in a VM ( #982 )
...
* run fuzzing in a vm
* no use cleaning up since each VM is pristine
2022-12-22 13:52:46 -05:00
Nick Gregory
9423beecc8
fix spinloop when no override config is specified ( #981 )
2022-12-22 13:51:46 -05:00
Pete Markowsky
b18d4a0e30
Fix SNTFileInfoTest for macOS 13 ( #977 )
...
* Fix SNTFileInfoTest for macOS 13
2022-12-22 10:37:22 -05:00
Russell Hancox
290ebed15e
Allstar: Add fuzzing artifact ( #980 )
2022-12-22 09:13:53 -05:00
Matt W
435868aa7a
Add build targets, lint ( #978 )
2022-12-21 22:56:20 -05:00
Nick Gregory
2e3952a31d
Revitalize Fuzzing ( #976 )
...
* snapshot using rules_fuzzing, but this probably wont work because nothing supports objc
* working fuzz
* clean up
* install libclang_rt.fuzzer_osx automatically; add to CI
* retain corpus
* restore old fuzzing stuff
* corpus
* move fuzz to separate timed action
* review
2022-12-21 15:29:07 -05:00
Matt W
60f53bc20a
Adopt new ES APIs to monitor target paths ( #975 )
...
* WIP begin adopting new ES APIs inverting target mute paths
* Track subscription status so as not to unnecessarily enable/disable
* Properly chain call to invert target mute paths. Fix using wrong Message obj.
* Add base client tests
* Support compiling on older platforms
* More changes to support compiling on older platforms
* Only enable watch items periodic task on macOS 13
* Add more asserts to test
* Disable ES caching for now
* lint
2022-12-20 21:15:01 -05:00
Russell Hancox
fec3766da4
Project: Upgrade MOLAuthenticatingURLSession to v3.1 ( #974 )
2022-12-19 15:12:09 -05:00
Matt W
ae63055f34
Fix golden test data for macOS 13 ( #972 )
2022-12-19 14:47:06 -05:00
Russell Hancox
e5a0c3c1c0
sync: Fix deduplication in reachability handler ( #973 )
2022-12-19 14:42:18 -05:00
Matt W
5680c69164
Address policy consistency issues ( #971 )
...
* Change FindPolicyForPath to operate on vector of inputs
* Adopt new interface to find all policies simultaneously
* Fix tests to use new FindPoliciesForPath signature
2022-12-19 14:20:05 -05:00
Nick Gregory
8a978c1e75
Update LICENSE for VM code ( #970 )
2022-12-16 12:21:49 -05:00
Matt W
6aa7c9ba86
Fix import issues ( #969 )
...
* Fix import issues
* lint
2022-12-15 16:10:26 -05:00
Matt W
6adef6a714
Track path types for current/new watch items ( #968 )
...
* Move WatchItemPolicy to its own header. Add path type enum.
* When tracking current/new paths, also track path types
* lint
2022-12-15 15:44:47 -05:00
Nick Gregory
1d8c105257
absl_guarded_by ( #967 )
2022-12-15 13:34:32 -05:00
Matt W
e2d7cf04fc
Fix under retain ( #966 )
2022-12-15 12:50:59 -05:00
Nick Gregory
9d448071f7
Lint the E2E start-vm Python script ( #965 )
...
* appease the linter
* add python to the lint script
2022-12-14 17:37:56 -05:00
Nick Gregory
cd6c0e7120
Introduce end-to-end testing ( #919 )
...
* initial e2e work
* switch to entitlements property instead of codesignopts hack
* bring moroz patches in
* go ahead and switch to upstream
* lint
* no need to install gcs every time
* codeowners
* add comments
* move to new e2e workflow
* rename e2e workflow
2022-12-14 11:15:55 -05:00
Matt W
ec5e8177fb
Serialize File Access events ( #964 )
...
* WIP skeleton code for file access event serialization
* Added basic string serializer for file access event
* Added proto string serializer for file access event
2022-12-14 11:04:37 -05:00
Russell Hancox
8e10c103cb
santad: Flush cache when StaticRules are changed ( #963 )
2022-12-13 16:57:13 -05:00
Matt W
db6c14ea10
Enrich file access events, prepare for logging ( #962 )
...
* WIP refactor file access class to setup logging
* Combined GetPathTarget1 and 2, added some tests.
* Change method name to not be abbrv.
* Remove unnecessary includes
* PR feedback: fix missing path sep, add comments
* Fix test issue
2022-12-12 16:37:47 -05:00
Matt W
4a4f1a971c
Fix issue where wrong variable was used ( #961 )
2022-12-09 15:07:30 -05:00
Matt W
c5c82a18ff
Dynamically enable/disable FS Access client based on config ( #959 )
...
* WIP Dynamic watch item config loading. Dynamic event handler protocol.
* Clients can now register with WatchItems to be enabled/disabled
* Handle dynamic fs monitor config add/modify/delete, dynamic enable/disable clients
* Update WatchItemsTest to use new constructor
* Better check handling value changes
* Add missing mock config value to fix integration test
2022-12-09 11:54:54 -05:00
Russell Hancox
f702c7a281
Tests: Fix SNTEndpointSecurityFileAccessAuthorizerTest ( #958 )
2022-12-08 15:46:51 -05:00
Russell Hancox
958ef52698
Config: In debug builds, allow config to be overriden from a plist file. ( #957 )
2022-12-08 15:07:59 -05:00
Matt W
068ec885b2
pemdas ( #955 )
...
* pemdas
* lint
2022-12-07 17:07:05 -05:00
Matt W
e572f047c0
Import fix ( #953 )
2022-12-07 14:07:13 -05:00
Matt W
b904a329d9
FS Access Config Version, Policy decision enums ( #951 )
...
* Add policy version to config. Return policy decision as enum.
* Check EnableBadSignatureProtection config when evaluating instigating procs
* Draft proto update for file access
* Revert "Draft proto update for file access"
This reverts commit 5d7e9a9e03 .
* Change return type to work around OCMock partial mocking issues
* lint
2022-12-07 13:33:35 -05:00
Matt W
d19343bccd
Draft proto for new FileAccess log ( #952 )
...
* Draft proto for new FileAccess log
* Update Source/common/santa.proto
Co-authored-by: Pete Markowsky <pmarkowsky@users.noreply.github.com >
Co-authored-by: Pete Markowsky <pmarkowsky@users.noreply.github.com >
2022-12-07 13:06:47 -05:00
Matt W
09cd78d756
Initial work for File Access Authorizer Client ( #949 )
...
* WIP Initial work for new fs watcher client
* WIP basic working mechanics of applying policy to OPEN events
* WIP now support allowing access based on cdhash
* WIP lint fix
* WIP check instigator cdhash and cert hash against policy
* WIP Fix test issue in base ES client class
* WIP Fix test issue in water items test
* Added secondary lookup cache for cert hashes and fallback lookups
* Adopt new SantaVnode name
* Adopt min macOS 11. Adopt new SantaCacheHasher for SantaVnode.
* Rename the es client to FileAccessAuthorizer
* Added some more tests
* Added MockLogger and a lot more tests.
* Removed currently unused subscriptions. Don't enable FS client by default
* lint
* lint after rebase
* Use strtoul for hex string conversion. Update comments.
* PR feedback
2022-12-06 19:52:32 -05:00
Russell Hancox
f169b69944
santad: Change workaround for glob header with blocks, free glob-allocated memory ( #948 )
2022-12-05 15:52:17 -05:00
Russell Hancox
40f9872c54
Tests: Fix some assertions comparing strings ( #947 )
2022-12-05 12:54:04 -05:00
Matt W
5718f2e582
Watch items ( #937 )
...
* WIP started work on parsing config
* WIP Basics of parsing config and generating new policy
* WIP Reapplying config updates functionally complete. Needs a lot more tests.
* Test cleanup, added using decl for watch items tree type
* More WatchItems tests and test polishing.
* Remove test print function. Formatting.
* Commented use of __BLOCKS__ undef
* Return a shared_ptr from factory
* Change WatchItemsPolicy to store sets instead of vectors
* Remove unnecessary WatchItem, replace with string
* Typo
* Update error messages to not make it sound like parse errors are recoverable
2022-12-01 13:41:05 -05:00
Liam Nicholson
04fd742114
Include SD Card Mounting in the USB Block Functionality ( #938 )
2022-12-01 10:25:54 -05:00
Matt W
194a3a6d4a
Remove SNTCommon ( #945 )
...
* Move santa_action_t to SNTCommonEnums and rename to SNTAction
* Move likely and unlikely macros to a new BranchPrediction header
* Remove SNTCommon.h. Move SantaVnode to its own header.
* Add SantaVnodeHash
* Fix build deps
2022-12-01 09:14:54 -05:00
Matt W
e1dc50fb36
Drop macOS 10.15 ( #944 )
...
* Drop macOS 10.15 support
* lint
2022-11-29 20:20:48 -05:00
Matt W
9ff2f0d631
Swtich from task_info to libproc for system resource info ( #939 )
...
* Swtich from task_info to libproc for system resource info
* Fix return value
* Convert nanos to seconds
* Make GetTimebase static. Expose NanosToMachTime.
* Abstract return or GetTaskInfo to new type.
2022-11-29 16:50:37 -05:00
Matt W
85058ec290
Rename santa_vnode_id_t to SantaVnode ( #943 )
...
* Rename santa_vnode_id_t to SantaVnode. Add factory.
* Change types of SantaVnode to match stat(2)
2022-11-28 23:45:14 -05:00
Russell Hancox
6e90673f71
docs: Update keyserver address in SECURITY ( #941 )
2022-11-28 19:35:02 -05:00
Russell Hancox
a58cee908f
docs: Fix typo in sync-protocol, h/t to @maxwbuckley ( #940 )
2022-11-28 17:21:45 -05:00
Russell Hancox
80b26955b4
GUI: Fix distributed notifications in silent mode ( #936 )
2022-11-16 09:53:56 -05:00
Matt W
6a84023548
Prefix tree updates ( #931 )
...
* WIP Rename SNTPrefixTree to PrefixTree
* WIP Implement the new PrefixTree and tests
* Add Unit type. Fix build and tests.
* lint
* Make NodeCount accessor for tests
* Updated comments
2022-11-14 13:16:49 +00:00
Russell Hancox
e70acefb5c
Docs: Fix type of {allowed,blocked}_path_regex keys in preflight ( #934 )
2022-11-07 15:36:10 -05:00
Matt W
41c918ee87
Don't add messages when accumulated bytes exceeds threshold ( #932 )
...
* Don't add messages when accumulated bytes exceeds threshold
* Add a leniency factor
* lint
2022-11-07 12:24:49 -05:00
Matt W
1adb6d2726
Update spool to flush on size thresholds instead of batch counts ( #930 )
2022-11-03 14:55:51 -04:00
Matt W
8c531a256b
metrics and logging cleanup ( #928 )
...
* Metrics and ambiguous log cleanup
* Fix test
2022-11-01 14:47:49 +00:00
Russell Hancox
5829363733
GUI: Fix EnableSilentMode key ( #927 )
2022-11-01 10:11:21 -04:00
Pete Markowsky
379f283c62
Update Known Limitations for USB Mass Storage Blocking ( #924 )
...
* Updated known limitations.
2022-10-28 20:21:38 -04:00
Matt W
2082345c02
Change order that ES clients are enabled ( #923 )
2022-10-29 00:15:26 +00:00
Matt W
dd8f81a60e
Fix issue in test that would crash on some platforms ( #922 )
2022-10-28 20:14:53 -04:00
Matt W
8ccb0813f1
More import fixes ( #921 )
...
* More import fixes
* lint
2022-10-28 15:57:01 -04:00
Matt W
b24e7e42bf
Event metrics ( #918 )
...
* WIP. Record event count and processing time metrics. Tests don't currently build.
* Updated tests
* Fix field names
* Remove unused target
* formatting
* Cleanup from PR comments
2022-10-28 14:25:07 -04:00
Pete Markowsky
4821ebebd5
Fix: duplicates bug in SNTMetricSet when using multiple fields ( #920 )
...
Fix duplicates bug in SNTMetricSet when using multiple fields names.
This also fixes the santactl metric command and golden files for tests.
2022-10-28 13:50:08 -04:00
Matt W
efeaa82618
Fix issue with transposed remount/banned block messages ( #917 )
2022-10-26 20:54:17 -04:00
videlanicolas
3f3de02644
USB: usbBlockMessage is not being used. ( #915 )
2022-10-26 17:42:49 -04:00
Matt W
f6c9456ea7
Fix some more includes ( #914 )
2022-10-25 16:52:19 -04:00
Matt W
2aaff051c8
Various changes to fix import ( #913 )
2022-10-25 16:16:44 -04:00
Matt W
2df7e91c87
Change include to import ( #912 )
2022-10-24 11:56:02 -04:00
Matt W
37644acd01
Update build docs. Fixes #910 ( #911 )
2022-10-24 09:55:37 -04:00
Matt W
899ca89e23
Proto minimization ( #909 )
...
* Create Light variants of File and ProcessInfo messages to reduce disk/wire byte counts
* Updated golden test data
2022-10-21 19:48:37 -04:00
Matt W
e7281f1c55
Spool writer ( #908 )
...
* Spool writer and santactl command to print proto file
* Make valid JSON for multiple paths. Can now create proto/spool logger. Updated logger tests.
* Make fsspool writer and fsspool log batch writer injectable
* Add spool writer tests
* Updated help text for santactl printlog
* Include file cleanup
* Fix dispatch source destruction
* Change config keys for the new Spool writer
* Spool settings now configurable
* Fix param order
* Remove some test sleeps related to control flow
2022-10-21 16:43:12 -04:00
Matt W
bf0ca24ae7
Machine id proto ( #907 )
...
* Add MachineID to all BasicString serialized log messages
* machine_id now a top level proto field
* Remove commented code
2022-10-19 10:51:38 -04:00
np5
4fe8b7908f
sync: Fix USB blocking config sync ( #890 )
2022-10-18 10:01:20 -04:00
Matt W
a8dd332402
Update include paths and add include guard ( #905 )
2022-10-14 17:58:36 -04:00
Matt W
6631b0a8e3
More import fixes ( #904 )
...
* Layering check disable
* workaround for layering issue
2022-10-14 17:20:20 -04:00
Matt W
07e09db608
Import fixes ( #902 )
...
* Apply clang-format to cc files
* Modify binaryproto namespace
* Add more required includes
* Add proto includes
* Assert message parsing succeeds in test
* Add optional keyword to proto fields to track presence. TESTS BROKEN.
* Update golden test data
2022-10-14 15:51:53 -04:00
Matt W
d041a48c97
Fsspool adopt ( #900 )
...
* Added fsspool library, tests
* Cleanup
* Remove extra visibility from BUILD file
* Import foundation so the linter doesn't complain
2022-10-13 20:47:52 -04:00
Matt W
1683e09cc8
Proto serializer ( #897 )
...
* Initial proto serializer with close event
* Define move ctors for enriched types, delete copy ctors
* More event proto serialization. Commonized proto test code.
* Started work serializing exec event. Added serializer utilities.
* More progress serializing exec event
* Add mroe test data. Test restructure to permit fine grained mocking.
* Env/FD ES types now wrapped in EndpointSecurityAPI. Added calls to proto serializer.
* Add fd type names to proto
* Version compat. Script and Working Dir encoding.
* Add process start time
* Serialize Link event
* Add null check, mainly to fix tests
* Handle versioned expectations
* Each test now build msg in callbacks to set better expectations
* Serialize rename event and tests
* Serialize unlink event and tests
* Serialize allowlist and bundle events. Add utilities tests.
* Formatting
* Disk event proto serialization and tests
* Fix test only issues
* Rename santa_new.proto to santa.proto
* Change fd type int and string to an enum
* Proto namespace now versioned
* Added comments to proto schema
* Add proto support to indicate if fd list truncated
2022-10-13 13:52:41 -04:00
Ivan Tadeu Ferreira Antunes Filho
d6c73e0c6c
common: Make SNTCommonEnums a textual header ( #896 )
...
This change fixes -wunused-variable warnings. The header is not valid by itself and should be declared as a textual header rather than as a header.
2022-10-03 13:15:33 -04:00
Matt W
72969a3c92
Fix crash flushing cache on unmount events ( #895 )
2022-09-27 21:54:35 -04:00
Matt W
d2dbed78dd
Return a value from the test block ( #894 )
2022-09-27 15:07:20 -04:00
Matt W
8fa91e4ff0
Build deps ( #893 )
...
* Too bad we can't require explicit build deps...
* More deps
2022-09-23 13:55:48 -04:00
Matt W
551763146d
Linter and BUILD deps fixups ( #892 )
...
* Minor changes to address lint issues
* Add more BUILD deps
* Include cleanup
* Even more BUILD deps
* Still more BUILD deps
2022-09-23 11:18:58 -04:00
Matt W
7a7f0cd5a8
Ingestion fixups ( #891 )
2022-09-22 12:30:34 -04:00
Matt W
fcb49701b3
ES and Logging Interfaces Redesign ( #888 )
...
* Initial structure for ES wrappers, enriched types, logging
* Basic working ES and logging functionality
* Add in oneTBB and thread-safe-lru deps
* Added a bunch of enriched types
* Auto-mute self when establishing ES client
* Basic auth, tamper client. Syslog of all events. Basic compiler tracking.
* Update copyright header blobs, convert some tabs to spaces
* Auth result cache. Fix getting translocation path.
* Added remaining cache methods
* Add AuthResultCache to Recorder client. Cache now operates on es_file_t.
* Hooked up SNTPrefixTree
* Fix CompilerController for RENAME. Fix AllowList logging missing path.
* Block loading Santa kext
* Added device manager client
* Properly log DiskAppear events
* Fix build to adopt new adhoc build
* Handle clearing cache on UNMOUNT events
* Ignore other ES clients if configured
* Remove SNTAllowlistInfo. Rename AllowList to Allowlist. Minor cleanup.
* Recorder now logs asynchronously. Enricher now returns shared_ptrs.
* Added File writer. Added timestamps to BasicStream serializer.
* Skip calling stat in SNTFileInfo when path given by ES.
* Fix build issue
* Address draft PR feedback
* santactl integrated, XPC works, fix file writer bug
* Integrate syncservice. Start observing some config changes.
* Add metrics service wrapper
* Add metrics config observers and metrics interval reset.
* Start better dependency control. Add Null logger support.
* Added more deps
* Added more deps
* Fix issue where metric service wasn't starting
* Add missing variant include
* Fix missing parent proc name
* Added googletest and new unit test macro
* Started expanding AuthResultCacheTest
* Properly mock EndpointSecurityAPI
* Finished AuthResultCacheTest
* bazelrc now builds all C++ as C++17. Added LoggerTest.
* Add FileTest. Abstract some File constants to Logger.
* Added Empty serializer test
* Started work on BasicStringTest. Fixed some BasicString serialization bugs.
* Added Unlink BasicString serialization test
* Added some more tests. Commonized some test code
* Finished BasicStringTest. Converted to XCTest.
* Standardize esapi variable naming
* Bubble up gTest expect failures to XCTest failures
* AuthResultCacheTest now uses XCTest. Added common TestUtils.h
* EmptyTest now uses XCTest.
* FileTest now uses XCTest
* LoggerTest now uses XCTest. Removed santa_unit_gtest bazel macro.
* Added ClientTest
* Add basic Enricher tests
* Add MessageTest. Make more TestUtils.
* Rename metrics to Metrics
* Add MetricsTest.
* Apply template pattern to Serializer
* Add SNTDecisionCacheTest.
* Add SNTCachedDecisionTest.
* Testing with coveralls debug mode
* Allow manual CI runs
* Remove unused property
* Started work on SNTEndpointSecurityClientTest.
* WIP SNTEndpointSecurityClientTest, fix test run issue
* Added more base ES client tests
* Add more base ES client tests
* Base ES client tests done. Added serializer utils/tests. Expanded basic string tests.
* Add utils test to test suite
* Add copy ctor. Add test output to bazel coverage.
* Single thread bazel coverage
* Updaload coverage file
* Updaload coverage file
* Old gen cov test
* Restructure message handlers to enable better testability
* Added enable tests for all ES clients
* Made a single MockEndpointSecurityAPI class to share everywhere
* Added most of SNTCompilerControllerTest
* Cleanup SNTCompilerControllerTest
* Started expanding Auth client test
* Finished up the Authorizer tests
* Move to using enum class for notify/auth instead of bool
* WIP for tamper resistance test. ASAN issues.
* Add OCMock patch to fix test issue on ARM Macs
* Changed patches directory name to external_patches
* Update WORKSPACE path
* Finished up Tamper Resistance tests
* Finished up Recorder tests.
* Move SNTExecutionControllerTest to ObjC++
* Initial work to port SNTExecutionControllerTest
* Finished porting SNTExecutionControllerTest.
* Added SNTExecutionControllerTest to list of unit tests
* Ported SNTEndpointSecurityDeviceManager.
* Test cleanup, use MockESAPI expectation helpers
* Verify SNTEndpointSecurityDeviceManager expectations differently
* Test cleanup, omit gTest param list where unused
* Log message cleanup
* Rename SNTApplicationTest to santad_test.mm
* Finished porting santad_test, formerly SNTApplicationTest
* Fix SNTEndpointSecurityDeviceManager issues
* Pulled in missed fixes. Updated tests.
* Renamed lowercase filenames to match rest of codebase
* Fix non-static dispatch_once_t, and noisy watching compiler log message
* WIP Started process of removing components no longer used
* WIP Continued process of removing components no longer used
* BUILD file cleanup. Proto warning. Removed unused global
* Rename SNTEventProvider to SNTEndpointSecurityEventHandler
* Rename SNTEndpointSecurityEventHandler protocol
* Remove EnableSysxCache option. Remove --quick flag used during dev.
* Ran testing/fix.sh
* Addmissing param to fix.sh that was omitting .mm files.
* clang-format
* Fix linter: find cmd missing .mm ext, git grep exclude patch files.
* Use MakeESProcess default params in tests
* Move variables to camelCase in objc classes
* More case changes
* Sanitize strings
* Change dispatch queue priorities and standardize daemon queue naming
* Exclude patch files in markdown check
* Ensure string log messages end with newline
* Fix BasicStringTest
* Disable clang-format in code producing different results in local/remote versions
* Moved to using date ranges in copyright notices as per current guidelines
* Update Source/common/SNTConfigurator.h
Suggestion adding whitespace in comment to fix clang-format mangling
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
* Removed santa_panic macro used in one place
* Updated comment about ES cachability
* Pin oneTBB to specific commit
* Address outstanding WORKSPACE 'canonical reproducible form' messages
* Use string append instead of ostringstream due to benchmark results
* Remove use of freind classes in EnrichedTypes.h
* Added SNTKVOManager, removed observers from SNTConfigurator.
* Fixed SNTEndpointSecurityRecorderTest class name
* Reduce usage of the auto keyword
* Each SNTKVOManager instance now adds its own observer
* Replaced more auto keywords with real types.
* Remove leftover code coverage debugging from ci.yml
* Updated comment
* Memoize SNTFileInfo sha256. Reduce some cache sizes.
* Fix issue checking for translocated paths
* Use more performant NSURL creation method
* Fix lint issue
* Address PR feedback
* Use an array literal for kvo objects
* Fix some clang tidy and import issues
* Replace third party LRU cache with SantaCache for now
* Fix clang tidy issues
* Address PR feedback
* Fix comment typo
Co-authored-by: Pete Markowsky <pmarkowsky@users.noreply.github.com >
* Added todo for when we adopt macOS 13
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
Co-authored-by: Pete Markowsky <pmarkowsky@users.noreply.github.com >
2022-09-22 10:18:41 -04:00
Russell Hancox
c9ef723fc5
Project: Update bazel and apple-rules ( #887 )
2022-08-29 17:52:27 -04:00
Pete Markowsky
dc6732ef04
Refactor the SNTApplicationTest unit tests to function correctly ( #885 )
...
* Refactor the SNTApplicationTest unit tests to function correctly.
The tests were originally written in a table style and were impacted by the lack of mocking the configurator. This caused issues with static rules to impact the unit tests.
Additionally added improved logging messages for critical binaries and a todo for macOS 13 unit tests.
Added goodbinary and rules.db test files to allstar's ignored paths.
2022-08-29 13:18:04 -04:00
Russell Hancox
a48900a4ae
Allstar: Pre-emptively check-in binary_artifacts.yaml to exclude test binaries ( #884 )
2022-08-25 09:32:43 -04:00
Russell Hancox
bb49118d94
README: Try again, this time replacing the correct bit ( #883 )
2022-08-24 16:26:30 -04:00
Russell Hancox
456333d6d2
README: Fix logo link, remove coverage badge ( #882 )
2022-08-24 16:22:37 -04:00
Pete Markowsky
fd23a5c3b7
Fix up endTimestamp to be Monarch compliant ( #879 )
...
Fix up endTimestamp field to be Monarch compliant.
2022-08-16 22:32:29 -04:00
Russell Hancox
ec203e8796
Project: Rename Source/santa -> Source/gui ( #877 )
2022-08-12 14:19:01 -04:00
Russell Hancox
57ff69208d
GUI: Missed a required dependency ( #876 )
2022-08-12 14:02:22 -04:00
Russell Hancox
f00b7d2ded
GUI: Expose SNTNotificationManager.h for the test. ( #875 )
2022-08-12 13:46:25 -04:00
Russell Hancox
9791fdd53c
Project: Add a GH action to prevent trailing whitespace ( #873 )
2022-08-12 12:46:11 -04:00
Russell Hancox
26e2203f1e
GUI: Improve signing chain key reporting in distributed notifications. ( #874 )
...
Also add a group for GUI unit_tests and include in the overall project tests group.
2022-08-12 11:03:21 -04:00
Russell Hancox
4a47195d12
Santa: Post distributed notification when showing block UI ( #870 )
...
Fixes #869
2022-08-11 12:34:35 -04:00
Russell Hancox
4436e221df
GUI: Add silent mode configuration option. ( #871 )
...
When enabled, this option disables *all* GUI notifications from Santa. This is intended for kiosk-style machines where it is not expected for users to _ever_ execute unknown binaries.
Fixes #862
2022-08-11 09:17:07 -04:00
Russell Hancox
deccc8a148
GUI: For App Store published apps, include team ID. ( #872 )
...
With this change, the publisher field for an App Store published app will be instead of
Fixes #758
2022-08-11 08:15:42 -04:00
Henry S
06da796a4d
Docs: add link to GitHub ( #868 )
2022-08-08 16:38:34 -04:00
Russell Hancox
7b99a76d0d
Docs: Add StaticRules to example mobileconfig ( #866 )
2022-08-03 10:59:18 -04:00
Pete Markowsky
c2d3e99446
Sync Protocol Docs ( #860 )
...
Initial commit of sync protocol docs.
2022-07-28 17:27:43 -04:00
Russell Hancox
6db7fea8ae
syncservice: Add tests for NSData+Zlib and Postflight ( #864 )
2022-07-26 13:05:35 -04:00
Kathryn Hancox
6fcb4cfe63
Docs: Add recommended rollout doc ( #861 )
2022-07-22 13:50:25 -04:00
bfreezy
8b55ee4da5
santad: only allow root read+write permissions on sync-state.plist ( #858 )
2022-07-18 13:32:08 -04:00
Russell Hancox
cc3177502c
Tests: Fix un-needed expectation in SNTExecutionControllerTest.allEventUpload ( #857 )
2022-07-15 18:03:34 -04:00
Kathryn Hancox
a49a59b109
Docs: Add sync server list ( #856 )
2022-07-15 16:19:17 -04:00
Kathryn Hancox
2c06c39c82
Added quick getting started page for deployments ( #855 )
2022-07-15 15:23:33 -04:00
Pete Markowsky
234f81ea7c
Ensure KVO works for USB config options ( #853 )
...
Ensure KVO works for USB config options.
2022-07-15 15:13:55 -04:00
Russell Hancox
743c567bf8
santad: Log team ID in execution logs, where available ( #850 )
2022-07-15 12:41:56 -04:00
Russell Hancox
21220f1499
santad: Add DisableUnknownEventUpload option. ( #852 )
2022-07-15 12:30:20 -04:00
Russell Hancox
39f3ffe8fc
santactl/status: Fix printing of static rules ( #848 )
2022-07-15 11:53:38 -04:00
Russell Hancox
fdb01928a0
santad: Fix re-establishment of syncservice connection ( #849 )
...
* santad: Fix re-establishment of syncservice connection
The previous version could lead to santad having lots of threads stuck waiting for connections
2022-07-15 11:53:17 -04:00
Russell Hancox
fbefbc5910
santasyncservice: Keep XSRF token in memory, don't send to daemon ( #851 )
2022-07-15 11:52:43 -04:00
Russell Hancox
9db00d143d
santad: Improve caching of static rules ( #847 )
...
In #846 I forgot that is only a count of the entries so if the config changes but the number of rules remains the same we would never update the cache. This PR moves the processing of the raw config into the KVO handler code so it is not at all in the hot-path.
2022-07-14 10:50:30 -04:00
Russell Hancox
1cc40d59d8
santad: Allow configuring a static set of rules via configuration profile ( #846 )
2022-07-13 17:58:13 -04:00
Russell Hancox
ba1ace56f0
Project: Delete tulsiproj, add basic doc about hedron ( #845 )
2022-07-12 13:53:57 -04:00
Russell Hancox
6d911e9d6e
CI: Make CI workflow only run on source changes ( #843 )
2022-07-08 16:03:30 -04:00
Kathryn Hancox
7e2b291122
Docs: Updated home page with README files & nav changes ( #841 )
2022-07-08 15:53:16 -04:00
Tom Burgin
64096f5d08
adhoc build and run santa ( #840 )
...
* adhoc build and run santa
* fold ci into adhoc
* review updates
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-07-07 17:09:53 -04:00
Matt W
aec1c74fab
Use the message copy in the dispatch blocks ( #839 )
2022-07-06 21:51:02 -04:00
Russell Hancox
d4a0d77cb9
Docs: Add gemfile for running jekyll locally. ( #834 )
...
This lets us test docs site changes by running `bundle exec jekyll serve` from inside the docs folder.
2022-07-01 11:06:16 -04:00
Russell Hancox
7df209ed3f
Project: Upgrade bazel rules_apple to 1.0.1 release ( #830 )
2022-06-28 14:23:47 -04:00
np5
b7421e4499
Add team ID to synced events ( #827 )
2022-06-24 20:00:55 +00:00
Eric Case
e044fe3601
Readme: http -> https link ( #829 )
2022-06-24 14:34:32 -04:00
Russell Hancox
a67801d5ed
santactl/status: Remove driver connected, re-org USB blocking status ( #826 )
2022-06-22 14:59:46 -04:00
Russell Hancox
3d37a3a5ae
santad: Update assert usage to avoid a string-to-bool conversion ( #825 )
2022-06-22 12:55:57 -04:00
Russell Hancox
bfae5dc828
fix some style issues ( #824 )
2022-06-22 10:41:05 -04:00
Pete Markowsky
fde5f52a11
Added handling for Remount events to USB mass storage blocking ( #818 )
...
* Added handling for Remount events to USB mass storage blocking.
2022-06-22 09:39:20 -04:00
Russell Hancox
01bd1bfdca
santad: Use multiple semaphores to avoid freeing ES message before use of it has ended. ( #822 )
...
This slightly complex solution is necessary because while on macOS 11+ there are retain/release methods that can be used on ES messages, on 10.15 the only option is a copy which is comparatively expensive (and on 11+ the copy/free methods are aliases for retain/release)
Fixes #821
2022-06-08 11:21:40 -04:00
Matt W
ae13900676
Mute self to reduce message volume. Remove noisy log message. ( #820 )
...
* Mute self to reduce message volume. Remove noisy log message.
* Bail if self muting failed. Remove selfPid.
* Fix tests by mocking es_mute_process
2022-05-31 11:36:35 -04:00
Matt W
a65c91874b
Copy new PrinterProxy file instead of overwriting ( #819 )
...
* Copy new PrinterProxy file instead of overwriting
* Update log type for error message
* Update log message severity
2022-05-27 13:08:25 -04:00
Matt W
6a3fda069c
Remove unused testing scripts ( #816 )
...
* Remvoe unused testing scripts
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2022-05-27 11:03:10 -04:00
Khalid Jamal Abdulnasser
4d34099142
santad: log decision when failing to read file ( #817 )
2022-05-27 09:52:06 -04:00
Russell Hancox
e639574973
Project: Fix layering for tests ( #813 )
2022-05-12 16:52:11 -04:00
Russell Hancox
636f9ea873
Project: Layering, missed a dependency ( #812 )
2022-05-12 14:49:18 -04:00
Russell Hancox
9099409915
Project: Enable layering check, fix all dependency violations ( #811 )
2022-05-12 14:26:08 -04:00
Russell Hancox
976f483a99
syncservice: Fix SNTSyncTest ( #810 )
...
Failing preflight early if the daemonConn doesn't return a response the tests. This fix is a bit awkward, I tried to add the defaults in setUp but then you can't overwrite the stubs in methods that need to do it
2022-05-12 09:54:00 -04:00
Tom Burgin
8a32b7a56b
preflight sync: fix dispatch_group_wait return polarity ( #809 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-05-11 14:55:42 -04:00
Tom Burgin
7eeb06b406
preflight sync: stop the sync if we cannot communicate with the daemon ( #808 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-05-11 18:45:58 +00:00
Tom Burgin
4540a1c656
SNTConfigurator: remove mutability from sync state dict ( #807 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-05-11 14:35:43 -04:00
Russell Hancox
acc7b32b24
GUI: Switch to UserNotification.framework notifications ( #806 )
2022-05-11 12:32:08 -04:00
Russell Hancox
b92d513f5d
GUI: Fix message queuing ( #805 )
2022-05-11 09:59:38 -04:00
Tom Burgin
3458fccd4e
santasyncservice: handle loading and unloading of the service in the pkg ( #804 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-05-10 14:59:34 -04:00
Russell Hancox
fdfb00368c
GUI: Update keys for EventDetailURL. ( #802 )
...
The previous change here (#797 ) was not backward compatible and would be difficult to roll out. This change restores the previously used key and adds 2 new ones for migration. The previous key is marked deprecated and will be removed in the future.
2022-05-09 13:46:13 -04:00
Tom Burgin
6bd369cfb2
santad: remove sema from sync service queue ( #803 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-05-09 13:32:28 -04:00
Pete Markowsky
0df26c6214
Fix ES Mock Client Subscription issues ( #801 )
...
Fixes an issue with the ES mock where it was deleting all clients on an unsubscribe.
2022-05-06 14:34:42 -04:00
Russell Hancox
6e22da1d97
santad: Add 'null' event logger. Fixes #754 ( #799 )
2022-05-06 12:22:04 -04:00
Russell Hancox
1725809335
Add config to allow uploading all events ( #800 )
...
* Add config to allow uploading all events
This config can be enabled locally or by a sync server and causes the
client to upload all events, not just those for binaries that are or
would be blocked.
Fixes #689
2022-05-06 11:45:53 -04:00
Pete Markowsky
3eff49feda
Added macos-12 to the build matrix. ( #798 )
2022-05-03 21:14:15 -04:00
Pete Markowsky
5caedebb06
Created a profiles package so provisioning profiles only need to be in one place. ( #794 )
2022-05-03 17:14:02 -04:00
Russell Hancox
d823028b72
Sync: Add option to enable event upload despite clean sync. ( #796 )
...
Related to #789
2022-05-03 15:15:42 -04:00
Russell Hancox
49b2d6e22a
GUI: Add %bundle_or_file_sha% translation key ( #797 )
...
* GUI: Add %bundle_or_file_sha% translation key
This mimics the current behavior that %file_sha% previously had and
moves %file_sha% to the expected behavior or just showing the file's
SHA.
Related to #795
2022-05-03 14:59:01 -04:00
Russell Hancox
4236d57e96
Project: Update packaging script to do tarball creation in a scratch dir ( #793 )
2022-04-28 15:25:48 -04:00
Russell Hancox
36d463a1dc
Project: Include syncservice.plist in release builds and loads ( #792 )
2022-04-28 14:42:19 -04:00
Tom Burgin
adbafd6bab
syncservice: sign and package ( #790 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-04-28 13:31:20 -04:00
Tom Burgin
b5ebe1259c
syncservice: implementation and migration ( #775 )
...
* review updates
* fix test
* review updates
* log level cleanup
Co-authored-by: Tom Burgin <bur@chromium.org >
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2022-04-27 14:54:56 -04:00
Ryan Diers
e0ae0f481b
santa/gui: Update buttons to push style to better stand out ( #788 )
2022-04-19 20:08:35 -04:00
Matt W
8037c79fc0
Populate critical paths from the ES default mute set ( #786 )
...
* Populate critical paths from the ES default mute set
* Attempt to fix build on older macos
* Link ES to build SNTRuleTableTest
* Workflow test
* Use preprocessor macros to support building on older SDKs
* Add API availability
2022-04-18 15:11:43 -04:00
Walter Lee
892d303de1
Disable layering check for Objective-C, part two ( #787 )
2022-04-18 12:15:08 -04:00
Russell Hancox
ff3979263e
santad: Use TTY path provided by ES ( #785 )
2022-04-15 12:48:06 -04:00
np5
01afefd3d4
santactl/sync: Fix event team ID decision value ( #784 )
2022-04-15 10:27:48 -04:00
Kent Ma
830627e7bc
Docs: Add "Team ID" to description on AllowedPathRegex ( #782 )
2022-04-14 13:13:51 -04:00
Walter Lee
601d726fcc
Disable layering check for Objective-C ( #781 )
2022-04-12 09:06:55 -04:00
Tom Burgin
0be1ca0199
ES_EVENT_TYPE_NOTIFY_UNMOUNT: flush the cache off the ES handler thread ( #778 )
...
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-04-06 12:07:08 -04:00
Kent Ma
8602593149
Fix dead link ( #774 )
2022-03-25 13:33:08 -04:00
Matt W
9bca601ce6
Modified build target names for santa proto ( #772 )
2022-03-25 13:07:57 -04:00
Kent Ma
c73acd59d4
Update logo image of Santa ( #773 )
2022-03-25 12:46:34 -04:00
Russell Hancox
3c334e8882
Project: Fix coverage collection ( #770 )
2022-03-24 11:33:46 -04:00
Russell Hancox
5f811cadf8
Project: Update apple_rules dep, add .bazelversion for bazelisk users ( #769 )
2022-03-23 17:34:04 -04:00
Russell Hancox
4252475de0
Project: Fix fallback version ( #767 )
2022-03-23 15:13:30 -04:00
Kent Ma
45f1822681
Exclude bazel-out from test coverage generation ( #768 )
2022-03-23 15:10:46 -04:00
Russell Hancox
498a23d907
Project: Make versioning dynamic through bazel's --embed-label. ( #766 )
...
The apple_rules allow versioning using an apple_bundle_version rule that extracts elements from an embedded label. We haven't been able to use this until now because the kernel extension needed access to the version in a define.
2022-03-23 14:53:51 -04:00
Russell Hancox
5dff8a18f4
santad: Split ES cache into root/non-root varieties ( #765 )
2022-03-23 09:43:14 -04:00
Russell Hancox
676c02626d
santactl/metrics: Allow filtering metrics ( #763 )
2022-03-22 18:12:14 +00:00
Russell Hancox
64950d0a99
Project: Show test errors in output from CI ( #764 )
2022-03-22 11:39:01 -04:00
Kent Ma
16f74cb85c
Remove references to santa-driver and the kernel extension from parts of the docs ( #762 )
2022-03-21 11:33:45 -04:00
Russell Hancox
aadc961429
santad: Clear caches when disks are unmounted. ( #760 )
...
This restores behavior that was recently removed
2022-03-18 13:38:35 -04:00
Russell Hancox
be66fd92f4
santactl/status: Re-org output in status re: USB Blocking. ( #759 )
2022-03-18 09:57:34 -04:00
Russell Hancox
feea349f25
Project: Remove kext signing/packaging ( #755 )
2022-03-16 17:08:59 -04:00
Kent Ma
1c04c3a257
Remove code guarded by #ifdef kernel macros ( #752 )
...
* Remove code guarded by #ifdef kernel macros
2022-03-15 14:38:40 -04:00
np5
818d3f645f
santactl/sync: Add model identifier to preflight request ( #751 )
2022-03-15 14:24:05 +00:00
Pete Markowsky
15d6bb1f14
Made santad an early boot client to prevent racing other pids. ( #750 )
...
Make santad an early boot Endpoint Security Framework Client.
2022-03-15 10:16:40 -04:00
Kent Ma
211dbd123f
Remove the Santa kernel extension. ( #749 )
...
This includes:
* All of the code in Source/santa_driver containing the kernel extension
* The SNTDriverManager event provider
* All workflows in our CI related to testing if the driver builds
* Installation of the driver in install.sh. Note that code uninstalling existing instances of the driver is still intentionally kept present.
* Kernel extension-specific build rules
* Renames SNTKernelCommon to SNTCommon
* Driver version output from santactl version
* The [SNTConfigurator EnableSystemExtension] configuration key
2022-03-14 18:17:02 -04:00
Matt W
c67364fe76
Protobuf support, maildir format logging ( #731 )
...
* Initial protobuf support, maildir logging
Fix build issues in the integration test
Deduped some test code
Formatting
Address feedback from draft PR
Removed legacy labels. Updated docs.
Add in metrics. Fix protobuf logging test.
* Now use the Any proto for the LogBatch wrapper
* Changes based on PR feedback
* Added gauge metrics for spool dir
* Formatting
* Add event time to proto
* Fix build issue after rebase
* Update BUILD rules
* Updated language around protobuf logging to mark as beta
2022-03-14 15:46:52 -04:00
Pete Markowsky
2043983f69
Fix typo in SNTDeviceManager tests & ensure they run in the CI. ( #746 )
2022-03-14 12:57:07 -04:00
Russell Hancox
2f408936a0
Project: Disable bazel layering_check feature for most rules ( #742 )
2022-03-10 10:07:15 -05:00
Russell Hancox
02c1d0f267
Project: Bump version to 2022.3 ( #745 )
2022-03-10 09:35:44 -05:00
Pete Markowsky
4728c346cc
Fix uninstall.sh to remove the metric & bundle services. ( #743 )
2022-03-09 18:00:45 -05:00
Pete Markowsky
9588dd8a0e
Fix: Issue with SNTMetricHTTPWriter Timeouts ( #741 )
...
Fix issue with santametricservice timing out due to incorrect timeout argument.
2022-03-08 14:12:57 -05:00
Russell Hancox
e3e48aed1b
Packaging: Keep package versions simple ( #737 )
2022-03-02 10:36:39 -05:00
Russell Hancox
e60f9cf6c5
Project: Add build version ( #736 )
2022-02-28 14:18:18 -05:00
Kent Ma
c7e309ccb1
Add a USB device blocking popup. ( #728 )
...
* Add a USB device blocking popup.
* Refactor SNTNotificationManager and SNTMessageWindowController to make
for generalized notification logic
* Add the configuration keys for custom block messages and resize window
2022-02-28 13:30:56 -05:00
Russell Hancox
ad8aafbd07
Project: Bump version to 2022.2 ( #734 )
2022-02-17 11:36:21 -05:00
Russell Hancox
9e671c3dee
Project: Add arm64 to hostArchitectures for productbuild ( #733 )
...
This should avoid prompts to install Rosetta when installing the .pkg
2022-02-16 20:02:12 -05:00
Russell Hancox
d97abe36f2
santad: Fix fail open tests in SNTExecutionControllerTest ( #730 )
2022-02-14 20:13:08 -05:00
Pete Markowsky
faa8946056
Fix: remediate a crash in santametricservice ( #729 )
...
* Fix issue with task cancelation.
* Make export timeouts configurable.
This allows an export timeout to be set via configuration and eases testing.
2022-02-14 13:51:29 -05:00
Kent Ma
8b2b1f0bfc
Report USB blocking status with santactl status ( #727 )
...
* Report USB blocking status with santactl status
2022-02-10 16:02:40 -05:00
Kent Ma
16678cd5a0
Update version of bazel rules_apple to fix broken 12.3 builds ( #726 )
2022-02-10 14:32:43 -05:00
Matt W
0bd6a199a3
Fix additional strlcpy issue, simplify call paths ( #723 )
...
* Fix additional strlcpy issue, simplify call paths
* Remove unused interface from header
2022-02-03 12:53:22 -05:00
Russell Hancox
58e2b7e1b8
santad: Add fail-closed mode ( #722 )
2022-01-28 18:29:18 -05:00
Tom Burgin
b824a8e3e0
santad: only store events if there is a sync server configured ( #721 )
...
* santad: only store events if there is a sync server configured
* SNTExecutionControllerTest stub sync server
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-01-27 15:55:51 -05:00
Kent Ma
25bf2a93e4
Add DiskArbitrationTestUtil to shim out DiskArbitration for unit testing ( #720 )
2022-01-25 13:45:03 -05:00
Russell Hancox
f1ea1b369f
santactl/fileinfo: Switch certIndex to an NSNumber ( #719 )
...
* santactl/fileinfo: Switch certIndex to an NSNumber
2022-01-25 12:50:04 -05:00
Tom Burgin
5503a88308
rule download: return early on daemon timeout ( #718 )
...
* rule download: return early on daemon timeout
* wording update
Co-authored-by: Tom Burgin <bur@chromium.org >
2022-01-21 17:19:44 +00:00
Kent Ma
8cf0f8217d
Add clang_analyzer generation ( #717 )
...
Fix warnings for unused variables. The other warnings are more
nontrivial & require some light refactoring to fix, and will come in a followup PR.
2022-01-21 17:14:44 +00:00
Russell Hancox
22799ffc2a
Conf: Delete and clean-up ASL conf, enable signaling on newsyslog.conf. ( #716 )
...
* Conf: Delete and clean-up ASL conf, enable signaling on newsyslog.conf.
The ASL config is a remnant from when Santa did all logging via ASL before Apple deprecated ASL and replaced it with ULS, which doesn't allow redirecting messages to a file. The old config wasn't causing any problems except that it was handling battling newsyslog for rotation and had different parameters.
The signal change in the newsyslog.conf causes newsyslog to fallback on sending a (harmless) SIGHUP to syslogd, which has no effect on Santa except it also triggers a 10s sleep inside newsyslog between renaming the old file and beginning the compression, which is plenty of time for santad to notice the rename and start writing new logs to the newer file.
2022-01-19 11:29:39 -05:00
Pete Markowsky
cb61d0cc99
Create test suites for each component ( #702 )
...
Create test suites for each component.
2022-01-18 17:00:44 -05:00
Pete Markowsky
fb7447ceba
Fix off-by one error in strlcpy. ( #715 )
2022-01-18 15:31:30 -05:00
Russell Hancox
45e51e9c09
santactl/fileinfo: Clarify valid index for cert-index ( #714 )
2022-01-13 14:35:30 -05:00
Russell Hancox
b0f0cdd4e6
santactl/fileinfo: Update --cert-index usage ( #713 )
...
* santactl/fileinfo: Update --cert-index usage.
Fixes #710
2022-01-13 13:04:38 -05:00
Kent Ma
65090d3ef2
Support rule downloading of Team ID rules ( #709 )
...
* Support syncing Team ID rules and using 'identifier' instead of 'sha256' in sync rules
2022-01-13 10:55:14 -05:00
Russell Hancox
9c80f79d82
Sync: Allow configuring proxies ( #708 )
...
* Sync: Allow configuring proxies
Fixes #672
2022-01-13 15:04:11 +00:00
Kent Ma
93adaea81e
Add clang annotation for fallthrough ( #712 )
2022-01-12 13:56:47 -05:00
Russell Hancox
a125b340a5
santad: Don't use proc_pidpath when using ES ( #707 )
2022-01-11 20:32:29 -05:00
Kent Ma
fbd0de3d48
Add test coverage for syncing USB mounting options ( #711 )
2022-01-11 17:13:37 -05:00
Russell Hancox
6f2ae62bce
Project: Explicitly set calendar on ISO8601 dates ( #706 )
2022-01-06 09:33:04 -05:00
Christopher Sauer
da29b20473
Update hedron_compile_commands ( #704 )
2021-12-30 07:59:35 -05:00
Kent Ma
197109a8ee
USB mass storage blocking and remounting ( #685 )
...
* USB mass storage blocking.
* Add the sync service and config key for enabling mass USB storage blocking
* Update docs with the sync service key
* Add ability to forcibly remount USBs with different flags
* update EndpointSecurityTestUtil and tests that use it to properly handle multiple ES clients
2021-12-16 13:38:48 -05:00
Kent Ma
91f3168c7a
Update santactl rule text to have accurate text for team IDs ( #701 )
2021-12-14 11:42:53 -05:00
Russell Hancox
a00ec41518
Project: Bump version to 2022.1 ( #700 )
2021-12-13 13:28:16 -05:00
Russell Hancox
c32248aaf7
santad: Fix PrinterProxy workaround for Monterey+ ( #698 )
2021-12-13 15:24:58 +00:00
Pete Markowsky
afd97bdf3e
Removed the check for export metrics in santad. ( #697 )
...
Remove the check for export metrics in santad
Metrics are always collected but only exported to a monitoring system when all of the necessary config options are set. Since they're always collected santactl metrics should always return metrics data.
2021-12-13 10:23:05 -05:00
Tom Burgin
73c4875b1f
santasyncservice: move sync code to the santasyncservice dir ( #696 )
...
* sync: move sync code from santactl dir to santasyncservice dir
* clang-format
* fix tests
* s/SNTCommandSync/SNTSync
* s/SNTCommandSync/SNTSync on content
2021-12-08 18:11:56 -05:00
Pete Markowsky
916fc8c0e6
Add a simple event counter to SNTExecutionController ( #694 )
...
Add a simple event counter for events per response.
2021-12-08 17:35:37 -05:00
Kent Ma
e59e6105f3
Update the Santa version number to 2021.9 ( #695 )
2021-12-08 17:01:43 -05:00
Pete Markowsky
216ac811eb
Fix issue with reregistering metrics. ( #693 )
2021-12-07 15:32:15 -05:00
Pete Markowsky
48f92f5913
Ignore VSCode directories ( #692 )
2021-12-07 14:23:13 -05:00
Russell Hancox
6bb08d0490
Project: Add bazel commands extractor for VSCode integration ( #690 )
2021-12-06 13:39:23 -05:00
Pete Markowsky
82b71c0f20
Add a metrics command to santactl ( #687 )
...
Add a metrics command to santactl.
2021-12-02 14:30:39 -05:00
Allister Banks
10ccee9e4c
Docs: EnableSysxCache docs, etc ( #684 )
...
* Add more Conf references, EnableSysxCache key, etc
* Updated link (even though previous config profile explainer link redirects accordingly) to profile spec.
* Added brief explanation of TCC/PPPC and made reference to the non-setting example MDM mobileconfig files in the repo
* Add sysext log stream example, update wording
* Pointed at events and configuration pages for details about logging
* New troubleshooting section
* Standardized on asterisks for page link markup in the TOC index page
2021-11-22 22:22:49 -05:00
Pete Markowsky
acbbb9e7b0
Add a configuration option for users to add their own root labels ( #683 )
...
Add an option for users to add their own root labels.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2021-11-19 10:34:18 -05:00
Kent Ma
3939ad9813
Add santametricservice information to santactl status ( #679 )
2021-11-16 16:04:59 -05:00
Kent Ma
d20455252d
Update santactl fileinfo, sync, and status to show teamID info ( #678 )
...
* Update santactl fileinfo, sync, and status to show teamID info
2021-11-16 14:57:02 -05:00
Pete Markowsky
5cd901034f
Fixed up typo related to hostname vs. host_name ( #676 )
...
Fixed up typo related to hostname vs. host_name.
2021-11-15 15:28:41 -05:00
Kent Ma
4e82392370
Update cli flag for --teamid in santactl ( #675 )
2021-11-11 15:56:18 +00:00
np5
19710f7233
Do not store Allow TeamID events in the database ( #674 )
2021-11-11 10:44:39 -05:00
Russell Hancox
27e32bd9ff
Tests: Update SNTMetricHTTPWriterTest ( #673 )
2021-11-11 08:59:14 -05:00
Kent Ma
c268ad4f9a
Change SNTEventLog to be a singleton emit a singleton Logger object ( #670 )
...
* Change SNTEventLog to be a singleton emit a singleton Logger object
2021-11-10 17:23:01 -05:00
Russell Hancox
f7a1a4cb39
Tests: Fix MetricServiceTest compatible with public OCMock ( #669 )
2021-11-08 15:53:57 -05:00
Russell Hancox
ad6e03e6cc
Tests: Stop using NSInvocation with OCMock's .andDo() ( #667 )
2021-11-08 12:19:20 -05:00
Russell Hancox
8ecc3f879a
Tests: Fix some flaky tests. ( #666 )
...
1. OCMock objects don't need stopMocking to be called - it's only necessary to call that in cases where the original object behavior must be restored before the end of the test. Otherwise the mock automatically restores during deallocation.
2. SNTMetricRawJSONFormat still used a plain NSDateFormatter and so was applying timezone calculations. In tests we've switched to using NSISO8601DateFormatter but this requires 10.13 and our deployment target is still 10.9 so I've stuck to applying the UTC timezone to the formatter instead.
2021-11-05 18:03:57 -04:00
Pete Markowsky
d51093501c
Fix Flaky Execution Controller Tests ( #665 )
...
* Fix up some issues with flaky tests.
2021-11-05 13:51:04 -04:00
np5
05dd1b6215
Add AboutText option for the Santa.app ( #662 )
2021-11-04 22:02:23 -04:00
Pete Markowsky
8c3320e3e9
Change NSDateFormatter to NSISO8601DateFormatter ( #661 )
...
Change NSDateFormatter to NSISO8601DateFormatter.
2021-11-02 13:11:51 -04:00
Tom Burgin
369dc9a63c
Add KVO binding for EnableBadSignatureProtection ( #659 )
2021-10-28 17:34:56 -04:00
Pete Markowsky
7adc55007c
Change to NSISO8601DateFormatter to ensure UTC timestamps in unit tests ( #658 )
...
Change to NSISO8601DateFormatter to ensure UTC timestamps in unit tests.
2021-10-28 15:34:31 -04:00
Edward Marczak
fe6be921d3
Add EnableBadSignatureProtection key ( #656 )
...
Add EnableBadSignatureProtection key and description into the configuration.md doc.
2021-10-28 10:02:24 -04:00
Pete Markowsky
23b31ec413
Add build matrix for build / test steps to shake out OS nuances ( #654 )
...
Add build matrix for build / test steps to shake out OS nuances.
Remove macos-latest from build matrix.
2021-10-26 16:14:24 -04:00
Pete Markowsky
727b009a1c
Fixed one set of tests. ( #652 )
2021-10-26 15:36:54 -04:00
Pete Markowsky
1c42f06135
Add Metrics and Metrics Service to Santa ( #641 )
...
Add santametricservice and basic metrics to Santad.
This PR adds the santametricservice, and adds basic metrics to santad. It also updates the SNTMetricSet to have and updates packaging scripts to include the santametricservice (aka metric service) in the final bundle.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2021-10-26 09:25:10 -04:00
Kent Ma
e1cf8e70a3
Add continuous workflow job for checking for flakes ( #650 )
...
Co-authored-by: Pete Markowsky <pmarkowsky@users.noreply.github.com >
2021-10-25 10:23:42 -04:00
Russell Hancox
7a500b8135
Packaging: Fix syntax error in package_and_sign.sh ( #651 )
2021-10-22 09:15:20 -04:00
Pete Markowsky
3702af0309
Add description to SNTMetricSet and Fix issues with SNTMetricMonarchJSONFormat ( #649 )
...
* Added description to SNTMetricSet and fixed typos in SNTMonarchJSONFormat.
2021-10-21 16:41:24 -04:00
Russell Hancox
697cd29a0a
Project: Include package files in release tarball ( #648 )
2021-10-20 21:31:33 +00:00
Kent Ma
5735a12424
Update list of critical system binaries and include comment about Monterrey behavior ( #647 )
2021-10-20 16:45:42 -04:00
Russell Hancox
07b8f2121d
Project: Include new packaging files in release tarball ( #646 )
2021-10-20 12:54:00 -04:00
Russell Hancox
78a1a929fd
Project: Check-in packaging and signing script. ( #645 )
...
This is largely a copy of what we've been using so far but with previously hardcoded stuff replaced with environment variables.
2021-10-20 11:47:30 -04:00
Russell Hancox
9163417b54
santad: enable sysx cache by default ( #644 )
...
We've had this enabled long enough now to know that it works correctly and helps performance considerably, so let's have it on by default.
2021-10-18 18:17:11 -04:00
Kent Ma
fa6630a31a
Rename shasum to identifier in database ( #643 )
2021-10-18 13:27:36 -04:00
Kent Ma
1f2b82fc58
Allow banning of team IDs. ( #640 )
2021-10-18 09:52:56 -04:00
Kent Ma
b77b0142af
Add microbenchmark for execs on SNTApplication ( #639 )
2021-10-15 15:57:04 -04:00
Russell Hancox
2f80a42845
Project: Build driver if files in Source/common/* change ( #637 )
2021-10-15 15:03:16 +00:00
Russell Hancox
67db370492
Common/Kernel: Add some missing defines to libs included in driver ( #638 )
2021-10-14 13:05:33 -04:00
Russell Hancox
a0319ecf52
Project: Bump to 2021.8 ( #636 )
...
Co-authored-by: Kent Ma <tnek@google.com >
2021-10-13 14:37:44 -04:00
Pete Markowsky
16d0bd6db6
Add Support for Formatting metrics for Monarch ( #633 )
...
* Initial commit of a Format that converts SNTMetricSet dictionaries to a format consumable by Monarch tooling.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2021-10-11 16:01:50 -04:00
Kent Ma
9e3943ec68
Add error on lint failure and include a fix.sh ( #632 )
...
Add error on lint failure, include a fix.sh, and fix existing linter errors.
2021-10-11 11:33:10 -04:00
Kent Ma
e461b4bfbc
Use direct path in integration_tests.sh instead of relative path ( #631 )
2021-10-07 13:07:14 -04:00
Russell Hancox
8f836afe86
* Project: Update README and docs/details/santactl ( #630 )
...
Re-organized some sections, removed some obsolete statements, fixed a few links.
2021-10-06 17:12:53 -04:00
Russell Hancox
04ad1c34ba
Project: Update entitlements files ( #629 )
2021-10-06 11:36:58 -04:00
Pete Markowsky
c3042e21dc
Add a workflow for checking links in Markdown files. ( #628 )
2021-10-05 19:28:03 -04:00
Russell Hancox
3ede20a121
Project: Fix issues link in README ( #626 )
2021-10-05 15:49:39 -04:00
Russell Hancox
976118cce4
santactl/sync: Fix tests for santactl/sync ( #625 )
...
This test has been around since early 2016 but has been un-runnable since early 2019.
2021-10-05 13:17:50 -04:00
Pete Markowsky
ea85f0f539
Initial commit of an HTTP writer for SNTMetricSets ( #624 )
...
* Initial commit of an HTTP writer for SNTMetricSets.
This PR adds support for shipping serialized SNTMetricSets to an HTTP server via POSTs.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2021-10-04 19:49:40 -04:00
Russell Hancox
d193b05057
Tests: ensure SNTPrefixTree test finishes executing at appropriate time ( #623 )
2021-10-04 15:41:14 -04:00
Russell Hancox
9fb4f2e171
README: sync servers; remove upvote, sort the rest alphabetically. ( #622 )
2021-10-04 11:48:13 -04:00
Kent Ma
58cec5819a
Add linter step with clang-format and buildifier. ( #620 )
...
Also lint our files accordingly
2021-10-01 16:51:06 -04:00
Kent Ma
6ba5831f2d
Run buildifier ( #619 )
2021-10-01 15:18:33 -04:00
Kent Ma
a22e3ead83
Add regular execution integration tests ( #618 )
2021-10-01 15:07:56 -04:00
Kent Ma
2611b551ce
Add provisioningprofile for santactl so that it's properly signed ( #617 )
2021-10-01 13:00:12 -04:00
Kent Ma
023f96f5c8
Detect existence of a provisionprofile and use that instead in build_and_sign.sh ( #616 )
2021-10-01 10:07:54 -04:00
Kent Ma
1523d58429
Remove use of entitlements field for the santad build rule ( #615 )
...
* Remove use of entitlements field for santad
* Create a local keychain instead of using the system keychain and drop sudo from most of the build stages
2021-09-28 12:48:09 -04:00
Kent Ma
81049db170
Deflake SNTApplicationTest by tracking subscriptions to specific event types ( #614 )
...
* Switch to waitForExpectations in tests
* Change mock es_subscribe to note specific events we're ready for
2021-09-27 10:40:15 -04:00
Russell Hancox
c110245701
Project: fix exporting of SantaCache header ( #612 )
2021-09-23 12:32:41 -04:00
Russell Hancox
d7a56b9bd4
Project: fix some BUILD file lint ( #611 )
2021-09-23 12:03:23 -04:00
Russell Hancox
4bb5804a6f
santactl/sync: Catch rare crash in FCM parsing ( #609 )
2021-09-23 10:56:57 -04:00
Russell Hancox
e68fb7235a
Metric: Fix formatting of SNTMetricFormatTestHelper ( #608 )
2021-09-23 06:53:06 -04:00
Pete Markowsky
f93e7ef879
Refactored metric service tests to use a common helper. ( #607 )
...
This refactors the SNTFormat tests to use the SNTMetricSet to generate the
test data. This keeps the metric service and the SNTMetricSet in sync and
reduces repeated data.
2021-09-22 16:56:57 -04:00
Kent Ma
f472f4821c
Create block builder for ES Messages and clean up tests ( #606 )
...
Create block builder for ES Messages and clean up tests
2021-09-22 15:48:24 -04:00
Pete Markowsky
1c97761038
Initial commit of santametricservice. ( #605 )
...
Initial commit of santametricservice.
The santametricservice is an XPC helper service to write metrics. It consists of Formatters and Writers. This initial commit only has support for the rawJSON format and writing to a file.
This is a new daemon to be included. Docs and packaging will be updated in future PRs.
Co-authored-by: Russell Hancox <russellhancox@users.noreply.github.com >
2021-09-22 14:49:30 -04:00
Pete Markowsky
e569a684b7
Add initial configuration options for barebones metric service ( #604 )
...
Add initial configuration options for barebones metric service.
2021-09-21 13:36:02 -04:00
Pete Markowsky
66c32dc526
Added an XPC interface for the Metric service. ( #603 )
2021-09-20 18:14:39 -04:00
Kent Ma
075d3cbc11
Include an integration test setup and fixture with moroz ( #602 )
2021-09-20 11:35:12 -04:00
Adam Sindelar
340326df8a
Remove the hiring banner ( #600 )
2021-09-10 08:09:06 -04:00
Kent Ma
f52edd2a76
Explicitly include the TeamIdentifierPrefix to santad's entitlement ( #599 )
2021-09-09 11:24:49 -04:00
Kent Ma
11c247e33a
Add entitlements to the santad and Santa build rules ( #598 )
2021-09-09 09:36:42 -04:00
Ryan Diers
a859b9b341
Docs: Add Rudolph to sync server list ( #597 )
2021-09-08 19:41:27 -04:00
Kent Ma
c190f1f52d
Add tulsi project ( #596 )
2021-09-08 14:50:57 -04:00
Pete Markowsky
87dc191494
Rewrote ci.yml workflow to parallelize steps. ( #593 )
...
Build and test steps were taking more than 5 minutes to run so this cleans up
the workflow and parallelizes it.
2021-09-02 17:21:36 -04:00
Pete Markowsky
3a19591822
Made CI build and test steps conditional. ( #592 )
...
This changes the workflow steps to execute conditionally e.g. if you only modify
documentation it won't run the build, test, and coverage steps.
2021-09-01 16:47:19 -04:00
Kent Ma
b225c0740e
Raise the timeout delay for tests ( #591 )
2021-08-25 16:46:26 -04:00
Russell Hancox
d1fffb4636
README: Remove ReadTheDocs link ( #589 )
2021-08-25 12:50:07 -04:00
Kent Ma
9d7ca62e46
Pin to 0a2c39c020 ( #588 )
...
This allows us to run tests on ARM.
2021-08-19 12:01:45 -04:00
Kent Ma
2a6073a9a1
Upgrade bazel rules_apple to 0.31.3 ( #587 )
2021-08-18 17:04:49 -04:00
Russell Hancox
296f06582b
Project: delete obsolete ReadTheDocs config ( #586 )
...
We haven't used ReadTheDocs for >6m
2021-08-18 15:40:34 -04:00
Russell Hancox
0e27dab4c6
Project: remove xcode projects, they're stale ( #584 )
2021-08-18 15:05:55 -04:00
Russell Hancox
256836d7f8
Docs: Switch themes, update config, fix redirect ( #583 )
2021-08-18 10:58:12 -04:00
Russell Hancox
b117d8106e
Project: Update deps in WORKSPACE to be reproducible. ( #582 )
...
This removes a lot of warnings when starting in a clean workspace
2021-08-17 17:20:30 -04:00
Russell Hancox
c980223215
Project: remove py2 forcing, drop deprecation warnings back to warning ( #581 )
2021-08-17 16:59:27 -04:00
Russell Hancox
635b33ebf9
Project: Update coverage link in README ( #580 )
2021-08-17 15:53:07 -04:00
Kent Ma
b6f35c9b9f
Add actual test binaries to the repo ( #579 )
2021-08-17 15:02:14 -04:00
Kent Ma
796109cc60
Adding cert rules and testdata ( #578 )
2021-08-17 14:26:09 -04:00
Russell Hancox
38f580de72
CI: Re-org CI workflows, ignore /Applications in coverage ( #577 )
2021-08-17 14:08:02 -04:00
Kent Ma
c7a58c77e7
Add missing ES Auth response to AUTH_RENAME ( #576 )
...
* Add missing ES Auth response to AUTH_RENAME
* Added unit test cases for benign paths
2021-08-17 12:10:43 -04:00
Kent Ma
9a4fe782d7
Bump version -> 2021.7 ( #575 )
2021-08-16 16:04:24 -04:00
Kent Ma
fbb5f3728f
Include license in BUILD file ( #574 )
2021-08-16 12:55:01 -04:00
Pete Markowsky
24b96c4798
Added types for recording and storing performance metrics. ( #567 )
...
* Added types for recording and storing performance metrics.
This adds SNTMetricSet and various gauge and counter types to allow for
exporting metrics such as CPU,Memory usage and other properties that are useful
for tracking reliability and debugging.
This is the first commit of a series to add support for monitoring systems.
Co-authored-by: Kent Ma <tnek@google.com >
2021-08-13 13:26:45 -04:00
Kent Ma
1edf6d9200
Enable -Werror -Wall on our build rules ( #572 )
...
* Reorder init lists for -Wreorder-init-lists
* Add nullability annotations to the rest of EndpointSecurityTestUtil
* Added fake uses for -Wunused-variable
* Corrected signed/unsigned int conversions in SNTPrefixTree
* Explicitly convert implicit conversions in Santacache
* Set bazelrc to -Werror -Wall
2021-08-13 11:31:41 -04:00
Kent Ma
ac1f8ea1b8
Add an extra return on the rename case ( #570 )
2021-08-12 13:48:38 -04:00
Kent Ma
9923f601b6
Prevent Overwrite of Santa Databases ( #569 )
2021-08-12 10:38:27 -04:00
Kent Ma
471ae89406
Switch the CI build steps to run all unit tests and coverage first ( #568 )
2021-08-11 14:03:05 -04:00
Kent Ma
54d6653973
Include SNTEndpointSecurityManagerTest in the main test_suite ( #566 )
...
* Include SNTEndpointSecurityManagerTest in the main test_suite and clean it up.
This commit (1) adds es_unsubscribe and es_delete_client to our ESF shim
to fix the test segfaulting, and (2) cleans up the unit tests themselves by
breaking out the timeout test from the regular unlink test
2021-08-11 11:42:55 -04:00
Kent Ma
27ee66597b
Correctly calculate coverage by calling blaze coverage on individual tests ( #565 )
2021-08-11 09:17:27 -04:00
Kent Ma
10f2d852f5
Add functional test for executing a binary on SNTApplication. ( #562 )
...
This adds a full functional test for starting up an SNTApplication
(with as few mocks as possible) and executing it with a directly
recorded & collected EndpointSecurity event.
This also fixes a potential race condition and segfault on Santa startup: due
to es_subscribe being called first, it's possible for an es event to arrive
before listenForDecisionRequests or listenForLogRequests are called,
causing the SNTEndpointSecurityManager callbacks to call a nil pointer.
2021-08-10 14:42:21 -04:00
Kent Ma
1fcb63dc92
Add coveralls CI rule and lcov generator ( #564 )
...
Adding coveralls so that test coverage can be easily displayed and checked
2021-08-10 14:41:14 -04:00
Kent Ma
7944f681f8
Test util library for mocking EndpointSecurity. ( #560 )
...
* Test util library for mocking EndpointSecurity.
2021-07-14 10:49:10 -04:00
Tom Burgin
e3aedc92ba
bump version ( #559 )
2021-06-16 13:20:10 -04:00
Kent Ma
d2b6c2b6c2
Update .clang-format and apply to existing files. ( #558 )
2021-06-15 09:47:31 -04:00
Tom Burgin
d026989dfb
santactl: remove extra check ( #557 )
2021-06-11 15:43:08 -04:00
Tom Burgin
e7a8e9b6ac
santactl: use host instead of http address for reachability ( #556 )
2021-06-11 15:13:50 -04:00
Russell Hancox
1d9af01353
Project: Bump dependency versions, fix reload command ( #554 )
...
* Project: Bump dependency versions, fix reload command
The reload command would fail if you used multiple compilation modes for
building as it would try extracting the versions from both comp modes.
The dependency bump includes a fix for #553
2021-05-03 21:37:42 -04:00
Adam Sindelar
9c6af7fc03
Docs: Add job posting link to README
2021-04-26 12:16:35 -04:00
Tom Burgin
543b1a29fe
add default provisioning profile rules ( #548 )
2021-04-19 17:18:18 -04:00
Tom Burgin
625ec67789
handle PHONE_REGISTRATION_ERROR ( #549 )
2021-04-19 17:16:53 -04:00
Tom Burgin
c5696d71e7
add build release rule ( #547 )
2021-04-19 13:58:59 -04:00
Tom Burgin
5f3cef52de
cleanup ( #546 )
2021-04-19 13:37:21 -04:00
Tom Burgin
eeed0b5aa6
santactl: migrate from fcmstream to fcmconnection ( #545 )
2021-04-19 11:51:32 -04:00
Russell Hancox
9ef171e663
Docs: Fix more broken docs links ( #543 )
2021-04-19 11:17:13 -04:00
Russell Hancox
ad1868a50f
santad: Fix transitive rules when using the sysx cache feature ( #540 )
...
This fixes transitive allowlisting when `EnableSysxCache` is turned on, reduces the deadline timer to fire 5s before the ES deadline, remaps our DEBUG logs to NOTICE so they can be more easily seen in Console and prevents transitive rules being created for paths under /dev/.
2021-03-04 09:47:32 -05:00
Russell Hancox
78643d3c49
fileinfo: Don't use non-bundle dirs as possible ancestors ( #537 )
2021-02-01 11:09:32 -05:00
Russell Hancox
8b22c85a64
Project: run buildifier on BUILD files ( #534 )
2021-01-28 10:31:07 -05:00
Russell Hancox
58fe5d3d76
santad: Use OS_FALLTHROUGH ( #535 )
2021-01-28 10:30:47 -05:00
Russell Hancox
8b2227967e
santad: Fix caching of deny decisions ( #533 )
2021-01-28 10:12:20 -05:00
Russell Hancox
65693acea1
Docs: fix syncing-overview link in santactl doc ( #531 )
2021-01-27 12:35:02 -05:00
Russell Hancox
7cea383930
Docs: the docs build can't use symlinks ref. out of the docs dir ( #530 )
2021-01-27 12:25:50 -05:00
headmin
5ae2376158
Docs: Add example .mobileconfig profile to enable Notifications settings ( #529 )
2021-01-27 11:00:34 -05:00
Russell Hancox
e851337eac
Docs: Fix some broken links in the index ( #528 )
2021-01-27 10:32:30 -05:00
Russell Hancox
2e53834980
santactl/sync: retry individual requests during a sync ( #526 )
...
Each request is retried up to 5 times with gaps of 2s, 4s, 6s, 8s
2021-01-26 15:58:52 -05:00
Hugh Neale
aef139e93c
The configuration key "enabled_transitive_rules" should be "enable_transitive_rules" ( #525 )
2021-01-26 14:20:15 -05:00
Russell Hancox
a9e5bf09a7
santad: Add some TODOs related to cache
2021-01-11 13:16:38 -05:00
Russell Hancox
4ee3f281c3
santactl/status: Output cache details for sysx
2021-01-11 13:16:38 -05:00
Russell Hancox
462ce89d42
Project: Fix test locations
2021-01-11 13:16:38 -05:00
Russell Hancox
44117833c0
Project: Fix build rule
2021-01-11 13:16:38 -05:00
Russell Hancox
8b6e029da2
Project: bump version to 2021.1
...
This is a new versioning scheme.
2021-01-11 13:16:38 -05:00
Russell Hancox
f183e246df
santad: Make use of caching endpoint security optional
2021-01-11 13:16:38 -05:00
Russell Hancox
c60a35f280
santad: Add caching layer to EndpointSecurity
...
This first commit is very rough, just adding the caching as simply as
possible. Refactoring is needed.
2021-01-11 13:16:38 -05:00
Russell Hancox
4f65965277
santactl/fileinfo: Fix fileinfo tests on BigSur + multiarch plists ( #523 )
...
The fileinfo tests didn't work on BigSur because of some path and binary changes.
Also, the embeddedPlist method didn't work on fat binaries, of which there are now
many, because of M1 machines. I think we didn't notice this before because we pull
the embedded plist from the first arch listed in the headers dict which generally
seemed to pick x86_64 first but with the arm64/arm64e option being added
that now appears first.
Also fixed some errors handling 32-bit segment/sections and added a test for this.
2021-01-07 19:46:48 -05:00
Tom Burgin
01e4e15b81
santactl sync: add config option to enable legacy zlib content encoding ( #522 )
2020-12-23 10:36:39 -05:00
Russell Hancox
532cb37e0b
CI: split out driver and userspace builds ( #521 )
2020-12-23 08:38:39 -05:00
Tom Burgin
9d379d3884
release: split out the kext into a separate release label ( #520 )
...
* fix SNTLoggingKernel BUILD rule (#518 )
* release: split out santa-driver.kext
* release: update ci
* remove ipa script rule
* update ci
2020-12-19 18:23:54 -05:00
Tom Burgin
3e7a191bf7
fix SNTLoggingKernel BUILD rule ( #518 )
2020-12-17 16:35:13 -05:00
Ryan Diers
c5a048f4d9
santactl/sync: Use deflate as Content-Encoding instead of zlib
...
The latter was not standards-compliant.
2020-12-14 16:19:48 -05:00
Hugh Neale
f4769bad90
Added Zercurity to list of available sync servers ( #511 )
2020-12-08 20:29:28 -05:00
Russell Hancox
254497ad15
Project: don't reference obsolete rake commands in CONTRIBUTING ( #513 )
2020-12-08 09:57:42 -05:00
avanzini
0a83445838
Log pidversion along with pid. ( #512 )
2020-12-08 09:46:34 -05:00
Tom Burgin
eff287259e
project: update Xcode project to build universal binaries ( #509 )
2020-11-17 16:18:16 -05:00
Russell Hancox
6f2c0e3457
Project: remove Travis, update CI status in README ( #508 )
2020-11-02 09:59:35 -05:00
Russell Hancox
38769f7cd1
Project: Add GitHub Actions CI workflow ( #507 )
2020-10-30 12:23:01 -04:00
Russell Hancox
fa785ad3c2
Kernel: fix some header imports ( #505 )
2020-10-26 10:05:25 -04:00
Russell Hancox
5dae0cabdd
Project: fix some lint ( #504 )
2020-10-22 14:01:32 -04:00
Russell Hancox
a8b4f4ea7e
Project: move travis to xcode12 ( #503 )
2020-10-22 13:50:32 -04:00
Russell Hancox
2221c93bbc
santa-driver: Fix some new Xcode 12 warnings ( #502 )
...
The ossharedptr-misuse warning is generated from within system headers and I couldn't
find a simple way to prevent that other than disabling the warning entirely. We don't
use OSSharedPtr directly anyway.
2020-10-22 13:41:31 -04:00
Tom Burgin
d1c33baf35
project: add EnableDebugLogging option ( #501 )
...
* project: add EnableDebugLogging option
* review updates
2020-10-22 10:11:18 -04:00
Tom Burgin
d2bbdff373
Add the option to ignore actions from other ES clients ( #498 )
...
* [com.google.santa.daemon]: add the option to ignore actions from other ES clients
* review updates
* review updates
2020-10-21 13:20:13 -04:00
Russell Hancox
db1d65f944
Project: Update dependency versions ( #500 )
...
MOLAuthenticatingURLSession: v2.8 -> v2.9
rules_apple: v0.19.0 -> v0.20.0
2020-10-21 11:55:38 -04:00
Hugh Neale
d17aeac2f4
Make it possible to remotely set the FullSyncInterval ( #494 )
...
Make it possible for the sync server to set the FullSyncInterval with "full_sync_interval" during `preflight`
2020-10-01 13:47:55 -04:00
Hugh Neale
7840270dd0
Support for %hostname%, %uuid% and %serial% to eventDetailURLForEvent ( #493 )
...
Added support for %hostname%, %uuid% and %serial% to eventDetailURLForEvent to provide additional system information for blocked events & updated documentation references for supported URL params.
2020-08-31 10:38:35 -04:00
Russell Hancox
dcf44c9872
Fix video in README ( #492 )
...
Fixes #491
2020-08-27 17:28:40 -04:00
Russell Hancox
fc365c888f
Create CNAME
2020-08-27 16:21:08 -04:00
Russell Hancox
85f0782399
Delete CNAME
2020-08-27 16:21:03 -04:00
Russell Hancox
64bc34c302
santactl/rule: make flags consistent with help text ( #486 )
2020-07-29 13:39:41 -04:00
Russell Hancox
e2fc4c735d
santad: Prevent kext from being loaded when ES is running ( #484 )
2020-07-21 10:18:22 -04:00
Russell Hancox
ff9cb34490
Project: avoid public visibility ( #483 )
2020-07-20 12:19:14 -04:00
Russell Hancox
60405f1e10
Fix some recent warnings ( #482 )
2020-07-20 11:36:25 -04:00
Edward Eigerman
ac9d3b2adf
Update AboutWindow.xib ( #481 )
...
Remove the word "whitelist" from the user-facing window.
2020-07-17 22:11:23 -04:00
Russell Hancox
7e8bd46da3
Docs: fix readthedocs config ( #480 )
...
Fixes #479
2020-07-16 12:37:45 -04:00
Tom Burgin
2f6ed455e5
add fork and exit logging ( #478 )
...
* added fork and exit logging
* what did you use?
* review updates
2020-07-09 16:36:23 -04:00
Tom Burgin
8cb86b6d1d
syncservice: create stub for syncservice ( #477 )
...
* stub for santasyncservice
* update protocol
2020-07-08 15:42:42 -04:00
Russell Hancox
fc074f6014
santactl: Make logging around rule download clearer ( #476 )
2020-07-08 10:09:56 -04:00
bfreezy
a7856e60e8
Add example System Extension and TCC configuration profiles ( #474 )
...
* add system extension policy example
* add tcc profile policy example
* set bundle ID to com.google.santa.daemon
2020-06-11 20:44:59 -04:00
Russell Hancox
41a40c9fbd
Docs: remove whitelist/blacklist ( #471 )
2020-06-08 13:46:18 -04:00
Russell Hancox
8c18f6ebf5
Project: Update terminology in README ( #470 )
2020-06-08 12:41:44 -04:00
Tom Burgin
949053fedd
update kext cache ( #469 )
2020-06-08 11:15:22 -04:00
Russell Hancox
8d2c39b71d
Project: update whitelist/blacklist -> allowlist/blocklist (part 1: code) ( #468 )
2020-06-08 11:11:30 -04:00
Russell Hancox
8f872fb4fc
Project: disable known deprecated warnings ( #467 )
2020-06-04 11:52:24 -04:00
Russell Hancox
5512f8cf19
santad/sysx: Prevent unlinking databases ( #465 )
...
* santad/sysx: Prevent unlinking databases
2020-06-01 13:21:30 -04:00
Russell Hancox
6742b38e31
santad: If database is locked don't attempt to unlink it ( #466 )
...
* santad: If database is locked don't attempt to unlink it
2020-05-29 17:22:23 -04:00
Russell Hancox
d1635f7e11
santad: Fix decision fetching for certs by hash ( #464 )
...
* santad: Fix decision fetching for certs by hash
Fixes #463
2020-05-11 11:43:07 -04:00
Tom Burgin
e2b865c081
prevent a dual duel ( #462 )
...
* prevent a dual duel
* bump version
2020-05-04 11:42:08 -04:00
Bradley Kemp
012b02de5d
Update EventDetailURL docs
...
%bundle_id% and %bundle_ver% do not exist any more, they were removed by 6f417a1775 (diff-3250262f27ab2cb96ad4b47abdc9d51fL95-L108)
2020-05-01 07:22:57 -04:00
Russell Hancox
11ebead617
Add security policy link to README
2020-04-08 13:26:05 -04:00
Russell Hancox
e3fbabfe37
Create SECURITY.md
2020-04-08 13:26:05 -04:00
Russell Hancox
8757da7822
Version bump to 1.13
2020-04-07 17:14:02 -04:00
Russell Hancox
428582f471
santa-driver: fix use-after-free race in Get*MemoryDescriptor()
2020-04-07 17:14:02 -04:00
Russell Hancox
6e0effc0f4
santa-driver: fix off-by-one bug in externalMethod
2020-04-07 17:14:02 -04:00
Russell Hancox
683114fbec
santa-driver: fix integer overflow/underflow in bucket_counts()
2020-04-07 17:14:02 -04:00
Tom Burgin
d9ebb4e3db
version bump ( #455 )
2020-03-17 16:27:40 -04:00
Tom Burgin
e6aaf2f198
Santa.app: don't request SystemExtension loading ( #454 )
2020-03-17 16:23:48 -04:00
Tom Burgin
1c3757d4ab
santactl: don't watch for config changes ( #453 )
...
* santactl: don't watch for config changes
* bump version
2020-03-16 18:40:36 -04:00
Tom Burgin
4346bb29c2
santactl: sanitize rule payload ( #450 )
...
* santactl: sanitize rule payload
* version bump
2020-02-27 15:16:40 -05:00
Tom Burgin
09655df8fc
com.google.santa.daemon: reorder cleanup() ( #448 )
...
* com.google.santa.daemon: reorder cleanup()
* version bump
2020-02-26 15:13:51 -05:00
Tom Burgin
7504cd36e1
Simplify install scripts ( #447 )
...
* installer to respect EnableSystemExtension
* conform
2020-02-26 12:58:12 -05:00
Tom Burgin
cafef66933
version bump ( #446 )
2020-02-25 15:14:42 -05:00
Tom Burgin
0c4e9d4b06
slurp up com.google.santa.daemon dsyms ( #445 )
2020-02-21 18:28:15 -05:00
Tom Burgin
ac07f5d54b
santad: add prefixes on a background thread ( #444 )
...
* add prefixes on a background thread
* version bump
2020-02-21 16:54:42 -05:00
Tom Burgin
d116f7b01e
santad: wait for driver connection before adding prefix filters ( #443 )
...
* wait for driver connection before adding prefix filters
* version bump
* fix travis build
2020-02-21 14:58:12 -05:00
Tom Burgin
63ca34bc54
santad: fix launch path and args for loading the system extension ( #442 )
...
* missing /
* version bump
* that was close
2020-02-20 20:01:42 -05:00
Tom Burgin
c894029c33
version bump to 1.3 ( #441 )
2020-02-19 17:08:30 -05:00
Tom Burgin
de2bdd6653
update EnableSystemExtension when the config changes 🤦 ( #440 )
2020-02-19 17:03:58 -05:00
Tom Burgin
2d066ad671
version bump to 1.2 ( #439 )
2020-02-19 14:06:20 -05:00
Tom Burgin
24854d4ad7
Config: EnableSystemExtension option ( #438 )
...
* Config: add EnableSystemExtension option
* format
* i don't trust kvo
* review updates
2020-02-18 17:48:06 -05:00
Russell Hancox
99ee0af178
Project: bump version to 1.1 ( #436 )
2020-02-12 11:17:44 -05:00
Russell Hancox
bf6f78df09
common: Eliminate VLA usage in SNTFileInfo ( #435 )
...
VLAs complicate static analysis and bloat stack size. Replace VLA allocation with calls to malloc and free
2020-02-11 10:55:57 -05:00
Russell Hancox
c05806916b
santad: Add config flag to block all binaries with bad signatures. ( #434 )
...
* santad: Add option to block all binaries with bad signatures.
2020-02-10 13:45:22 -05:00
Russell Hancox
e48ce0cfe3
santad: Move signature fetching into SNTPolicyProcessor ( #433 )
...
This also removes an unnecessary hash, checks code signatures on non-MachO files (which is rare but possible) and fixes a rare crash in EndpointSecurityManager
2020-02-07 14:32:00 -05:00
Tom Burgin
eabca469b9
update readme with a note about system extension ( #431 )
2020-02-06 12:50:33 -05:00
Russell Hancox
f6dc36e812
santactl/sync: Skip event upload for clean sync
...
This lets a clean sync clear out the existing events without attempting to upload them.
2020-01-13 14:56:01 -05:00
Russell Hancox
ac7cbdfd16
Project: update apple rules to 0.19.0
2020-01-13 14:25:38 -05:00
Tom Burgin
d1d008af0a
don't log TRUNCATE and don't log fileops from com.google.santa.daemon ( #428 )
...
* don't log TRUNCATE and don't log fileops from com.google.santa.daemon
* review updates
2019-12-20 14:00:16 -05:00
Tom Burgin
5db56e01f5
cleanup 10.14 -> 10.15 upgrade artifacts ( #427 )
...
* cleanup 10.14 -> 10.15 upgrade artifacts
* exit exit
* exit exit
2019-12-19 15:56:59 -05:00
Tom Burgin
726c49bec5
com.google.santa.daemon: handle es deadline ( #426 )
...
* com.google.santa.daemon: deny execs that are about to exceed the es deadline
* update comment
* actually handle the deadline
2019-12-16 13:03:20 -05:00
Tom Burgin
ae5db5dde7
com.google.santa.daemon: lookup the tty for deny decisions before posting the decision ( #425 )
2019-12-13 15:24:21 -05:00
Tom Burgin
2671807f0e
com.google.santa.daemon: don't reload if versions have not changed ( #424 )
2019-12-12 14:02:23 -05:00
Tom Burgin
70c8626016
fix com.google.santa.daemon path for critical system binary checking ( #423 )
2019-12-12 11:41:16 -05:00
Tom Burgin
436c472a49
es event provider: support transitive whitelisting ( #422 )
...
* es event provider: support transitive whitelisting
* remove vector
* truncate check
* consistent log style
* review updates
2019-12-12 11:30:05 -05:00
Tom Burgin
ed5be6b062
com.google.santa.daemon: async es message handling ( #421 )
...
* fix Santa.xcodeproj
* com.google.santa.daemon: some es tweaks
* review updates
2019-12-09 11:21:12 -05:00
Russell Hancox
a38f24728a
santactl/status: Remove kext section of status on 10.15+
2019-11-25 19:32:54 -05:00
Russell Hancox
4af026356f
santactl/version: print useful status for santa-driver on 10.15
2019-11-25 19:32:30 -05:00
Russell Hancox
c6e1bb5618
santad: Fix Apple-cert trust
2019-11-25 19:31:51 -05:00
Tom Burgin
e64d2e7ad4
Update README.md ( #416 )
2019-11-10 12:18:33 -05:00
Russell Hancox
3d393e9aa4
santa-driver: Workaround 10.15 SDK Dispatch() issue
2019-11-09 08:18:51 -05:00
Russell Hancox
b8f3122ee9
santad: Don't need macos_command_line_application anymore
2019-11-08 22:22:09 -05:00
Russell Hancox
8acfa6591e
santa-driver: Fix compilation of SNTPrefixTree
2019-11-08 22:22:09 -05:00
Russell Hancox
25b75b0e1b
santad: Re-work targets to avoid unnecessary postprocessing
2019-11-08 22:22:09 -05:00
Russell Hancox
cb01b77f84
Project: no longer need to move the embedded provisionprofile
2019-11-08 22:22:09 -05:00
Russell Hancox
61582a0324
Project: standardize Info.plist and entitlement paths
2019-11-08 22:22:09 -05:00
Russell Hancox
a17b5d51a4
Project: more BUILD file cleanups, remove commented provisioning_profile attrs
2019-11-08 22:22:09 -05:00
Russell Hancox
447ea8674b
Project: run buildifier on all bazel files, fix typo ( #405 )
2019-11-08 22:22:09 -05:00
Russell Hancox
c5eec850e1
Project: update santad path ( #404 )
2019-11-08 22:22:09 -05:00
Russell Hancox
1870631150
Project: Update bazel rules for endpointsec ( #403 )
2019-11-08 22:22:09 -05:00
Russell Hancox
20ed1659c1
santad: Don't store rules for santad/launchd, keep in-mem ( #402 )
2019-11-08 22:22:09 -05:00
Tom Burgin
258de3efba
handle all ACTION_RESPOND_* ( #401 )
2019-11-08 22:22:09 -05:00
Tom Burgin
394fd5fab9
add required santad entitlements ( #400 )
2019-11-08 22:22:09 -05:00
Russell Hancox
53b7ef86ed
santad: Log file changes, use prefix trees ( #398 )
2019-11-08 22:22:09 -05:00
Russell Hancox
423479771e
santad: Use args from endpointsecurity rather than using the sysctl ( #396 )
...
This should be much more reliable and, in theory, faster.
2019-11-08 22:22:09 -05:00
Tom Burgin
933271826b
simplify santabundleservice xpc connection protocol ( #397 )
...
* simplify santabundleservice xpc connection protocol
* fix BUILD deps
* fix BUILD deps
* know
2019-11-08 22:22:09 -05:00
Tom Burgin
880170ea7d
make santabundleservice a command line app ( #395 )
...
* make santabundleservice a command line app
* bazel - don't build santabs.xpc
2019-11-08 22:22:09 -05:00
Russell Hancox
e58ec37881
santad: Fix BUILD after moving EventProviders ( #394 )
2019-11-08 22:22:09 -05:00
Russell Hancox
dece50dd10
Logging: under 10.15, force santad into syslog mode ( #393 )
2019-11-08 22:22:09 -05:00
Russell Hancox
9db9fc6009
santad: Move event providers into a new group, make ES connection logic smarter ( #392 )
2019-11-08 22:22:09 -05:00
Russell Hancox
f38c030805
Add file IDs to messages ( #391 )
2019-11-08 22:22:09 -05:00
Tom Burgin
d8060d3af9
update component paths ( #390 )
2019-11-08 22:22:09 -05:00
Russell Hancox
34b4090b42
Project: fix some new Xcode11 warnings ( #389 )
2019-11-08 22:22:09 -05:00
Tom Burgin
c6ca3d64b3
add SNTEventProvider interface ( #388 )
...
* Add SNTEventProvider interface
* execution controller test should use the event provider interface
* * Xcode project: Use manual signing
* SNTEndpointSecurityManager: Don't cache deny decisions
* Review updates
* review updates
2019-11-08 22:22:09 -05:00
Tom Burgin
4913426631
* Added Xcode project + pods ( #387 )
...
* * Added Xcode project + pods
* Cleaned up unused SNTXPCUnprivilegedControlInterface MachServices id.
* Change santad's MachServices id to be compatible with the default SystemExtension namespace template.
* pods
* bazel
* switch MachService name for 10.15+
* build with SystemExensions framework
* build with Xcode 11
* launchd.plist fix
* use @available
* * Request SystemExtension activation on a background thread.
* Create a constant for the "com.google.santa.daemon" SystemExtension id.
2019-11-08 22:22:09 -05:00
Russell Hancox
455a1c76c3
Docs: update building docs. Fixes #411 .
...
Will need updating again when we merge endpointsec.
2019-11-08 22:11:35 -05:00
Russell Hancox
e5a5f6f9fb
Bump MOLAuthenticatingURLSession version ( #384 )
2019-08-02 16:16:51 -04:00
ancdesign
7ef88d06a5
fix typo (inital -> intial) ( #378 )
2019-07-29 08:29:04 -04:00
Russell Hancox
bc82d7988b
santad: Add /usr/lib/dyld to critical system binaries ( #376 )
...
dyld is also authorized by santad and a bad cache eviction plus trustd/ocspd not running can result in deadlock.
Fixes #375 , probably.
2019-07-22 17:05:34 -04:00
Russell Hancox
545fa858e4
SantaGUI: ensure bundle listeners are invalidated ( #373 )
...
When setting a new bundle service listener, it was possible for an existing listener to be replaced without invalidating it first. This can cause crashes if a process somehow tries to connect to that listener later on.
2019-07-17 11:27:50 -04:00
Russell Hancox
71c917649e
Set theme jekyll-theme-cayman
2019-07-12 13:56:04 -04:00
Tom Burgin
3781556cf5
Create CNAME
2019-07-12 13:52:59 -04:00
Tom Burgin
765d10a7c3
rename Docs -> docs ( #372 )
2019-07-12 13:50:19 -04:00
Tom Burgin
3583113381
santactl: nil prefix value check - fixes #361 ( #362 )
...
* santactl: nil prefix value check - fixes #361
* santactl: check all filters
2019-07-12 13:13:43 -04:00
Tom Burgin
46cd60e579
Use updated deps ( #370 )
...
* Use updated deps
* update travis build settings
2019-06-23 12:43:50 -04:00
Tom Burgin
8198e59736
tests: Create a SantaPrefixTree userland lib ( #359 )
2019-03-04 14:22:19 -05:00
Russell Hancox
c5f0f5d177
Project: Use MOLCodesignChecker v2.1 ( #356 )
2019-02-27 16:15:13 -05:00
Tom Burgin
ebc93954be
SantaGUI: Fix message text. Add support for Dark Mode. ( #354 )
2019-02-21 16:53:20 -05:00
Russell Hancox
cb4d2984b3
SantaCache: Fix possible divide by zero in bucket count calculation ( #353 )
2019-02-20 17:56:42 -05:00
Russell Hancox
4c2018ef67
SantaCache: Fix flaky test ( #352 )
2019-02-20 13:18:40 -05:00
Russell Hancox
06d8295d0a
Project: Use apple_resource_group for test resources. Fix bazelrc ( #351 )
2019-02-19 12:20:30 -05:00
Tom Burgin
ef8e9975e9
c++11 features ( #350 )
2019-02-15 17:14:10 -05:00
Russell Hancox
31509f4b9c
Project: Minor tidy-ups ( #349 )
2019-02-15 16:59:32 -05:00
Tom Burgin
497c1f393f
project format ( #347 )
...
* starlark format
* Source/santa-driver -> Source/santa_driver
* buildifier
* kernel_tests unloads the driver
* review updates
* review updates
2019-02-15 15:38:06 -05:00
Tom Burgin
8334a245c7
cleanup unused includes ( #346 )
2019-02-15 11:12:38 -05:00
Tom Burgin
e8826a2941
add licenses and default_visibility to each BUILD file ( #345 )
...
* add licenses and default_visibility to each BUILD file
* remove default_visibility the bins are public
* oops
2019-02-15 11:03:28 -05:00
Tom Burgin
ef040c1e7d
resurrect action=BUNDLE logs ( #344 )
...
They were lost in the refactoring of the logging utility 4a2cf9d722 .
2019-02-11 13:46:37 -05:00
Russell Hancox
dc692c8256
Project: Move tests with the code they're testing ( #343 )
...
Add helper to make declaring unit tests easier
Add unit_tests test_suite containing all unit tests
Fix reload rule
Update to workspace-relative header locations that were missed before
2019-02-06 15:09:09 -05:00
Russell Hancox
e9c7bfc087
Project: Make all imports workspace-relative, remove include attributes from all rules. ( #339 )
2019-01-22 14:24:11 -05:00
Russell Hancox
22c72625c8
Project: Split BUILD file into several. Part 1/3 ( #338 )
...
* Project: Split BUILD file into several. Part 1/3
The tests fail in this PR because the rules need updating. I'll fix them in a follow-up PR.
2019-01-22 12:06:48 -05:00
Tom Burgin
65a2212890
BUILD: buildifier formatting ( #336 )
2019-01-17 16:23:37 -05:00
Russell Hancox
0a7c08cafc
santactl/version: Make version command not crash with new Santa.app location ( #335 )
2019-01-16 17:16:39 -05:00
Tom Burgin
831a32160b
BUILD: Some tweaks ( #334 )
2019-01-16 16:49:54 -05:00
Russell Hancox
b186419e54
Sync: Remove LogUpload. ( #333 )
...
Fixes #331
2019-01-07 14:27:44 -05:00
Russell Hancox
1dc579c00f
Project: Fix badges in README ( #332 )
2019-01-07 12:28:57 -05:00
Russell Hancox
abdd6c319a
Project: Update docs for switch to bazel ( #330 )
...
* Project: Update docs for switch to bazel
I also made it so the santactl compilation won't include debug-only commands in release builds and the release rule will fail on a non-opt build.
2019-01-04 19:45:00 -05:00
Russell Hancox
5dd93fadfa
Project: Convert to bazel, part 2 ( #329 )
...
Project: Convert to bazel, part 2
The main thing to call out in this PR is that Santa.app is now embedded inside santa-driver.kext along with everything else. The package will handle updating this automatically but it should be called out in release notes to make everyone aware.
* Switch to using macos_kernel_extension and macos_xpc_service, stop using product_type.
* Have Bazel embed all related binaries inside santa-driver.kext, including Santa.app. This simplifies the :release and :reload rules.
* Add commands for unload, load and reload, removing any need to keep the Rakefile around 😃
* Make the :kernel_tests rule a command that replicates what the Rakefile did for this.
* Added a project-wide .bazelrc that always generates dSYMs
Documentation changes to follow, as all the building instructions are now out of date.
2019-01-04 16:23:35 -05:00
Russell Hancox
e6fcbf59df
Proj: Convert to Bazel build, remove other build systems. ( #326 )
...
This necessitated fixing some warnings, updating the resource
locations inside some tests and updating the Travis config.
I'll send a follow-up PR shortly that adds the fuzzing targets and updates the Rakefile and documentation.
2018-12-14 11:57:32 -05:00
Tom Burgin
9fd04ed301
SantaPrefixTree: Fix a bug and add some more tests ( #324 )
...
* SantaPrefixTree: Fix a threading bug.
Tests: Add logic tests for SantaPrefixTree.
* clean up
* don't ifdef so much
* more #define less #ifdef
* less lambda more of rah's ideas
2018-12-03 17:08:16 -05:00
Tom Burgin
e4b5f595ce
* Add note about vnode map. ( #323 )
...
* Fix logic tests under Xcode 10.1.
2018-11-19 12:44:28 -05:00
Tom Burgin
212b02589b
Update README.md ( #319 )
2018-11-12 10:50:28 -05:00
Tom Burgin
42c3631995
Update uninstall.sh ( #318 )
...
I think this was added by accident.
2018-11-09 16:13:38 -05:00
Tom Burgin
2695355dd2
add in-kernel filemod prefix filter ( #313 )
...
* add in-kernel filemod prefix filter
* byte lookup
* added pruning and tests
* clang-format
* add TODO
* don't need seen
* review updates
* reset filter on client connect
* DisconnectClient: reset filter
AddPrefix: when a branch is needed create the whole branch immediately
* don't use strlen in HasPrefix
use strnlen in AddPrefix
up max nodes to 1024
* use new[] and delete[] for the prune "stack"
revert clang-format changes to kernel tests
remove reset node count
* words
* count not size
2018-11-08 15:37:30 -05:00
Darío Hereñú
db0cd861d6
README: Paragraph formatting L157 to L168 (proposal) ( #317 )
2018-11-08 13:12:23 -05:00
Victor Vrantchan
57d6a962de
update deployment documentation ( #312 )
...
- SyncBaseURL is not overridable by the server.
- ATS requires a self signed certificate to exist in the system roots. Providing roots enables in the Santa configuration enables pinning.
Closes #309
2018-11-05 13:06:49 -05:00
Russell Hancox
91608d7366
santad: Document implicit rule ordering ( #315 )
...
Also add a test to ensure this doesn't change one day without us noticing
2018-11-02 12:12:19 -04:00
Russell Hancox
7d4f1ffc45
config: Ensure syncBaseURL ends with a / ( #311 )
...
* config: Ensure syncBaseURL ends with a /
Without the trailing / the last path component is removed by `URLWithString:relativeToURL:`
2018-10-09 18:27:04 -04:00
Victor Vrantchan
ba539bb555
docs: remove space before period. ( #308 )
2018-10-07 15:09:17 -04:00
Victor Vrantchan
d9ecbf06c0
Document recent changes to sync server configuration ( #307 )
...
- bundles_enabled became enable_bundles.
- enabled_transitive_whitelisting was added.
Both changes were implemented in #300
2018-10-07 15:09:04 -04:00
Tom Burgin
01df4623c7
santa-driver: add back the root and non-root caches ( #302 )
...
* santa-driver: add back the root and non-root caches
* cachehistogram: clarify buckets and entries
* review changes
2018-09-26 12:41:04 -04:00
Tom Burgin
c9cb91a22e
ocspd also seems integral to cs validation ( #301 )
2018-09-26 08:45:39 -04:00
Russell Hancox
1f9d60aecc
common: Allow transitive whitelisting to be controlled by sync servers. ( #300 )
...
Also rename TransitiveWhitelistingEnabled -> EnableTransitiveWhitelisting and BundlesEnabled -> EnableBundles
2018-09-26 08:43:31 -04:00
nguyen-phillip
52c5b5aade
add newline to output of "santactl help sync" ( #299 )
2018-09-25 13:55:52 -04:00
Tom Burgin
2d98173c51
fix cache invalidation on macOS Mojave ( #298 )
2018-09-21 15:22:34 -04:00
Tom Burgin
5e3f13be70
intentional fall-through ( #297 )
...
* intentional fall-through
* russell's idea
2018-09-20 18:40:23 -04:00
Tom Burgin
90b894b88a
santad: add critical system binaries ( #296 )
...
* santad: add critical system binaries
* review updates
* use a getter
2018-09-20 17:17:12 -04:00
nguyen-phillip
6dc7387881
Add transitive whitelisting to Santa ( #224 )
...
Add transitive whitelisting.
Binaries may be identified with WHITELIST_COMPILER rules. Any executable they output will then be marked locally with a transitive whitelist rule and allowed to run if the TransitiveWhitelistingEnabled config key is true.
2018-07-20 11:47:04 -04:00
Tom Burgin
b14b017d72
santa-driver: add IOMatchCategory ( #292 )
2018-07-18 11:33:09 -04:00
Tom Burgin
d0ede18bf4
MOLCertificate --> 1.9 ( #290 )
2018-07-06 12:56:15 -04:00
Alessandro Gario
6d223aea03
Various fixes (documentation, and an additional check on the JSON received from the syncserver) ( #288 )
...
* santa-driver: Fix documentation warnings
* SantaCache: Fix documentation warnings
* santactl: Always make sure that the syncserver JSON is a dictionary
2018-07-06 09:42:22 -04:00
Alessandro Gario
f7986b0a05
Update MOLXPCConnection; add support for unprivileged XPC interfaces ( #287 )
...
* Update MOLXPCConnection; add support for unprivileged XPC interfaces
* Code review changes
2018-07-05 17:20:49 -04:00
Alessandro Gario
629e70287c
Add CMake support, implement fuzzers ( #284 )
...
The new CMake project allows the user to select which SDK version
to use. The Xcode path is also configurable to support non-standard
installation paths and/or systems with multiple versions installed.
Code signing can now be configured via command line, using the
CODESIGN_IDENTITY environment variable.
New fuzzing targets (libFuzzer)
- SantaCache
- santactl
- santad
New make targets:
- tests: Runs the tests
- fuzz: Runs the fuzzer
- redist: Regenerates the redistributable folder
- install: Installs Santa
2018-06-29 14:15:16 -04:00
Russell Hancox
3c2a88144c
santad: Wait for driver appearance using IOKit notifications. ( #278 )
...
Continue loading without driver, report status in santactl.
2018-06-12 16:15:41 -04:00
dgw
3651f18566
readme: s/precendence/precedence/ ( #283 )
2018-06-12 15:01:42 -04:00
Russell Hancox
472fea75b1
KernelTests: Simplify kernel tests ( #282 )
...
This change does 2 major things:
1) Makes the test runnable from within Xcode, unloading any running
santad and santa-driver, loading the just-built driver from the same folder and
then running each test.
2) Makes each test responsible for declaring what should happen to
incoming requests from the driver, instead of keeping all of that
code near the top of the file. This makes each test much clearer in what
should be happening.
2018-06-12 09:53:20 -04:00
Russell Hancox
e1b5438865
santa-driver: Re-factor some destruction methods ( #281 )
2018-06-11 12:54:29 -04:00
Russell Hancox
fbbf523333
santa-driver: Stop catching hasdirtyblks, the loader handles this ( #280 )
2018-06-06 18:56:00 -04:00
Russell Hancox
15fa53d744
santa-driver: Switch to a struct for vnode IDs, holding both the file… ( #276 )
...
santa-driver: Switch to a struct for vnode IDs, holding both the filesystem ID and vnode ID.
Also drop the separate caches for root/non-root as this doesn't offer any benefit anymore.
2018-06-05 06:43:49 -04:00
Russell Hancox
9595f80fde
santad: Don't get code signature info for non Mach-O's. ( #277 )
2018-06-05 06:43:11 -04:00
Russell Hancox
61a67e45c1
SantaCache: Add command to print histogram of bucket distribution ( #275 )
...
* SantaCache: Add santactl command to print histogram of bucket distribution.
This currently only prints the distribution of the non-root cache. In the near future I'll unify the caches again which stops this being a problem.
2018-06-01 17:02:39 -04:00
Russell Hancox
143e690dab
SantaCache: Add very basic distribution test ( #273 )
...
* SantaCache: Add very basic distribution test
2018-06-01 13:11:24 -04:00
Russell Hancox
ebd507f143
Project: Update cocoapods, again ( #274 )
2018-06-01 12:01:21 -04:00
Russell Hancox
f71bc0a8f7
santa-driver: Fix cache CAS operations, which haven't been working ( #272 )
...
* santa-driver: Fix cache CAS operations, which haven't really been working.
2018-06-01 11:38:25 -04:00
Russell Hancox
edc0c72464
SantaCache: Templatize key types ( #271 )
2018-05-30 15:50:23 -04:00
Tom Burgin
c3ce4f718b
Update configuration.md ( #270 )
2018-05-30 11:06:45 -04:00
Tom Burgin
40ee482973
Update SNTSyslogEventLog.m ( #269 )
...
remove extra space
2018-05-29 16:39:18 -04:00
Mitchell Grenier
a5d2e6fdd2
Optional MachineID for Logs ( #256 )
...
* First draft, no UUID caching
* Cache UUID in SNTEventLog super class
* Add a configuration flag for UUID decoration
* Port from UUID to MachineID
* KVO complicance
* Remove extra newline I accidentally introduced
2018-05-29 16:16:21 -04:00
Tom Burgin
e9a835a642
log deny because of dirty vnode ( #267 )
...
* log dirty vnode blocks
* review update
2018-05-25 14:16:16 -04:00
Tom Burgin
ac7b95ceb6
santa-driver: do not invalidate cached decisions on KAUTH_VNODE_ACCESS ( #266 )
...
* santa-driver: do not invalidate cached decisions on KAUTH_VNODE_ACCESS
* downtown
2018-05-25 10:47:48 -04:00
Russell Hancox
055b2d8ede
Update project for Xcode 9.1, add codesigning flags ( #264 )
...
* Project: Update project to Xcode 9.1 and handle all the new warnings that entails.
* Project: Add library-validation and kill flags to codesigning options
2018-05-22 10:13:59 -04:00
Russell Hancox
a75cd0a0f5
Update README.md ( #263 )
...
Update the sync client section to point at known open-source solutions, remove the Xcode 7.3.1 build requirement
2018-05-18 12:26:37 -04:00
Matthew Suozzo
2b1ddf9a4e
Fix typo in sync help text ( #259 )
2018-05-09 21:53:51 -04:00
Tom Burgin
b70442e483
Project: Use MOLXPCConnection ( #258 )
...
* Project: Use MOLXPCConnection
* review fixes
2018-05-09 11:40:35 -04:00
Tom Burgin
798b0fab15
fileinfo: whitelist bundle extensions when performing an ancestor search ( #257 )
...
* fileinfo: whitelist bundle extensions when performing an ancestor search
* fix tests
* conform to russell's every whim
2018-05-07 13:57:58 -04:00
Russell Hancox
e8630132d7
Project: make building on case-sensitive volumes work ( #255 )
2018-04-27 12:58:54 -04:00
Russell Hancox
273ae5f21a
santad: Missed an import ( #254 )
2018-04-27 10:51:53 -04:00
Tom Burgin
06b688fef4
Update .travis.yml ( #253 )
2018-04-26 17:23:32 -04:00
Russell Hancox
59cc038ab2
All: stop using @import for reasons. ( #252 )
2018-04-26 17:19:19 -04:00
Tom Burgin
ea5a6c3438
downstream --> upstream changes ( #251 )
2018-04-25 16:16:56 -04:00
Tom Burgin
e2adfdf3cf
Add EventLog Docs ( #250 )
2018-04-24 16:33:53 -04:00
Tom Burgin
5ee6531627
santad / santactl: validate all architectures within universal binaries ( #249 )
2018-04-24 16:11:49 -04:00
Tom Burgin
1cf8ee09e1
sync-state: Mitigate com.apple.ManagedClient flapping ( #248 )
...
* sync-state: Mitigate com.apple.ManagedClient flapping
* 10 min
2018-04-09 13:34:33 -04:00
Tom Burgin
4a2cf9d722
santad: event logger ( #246 )
...
* kext symbols
* santad: Create FileLog and Syslog options
* review updates
* review updates
* be a good citizen and let go of things you do not need
2018-04-03 13:15:12 -04:00
Tom Burgin
6a6a32c1cf
santactl: Update to MOLFCMClient v1.7 ( #245 )
2018-03-13 13:07:44 -04:00
Tom Burgin
ce03611b52
santabs: Serialize calls to -[SNTBundleService createConnection] ( #244 )
2018-03-12 17:04:53 -04:00
Tom Burgin
bbe9f83878
Import fixes ( #243 )
...
* All: use common import style for cocoapods <PodName/PodName.h>
* All: Update Pods
2018-03-12 16:02:55 -04:00
Tom Burgin
40e6c6aa92
sync-state: perform sync-state operations on a serial q ( #242 )
...
* sync-state serial
* delete it
2018-03-07 17:35:02 -05:00
Tom Burgin
9f6ccf092a
code cleanup ( #241 )
2018-02-26 10:51:44 -05:00
Tom Burgin
d4ba4b082f
codesign check: verify all architectures ( #239 )
...
* fileinfo rule: don't use certs that have codesigning errors
* pods: MOLCodesignChecker --> 1.8
2018-02-22 14:41:47 -05:00
Tom Burgin
cce43829eb
use MOLFCMClient v1.5 ( #238 )
2018-02-16 14:35:52 -05:00
johnl
c1bfbac2fe
Various small fixes to README.md ( #237 )
...
* Various small fixes to README.md
* Apply changes
2018-02-13 11:06:28 -05:00
Tom Burgin
fc87cde668
config: use KVO ( #234 )
...
* config: atomically update config
* config: add an explanation for sleep usage
* config: use mobileconfig in the getters
* config: cleanup file watcher
* config: spell
* config: clear or reload sync state on sync base url change
* config: Use KVO and Dependent Keys
* config: remove debug log
* config: review updates
* config: update rule sync getter and setter names
* config: get logical
2018-02-07 13:59:00 -05:00
Tom Burgin
400c413029
config: add option to disable mode change notifications ( #235 )
...
* config: add option to disable mode change notifications
* config: don't do extra work
* config: handle none, default and custom
* config: cleaner
2018-02-02 12:01:51 -05:00
Tom Burgin
0e6eb45732
santa-driver: add an acknowledge feature to allow timeouts ( #220 )
...
* santa-driver: Add an acknowledge feature to allow timeouts for lost requests
* project: cocoapods 1.3.1 update
* review updates
2018-01-26 11:33:54 -05:00
Tom Burgin
7ca2028c19
santabs: don't try to lookup nil bundle paths ( #233 )
2018-01-26 11:33:04 -05:00
Tom Burgin
08144b54a7
docs: updated configuration details ( #232 )
...
* docs: updated configuration details
* config: add example mobileconfig
2018-01-24 21:07:48 -05:00
Russell Hancox
103137498b
santa-driver: Deny execs with names over MAXPATHLEN with appropriate errno ( #231 )
2018-01-24 14:02:05 -05:00
Tom Burgin
8e57e3709d
SNTConfigurator: use mobileconfigs ( #222 )
...
* SNTConfigurator: use mobileconfigs
* use proper key groups
* remove state
* review updates
* review updates
* SNTConfigurator: Revert any out-of-band changes to the sync state file.
* SNTConfigurator move the file watcher to santad only
2018-01-08 12:56:24 -05:00
nguyen-phillip
bd6bd66946
santactl: Added -h and --help as synonyms for help ( #225 )
2017-12-05 14:16:04 -08:00
nguyen-phillip
6973dd0ec2
log the events generated by bundle hashing with action=BUNDLE ( #207 )
...
* log the events generated by bundle hashing with action=BUNDLE
* change EventLog to eventLog in SNTDaemonControlController init signature
2017-12-04 10:03:04 -08:00
Tom Burgin
2e8b08cd9e
keep style fixes ( #221 )
2017-11-28 11:48:12 -05:00
Russell Hancox
edc8f43f42
Style fixes
2017-11-15 20:35:53 -05:00
Russell Hancox
133814cd73
santa-driver: Prevent possible infinite loop if decision requests fail to be retrieved
...
When enqueue'ing on the decision data queue, if the queue is full the new message will overwrite the oldest. In this scenario it's possible for that overwritten request to get stuck in an infinite loop - as far as the driver is concerned there's a request pending that the driver should be picking up and responding to but the daemon has never actually received the request. The only way out of this loop is for the file being executed to be written to. This change adds an expiration to pending requests (of 5s) so that if this scenario were to happen the pending request would be removed, breaking out of the inner decision loop to the outer loop where the request is sent to the daemon.
This change also removes a pointless dequeue in the log queue, it was intended to try and help reduce the queue size to get logs flowing again but it doesn't really help.
2017-11-15 20:35:53 -05:00
Russell Hancox
57213ee31b
[santactl] Ensure reachability is released properly
2017-10-26 15:45:28 -04:00
Tom Burgin
b4fa2a394b
Update .gitignore ( #211 )
...
Track files in the santa-driver dir
2017-10-16 15:20:43 -04:00
Tom Burgin
0c39342d53
santad: SNTPolicyProcessor fix nil scope check ( #208 )
...
Fixes `santactl rule --check` returning `Whitelisted (Scope)` incorrectly
2017-10-06 13:07:48 -04:00
Tom Burgin
1c95e8e25c
santad: Stop ignoring CSInfoPlistFailed ( #204 )
...
It is too broad a check for the few false positive events we have seen.
2017-09-14 12:45:07 -04:00
nguyen-phillip
ff5a92772b
sync: start reachability handler to retry to upload blocked event when initial upload fails ( #202 )
...
* sync: start reachability handler to retry to upload blocked event when initial upload fails
* fix indentation
* store related bundle events when server connection fails
* revert SNTBundleEventAction to BOOL
* go back to using SNTBundleEventAction in reply; make sure to send reply to avoid leaks
* fix indentation
* fix indentation
2017-09-14 12:44:32 -04:00
nguyen-phillip
bc2a17f70f
santactl: added filtering to fileinfo command via --filter flag ( #201 )
...
* implemented simple filtering with fileinfo command
* Use regex filters instead of substring matching
* remove unnecessary match variable
* Update SNTCommandFileInfo.m
2017-09-14 11:21:08 -04:00
nguyen-phillip
f2e909e578
Minor refactor to merge similar methods into one: ( #200 )
...
* Merged similar methods into one:
* SNTSyncdQueue addBundleEvents: and addEvent: became addEvents:isFromBundle:
* SNTSyncdQueue backoffForBundleHash: and backoffForEvent: became backoffForPrimaryHash:
* SNTCommandSyncManager postBundleEventsToSyncServer: and postEventToSyncServer: became postEventsToSyncServer:isFromBundle:
* fix style issue
* simplify condition
2017-09-08 09:18:13 -04:00
nguyen-phillip
c3385a808c
Bundle Notifications ( #197 )
...
* stub code for bundle notifications with new rules info
* get bundle rule count info from each rule, rather than initial FCM message
* Replace string literals with constants
* only update pendingNotifications for whitelist rules
* use pre-existing string constants as dictionary keys
* Remove processed entries from the notifications dictionary after we're done with them.
* fix indentation
* replace kRuleBundleHash with kFileBundleHash
* enforce serial access to the whitelistNotifications dictionary
* clarify comment
* fix queue spelling and better comments
2017-09-05 15:35:35 -04:00
Tom Burgin
8d480331ff
Add Read the Docs to README ( #196 )
...
* Update README.md
* Update README.md
2017-08-18 13:29:43 -04:00
nguyen-phillip
5216f0989c
santactl: Recursive fileinfo command ( #191 )
...
* temporarily gutted SNTCommandFileInfo. Added SNTCommand base class for all
of the SNTCommand* classes to inherit from. Changed commands so that they
are consistently instantiated before being run, with a common init method.
* Put most of SNTCommandFileInfo functionality back in
* follow symlinks
* added -r and --recursive flags and updated help text
* moved humanReadableFileType to SNTFileInfo
* added back JSON output
* Fixed bundle info. Grab directory color from ENV variable.
* fixed indentation, moved stuff around
* Added SNTCommandFileInfo * back as parameter to property getters so that rule getter
doesn't have to be a special case any more.
* fixed code review issues
* added SNTCommand.h and SNTCommand.m to project
* added SNTCommand.m to build phases
* removed trailing spaces
* fixed tests for SNTCommandFileInfo and added a few more
* fix end-of-line comment spacing to conform to style guide
* Use NSBundle instead of NSWorkspace to determine if path is a bundle.
* added autorelease pool inside recursive search loop to fix bug where file listing
would abruptly stop after so many files with mach header related keys.
* removed directory headers. don't separate entries with newline when printing single key. format output based on max key length.
* an attempt at speeding things up. also halfway fixed broken cert-index key.
* speedups via caching MOLCodeSignChecker & not using NSMutableString append*
* fix json ouput with cert-index, single key output, & cache SHA values
* reverted back to NSMutableString for building up output, since it seems slightly better
or at least no worse than using an NSMutableArray
* Don't print empty JSON objects
* fixed non-thread-safe JSON commas
* made the print dispatch group a property so it doesn't have to be passed around
* Fixed certIndex indexing bug & better error checking when parsing --cert-index argument
* prevent unsigned int overflow
* fixed logic tests broken by objc_setAssociatedObject with nil SNTFileInfo argument
* send error output to the serial print queue
* NSBundle bundleWithPath: returns an object even for non-bundle directories, so need to also check that there's a valid bundle identifier.
* Added TODO comment and fixed formatting issues
* added cached codeSignChecker property to SNTFileInfo
* rewrote SNTFileInfo's codesignChecker method to include an error reference parameter & removed @synchronized
* Removed caching of SHA values from SNTFileInfo
* use property getter/setter to access codesignCheckerError
* Change nil NSError ** arguments to NULL
* Don't try to create a new codesignChecker if there was previously an error
* Fix NSDirectoryEnumerator memory usage & don't retain self in rule getter.
The NSStrings grabbed from the directory enumerator needed a chance to be freed.
* fixed colon alignment
2017-08-18 09:56:37 -04:00
Tom Burgin
4238553a2e
Docs: Start of Santa Docs ( #192 )
...
* Docs: Start of Santa Docs
* Docs: /exec()/execve()/
* Docs: /sync-server/sync server/
* Docs: review updates
2017-08-17 16:01:59 -04:00
nguyen-phillip
79662d0dcf
santad/SNTEventLog: log original path of translocated apps ( #194 )
...
* log original path of translocated apps
* made handle a local variable & fixed capitalization
* Removed superfluous CFError
2017-08-17 11:09:46 -04:00
Russell Hancox
ff095bc53d
KernelTests: Fix cache performance test
...
It was previously calculating CPU use rather than walltime which isn't really what we want to measure.
2017-08-16 16:13:45 -04:00
Russell Hancox
eefd70b2de
santa-driver: Fix race condition by adding CAS op to SantaCache
...
Change the signature of the set method in SantaCache so that it takes an
optional previous-value parameter (and a bool indicating that this value
has been provided). If previous-value is provided, set becomes a
compare-and-swap. Also provide 2 overloads for a cleaner interface, one
with and without the previous-value parameter.
2017-08-16 16:13:45 -04:00
Russell Hancox
9b3eab67a2
santa-driver: Determine root FSID more safely
...
Only calculate root FSID during daemon connection. If daemon is running
there must be a root filesystem. Also check return values just in case.
Check vnode_id has been determined in VnodeCallback and SantaDriverClient
methods so that it doesn't need to be checked anywhere else.
2017-08-16 12:07:44 -04:00
Russell Hancox
54def2deb7
santa-driver: Reverse ClearCache() non_root_only default parameter
2017-08-16 12:07:44 -04:00
Russell Hancox
cd12744726
santad/santactl/santa-driver: Make status command return size of both caches
2017-08-16 12:07:44 -04:00
Russell Hancox
616fd9570f
santa-driver: Split cache for root/non-root volume
...
Split the kernel-land cache into 2 separate caches, one for the root
volume and one for secondary volumes. When an unmount happens, clear
the non-root cache to ensure no overlap with filesystem IDs.
2017-08-16 12:07:44 -04:00
Russell Hancox
0544011ee0
[santad] Remove broken check and obsolete TODOs ( #190 )
2017-08-03 15:14:02 -04:00
nguyen-phillip
51920c7045
santad: modified execution log format to show path & args at end ( #189 )
...
Fixed problem where extremely long path/args obscured other log info.
2017-08-02 14:27:39 -04:00
Russell Hancox
6f417a1775
common: Remove EventDetailBundleURL key ( #187 )
...
The changes to bundle scanning mean this key isn't really necessary anymore - if a server supports bundles it tells the client during preflight, this in turn causes bundle hashes to be generated and these are used in place of the file hash when generating a detail URL. Keying bundles off the ID and version was never really a good idea anyway.
2017-08-01 12:16:37 -04:00
Russell Hancox
51034a24c6
SNTXPCConnection: Prevent crash if caller releases instance during resume ( #183 )
2017-07-18 16:50:32 -04:00
Tom Burgin
f631f219b0
santactl/sync: fixed exception when file_name is None / NSNull ( #180 )
...
* santactl/sync: fixed exception when file_name is None / NSNull
* review updates
2017-07-06 11:52:49 -04:00
Tom Burgin
aacae020b8
logs: add DAAppearanceTime to the DISKAPPEAR logs ( #179 )
...
* logs: add DAAppearanceTime to the DISKAPPEAR logs
* review updates
* discussion updates
2017-07-02 16:27:40 -04:00
Tom Burgin
7c426e0eec
santactl/sync: upload file bundle executable relative path for bundle events ( #178 )
2017-06-28 11:55:21 -04:00
Tom Burgin
363826502f
santabs: de-dupe generated events before upload ( #177 )
...
* santabs: de-dupe generated events before upload and remove locks
* review updates
* error updates
2017-06-22 17:46:04 -04:00
Russell Hancox
1cfadae068
SantaGUI: Don't show pop-up notifications for empty filenames ( #176 )
2017-06-12 11:28:32 -07:00
Tom Burgin
d3b3d722b4
santabs: use the ancestor bundle when searching for binaries ( #175 )
...
* santabs: use the ancestor bundle when searching for binaries
* review updates
* bundle tests
2017-06-09 17:04:23 -04:00
Tom Burgin
a82428958b
santactl/rule: Add the ability to check the status of arbitrary sha256 hashes without on-disk artifacts. ( #172 )
2017-05-30 13:07:47 -04:00
Tom Burgin
b185632bda
santad/SantaGUI: Add needsBundleHash property to SNTStoredEvent && ( #170 )
...
santactl/sync:sync server enables/disables client bundle support
2017-05-30 13:04:08 -04:00
Tom Burgin
e7a0c3d25b
santactl/sync: Sync Server to set FCM interval and deadline ( #168 )
...
* santactl/sync: Sync Server to set FCM interval and deadline
* rename default constants
* review updates
2017-05-22 11:50:37 -04:00
Tom Burgin
ab33de2c15
project/config: Move /var/log/santa.log to /var/db/santa/santa.log ( #173 )
2017-05-22 11:10:10 -04:00
Tom Burgin
a1031cdc27
protect wakeup() from being called with 0 ( #167 )
...
* don't call wakeup on 0
* project: "share" the santabs target
* Project: Update CocoaPods to 1.2.1
* Project: pod deintegrate - pod install
2017-04-14 16:13:45 -04:00
Tom Burgin
e3ab3ca506
Update SNTCommandSyncEventUpload.m ( #162 )
2017-04-13 16:58:25 -04:00
Matthew Suozzo
b4cd1ccbee
santa-driver: Fix a typo
2017-04-13 14:27:05 -04:00
Matthew Suozzo
14573a5714
santa-driver: Refactor cache expiration calculation
2017-04-12 22:35:08 -04:00
Tom Burgin
96150a9668
Bundle Events ( #145 )
...
* santabs: Create Santa Bundle Service
* common: SNTXPCConnection add initClientWithServiceName:
* santad: add logic for blocked bundles
* SantaGUI: add ui elements and xpc connections to / from santabs
* santactl/sync: add api features for syncing bundle events
* santactl/bundleinfo: add bundleinfo command for debug builds
* common: prefer bundle hash over file hash for event urls
* common: remove syncBackoff property - this is now handled in santactl sync
* common: add properties to support the bundle event api
* common: find a bundle from a nested binary
* review updates
* sane bundle hash time outs
* post rebase updates
* post review updates
2017-04-07 15:31:56 -04:00
Russell Hancox
c10c1303ed
SantaGUI: Add preprocessor flag to import Cocoa for SNTBlockMessage
2017-04-05 14:19:50 -04:00
Tom Burgin
7852e69685
SantaCache fix 0 init ( #158 )
2017-03-22 09:38:27 -04:00
Russell Hancox
094880af50
Project: Add DevelopmentTeam configuration ( #157 )
...
This is a generated xcconfig in the Rakefile which gets included by the project
to set the DEVELOPMENT_TEAM key to keep Xcode 8 happy. The development team is
figured based on the available “Mac Developer” certificate.
Also update the way SantaCache declares a ‘zero’ value, update the
OCMock pod and add a few missing includes.
2017-03-20 16:34:59 -04:00
Tom Burgin
c3db518aca
santactl/sync: use the new fcm-stream format ( #156 )
2017-03-20 14:42:29 -04:00
Tom Burgin
41ee0c5fdb
Running without a config fixes ( #154 )
...
* common: capture fileSystemRepresentation in a local variable
* santactl/status: check for instant notification status only when there is a sync url
* s/FALSE/NO
2017-03-17 12:12:41 -04:00
Tom Burgin
ae178bc146
create default config if one does not exist ( #153 )
2017-03-10 17:17:52 -05:00
Tom Burgin
a2a660d483
config update and modules ( #152 )
...
* santactl/sync: https://github.com/google/santa/issues/150
* pch to modules
2017-03-09 13:02:02 -08:00
Tom Burgin
8684cc34f7
santactl/sync: use hostname for reachability ( #149 )
...
* Revert "SNTXPCConnection: make XPC debugging easier (#141 )"
This reverts commit a2d6338400 .
* santactl/sync: use hostname for reachability
* style update
2017-03-08 07:55:35 -08:00
Tom Burgin
0aba8b78ba
disable bundle scans ( #146 )
...
* config: update to cocoapods-1.2.0 and molfcmclient 1.2
* santactl/sync: disable sync server bundle scan requests
2017-03-01 09:02:00 -08:00
Russell Hancox
5e735aa8d5
santad: Clear cache when regexes change. ( #143 )
...
When white/black-list regexes are changed clear the kernel cache so the regexes are able to take effect immediately. Fixes #142
2017-02-03 11:00:32 -05:00
Tom Burgin
a2d6338400
SNTXPCConnection: make XPC debugging easier ( #141 )
2017-01-31 15:36:09 -05:00
Russell Hancox
5e4b8350ab
SNTXPCConnection: allow redefining invalidationHandler after connections are established ( #140 )
2017-01-23 11:10:13 -05:00
Tom Burgin
4a65b646df
santactl status: add last successful rule sync date ( #139 )
...
* santactl status: add last successful rule sync date
2017-01-11 15:52:07 -05:00
Tom Burgin
24c715aae9
santactl sync: reachability and notification updates santad: syncd xpc updates ( #138 )
...
* santactl sync: post a notification for every matching rule and fcm message
* santactl sync: if full sync fails, retry when reachable
* santad: only allow one syncd connection at any given time
2017-01-10 16:14:15 -05:00
Tom Burgin
9ab85768bd
Update Podfile.lock to use MOLFCMClient v1.1 ( #136 )
2017-01-03 11:10:15 -05:00
Tom Burgin
16458d96e7
Notification verbage update ( #135 )
2016-12-14 14:41:20 -05:00
Tom Burgin
b307dd17af
Use machine ids as the targeted sync indicator ( #134 )
...
* Use machine ids as the targeted sync indicator
* remove unused constant
2016-12-12 16:53:24 -05:00
Tom Burgin
313552352c
Display the binary name when a local rule is synced from a push notification ( #133 )
2016-12-07 17:40:11 -05:00
Tom Burgin
543ac7c649
push notifications with FCM ( #132 )
...
* push notifications with FCM
* Don't display rule count in notifications. Get FCM broadcast topic from sync server.
2016-12-06 16:04:34 -05:00
Tom Burgin
dacff76694
run santactl as a sync daemon ( #129 )
...
* run santactl as a sync daemon
2016-11-16 14:41:12 -05:00
Russell Hancox
c134169ea1
santad: Drop AUTOINCREMENT on event table ( #130 )
2016-11-01 11:14:51 -04:00
Russell Hancox
e252945047
santactl/fileinfo: Send resolved path to santad for processing ( #128 )
2016-10-26 16:04:27 -04:00
Russell Hancox
f8cfcaab20
Package/Conf: Fix typo in uninstall.sh ( #126 )
2016-10-25 15:05:36 -04:00
Tom Burgin
528237a239
santactl status: check non-boxed vars when building json output ( #125 )
2016-10-24 12:14:56 -04:00
Russell Hancox
91aefe25c4
santad: Fix printer-proxy workaround ( #120 )
2016-10-13 15:30:08 -04:00
Russell Hancox
a8c11097d9
Project: Use NSSet instead of NSDictionary for uniqueness in collections ( #119 )
2016-10-13 15:20:19 -04:00
Russell Hancox
92ba4a3ae9
santactl/sync: Debug log when clean sync requested ( #118 )
2016-10-13 15:20:12 -04:00
Russell Hancox
7c5d382010
santactl/sync: Fix bundle searching, make concurrent. ( #115 )
...
* santactl/sync: Fix bundle searching, make concurrent.
2016-10-13 15:14:35 -04:00
Russell Hancox
f8fbaefd86
Tests: Fix XPC connection tests ( #116 )
...
Also disable LTO in debug builds.
2016-10-13 12:43:26 -04:00
Russell Hancox
181b37296a
santactl/sync Tests: Use constants ( #117 )
2016-10-13 12:43:14 -04:00
Tom Burgin
2ab61cfa12
SNTCommandFileInfo: Fixed retain cycle. Added locking for a NSMutableArray when accessed on multiple threads ( #114 )
2016-10-13 11:38:33 -04:00
Tom Burgin
1b0e9b14ef
Global json bool shared between class and instance methods. https://github.com/google/santa/issues/112 ( #113 )
2016-10-12 14:35:27 -04:00
Russell Hancox
2aacc9266f
Revert changes for building with Xcode 8 ( #111 )
...
* Partial Revert of "Project: Update project files for Xcode 8 (#105 )"
Building with Xcode 8 (and specifically the 10.12 SDK) breaks logging on
10.12 and on top of that some tests don't pass while working perfectly
fine on 10.11. For now, we'll just continue building with 7.3.1.
* README: Add note about building with Xcode 7.3.1
2016-10-10 14:24:14 -04:00
Russell Hancox
d648d477bb
santa-driver: Fix deadlocking on Sierra ( #107 )
...
1. Don't RemoveFromCache for advisory access by santad itself.
2. wakeup sleeping threads when removing from cache
3. Move the vnode type check earlier in the process for the vnode scope
2016-09-28 16:36:23 -04:00
Russell Hancox
6f91c1a1d3
Project: Update project files for Xcode 8 ( #105 )
2016-09-28 16:11:22 -04:00
Russell Hancox
aa1aca24b7
Common: Don't crash if ClientMode key is not an integer. ( #106 )
...
NSString has longLongValue but not longValue, so switch to that then cast down. Check that the receiver responds to longLongValue before calling it just in case someone tries to set it to an NSData or something.
2016-09-26 11:53:51 -04:00
Tom Burgin
6a0867172f
Mocking for MOLCodesignChecker initWithBinaryPath:error: ( #104 )
2016-09-23 15:40:37 -04:00
Russell Hancox
f025a4b2fb
santad: In required rule protection, handle case where there are multiple rules for the required certs ( #101 )
2016-09-22 16:17:59 -04:00
Russell Hancox
8871f36a92
santa-driver: FetchDecision - use a loop rather than recursing. ( #100 )
2016-09-22 15:58:53 -04:00
Russell Hancox
f17490edad
santad: Handle UTF-8 in process args. ( #99 )
...
While appendFormat with %s is slightly faster (~1üs) it doesn't handle UTF-8 properly.
2016-09-22 15:38:00 -04:00
Russell Hancox
b360e782c6
santad: Start ignoring errSecCSInfoPlistFailed (-67030) ( #98 )
2016-09-22 15:36:35 -04:00
Russell Hancox
8d94324dd6
santad: Update SNTFileWatcher to fix broken dispatch source. ( #97 )
...
I'm not certain if this is a Sierra change or just that it was more rare before but changing a cancel handler on a dispatch source no longer seems to have any effect. This meant the file descriptor for the currently-active source was being closed instead of the one for the source that was just cancelled. It wasn't actually necessary to get the file handle from the source, we can just rely on capturing it in the block, which works just as well.
2016-09-22 15:36:26 -04:00
Russell Hancox
2818609412
santactl/sync: Fix bundle event upload ( #96 )
2016-09-20 12:37:12 -04:00
Russell Hancox
270a2e69d4
Project: Add bundler caching to travis build ( #95 )
2016-09-19 07:19:15 -04:00
Russell Hancox
d1d9762e29
santa-driver: Don't filter advisory vnode_write notifications ( #94 )
2016-09-15 10:17:18 -04:00
Russell Hancox
1666e8b127
Move some NSMutableDictionary uses to NSCache, log client connection ( #93 )
...
* santa-driver: Log when client connects (we already log disconnect)
* santad: Move a couple of NSMutableDictionary uses over to NSCache, add type info.
2016-09-14 17:09:04 -04:00
Tom Burgin
08dfad208b
Move decision making to SNTPolicyProcessor ( #91 )
...
Move SNTEventState to a mixed bit field enum
SNTCommandFileInfo now handles all rule states
2016-09-14 12:34:42 -04:00
Russell Hancox
b5921f95f3
santa-driver: Remove the static wrappers in SantaDriverClient ( #90 )
...
SantaDriverClient was implemented to have static functions that call instance
methods passing appropriate arguments. While this works and is 'technically correct' (best kind),
it's a bit messy and hard to read.
2016-09-12 10:14:38 -04:00
Russell Hancox
2063bc3db3
Update pods, check length of EventDetailBundleURL, add text above URL in TTY ( #89 )
...
* SantaGUI: Check EventDetailBundleURL length rather than just existence
* santad: Add title above detail URL in TTY
* Project: Update pods
2016-09-09 16:11:40 -04:00
Tom Burgin
4380016d52
Compile SNTCommandController and SNTCommandFileInfo in the LogicTests target ( #86 )
2016-09-07 10:56:15 -04:00
Tom Burgin
5e3ceabe46
SNTCommandFileInfo Tests ( #85 )
2016-09-06 14:21:37 -04:00
Tom Burgin
8e7936275b
Merge pull request #84 from russellhancox/fix-70
...
santactl/rule: Handle bad path properly (dir, non-file)
2016-09-06 13:31:57 -04:00
Russell Hancox
4b967239fa
santactl/rule: Handle bad path properly (dir, non-file)
...
Fixes #70
2016-09-06 13:29:05 -04:00
Tom Burgin
92945c384c
Merge pull request #83 from russellhancox/fix-82
...
Package: Ensure /usr/local/bin exists before making symlinks in it.
2016-09-06 13:10:44 -04:00
Russell Hancox
79d93c4ecf
Package: Ensure /usr/local/bin exists before making symlinks in it.
...
Fixes #82
2016-09-06 13:03:49 -04:00
Allister Banks
76b6f25b0c
uninstall.sh typo
...
typo
2016-09-01 11:20:44 -04:00
Allister Banks
aadce4890a
Add uninstall script ( #77 )
...
Leaves configs, performs no checks about current state but should be
relatively idempotent (can't unload/rm stuff that's not there)
2016-08-30 11:41:20 -04:00
Tom Burgin
0e95a98fc2
santactl fileinfo sha1 & sha256 simultaneous hashing ( #67 )
2016-08-23 15:40:01 -04:00
Tom Burgin
9483437e8f
Merge pull request #66 from russellhancox/master
...
santad: Database access optimizations
2016-08-23 14:29:40 -04:00
Russell Hancox
59542f8aef
santad: Drop binrules/certrules views in rules database.
2016-08-23 12:48:41 -04:00
Russell Hancox
e29f7332f5
santad: Avoid creating multiple SNT*Table objects, as initializing them can be slow.
2016-08-23 12:48:41 -04:00
Russell Hancox
f8640feafe
Project: Include xcodebuild clean in rake clean
2016-08-22 14:49:18 -04:00
Russell Hancox
e94e9e2be4
Project: Clean up CocoaPods project cruft
2016-08-22 14:46:56 -04:00
Tom Burgin
4053aac365
Merge pull request #65 from russellhancox/master
...
santactl/fileinfo: Recognize bundle/plugin mach-o files.
2016-08-22 14:07:43 -04:00
Russell Hancox
a5fa6c7aef
santactl/fileinfo: Recognize bundle/plugin mach-o files.
2016-08-22 14:05:22 -04:00
Russell Hancox
97263894d1
santactl/sync: Send existing client mode in preflight request
2016-08-19 15:10:50 -04:00
Russell Hancox
1885580958
Project: pod update
2016-08-19 15:10:50 -04:00
Tom Burgin
1167b470bb
santactl/fileinfo: Fix arg parsing, better cert printing
...
* arg parse fixes
* More parse fixes
2016-08-19 14:53:33 -04:00
Russell Hancox
7600506d6d
santad: Include client mode in execution logs.
2016-08-18 14:44:40 -04:00
Russell Hancox
86bad866a0
santad: Unify CERT vs CERTIFICATE in logs.
2016-08-18 14:13:36 -04:00
Russell Hancox
2f1a15cf7e
SantaGUI: Fix bundle version URLs
2016-08-18 14:11:42 -04:00
Tom Burgin
52b0e1870f
Squashed binary and cert rule fetching down to one call. ( #62 )
2016-08-17 17:06:51 -04:00
Tom Burgin
9b181c1e0d
santactl fileinfo updates ( #61 )
...
* Added --json output option. Added --key output option.
* Added multi-file processing
* Added threading
* \r to cleanup during really quick runs
2016-08-17 15:55:03 -04:00
Tom Burgin
100f2dc45e
Merge pull request #60 from russellhancox/master
...
Performance improvements, GUI bundle handling
2016-08-12 16:42:00 -04:00
Russell Hancox
b247c3d477
santa-driver: Try to prevent logspam when dropping log queue messages
...
Both PostTo*Queue methods use mutexes, so access to the failed_*_queue_requests_ variables don't need to be atomic.
2016-08-12 16:08:23 -04:00
Russell Hancox
76ee82b258
santad: Limit log queue to 15 threads
...
To counteract the increased likelihood of dropped messages, double the maximum
log queue size.
2016-08-12 15:04:21 -04:00
Russell Hancox
e8fcd29669
santa-driver: If a request for a given vnode is pending, don't repeat request.
2016-08-12 15:04:21 -04:00
Russell Hancox
8dd16ecea4
santa-driver: Remove references to vnode_id_str
...
These should have been culled when moving to SantaCache but were missed.
2016-08-12 15:04:21 -04:00
Russell Hancox
e9c0bcd877
SantaGUI: Handle bundles having version instead of short version string
2016-08-12 15:04:21 -04:00
Allister Banks
75ed4b52a6
revise readme ( #57 )
...
* overall readme revise
admin-specific vs. security/performance features split up, add details
about path-based functionality, PAGEZERO feature, failsafe cert
whitelisting, explicitly say default mode is MONITOR
* process feedback
sticking with talking about binary launches while kext is loaded,
integrated all other feedback
2016-08-10 15:53:55 -04:00
Tom Burgin
71635c00df
Merge pull request #58 from russellhancox/master
...
Performance improvements
2016-08-10 15:53:00 -04:00
Russell Hancox
1810af5483
SantaGUI: Change Dismiss button to Ignore
2016-08-10 15:18:22 -04:00
Russell Hancox
b07835dfd5
santad: Cache user/group id->name lookups.
2016-08-10 15:18:22 -04:00
Russell Hancox
4c33aa2aae
santad: Improve loggedInUsers:sessions:
2016-08-09 16:51:23 -04:00
Russell Hancox
3c255640cb
santad: Speed up TTY message creation
2016-08-09 16:51:23 -04:00
Russell Hancox
3d08ba9ebc
santa-driver: Use msleep/wakeup instead of IOSleep.
...
This brings the average cache-miss decision making time down by 66%. Previously the minimum decision time was 10ms, now it's <1ms.
2016-08-09 16:51:23 -04:00
Russell Hancox
f64482500e
santa-driver: Add debug logging of decision times to GetFromDaemon
2016-08-09 16:51:20 -04:00
Russell Hancox
215902f192
SantaCache: Extract entry value before unlocking bucket.
2016-07-19 16:28:35 -04:00
Russell Hancox
3e9c3a069d
Project: Pod update
2016-07-19 14:51:01 -04:00
Russell Hancox
841fb48479
santa-driver: Only send file mod notifications to queue if client is connected.
2016-07-14 13:45:13 -04:00
Russell Hancox
df8e41925f
SNTFileInfo: Check NSURLQuarantinePropertiesKey is usable
2016-07-13 17:29:53 -04:00
Russell Hancox
6b0994a990
santad: Avoid properties in critical path
2016-07-13 12:44:48 -04:00
Russell Hancox
7dd616e891
santa-driver: Switch SantaCache from an array to a linked list
2016-07-12 14:54:43 -04:00
Russell Hancox
c672edbe4d
Whitespace clean-up
2016-07-12 14:51:10 -04:00
Russell Hancox
687ecc7097
santad: Close more file descriptors on exec
2016-07-11 16:23:38 -04:00
Russell Hancox
b8882b4826
santactl/fileinfo: Wait longer for daemon response.
2016-07-11 15:59:30 -04:00
Russell Hancox
51de0b38a4
santad: Change watchdog thread interval to 30s
2016-07-11 15:59:30 -04:00
Russell Hancox
e0309c0482
SantaGUI: In keyPathsForValuesAffectingValueForKey, return an empty set rather than nil
2016-07-11 15:53:04 -04:00
Russell Hancox
5dbe86869d
santad: Move event storage out of the high priority decision queue
...
As event storage needs to happen before attempting upload, use the same serial queue.
2016-07-01 17:56:52 -04:00
Russell Hancox
14a11279c7
Project: Remove activesupport from travis settings.
...
It no longer appears to be needed for CocoaPods and causes errors.
2016-07-01 17:56:52 -04:00
Russell Hancox
df0ce42377
Merge pull request #54 from georgekola/gk-avoid-string-copy
...
Avoid two string copies
2016-07-01 17:09:54 -04:00
George Kola
4c03411405
Avoid two string copies
2016-07-01 14:07:23 -07:00
Russell Hancox
f020e18238
Project: Update to MOLCertificate 1.5
2016-07-01 13:02:07 -04:00
Russell Hancox
629bd4aff9
santad: argsForPid: Don't replace last NULL but still count up to it
2016-07-01 12:48:50 -04:00
Russell Hancox
f20825a66c
Project: Increase optimization level for Pods
2016-06-30 14:36:16 -04:00
Russell Hancox
f098ca0d02
santad: Update argsForPid to append to a given string.
2016-06-30 09:41:26 -04:00
Russell Hancox
1f96f74f4d
Merge pull request #52 from georgekola/gk-pread
...
Correctly use pread
2016-06-29 14:27:22 -04:00
George Kola
7a3a98c27a
Correctly use pread
...
pread can return less than the chunk size (e.g. signal caught in the
middle) and hence we need to handle it. This change also cleans up the
hash function and makes it more performant.
2016-06-29 11:21:56 -07:00
Russell Hancox
1130448cb9
Merge pull request #53 from georgekola/gk-cacheCalls
...
Cache method call
2016-06-29 08:20:59 -04:00
George Kola
d388e99c0e
Cache method call
...
Minor optimization. Cache objc method call in local variable to avoid a
second call
2016-06-28 21:26:35 -07:00
Russell Hancox
2baea9a6b4
Project: Xcode recommended updates.
2016-06-28 17:34:58 -04:00
Russell Hancox
0629625a9a
santad: Move log queue down to BACKGROUND priority.
2016-06-28 17:21:07 -04:00
Russell Hancox
a2d0acc761
santad: sanitizeString: Use cached length value, use lengthOfBytesUsingEncoding: instead of length.
2016-06-28 17:02:37 -04:00
Russell Hancox
28a6bce90f
santad: sanitizeString: Only allocate buffer if necessary.
2016-06-28 16:35:50 -04:00
Russell Hancox
9058192ffe
santad: Use memcpy instead of strncpy where appropriate
2016-06-28 16:23:06 -04:00
Russell Hancox
465b358271
SantaCache: Initialize count_ to 0.
2016-06-28 15:01:57 -04:00
Russell Hancox
7de585fe1d
santad: Replace sanitizeString with simple loop.
...
This is ~70% faster on average and is faster in all cases compared to the regex and the previous method.
2016-06-28 14:54:31 -04:00
Russell Hancox
8479730c95
SNTFileInfo: Catch potential NULL-pointer deref in isScript and isXARArchive.
2016-06-28 14:54:21 -04:00
Russell Hancox
7102e2df4c
SNTFileInfo: More speed-ups in hashing, use RDAHEAD, don't use NOCACHE, catch EINTR.
2016-06-28 14:52:28 -04:00
Russell Hancox
c3bd99ff93
santad: Use serial queues instead of NSLock
2016-06-28 14:51:27 -04:00
Russell Hancox
c560405a46
SNTFileInfo: Speed up hashing - increase chunksize, read directly, use fcntl
...
- Use fcntl to disable cache and issue an advisory read
- Increase default chunk size from 4KB to 256KB
- Use pread to read from file descriptor, rather than make NSData objects
This is ~15% faster.
2016-06-27 17:38:41 -04:00
Russell Hancox
0c0fb28ccc
santad: Make argsForPid more reliable and 33% faster
2016-06-27 15:55:18 -04:00
Russell Hancox
a33fce942c
santad: Use regex to sanitize incoming strings, which is ~6x faster.
2016-06-27 13:11:15 -04:00
Russell Hancox
369cd40ee5
santad: Also optimize file logging by using NSMutableString
2016-06-27 12:51:29 -04:00
Russell Hancox
577b431a41
santad: Put locks around NSMutableDictionary in SNTEventLog and SNTExecutionController.
2016-06-27 12:48:36 -04:00
Russell Hancox
75cf8acd33
Project: Enable more compiler optimizations.
...
Specifically, switch from -Os to -Ofast and enable link-time optimization.
2016-06-27 10:08:38 -04:00
Russell Hancox
d70983962b
Merge pull request #50 from georgekola/gk-optimize-log1
...
Optimize logging by using one pre-allocated NSMutableString
2016-06-27 10:05:46 -04:00
Russell Hancox
ff440984b0
Merge pull request #51 from georgekola/gk-optimize-fprintf
...
Using fwrite as we know the length of string
2016-06-27 09:48:53 -04:00
George Kola
c631155be7
Using fwrite as we know the length of string
...
It is better to use fwrite as it is generally faster and we are not
using any fprintf feature
2016-06-25 18:50:03 -07:00
George Kola
6038930755
Optimize logging by using one pre-allocated NSMutableString
2016-06-25 18:47:05 -07:00
Tom Burgin
9edc119c62
Merge pull request #49 from russellhancox/kernel-hashtable
...
santa-driver: Re-implement caching to avoid OSDictionary.
2016-06-20 13:16:09 -04:00
Russell Hancox
269a94bf03
SantaCache: Updates from PR:
...
+ Added check that per_bucket is >=1 and reduced max from 126 to 64.
+ Added note about cache reset above set method
+ Moved modulo into the hash function
2016-06-20 13:14:50 -04:00
Russell Hancox
7f3e4d7468
santa-driver: Re-implement caching to avoid OSDictionary.
...
OSDictionary is not well-suited to our needs and locking is quite expensive.
This commit:
+ Replaces all uses of OSDictionary with a new SantaCache class, which
is a size-limited array hash table with per-bucket locking. It works with
uint64_t keys, which is perfect for our needs.
+ Adds a unit test for SantaCache.
+ Removes SantaCachedDecision and SantaPIDAndPPID, which only existed
because OSDictionary can only store OSObject subclasses.
+ Removes a lot of locking logic from SantaDecisionManager as the
locking is now handled inside SantaCache and is therefore and is
much more granular.
+ Removes the timed cache expiration for ALLOW decisions. This was
originally to ensure executions were logged regularly but as we're
logging all executions nowadays this is longer particularly useful.
SantaCache's configured load factor and hashing function may need tweaking
over-time but this is already a little faster and uses less memory
than what existed before.
2016-06-17 16:39:39 -04:00
Russell Hancox
eb89891cdd
Merge pull request #48 from tburgin/tom
...
Add checkcache command to santactl
2016-06-17 16:17:38 -04:00
Tom Burgin
038b068370
u_int64_t --> uint64_t. CacheCheck --> RemoveFromCache.
2016-06-17 15:53:54 -04:00
Tom Burgin
d2017a59de
Get back file status from the kernel cache
2016-06-17 12:45:51 -04:00
Tom Burgin
3435b56a84
Add checkcache command to santactl. It will check to see if the vnode id of a file is in the kernel cache
2016-06-17 12:03:26 -04:00
Russell Hancox
a812558d2d
santad: Remove hashes from file write logs
2016-06-16 17:31:40 -04:00
Russell Hancox
aefd85455e
Project: s/OS X/macOS/g
2016-06-16 17:31:40 -04:00
Russell Hancox
e42f1347b7
santad: Use IORegistryEntryFromPath instead of IORegistryEntryCopyFromPath.
...
The latter was only introduced in 10.11. Fixes #47
2016-06-16 17:31:40 -04:00
Russell Hancox
c7442a03d1
santa-driver: Use KAUTH_VNODE_WRITE_DATA instead of KAUTH_FILEOP_CLOSE to catch writes
...
It turns out that the KAUTH_FILEOP_CLOSE action is not used when the kernel automatically closes file descriptors for exiting processes. Some things, like dd, don't close their file descriptors and let the kernel do it for them which we were previously missing.
2016-06-16 17:31:40 -04:00
Russell Hancox
1eda8bdd9d
KernelTests: Add test for overwritten file that was auto-closed
2016-06-16 17:31:37 -04:00
Russell Hancox
c4d0628bdb
santad: Increase detail in TTY messages.
2016-06-13 12:38:55 -04:00
Russell Hancox
d51ae66242
santactl: Only resume in CommandContoller when its required, otherwise leave it to individual command
2016-06-10 12:48:54 -04:00
Russell Hancox
121dde6b8b
KernelTests: Add cache speed test and secondary client rejection test
2016-06-10 12:48:54 -04:00
Russell Hancox
98081b067d
Merge pull request #45 from clburlison/patch-1
...
Update style guide links
2016-06-09 16:53:54 -04:00
Clayton Burlison
8cc9345b42
Update style guide links
2016-06-09 15:52:48 -05:00
Russell Hancox
f7528365b0
Project: Have rake dist make the correct folder name from the version tag
2016-06-07 12:05:17 -04:00
Russell Hancox
7baa1a345e
SNTFileWatcher: Don't call handler on main thread, sleep between handler invocations
2016-06-07 11:40:12 -04:00
Russell Hancox
acf7f4fd52
SantaGUI: Don't reload config file if attributes change (as it will trigger an attribute change)
2016-06-07 11:38:48 -04:00
Russell Hancox
f43e8680b8
santad: Improve SNTFileWatcher, update config file permissions if they change
2016-06-06 16:15:28 -04:00
Russell Hancox
545a6c1b36
santad: Ensure config file reloading is handled on main thread
2016-06-06 11:31:36 -04:00
Russell Hancox
f01fd8c850
Project: Try and fix CocoaPods on Travis
2016-06-03 14:12:03 -04:00
Russell Hancox
c9ec69b0b5
Tests: Fix OCMock misuse in testPreflightDatabaseCounts.
...
The block expects int64_t, not NSNumber. For some reason this didn't fail in Xcode but does from the command-line. Using OCMOCK_VALUE works properly.
2016-06-03 12:43:03 -04:00
Russell Hancox
3640e2c5f0
santad: Add a workaround for PrinterProxy
2016-06-03 11:32:55 -04:00
Russell Hancox
b3659cb456
santad: Don't spawn an event upload if one for this hash happened in the last 10 minutes
2016-06-01 17:20:16 -04:00
Russell Hancox
76284a2916
santad: Log disk mount/unmount events
2016-06-01 17:20:16 -04:00
Russell Hancox
40b1e011bd
SantaGUI/santad: Add option to send bundled binaries to a different detail URL
2016-06-01 17:13:11 -04:00
Russell Hancox
e0bebecd59
santactl/sync: Switch bundle binary uploading
...
Only upload bundle related events when the server asks for it. Do the search inside a bundle for longer
2016-06-01 17:13:11 -04:00
Russell Hancox
8ac0cf6831
santad: Catch exceptions writing to TTY
2016-06-01 17:13:10 -04:00
Russell Hancox
992163206d
Project: Switch to MOLAuthenticatingURLSession Pod.
2016-06-01 17:13:10 -04:00
Russell Hancox
86dd5d8078
santactl/sync: Refactor to reduce repetition, support XSRF tokens and add tests.
...
Move common request generating and performing code into a common
superclass.
Add code to handle XSSI in JSON responses and support XSRF
tokens via headers.
Adds tests, finally.
Changes preflight hostname to be long instead of short
2016-06-01 17:13:02 -04:00
Russell Hancox
932aa9d052
santad: For single-event syncs, use syslog logging
2016-05-25 17:52:53 -04:00
Russell Hancox
5f7f5204ec
santad: Flush cache when switching into lockdown mode
2016-05-25 11:04:53 -04:00
Russell Hancox
a154d23637
SantaGUI: Add customizable notifications when client switches modes.
2016-05-25 11:04:35 -04:00
Russell Hancox
ac2bb9d362
SNTBlockMessage: Move HTML stripping to separate method
2016-05-24 16:32:25 -04:00
Russell Hancox
b918958bfa
santactl/fileinfo: Don't fail if santad isn't running, colorize rule output on a TTY.
2016-05-19 19:08:52 -04:00
Russell Hancox
215df4ffa6
santactl: Always try to get daemonConn but only log and exit if it's marked as required
2016-05-19 19:08:52 -04:00
Russell Hancox
bb28bc5875
SNTXPCConnection: Ensure validation completes before returning remoteObjectProxy
2016-05-19 19:08:52 -04:00
Russell Hancox
a82bc3f712
SNTXPCConnection: Don't track accepted connections, it isn't useful.
2016-05-19 19:08:52 -04:00
Russell Hancox
b3a507014b
Project: Update to CocoaPods 1.0
2016-05-19 19:08:52 -04:00
Russell Hancox
49c5e35a14
santad: Improve TTY message output.
...
Bold Santa title, replace <br/> with \n, add link to EventDetailURL
2016-05-19 19:08:03 -04:00
Russell Hancox
869ed33bd4
santactl/fileinfo: Show when code signature is adhoc
2016-05-03 14:15:27 -04:00
Russell Hancox
0c4a9be482
santad: Write message to TTY when blocking execution
...
Sometimes the GUI isn't running. Sometimes the user is using SSH. Either way, printing a message to the TTY of the parent of the just denied process is user-friendly.
2016-04-28 16:07:36 -04:00
Russell Hancox
4410ec575a
santactl/fileinfo: Include rule state info
2016-04-28 16:07:24 -04:00
Russell Hancox
e3b92fc948
santactl/sync: Upload rule counts in preflight
2016-04-28 16:07:04 -04:00
Russell Hancox
4ca4692a67
santactl/flushcache: Disable flushcache in release builds.
...
It really isn't a useful command outside of development and its existence
seems to confuse people.
2016-04-28 15:00:10 -04:00
Russell Hancox
c1284d3c23
Project: Re-organize file structure, again
2016-04-28 14:11:50 -04:00
Russell Hancox
c8c0eadf72
santactl/fileinfo: Make file type output more accurate for executables
2016-04-28 10:54:54 -04:00
Russell Hancox
f4bbc8abc7
santactl/sync: Log successful stages as debug
2016-04-27 14:41:50 -04:00
Russell Hancox
a0f6ea57f8
SantaGUI: If SilencedNotifications key doesn't exist, create it
2016-04-27 14:19:25 -04:00
Russell Hancox
88d21a07ac
santad, santactl/sync: Include Bundle Path in event upload data.
2016-04-26 17:35:29 -04:00
Russell Hancox
88e3a606a0
SNTFileInfo: Use CFBundleDisplayName if available
2016-04-26 17:34:29 -04:00
Russell Hancox
fff693c3f0
santad: Close the FMResultSet left after locking db to prevent spurious messages.
2016-04-26 17:33:43 -04:00
Russell Hancox
1e8d792d39
santa-driver: Flush vnode-pid map periodically.
2016-04-15 17:10:14 -04:00
Russell Hancox
dfb149ac6a
santa-driver: Try to get uid/gid from credential if available
2016-04-15 17:05:50 -04:00
Russell Hancox
b5cfc92261
santactl/sync: Check that singleevent took an argument
2016-04-11 17:52:03 -04:00
Russell Hancox
079f3e3868
santactl/sync: Re-organize 'main' to bail earlier if config is invalid
2016-04-11 17:51:47 -04:00
Russell Hancox
15a6d58785
santactl/sync: Add long help, document --clean flag
2016-04-11 17:51:08 -04:00
Russell Hancox
a404498f8a
santactl help: If command doesn't have long help, use short help.
2016-04-11 17:40:58 -04:00
Russell Hancox
0d133e2df6
Project: Enable code coverage for "All" test target
2016-04-11 17:40:00 -04:00
Russell Hancox
488b28bfd5
SantaGUI: Log to syslog
2016-04-11 15:15:03 -04:00
Russell Hancox
0fceb7b2e1
SantaGUI: Post notifications to main thread using dispatch_async
2016-04-11 15:14:52 -04:00
Russell Hancox
a79d1a98e7
santactl/fileinfo: Only print "Signing Chain" header if certificates array isn't empty
2016-04-08 16:21:15 -04:00
Russell Hancox
43434fd445
santactl/fileinfo: Don't crash on <512b files
2016-04-08 16:20:49 -04:00
Russell Hancox
492e523884
Project: Move enums in SNTCommonEnums to NS_ENUM, part 2
2016-04-08 15:41:26 -04:00
Russell Hancox
3d1fdb7a2b
Project: Move enums in SNTCommonEnums to NS_ENUM, part 1
2016-04-08 15:17:32 -04:00
Russell Hancox
95a4bf0ec7
santad: Ensure launchd/santad rules are whitelisted on every startup
...
If they weren't already and the database is not new, log an error.
2016-04-08 15:16:12 -04:00
Russell Hancox
0d4f261e14
santad: Have SNTRuleTable return NSError when failing to add rules so user can see why
2016-04-08 15:07:43 -04:00
Russell Hancox
e96288b41b
santad: Exclusive-lock rules.db when opening
2016-04-08 12:11:08 -04:00
Russell Hancox
deda1abcf7
SantaGUI: Detect value type for silenced notifications to prevent crashes from bad plist
2016-04-08 10:32:48 -04:00
Russell Hancox
ee79d75483
santad: Set ThrottleInterval to 1s.
2016-04-07 17:03:49 -04:00
Russell Hancox
0e9e445ddf
SantaGUI: Reconnect when listener loses a client.
...
Also move WEAKIFY/STRONGIFY macros into their own header.
2016-04-07 17:03:09 -04:00
Russell Hancox
e64720bcd9
Project: Tell Travis to use xcode7
2016-04-07 15:33:10 -04:00
Russell Hancox
6e27590b57
SantaGUI: Add 'dismiss for a day' checkbox.
...
Fixes #39 .
2016-04-07 14:40:33 -04:00
Russell Hancox
916c3c7a2a
SNTXPCConnection: Re-add forced establishment of clients, better tests.
...
Previously SNTXPCConnection had two-way validation which, due to the method of
implementation, forced a client to connect to a server straight away. Once that
was removed, it meant invalidationHandlers aren't called if either end dies
before the connection is established.
This also puts back the acceptedHandler, which can be used to know when the
connection has finished being established (particularly useful on the server
side), updates the __weak stuff to use WEAKIFY/STRONGIFY macros (and now
actually switch them back to strong within each block) and make the
tests a lot better by using in-process anonymousListener's rather than
lots of mocking.
2016-04-06 23:25:55 -04:00
Russell Hancox
8a5fde8ceb
LogicTests: Stop instrumenting program flow, it causes 100s of log lines during tests
2016-04-06 17:30:08 -04:00
Russell Hancox
f5bd9bde7f
SantaGUI: Use ultralight system font for title of message window
2016-04-06 15:23:18 -04:00
Russell Hancox
b987f61924
SantaGUI: Fix centering constraint for publisher label
2016-04-06 15:22:21 -04:00
Russell Hancox
482b51a2f9
santactl/sync: Fix userAgent not being set
2016-04-05 14:52:48 -04:00
Russell Hancox
93f2078eda
SantaGUI: Fix some constraint bugs in MessageWindow
2016-04-04 18:15:20 -04:00
Russell Hancox
158ae11e61
Tests: Remove old stuff from XPCConnectionTest
2016-04-01 17:53:37 -04:00
Russell Hancox
d282388266
santactl/sync: Release certificate after use
2016-04-01 17:31:24 -04:00
Russell Hancox
6ecdfcba38
santactl/sync: If unable to find client identity, let default handling occur.
2016-04-01 09:54:15 -04:00
Russell Hancox
88dc8a547e
README: Add video of block event, as an example
2016-03-31 13:51:35 -04:00
Russell Hancox
58e24b3c11
santagui: Remove old comment, don't activateIgnoringOtherApps twice.
2016-03-31 09:27:38 -04:00
Russell Hancox
5f1b3a2284
santad: Initialize ppath to (null) before calling proc_pidpath
2016-03-30 16:12:52 -04:00
Russell Hancox
31be2584f2
Conf: Use facility instead of sender for santad/santactl logs
2016-03-29 18:00:30 -04:00
Russell Hancox
a2311e5128
santad: Attempt to load santa-driver before connecting to it
2016-03-29 14:08:29 -04:00
Russell Hancox
e94d42187b
santactl/sync: Don't log successful stages
...
Currently a standard succesful sync will print 4 success lines, one for
each stage that was run, followed by a line that the entire sync was
successful. As each stage will also log if it did anything, these
success messages aren't useful. Instead, just log if they failed.
2016-03-25 16:44:06 -04:00
Russell Hancox
2b99cc3f62
Logging: strncmp for binaryName
2016-03-25 14:20:46 -04:00
Russell Hancox
cb7f782893
santad: Fix typo in cert protection error
2016-03-23 17:45:08 -04:00
Russell Hancox
d5a0f8a74b
Logging: Remove extraneous ;
2016-03-23 16:46:38 -04:00
Russell Hancox
2ebd71df24
santactl/sync: Fix single-event upload with extra arguments
2016-03-23 16:46:21 -04:00
Russell Hancox
479203f47c
santa-driver: Style and type cleanups, inlining some small functions
2016-03-22 15:38:48 -04:00
Russell Hancox
022b9209d9
LogicTests: Delete resources that aren't used anymore.
2016-03-22 15:36:56 -04:00
Russell Hancox
771c2c868f
SantaGUI: Increase contrast of user-defined block window messages.
2016-03-21 18:00:02 -04:00
Russell Hancox
5285a728b1
santa-driver: Don't record fileop events from santad
2016-03-21 16:15:20 -04:00
Russell Hancox
41e6583920
SantaGUI: Improve accessiblity of message dialog
...
+ VoiceOver: add more useful label descriptions
+ VoiceOver: skip some fields
+ Color: increase contrast
2016-03-21 13:49:50 -04:00
Russell Hancox
cbb60b3a05
SantaGUI: Have daemon reply when setting notification listener so GUI can ensure it connected
2016-03-17 17:55:31 -04:00
Russell Hancox
cf1d1e3557
santa-driver: Better handle secondary volumes
2016-03-15 15:10:41 -04:00
Russell Hancox
8f05ee7d79
santa-driver: Rename some action types
2016-03-15 12:53:44 -04:00
Russell Hancox
641bd07c0b
Project: New icon
2016-03-14 16:38:07 -04:00
Russell Hancox
7d9dc0a853
Tests: Fix kernel tests
2016-03-14 16:13:28 -04:00
Russell Hancox
e0a46be1b7
santactl/fileinfo: When resolving path, store bundle ref if possible.
2016-03-14 12:55:20 -04:00
Russell Hancox
fd82c67b56
santactl/fileinfo: Add disk image file type
2016-03-14 12:55:20 -04:00
Russell Hancox
f0a83b6f19
santactl/fileinfo: Add simultaneous hashing.
2016-03-14 12:52:25 -04:00
Russell Hancox
736b45bb46
SNTXPCConnection: Remove client validation of server
...
Now that santad<->SantaGUI work more like the client/server they are,
having an SNTXPCConnection 'client' validate its server is no longer necessary.
Having the validation in the 'server' only simplifies the code.
2016-03-11 17:06:43 -05:00
Russell Hancox
8eae9b7cb7
santad/SantaGUI: Refactor GUI<>santad connection logic and add queuing.
...
Instead of having santad create a listener for SantaGUI to connect to
and then reverse the client-server relationship, have SantaGUI create an
anonymous listener that it sends to santad using the control interface.
Also add a queue for notifications so that blocks that occur while
SantaGUI isn't running will show up once it starts.
2016-03-11 14:58:12 -05:00
Russell Hancox
0aa2d2c613
santactl/fileinfo: Print useful info when codesign validation fails
2016-03-10 18:23:21 -05:00
Russell Hancox
ad43db10f2
Tests: Attempt to fix FileWatcher tests
2016-03-10 17:17:02 -05:00
Russell Hancox
606f507422
Project: Update CocoaPods
2016-03-10 16:34:08 -05:00
Russell Hancox
36b7778883
LogicTests: Fix SNTXPCConnection test
2016-03-10 15:53:40 -05:00
Russell Hancox
7b032a6a73
Project: Travis, build in local dir instead of DerivedData
2016-03-10 15:53:27 -05:00
Russell Hancox
0e00237e44
Project: Add clang-format file, apply most of the fixes it suggested
2016-03-10 15:53:06 -05:00
Russell Hancox
e9ec9a7d7f
santad: Log quarantine URL if one exists.
...
Fixes #34
2016-03-10 13:24:31 -05:00
Russell Hancox
6834507f3a
XPC: Allow multiple XPC clients to a server
2016-03-10 12:21:49 -05:00
Russell Hancox
90e99255b1
santa-driver/santad: Split decision making and logging onto 2 data queues
...
This resolves an issue where the data queue can be overwhelmed by logging requests and fail to respond to decisions for an extended period of time.
2016-03-10 12:21:17 -05:00
Russell Hancox
b6487000a3
SNTFileInfo: Use NSBundle to find executable path in bundles.
...
Fixes #37
2016-03-10 12:19:52 -05:00
Russell Hancox
18ce2f72ed
Config: Fix config reloading
2016-03-10 12:18:05 -05:00
Russell Hancox
8a2d04bf69
santactl/rule: Fix print error
2016-03-09 15:41:27 -05:00
Russell Hancox
a210ffecec
Logging: Create one ASL client per-thread.
2016-03-07 17:31:31 -05:00
Russell Hancox
aff96e8144
Config: Warn if SyncBaseURL is an invalid URL
2016-03-07 12:36:00 -05:00
Russell Hancox
3d4c639bb4
santactl/sync: Fix logic when auto-detecting certificates.
...
Now, instead of assuming an identity can be found that the server asked
for, look for a chain of certs resulting in an identity that matches the
server's request.
2016-03-07 12:32:32 -05:00
Russell Hancox
d507e79505
santad: Fix quarantine data collection.
...
This previously didn't work for root (santactl fileinfo was fine)
because quarantine data is per-user.
2016-03-07 12:30:36 -05:00
Russell Hancox
d3e242ff42
Project: Update Travis settings
2016-02-05 19:37:11 -05:00
Russell Hancox
df7616403d
SantaGUI: Show entire SHA-256 in fixed-width font
2016-01-14 16:51:29 -05:00
Russell Hancox
962b15517a
SantaGUI: Add a transparent button to be the first responder, so tabbing the dialog works.
2015-12-28 17:24:29 -05:00
Russell Hancox
d295f2391f
santactl/sync: In --debug log the full NSError for failed requests
2015-12-15 12:36:07 -05:00
Russell Hancox
c042222eea
santad: Add user/group info to file changelogs also
2015-12-14 22:32:59 -05:00
Russell Hancox
63f6596bc2
santactl: Rename binaryinfo -> fileinfo.
2015-12-14 18:09:40 -05:00
Russell Hancox
d8a8aba0ea
SNTFileInfo: Move machoType method to binaryinfo command, add XAR archive detection.
2015-12-14 17:25:32 -05:00
Russell Hancox
d9d9682029
santactl/sync: Let related-binary search take up to 5s
2015-12-14 16:37:19 -05:00
Russell Hancox
4a27a8ac70
Rakefile: Use Xcode to figure out where built products went, to avoid relying on particular Xcode settings.
2015-12-14 16:36:11 -05:00
Russell Hancox
32857ff304
Project: Apply latest Xcode recommendations
2015-12-14 16:35:34 -05:00
Russell Hancox
375bfd3862
santa-driver: Put locks around vnode_pid_map, use an OSObject subclass to store PID/PPID.
...
Put a R/W lock around vnode_pid_map_ to prevent use-after-free.
Create SantaPIDAndPPID to use instead of creating and then scanning strings.
Also rename SantaMessage -> SantaCachedDecision, as that's what it is.
2015-12-14 16:34:38 -05:00
Russell Hancox
9430c41b8a
santad: Include user and group names in execution logs
2015-12-11 12:58:09 -05:00
Russell Hancox
9b342e146a
santactl/sync: Include code sign info with related executables and encode to dict.
2015-12-10 17:37:22 -05:00
Russell Hancox
e5685f2959
santad: Don't try to add empty argument to array when processing execution arguments
2015-12-10 17:02:11 -05:00
Russell Hancox
4150feece2
santactl/sync: When uploading events for bundles, look for other bundled executables.
...
Many application bundles have related helper tools, which will individually need to be whitelisted unless they're covered by a certificate. To help make user's lives easier, when an event is triggered for a binary inside a bundle look for other executables in the same bundle and upload an event for those too (with an obvious tag) so that the server can let the user vote to whitelist all the binaries together.
2015-12-10 17:01:49 -05:00
Russell Hancox
6879ec5deb
santa-driver: in DecisionManager free locks before anything else
2015-12-10 16:56:13 -05:00
Russell Hancox
28ad00ffad
SantaGUI: Split block messages into unknown and banned.
...
This is so that a message can be configured for banned executables without having to provide a custom message for every single one.
2015-12-10 12:13:52 -05:00
Russell Hancox
bf51049fbf
santa-driver: Save pid/ppid from VFS context when decision making for use when logging
...
Previously the execution logging from fileop didn't work when using posix_spawn as proc_selfpid/proc_selfppid still refer to the process calling posix_spawn. We can get the correct pid/ppid from the vfs_context in the vnode scope but we can't log executions from there as the arguments end up being wrong. Instead, save the vnode_id->pid/ppid mapping in the vnode scope and use that in the fileop scope for logging.
2015-12-10 12:12:38 -05:00
Russell Hancox
36189e9122
santad: Update SNTFileInfo to always get strings from bundle Info.plist data.
...
Also perform a one-time update of any events created before this change.
2015-12-04 13:09:56 -05:00
Russell Hancox
4c747463ac
santad: Separate execution requests and logging into separate queues with appropriate priorities.
2015-12-04 12:39:26 -05:00
Russell Hancox
b4b1fbb9e6
santad: Run watchdog thread loop once before sleeping
2015-10-31 14:01:44 -04:00
Russell Hancox
209eaff3c6
SNTFileInfo: Embed SHA hashing loop in an autoreleasepool to avoid temporary RAM spikes
2015-10-31 13:45:47 -04:00
Russell Hancox
c3f70703fd
santactl/status: Expose peak CPU/RAM use from santad.
2015-10-29 16:20:57 -04:00
Russell Hancox
f2967e7b94
santad: Switch watchdog CPU counter from rusage to task_info, capture peak CPU/RAM use.
2015-10-29 16:20:25 -04:00
Russell Hancox
77c46b5c43
SNTFileInfo: switch from NSData to NSFileHandle.
...
This seems to work much better than NSData with either mapped (SIGBUS when file is deleted) or uncached (ballooning memory use) reading.
2015-10-29 16:17:12 -04:00
Russell Hancox
5fda5bc081
santactl/binaryinfo: Only print bundle lines if bundle info is present
2015-10-29 12:35:27 -04:00
Russell Hancox
33a7b38c6a
SNTFileInfo: check for NULL ptrs when parsing for embedded plist
2015-10-27 18:35:11 -04:00
Russell Hancox
2a7c0bd58c
SNTFileInfo: Go back to using mmap, uncached read balloons memory use
2015-10-27 18:08:16 -04:00
Russell Hancox
86e4d0db0f
santactl: Use yyyy instead of YYYY in NSDateFormatter
2015-10-27 17:58:23 -04:00
Russell Hancox
1310fea64d
santa-driver: Only try to use/release proc_t if proc_find found it.
2015-10-22 11:29:49 -04:00
Russell Hancox
382f5a5bb9
Merge pull request #30 from stephanemoore/patch-1
...
Fix application deadlock.
2015-10-22 08:39:54 -04:00
Stephane Moore
ff3303e312
Fix application deadlock.
...
Fix application deadlock by asynchronously dispatching to the main queue in -[SNTAppDelegate createConnection].
2015-10-21 17:45:59 -07:00
Russell Hancox
6ce0ef62e9
SantaGUI: Ensure connection is only made on main thread
2015-10-15 18:31:07 -04:00
Russell Hancox
2a03341fb6
santad: Add configuration option for turning off PAGEZERO protection.
2015-10-15 18:10:00 -04:00
Russell Hancox
77a55dde56
santad: Catch errors archiving/unarchiving SNTStoredEvent, delete events that fail
2015-10-15 18:09:46 -04:00
Russell Hancox
1a71cdff4a
santad/santactl: Report back if rule adding/removing failed rather than assuming success.
2015-10-15 12:15:38 -04:00
Russell Hancox
63f65c51c3
SNTFileInfo: Use NSURL method for getting quarantine data, don't try to use <10.10
2015-10-15 12:14:53 -04:00
Russell Hancox
75de2526c1
santactl/binaryinfo: Only print quarantine fields if they're not empty
2015-10-14 23:37:16 -04:00
Russell Hancox
6fc4b7b120
santactl/binaryinfo: Increase key padding +1
2015-10-14 23:31:50 -04:00
Russell Hancox
7b8068139b
santad, santactl/sync: Collect and upload quarantine data with events.
2015-10-14 23:02:20 -04:00
Russell Hancox
ced7de884f
santactl/binaryinfo: Add quarantine data to output, add print method to simplify changes.
2015-10-14 20:12:04 -04:00
Russell Hancox
bc51c9f25b
SNTFileInfo: Add com.apple.quarantine data accessors for downloaded files.
2015-10-14 20:11:32 -04:00
Russell Hancox
c412e8b9a7
SNTFileInfo: Fix embedded plist parsing, extract into separate method
2015-10-14 20:07:50 -04:00
Russell Hancox
4e0ff224b6
Project: Remove SNTCertificate/SNTCodesignChecker, use new CocoaPod versions
2015-10-12 17:23:42 -04:00
Russell Hancox
61c817c9cb
Tests: Fix SNTRuleTable tests
2015-10-09 15:14:15 -04:00
Russell Hancox
2ed384f677
santactl/sync: Only update client mode at end of sync
2015-10-09 13:12:25 -04:00
Russell Hancox
7a851cb080
santad: Typo in comment
2015-10-08 19:54:23 -04:00
Russell Hancox
13aa889633
SNTFileInfo: Add fileSize method, use it in SNTEventLog
2015-10-08 17:57:02 -04:00
Russell Hancox
5c3fba5f41
santad: Prevent user/server from accidentally deleting rules that would kill the system.
2015-10-08 17:45:39 -04:00
Russell Hancox
145d9216bf
Project: Don't bother with "xcodebuild clean" for Rakefile clean rule
2015-10-08 17:43:59 -04:00
Russell Hancox
84f46de940
Driver/Daemon: Collect process name in-kernel for file events, parent name for exec requests. For file events log process name and path, if possible.
2015-10-05 17:09:33 -04:00
Russell Hancox
cb9a5b6fbe
santactl: Add --json option to both status and version commands.
2015-10-05 14:15:10 -04:00
Russell Hancox
d9718faba4
SNTFileInfo: Return non-embedded dict if locating embedded fails
2015-10-05 14:13:40 -04:00
Russell Hancox
5472ff41f0
santactl/status: Show timezone as UTF offset rather than name
2015-10-05 13:00:55 -04:00
Russell Hancox
4f94c3b310
santactl/status: Use fixed format for sync date output but still include TZ.
2015-10-03 19:57:19 -04:00
Russell Hancox
420f1efa50
santad: For file write events, print process name as well as pid.
2015-10-03 18:16:06 -04:00
Russell Hancox
5d2ce17817
santactl/status: When printing last sync date, use local timezone and locale settings
2015-10-03 18:15:41 -04:00
Russell Hancox
053cb823a1
santa-driver: Change C++ std to C++11
...
This is mostly just to quiet the warning about override not being set on getMetaClass, which is part of the OSDeclareDefaultStructors macro.
2015-10-03 18:15:11 -04:00
Russell Hancox
18a7992372
Config: Add more protected keys, only protect if a server is set
2015-10-02 16:35:30 -04:00
Russell Hancox
9e935f5bfb
GUI: Include CFBundleName as first item in UI, if available.
2015-10-01 18:53:58 -04:00
Russell Hancox
9f49e24dc5
santad: Update file changes logging to use a configurable regex
2015-10-01 17:57:07 -04:00
Russell Hancox
dbf60f16bc
santactl/sync: Fix typo causing clean sync on every run
2015-09-30 16:00:39 -04:00
Russell Hancox
0f3a228788
santactl/rule: Make help text a little clearer
2015-09-28 17:46:30 -04:00
Russell Hancox
d905f5b095
santactl/rule: Add ability to add certificate rules. Re-write argument parsing.
2015-09-28 17:20:34 -04:00
Russell Hancox
1c310486c7
santactl/status, santad: Show watchdog events in status output
2015-09-28 16:41:33 -04:00
Russell Hancox
4b01c6da91
santactl/status: Report some sync statuses.
2015-09-28 16:14:45 -04:00
Russell Hancox
5782378616
santactl/sync, santad: Add clean sync and last success options, use to initiate clean sync when database is re-created
2015-09-28 16:11:17 -04:00
Russell Hancox
64c97ebfba
santad: If database open fails, delete and re-create.
2015-09-28 16:09:05 -04:00
Russell Hancox
5fd4d56b00
santactl/sync: Add ability to sync blacklist regex
2015-09-28 16:08:11 -04:00
Russell Hancox
e658b5167e
Project: Update README a little
2015-09-24 18:15:03 -04:00
Russell Hancox
cea698d720
SNTCertificate: Add serialNumber and isCa properties.
2015-09-21 17:48:47 -04:00
Russell Hancox
c07f41c312
santad: Stop closing stdout/stderr
2015-09-21 15:59:32 -04:00
Russell Hancox
a837aa0334
santactl/status: Use dispatch group instead of sleeping
2015-09-21 15:59:20 -04:00
Russell Hancox
0050724e22
SNTXPCConnection: Use semaphore instead of variable & sleep.
2015-09-21 15:58:54 -04:00
Russell Hancox
adac4ac75c
SantaGUI: windowWillClose and orderOut are being marked nonnull
2015-09-21 15:51:36 -04:00
Russell Hancox
718f37024a
SNTConfigurator: Use NSPropertyListImmutable instead of kCFPropertyListImmutable
2015-09-21 15:51:03 -04:00
Russell Hancox
fcb3008539
Rakefile: Handle xcpretty missing better
2015-09-21 15:50:22 -04:00
Russell Hancox
8faf3eec53
santactl/sync: Validate incoming rules better
2015-09-16 15:59:50 -04:00
Russell Hancox
2bc3df3255
santad: Stop using mmap while reading files, it can be forced to crash by truncating the file.
2015-09-16 15:52:49 -04:00
Russell Hancox
5b0e550c85
santad: Add BlacklistRegex option, log a useful explanation when decision is made by scope
2015-09-16 14:19:33 -04:00
Russell Hancox
e52211abf2
santa-driver: Release proc_t acquired with proc_find.
2015-09-15 17:23:07 -04:00
Russell Hancox
9b6f231b34
santa-driver: Check for daemon earlier in FetchDecision
2015-09-14 18:20:33 -04:00
Russell Hancox
b71223705f
santa-driver: If daemon fails to provide a response, print the path of the files it failed on
2015-09-14 18:19:56 -04:00
Russell Hancox
863fbe69bb
santa-driver: Simplify AddToCache's locking
2015-09-14 18:19:28 -04:00
Russell Hancox
2d46279961
santa-driver: Use 0 as the client_pid when not connected
2015-09-14 18:18:51 -04:00
Russell Hancox
0d0207d77f
santa-driver: lck_attr and lck_grp_attr need freeing
2015-09-14 18:18:20 -04:00
Russell Hancox
00bbade34f
santa-driver: ClientConnected() should check if process is exiting/dying.
2015-09-14 18:08:57 -04:00
Russell Hancox
682f741ddc
santad: Separate uid/gid fields in log.
2015-09-11 11:35:14 -04:00
Russell Hancox
3d2744c9e3
santactl/sync: Use lib compression for both preflight and event upload phases
2015-09-09 17:13:38 -04:00
Russell Hancox
cc286dcf16
santad: Fix event storage
2015-09-09 17:13:21 -04:00
Russell Hancox
27c6e2a7bd
santa-driver: Don't send file mod messages unless daemon is connected
2015-09-09 14:22:31 -04:00
Russell Hancox
72c7a67ad5
Logging: Limit kernel messages to those actually sent by the kernel
2015-09-09 13:34:30 -04:00
Russell Hancox
8fe5e4e238
Logging: Update logMessage to use asl directly, adding a facility
2015-09-09 11:56:53 -04:00
Russell Hancox
02f23d0c62
santad: Add LogFileChanges option, remove LogAllEvents, fix key protection
2015-09-09 11:56:31 -04:00
Russell Hancox
ff6f4d4152
Common: Update SNTRule and SNTStoredEvent isEqual/hash/description methods.
2015-09-08 16:35:50 -04:00
Russell Hancox
2242f46792
Conf: Don't roll logs too regularly
2015-09-08 16:34:38 -04:00
Russell Hancox
642b5609b2
Tests: Fix tests after adding file write logging
2015-09-08 16:34:21 -04:00
Russell Hancox
98878f3e7c
Kernel/santad: Add file write logging and exec argv's.
...
This necessitated a large refactoring of a bunch of code, hence being a large commit. This moves all event logging into a separate class, moves logging of executions to be from FileOp events rather than Vnode events (so we can get the argv after the execve call has finished) and implements the logging of cached execs.
2015-09-08 16:33:59 -04:00
Russell Hancox
3eb28deccf
santa-driver: Verify input args are not nullptr's.
2015-09-08 14:41:34 -04:00
Russell Hancox
761a852156
santad: Always request sizeof(santa_message_t) regardless of previous message size
2015-09-08 14:40:50 -04:00
Russell Hancox
f4ddb11c1f
santad: Force database permissions on startup
2015-09-08 14:33:25 -04:00
Russell Hancox
75158c11ea
santa-driver: Don't create santa_message_t structs on the stack.
...
Also rename userId field to uid and add gid field to match
2015-08-31 15:21:25 -04:00
Russell Hancox
fe96706b0c
KernelTests: Always unload kext and cleanup tmp after running
2015-08-27 18:03:40 -04:00
Russell Hancox
b87482e824
santad: Move page zero check to after binary/cert rule checks so 'bad' binaries can be whitelisted and notifications will be generated when they're blocked
2015-08-27 15:25:13 -04:00
Russell Hancox
a9ba99dc79
SNTFileInfo: Re-write mach header parsing
2015-08-27 15:25:12 -04:00
Russell Hancox
8884e92a1a
Tests: Add test for missing/bad pagezero
2015-08-27 15:25:12 -04:00
Russell Hancox
6385514257
santad: Block 32-bit binaries with missing/invalid page zero
2015-08-27 15:25:12 -04:00
Russell Hancox
d3ad47022b
Conf: Change log time format to ISO8601Z.3
2015-08-27 15:25:01 -04:00
Russell Hancox
138d4b507d
SantaGUI: Fix fast-user-switching support.
2015-08-18 17:00:38 -04:00
Russell Hancox
3c0b195bcf
Update travis.yml to add Cocoapod caching
2015-08-07 17:27:15 -04:00
Russell Hancox
d941a71bb5
Package: Forcibly make santactl symlink
2015-08-05 16:19:37 -04:00
Russell Hancox
08697d9daf
KernelTests: Fix lots-of-executions test
2015-08-05 15:59:41 -04:00
Russell Hancox
8959871988
Rakefile: Clean before dist
2015-08-05 15:59:34 -04:00
Russell Hancox
bb43a04992
SNTFileInfo: Always try to get embedded info.plist before bundle plist
2015-08-05 12:01:05 -04:00
Russell Hancox
5f93dc7991
Project: Stop trying to be smart with logging destinations
2015-08-04 18:13:04 -04:00
Russell Hancox
9be8eb223c
KernelTests: Stop blocking ps while tests are running, block ed instead.
2015-08-04 17:13:35 -04:00
Russell Hancox
e8b6c47e0f
KernelTests: Remove timeout, chdir to tmp dir before executing, add lots-of-binaries test
2015-08-04 17:13:20 -04:00
Russell Hancox
697d442afb
Project: Update Mac OS X -> OS X.
2015-08-04 13:54:55 -04:00
Russell Hancox
5dbd261b5a
GUI: Allow selection of all fields and add ppid to end of parent name.
2015-08-04 13:53:47 -04:00
Russell Hancox
9bc94ca658
GUI: Add defaultBlockMessage configuration
2015-08-04 13:52:44 -04:00
Russell Hancox
4404b5f849
santactl/sync: Default to ephemeralSessionConfiguration to avoid caching
2015-08-03 18:03:51 -04:00
Russell Hancox
6a4b73b8a9
santa-driver: Before posting request to santa, ensure it exists in the cache already
2015-08-03 18:02:57 -04:00
Russell Hancox
b6146224b3
santa-driver: Make "cache too large" log info instead of debug
2015-08-03 18:02:34 -04:00
Russell Hancox
e3593c1b0c
santad: fclose stderr for santactl sync too
2015-07-22 16:35:25 -04:00
Russell Hancox
90a2f10da6
santactl/rule: Print usage when args are bad, catch missing long arguments.
...
Fixes #20
2015-07-22 13:48:43 -04:00
Russell Hancox
60bab1c004
Rakefile: Don't miss santad/santactl dSYMs
2015-07-21 15:22:14 -04:00
Russell Hancox
0898940d0b
santad: Pass santa_message_t straight to SNTExecutionController
2015-07-21 14:52:53 -04:00
Russell Hancox
38b65b0ca4
santad: Move uid->username lookup to where it's actually used
2015-07-21 14:52:53 -04:00
Russell Hancox
d36ce5eefc
KernelTests: Update comments, add extra write-to-cached-file check
2015-07-21 14:52:48 -04:00
Russell Hancox
ff99ab9cfe
santad: loggedInUsers:sessions: style clean-up
2015-07-21 14:22:42 -04:00
Russell Hancox
64995367c3
santad: Simplify eventStateForDecision:type:
2015-07-21 14:22:42 -04:00
Russell Hancox
c67f0ffc11
santad: Don't initiate event upload if syncing isn't enabled
2015-07-21 14:22:42 -04:00
Russell Hancox
d5403ae112
santa-driver: Move vnode-id and vnode-id-str fetching to avoid duplication
2015-07-21 14:22:42 -04:00
Russell Hancox
d21d64cbfe
santad: Don't print log format every startup
2015-07-21 14:22:42 -04:00
Russell Hancox
347ee3c4f5
Merge pull request #19 from samsymons/podfile-fix
...
Fix an installation error with CocoaPods.
2015-07-21 14:20:41 -04:00
Sam Symons
77ed1cca29
Fix an installation error with CocoaPods.
...
In the later versions of CocoaPods, the `project` method was replaced
with `pods_project`. This was preventing the post_install hooks from
being run.
2015-07-21 10:41:03 -07:00
Russell Hancox
cfac7dbb37
Logging: Fix syslog logging and file rotation
2015-07-17 17:43:04 -04:00
Russell Hancox
f27d72f3f9
Tests: Update tests for new error argument to SNTFileInfo
2015-07-17 12:59:48 -04:00
Russell Hancox
3cd93b287e
santa-driver: Simplify kauth callbacks, moving most of the logic to methods on SDM
2015-07-16 22:33:24 -04:00
Russell Hancox
5e5605881b
santa-driver: remove client_proc, use ClientConnected() instead
2015-07-16 22:32:17 -04:00
Russell Hancox
a9b48610df
santa-driver: Clear data queue if client crashes. Restore dataqueue lock, the docs lied.
2015-07-16 22:31:31 -04:00
Russell Hancox
3cca09a48c
santa-driver: Remove request loops in GetFromDaemon
...
For large binaries it poses a risk of being overrun and as santad is working pretty reliably it's almost certainly not necessary anymore.
2015-07-15 18:55:05 -04:00
Russell Hancox
3134448eac
santad: Close password database after getpwuid
2015-07-15 18:25:26 -04:00
Russell Hancox
663bdf945b
KernelTest: Update for EACCES -> EPERM change
2015-07-15 18:24:13 -04:00
Russell Hancox
e94d1175e7
santad: If file can't be hashed, log an error and allow execution.
2015-07-13 11:20:39 -04:00
Russell Hancox
e20b761965
santa-driver: Change rejection errno to EPERM
2015-07-01 18:55:04 -04:00
Russell Hancox
90c64812d0
santad: close stdout before running santactl sync
2015-07-01 17:22:40 -04:00
Russell Hancox
08d368fc49
santad: Rename watchdog thread with reverse-dns name
2015-06-26 16:29:46 -04:00
Russell Hancox
39385f0bff
santad: Put an autoreleasepool inside the watchdog thread.
2015-06-26 13:12:46 -04:00
Russell Hancox
8bc3418ce1
santad: Watchdog: only log memory use if it increased since last check. Increase threshold to 250MB
2015-06-25 17:58:17 -04:00
Russell Hancox
a145700398
Rakefile: Properly unload/load GUI during build.
2015-06-25 17:52:59 -04:00
Russell Hancox
409535e617
santactl: Style, indenting.
2015-06-25 11:04:57 -04:00
Russell Hancox
f625016efe
santactl/sync: When rejecting a redirect, cancel the task to avoid hanging the task until timeout
2015-06-24 17:32:35 -04:00
Russell Hancox
f4c94ab1d7
santactl/sync: Failed log upload should not fail whole sync
2015-06-24 17:21:54 -04:00
Russell Hancox
8234706dd3
santad: Vacuum event database after removing multiple events.
2015-06-24 11:58:38 -04:00
Russell Hancox
1a31dc870f
Merge branch 'whitelistscope'
...
* whitelistscope:
Common: Rename kWhitelistDirsKey/WhitelistDirs to kWhitelistRegexKey/WhitelistRegex
santad: NSRegularExpression doesn't work with XPC.
santactl/sync: Sync whitelist regex
santad: In a rule vs scope, rule wins.
santad: Move whitelisted dirs feature to using regex instead of array. Faster and more flexible.
santactl: Update help/error wordings
santad: Add whitelisted directory support
2015-06-23 18:31:03 -04:00
Russell Hancox
a1712858c5
Common: Rename kWhitelistDirsKey/WhitelistDirs to kWhitelistRegexKey/WhitelistRegex
2015-06-23 18:30:42 -04:00
Russell Hancox
0059e768b9
Common: Add __NSString__ attribute to logMessage to catch format string bugs. Fix some warnings that found.
2015-06-23 18:10:46 -04:00
Russell Hancox
4fe1550bd2
santad: NSRegularExpression doesn't work with XPC.
2015-06-23 18:09:35 -04:00
Russell Hancox
0c182c8a7f
santactl/sync: Sync whitelist regex
2015-06-23 17:33:43 -04:00
Russell Hancox
bcdf746def
santad: In a rule vs scope, rule wins.
2015-06-23 17:33:08 -04:00
Russell Hancox
bc13ac3a98
santad: Move whitelisted dirs feature to using regex instead of array. Faster and more flexible.
2015-06-23 17:22:18 -04:00
Russell Hancox
a894e018cd
santactl: Update help/error wordings
2015-06-23 17:21:17 -04:00
Russell Hancox
cbecfd444d
santad: Add whitelisted directory support
2015-06-23 17:21:17 -04:00
Russell Hancox
357e5ef963
santactl/sync: NSString doesn't have an unsignedIntegerValue method
2015-06-23 17:14:47 -04:00
Russell Hancox
60594c9f03
santad/santactl-sync: Accept backoff interval from server, disable event uploads if back off is used, re-enable on next sync.
2015-06-23 15:54:30 -04:00
Russell Hancox
44b5bae8da
santad: Add sync execution timer to santad
2015-06-23 15:52:39 -04:00
Russell Hancox
2e856196c5
santad: Move SIGCHLD SIG_IGN setting to main(), it doesn't need to be set repeatedly.
2015-06-23 15:36:59 -04:00
Russell Hancox
8672187c02
SantaGUI: Add keepalive to launchagent plist
2015-06-23 11:20:20 -04:00
Russell Hancox
cf251c45b8
Project: Update package Makefile for santad/santactl move
2015-06-22 15:57:10 -04:00
Russell Hancox
385c03096d
Project: Missed santactl/santad move in Rakefile dist command
2015-06-22 15:35:03 -04:00
Russell Hancox
f323f5e3de
santad: Up watchdog interval to 60s and CPU threshold to 20%.
...
Whilst during normal operation santad doesn't use more than 5% CPU, it does spike if lots
of processes start, such as during bootup. This change helps to reduce the noise.
2015-06-22 15:28:02 -04:00
Russell Hancox
9562ee86cd
Project: Add missing copy to a few properties previously missed
2015-06-19 17:32:45 -04:00
Russell Hancox
adfb4bc861
SNTFileInfo: Better caching of properties
2015-06-19 17:31:48 -04:00
Russell Hancox
957232ca40
santactl: Fix event counting bug in status command
2015-06-16 18:02:41 -04:00
Russell Hancox
44c9d9aead
santad: Add watchdog thread to print warnings if CPU/RAM usage seem high.
2015-06-15 16:31:55 -04:00
Russell Hancox
f95245cedd
10.11 Prep: Move santad,santactl from /usr/libexec,/usr/sbin to within santa-driver.kext
2015-06-15 16:18:51 -04:00
Russell Hancox
3c034adf48
GUI: Prevent reconnection loop when XPC connection dies
2015-06-10 16:46:32 -04:00
Russell Hancox
abd3c5a06d
GUI: Restore constraint move Dismiss button when event detail URL is not set
2015-06-10 16:45:16 -04:00
Russell Hancox
ca4951a475
SNTFileWatcher: Update test file location
2015-06-09 13:50:43 -04:00
Russell Hancox
e751a3d307
SNTFileWatcher: Only get the fileSystemRepresentation once, to avoid high memory use when file doesn't exist
2015-06-09 13:10:29 -04:00
Russell Hancox
2a8bdfd714
santad: Use _exit instead of exit after fork. Oops.
2015-06-01 17:12:12 -04:00
Russell Hancox
be9dca3ee2
GUI: Add close button to About window.
2015-05-21 16:12:48 -04:00
Russell Hancox
32707fb501
santa-driver: Fix rare panic in CacheCheck where lock upgrade fails.
...
lck_rw_lock_shared_to_exclusive can return false if a previous reader upgraded. The result is the lock being unlocked and the panic is caused when unlocking a lock that isn't locked.
2015-05-20 11:13:19 -04:00
Russell Hancox
d72547e187
Project: Simplify package download URL generation in pkg Makefile
2015-05-18 18:36:30 -04:00
Russell Hancox
9150ddffb1
Project: Fix broken curl command in pkg Makefile
2015-05-18 17:52:33 -04:00
Russell Hancox
d5c1d66c2f
KernelTests: Update tests for dataqueue usage changes
2015-05-18 16:39:27 -04:00
Russell Hancox
536b8969ed
santactl/sync: LogUpload - logsToUpload is part of the same class, use self.
2015-05-18 16:31:43 -04:00
Russell Hancox
0db3b6d955
santactl/sync: Split out Log Upload request generation and Rule Download rule parsing from main request methods.
2015-05-18 14:33:21 -04:00
Russell Hancox
78bb9a1bd6
common: Correct comment on default loglevels
2015-05-18 13:06:31 -04:00
Russell Hancox
567e0b6431
santad: If exiting because of a failed dequeue, log the return code at ERROR level.
2015-05-18 13:06:31 -04:00
Russell Hancox
f2f27c5675
santa-driver: Up ACTION_REQUEST_SHUTDOWN from 60->90
2015-05-18 13:06:31 -04:00
Russell Hancox
5a7ac2287b
santa-driver: Stop defining MAX_PATH_LEN, use MAXPATHLEN instead.
...
I can't recall why I did this.
2015-05-18 13:06:31 -04:00
Russell Hancox
f82da21b75
santactl/sync: Bug from 8cd9898, call completion handler even if no rules are downloaded.
2015-05-15 10:38:26 -04:00
Russell Hancox
969a5ef94e
santactl/sync: Don't release SecAsn1Coder until we're done with its data.
2015-05-14 17:35:06 -04:00
Russell Hancox
fd7ad07193
santactl/sync: Handle DER decoding failures more gracefully.
2015-05-14 17:01:49 -04:00
Russell Hancox
3f5400b264
santa-driver: Split FetchDecision, notify daemon of missed executions, reorganize some methods.
2015-05-14 17:01:49 -04:00
Russell Hancox
466b5ed491
santa-driver: Make SantaDecisionManager::AddToCache default the microsecs parameter to the current uptime
2015-05-14 17:01:48 -04:00
Russell Hancox
25f1b71f10
santa-driver: Move dataqueue to SantaDecisionManager rather than
...
recreating it on every connect.
2015-05-14 17:01:48 -04:00
Russell Hancox
d1295f97b9
santa-driver: Rename owning_pid/proc to client_pid/proc. Minor style
...
cleanup
2015-05-14 17:01:48 -04:00
Russell Hancox
f5eb274aa0
santa-driver: remove unnecessary dataqueue lock
2015-05-14 17:01:48 -04:00
Russell Hancox
58b9dab74f
santa-driver: SDM should call super::init
2015-05-14 17:01:48 -04:00
Russell Hancox
9f6b6d10dc
santa-driver: Make room in santa_message_t->path for the terminator so we don't miss a character.
2015-05-14 17:01:47 -04:00
Russell Hancox
57f6e516c2
santa-driver: Mark all overriden methods with 'override'
2015-05-14 17:01:42 -04:00
Russell Hancox
8cd9898cf3
santactl/sync: Don't send empty rules array to daemon.
2015-05-11 16:27:02 -04:00
Russell Hancox
d53b04213a
santa-driver: Remove empty spacing at end of line
2015-05-08 14:58:16 -04:00
Russell Hancox
ac99bd1070
santad: Add tests for SNTRuleTable
2015-05-08 14:57:53 -04:00
Russell Hancox
30df44df96
santad: Correctly delete corrupt events. Add test for this.
2015-05-08 14:57:37 -04:00
Russell Hancox
fc55b86f30
santad: Switch to uint32_t for table version numbers
2015-05-08 14:56:20 -04:00
Russell Hancox
59ffb67554
santad: Reject addRules requests with empty/nil array. Also switch to NSUInteger for rule counts.
2015-05-08 14:55:28 -04:00
Russell Hancox
d46b156b85
santa-driver: vnode_getattr sometimes panics if a vfs_context isn't available (when used with osxfuse for instance).
2015-05-07 18:24:29 -04:00
Russell Hancox
6492e70599
santactl: Instead of rejecting authentication challenges and trying again, cancel the whole request.
2015-05-07 17:56:47 -04:00
Russell Hancox
bc5d0f8685
santa-driver: Don't allow StopListener to return until both kauth scopes are done
2015-05-06 14:57:33 -04:00
Russell Hancox
838da16da1
santad: Delete events that fail to unarchive
2015-05-06 14:44:09 -04:00
Russell Hancox
6e242bf98d
SantaGUI: Change Line to custom NSBox
2015-05-05 17:44:06 -04:00
Russell Hancox
be1e66c29d
Project: Enable more warnings and then fix them.
2015-05-01 17:40:39 -04:00
Russell Hancox
57866308e3
santad: Consider scripts that are part of installer packages as in-scope.
2015-04-30 18:37:04 -04:00
Russell Hancox
63bc8fca2d
santad: Don't post GUI notification for SILENT_BLACKLIST rules.
2015-04-30 18:36:43 -04:00
Russell Hancox
408712f00f
santad: Don't log when client mode is not set in defaultDecision, as that can't actually happen.
2015-04-30 18:36:20 -04:00
Russell Hancox
8cb6046f94
GUI: Add parent process name, only show part of the shasum, resize window.
2015-04-30 18:24:54 -04:00
Russell Hancox
297fb4cb68
Add parent process name collection and upload
2015-04-30 18:21:13 -04:00
Russell Hancox
1501d413f0
Project: Add install.sh script and package Makefile
...
Adds an install.sh script that can be run from the distribution tarball
and a Luggage package makefile
2015-04-30 14:12:02 -04:00
Russell Hancox
e747ace0f3
santactl/binaryinfo: Add bundle details to file info
2015-04-30 12:34:31 -04:00
Russell Hancox
6b96f36b2b
SantaGUI: Re-create AboutWindowController each time it's needed so that More Info button state is correct
2015-04-22 15:59:04 -04:00
Russell Hancox
f16fa691b5
santactl: include zlib.h instead of import
2015-04-21 16:43:09 -04:00
Russell Hancox
4fd5e1139f
Project: Style clean-ups
2015-04-21 14:29:30 -04:00
Russell Hancox
0b33079833
Merge pull request #16 from marczak/readme-up
...
Updated README to clarify intentions and expectations
2015-04-21 09:14:50 -07:00
Edward Marczak
6069ed5801
Update README.md
2015-04-21 12:14:05 -04:00
Edward Marczak
c2a9061ea2
Updated README to clarify expectations.
2015-04-21 11:24:58 -04:00
Russell Hancox
ee963d62a4
Project: Update README to mention dyld issue
2015-04-21 10:02:32 -04:00
Russell Hancox
c12adbc8e6
Project: Update schemes to make Xcode be quiet.
2015-04-20 18:35:10 -04:00
Russell Hancox
e6b20bcce6
Project: update Podfile.lock
2015-04-20 18:07:33 -04:00
Russell Hancox
10333bba01
santa-driver: Change file-write cache check, use FileOp scope for most writes and use hasdirtyblks to catch flushed but still-open files.
2015-04-20 18:07:22 -04:00