hn.today

Show HN: AppLocker – Open-source macOS app blocker using Apple Endpoint Security

github.com4 points0 comments

AppLocker is an open-source macOS application locker that enforces per-app access at the kernel/Endpoint Security level without modifying binaries or breaking code signatures. It registers a privileged System Extension daemon that intercepts NOTIFY_EXEC events, immediately suspends newly launched target processes with SIGSTOP before any UI appears, and notifies the user interface to request biometric or password authentication via LocalAuthentication. Approved launches are resumed with SIGCONT; rejected or timed-out launches are terminated with SIGKILL. It groups simultaneous locked app launches for a single batch authentication, protects its daemon and configuration from external SIGCONT/SIGKILL/SIGSTOP attacks, and verifies binary integrity using CDHash checks. XPC communication between the GUI and daemon uses mutual ECDSA P-256 challenge-response, and various performance and UX optimizations (in-memory app icon caching, debounced Spotlight queries, SwiftUI/AppKit UI, Dark Mode, localization) are included.

The project is organized into three decoupled layers: a main SwiftUI/AppKit user app, a root ESExtension handling kernel events and anti-tamper logic, and a shared core containing XPC contracts, cryptographic helpers, CDHash verification, and logging. It requires macOS 14 (Sonoma)+ and supports Apple Silicon and Intel; obtaining the com.apple.developer.endpoint-security.client entitlement requires an Apple Developer Program account, and local development may require disabling SIP or reduced security. Users can install a prebuilt .dmg or build from source in Xcode. The code is Apache-2.0 licensed and credits Google’s Santa project as a reference.

Read on github.com0 comments on Hacker News

Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.

More in Security

The daily digest

Today's best Hacker News stories, summarized and screenshotted, one email a day.