Sinter is a 100% user-mode endpoint security agent for macOS 10.15 and above, written in Swift.
Sinter uses the user-mode EndpointSecurity API to subscribe to and receive authorization callbacks from the macOS kernel, for a set of security-relevant event types. The current version of Sinter supports allowing/denying process executions; in future versions we intend to support other types of events such as file, socket, and kernel events.
Sinter is a work-in-progress. Feedback is welcome. If you are interested in contributing or sponsoring us to help achieve its potential, let's get in touch.
Features
- Allow or deny process execution by code directory hash (aka "CD hash")
- option to deny all unknown programs (any program that is not explicitly allowed)
- option to deny all unsigned programs
- option to deny all programs with invalid signatures
- "monitor" mode to track and log (but allow) all process execution events
- Accepts allow/deny rules from a Santa sync-server
- Configure deny rules in JSON, provided locally or by a sync-server
- Log to the local filesystem in a structured JSON format
- Deny process execution by executable file path
- Deny process execution by certificate Team ID
Anti-Features
- Does not use kernel extensions (which will be officially deprecated in macOS 11 Big Sur)
- Does not support legacy macOS (10.14 or older)
- Does not use any memory unsafe code
- Limits third-party library dependencies
- Not an anti-malware or anti-virus. No signature database. Denies only what you tell it to deny, using rules.
Background
The first open-source macOS solution for allowing/denying processes was Google Santa. We're fans of Santa, and have contributed to its codebase in the past. For a long time, however, many in the macOS community have asked for an open-source solution to track and manage more than just process events.
We saw the ideal platform to build such a capability with the EndpointSecurity API in macOS 10.15. Starting from the ground-up around a strictly user-mode API meant that we could attempt a simpler design, and use a modern programming language with safer memory handling and better performance. Thus, we set out to develop Sinter, short for "Sinter Klausen," another name for Santa Claus.
Getting Started
Download and install the latest version of Sinter using the
pkg
installer link from the Releases page.After installing Sinter, you must enable the "Full Disk Access" permission for
Sinter.app
. Do this by opening System Preferences, Security, Privacy tab, Full Disk Access. Check the item for Sinter.app
. If using MDM, you can automatically enable this permission on your endpoints, and no user interaction will be required.Configuration
Sinter requires a configuration file to be present at
/etc/sinter/config.json
. An example is provided in the source tree at ./config/config.json
:{
"Sinter": {
"decision_manager": "local",
"logger": "filesystem",
"allow_unsigned_programs": "true",
"allow_invalid_programs": "true",
"allow_unknown_programs": "true",
"allow_expired_auth_requests": "true",
"allow_misplaced_applications": "true",
"config_update_interval": 600,
"allowed_application_directories": [
"/bin",
"/usr/bin",
"/usr/local/bin",
"/Applications",
"/System",
"/usr/sbin",
"/usr/libexec",
],
},
"FilesystemLogger": {
"log_file_path": "/var/log/sinter.log",
},
"RemoteDecisionManager": {
"server_url": "https://server_address:port",
"machine_identifier": "identifier",
},
"LocalDecisionManager": {
"rule_database_path": "/etc/sinter/rules.json",
}
}
decision_manager
value. The local plugin will enable the LocalDecisionManager configuration section, pointing Sinter to use the local rule database present at the given path. It is possible to use a Santa-compatible sync-server, by using the sync-server plugin instead. This enables the RemoteDecisionManager configuration section, where the server URL and machine identifier can be set.There are two logger plugins currently implemented:
- filesystem: Messages are written to file, using the path specified at FilesystemLogger.log_file_path
- unifiedlogging: Logs are emitted using the Unified Logging, using com.trailofbits.sinter as subsystem.
Allowed application directories
It is possible to configure Sinter to log and optionally deny applications that have not been started from an allowed folder.
- allow_misplaced_applications: If set to true, misplaced applications will only generate a warning. If set to false, any execution that does not starts from a valid path is denied.
- allowed_application_directories: If non-empty, it will be used to determine if applications are placed in the wrong folder.
Enabling UI notifications
- Install the notification server (the PKG installer will do this automatically):
sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
- Start the agent:
/Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server
Configuring Sinter in MONITOR mode
Modes are not implemented in Sinter, as everything is rule-based. It is possible to implement the monitoring functionality by tweaking the following settings:
- allow_unsigned_programs: allow applications that are not signed
- allow_invalid_programs: allow applications that fail the signature check
- allow_unknown_programs: automatically allow applications that are not covered by the active rule database
- allow_expired_auth_requests: the EndpointSecurity API requires Sinter to answer to an authorization requests within an unspecified time frame (typically, less than a minute). Large applications, such as Xcode, will take a considerable amount of time to verify. Those executions are denied by default, and the user is expected to try again once the application has been verified. Setting this configuration to true changes this behavior so that those requests are always allowed.
Rule format
Rule databases are written in JSON format. Here's an example database that allows the CMake application bundle from cmake.org:
{
"rules": [
{
"rule_type": "BINARY",
"policy": "ALLOWLIST",
"sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
"custom_msg": "CMake"
}
]
}
codesign
tool output (example: codesign -dvvv /Applications/CMake.app
). Note that even though the CLI tools can acquire the full SHA256 hash, the Kernel/EndpointSecurity API is limited to the first 20 bytes.Building from Source
Building Sinter requires certain code-signing certificates and entitlements that Apple must grant your organization. However, Sinter can still be built from source and run locally on a test system with SIP disabled. For instructions, see the Sinter wiki.
via KitPloit
Related links
- Pentest Tools Download
- Beginner Hacker Tools
- Hacking Tools And Software
- Hacking Tools
- Hack And Tools
- Pentest Tools Windows
- Hack Tools For Windows
- Ethical Hacker Tools
- Physical Pentest Tools
- Pentest Tools
- Hacking Tools For Games
- Pentest Tools Find Subdomains
- World No 1 Hacker Software
- Pentest Automation Tools
- Pentest Automation Tools
- Pentest Tools Apk
- Hack Tools For Windows
- Tools For Hacker
- Wifi Hacker Tools For Windows
- Hacking Tools Windows
- Hacking Tools
- Hacker Tools Free
- Hacking Tools Download
- How To Make Hacking Tools
- Easy Hack Tools
- Hacking Tools For Beginners
- Top Pentest Tools
- Hacking Tools Github
- Pentest Tools Find Subdomains
- What Are Hacking Tools
- Hacking Tools For Mac
- Pentest Tools Download
- Pentest Recon Tools
- Bluetooth Hacking Tools Kali
- Blackhat Hacker Tools
- Hacker Tools For Pc
- Nsa Hacker Tools
- Hacker Tools For Windows
- Hacker Tools Github
- Kik Hack Tools
- Hacker Tools Mac
- Growth Hacker Tools
- Top Pentest Tools
- Hack And Tools
- Hacks And Tools
- Nsa Hack Tools
- Hacking Tools 2019
- Hacking Tools For Windows Free Download
- Hak5 Tools
- Best Hacking Tools 2020
- Blackhat Hacker Tools
- Underground Hacker Sites
- Pentest Tools For Ubuntu
- Pentest Tools
- Growth Hacker Tools
- Hacker Security Tools
- Nsa Hacker Tools
- How To Make Hacking Tools
- Hacker Tools 2020
- Pentest Box Tools Download
- Pentest Tools Apk
- Hackrf Tools
- Hacker Tools 2019
- Hacking Tools For Games
- Hacker Tool Kit
- Hacking Tools 2019
- Hacker Tools 2020
- Hacker Tools Apk Download
- Hacking Tools And Software
- Hackrf Tools
- Free Pentest Tools For Windows
- Best Hacking Tools 2019
- Computer Hacker
- Hack Rom Tools
- Pentest Tools Free
- Hacker Tools Linux
- Hacker Tools Free
- Pentest Tools Kali Linux
- Pentest Tools Website
- Hacking Tools For Beginners
- Hacker Tools Free
- Hacking Tools For Windows 7
- Pentest Tools Linux
- Pentest Reporting Tools
- Nsa Hacker Tools
- Nsa Hack Tools
- Hack Tools
- Hacker Search Tools
- Hack Tools For Ubuntu
- Pentest Tools Review
- Pentest Box Tools Download
- Pentest Tools For Android
- Kik Hack Tools
- Hacking Tools For Windows
- Pentest Tools Bluekeep
- Hacker Tools Free
- Hacker Tools Online
- Easy Hack Tools
- How To Hack
- Hack Tools Github
- Best Hacking Tools 2020
- What Are Hacking Tools
- Pentest Tools Alternative
- Easy Hack Tools
- Pentest Tools Android
- Hack Tools For Games
- Hack Website Online Tool
- Install Pentest Tools Ubuntu
- Pentest Tools Alternative
- Pentest Tools For Ubuntu
- Pentest Tools Find Subdomains
- Nsa Hack Tools
- Black Hat Hacker Tools
- Hacking Tools Online
- Hacking Tools Kit
- Hacker Tools Hardware
- Hacks And Tools
- Hacker Search Tools
- Hacker Search Tools
- Pentest Tools Website Vulnerability
- Hack And Tools
- Tools For Hacker
- Hack Tools For Windows
- Pentest Tools Port Scanner
- Hacker Tools For Mac
- Computer Hacker
- Hacking Apps
- Nsa Hack Tools Download
- What Are Hacking Tools
- Hacking Tools Usb
- Underground Hacker Sites
- Usb Pentest Tools
- Pentest Tools For Mac
- Android Hack Tools Github
- Beginner Hacker Tools
- Bluetooth Hacking Tools Kali
- How To Install Pentest Tools In Ubuntu
- Hacking Tools For Mac
- Pentest Tools Port Scanner
- What Are Hacking Tools
- Termux Hacking Tools 2019
- Pentest Tools Tcp Port Scanner
- Tools Used For Hacking
- Hacking Tools Pc
- Hacker Tools List
- Hacking Tools Name
- Pentest Tools Android
- Hak5 Tools
- Hack Rom Tools
- Hacker Techniques Tools And Incident Handling
- Hacker Tools Apk
- Hacker Tools Windows
- Tools For Hacker
- Tools For Hacker
- Hacking Tools For Windows 7
- Hacker Techniques Tools And Incident Handling
- Pentest Tools Subdomain
- Hacker Tools Github
- Hack And Tools
- Hacker Tools 2019
- What Is Hacking Tools
- Pentest Automation Tools
- Hack Tools For Ubuntu
- Hacking Tools Usb
- Hacking Tools Name
- Hacker Tools For Windows
- Hacking Apps
- Tools 4 Hack
- Github Hacking Tools
- Hack Tools For Mac
- Hacking Tools Online
- Pentest Tools Windows
- Growth Hacker Tools
- Pentest Tools Apk
No comments:
Post a Comment