ES1.8 macOS Security Architecture

· Module 1 · Free
Operational Objective
macOS provides built-in security mechanisms that are more comprehensive than most security teams realize — and less complete than Apple's marketing suggests. Transparency, Consent, and Control (TCC) restricts application access to sensitive resources. Gatekeeper prevents execution of unsigned or unnotarized software. System Integrity Protection (SIP) protects critical system files from modification even by root. The Endpoint Security Framework provides kernel-level visibility to security tools. Understanding what macOS gives you for free (which is substantial), where it falls short (which matters), and how Defender for macOS integrates with these native controls is essential for any cross-platform endpoint security architecture.
Deliverable: Understanding of macOS security architecture from a defender's perspective — TCC, Gatekeeper, SIP, and the Endpoint Security Framework — with their protection boundaries and the gaps that third-party endpoint security must fill.
Estimated completion: 20 minutes
macOS SECURITY ARCHITECTURE — BUILT-IN PROTECTIONSTCCControls access to: camera,mic, contacts, calendar, filesGATEKEEPERBlocks unsigned/unnotarizedapps from executingSIPProtects /System, /usr,/bin — even from rootES FRAMEWORKKernel-level visibilityfor security tools (MDE)GAPS THAT THIRD-PARTY ENDPOINT SECURITY FILLSPost-execution behavioral analysis · Cross-platform detection correlation · Custom detection rules · Centralized management · TCC bypass detection

Figure ES1.8 — macOS built-in security provides strong baseline protection. TCC, Gatekeeper, and SIP are more comprehensive than their Windows equivalents. But they do not provide behavioral EDR, custom detections, or centralized management — which is where Defender for macOS adds value.

What macOS gives you for free

TCC (Transparency, Consent, and Control) is macOS’s permission framework for sensitive resources. Applications must be explicitly granted access to: the camera, microphone, contacts, calendar, photos, full disk access, screen recording, accessibility features, and the Desktop/Documents/Downloads folders. TCC prompts are enforced by the kernel — an application cannot bypass TCC by running as root. Even with root access, TCC-protected resources require explicit user consent or an MDM-managed TCC profile. This is stronger than anything Windows provides natively: there is no Windows equivalent that prevents a root-level process from reading the user’s documents folder.

Gatekeeper prevents the execution of unsigned or unnotarized applications downloaded from the internet. When a user downloads an application, macOS checks its code signature and notarization status. Unsigned applications are blocked by default (the user must explicitly override through System Settings). Notarization means Apple has scanned the binary for known malware before the developer distributed it. This provides a baseline prevention layer against commodity malware — unsigned malware is blocked before execution.

SIP (System Integrity Protection) prevents modification of protected system directories (/System, /usr, /bin, /sbin) even by processes running as root. SIP is enforced by the kernel and can only be disabled by booting into Recovery Mode — it cannot be disabled remotely. This means an attacker with root access on a running macOS system cannot modify system binaries, cannot replace system frameworks, and cannot install rootkits in protected directories. The attacker must either find a SIP bypass (rare, high-severity vulnerabilities that Apple patches aggressively) or persist in non-protected locations.

The Endpoint Security Framework is Apple’s API for security tools to receive kernel-level event notifications. It provides: process execution events, file system events, network events, and authentication events — similar to what ETW provides on Windows. Defender for macOS uses the ES Framework for its real-time protection and EDR telemetry. The ES Framework replaced the deprecated Kernel Extension (kext) model, providing security tools with stable, supported kernel-level visibility without the risks of loading third-party kernel code.

TCC: the permission model that changes endpoint security

Transparency, Consent, and Control (TCC) is macOS’s permission framework that restricts application access to sensitive data and system resources. Unlike Windows (where any application running as the user can access the user’s files, camera, microphone, and contacts), macOS requires explicit user consent through TCC prompts before an application can access: the camera, microphone, screen recording, accessibility features (which enable keystroke monitoring), full disk access (which enables reading other applications’ data), contacts, calendar, photos, and location.

For endpoint security, TCC creates both a protection and a constraint. The protection: malware on macOS cannot silently access the camera, keylog through accessibility APIs, or read browser credential stores without triggering a TCC prompt that the user must approve. The constraint: MDE for macOS itself needs TCC permissions to function. Specifically, MDE requires Full Disk Access (to scan files across the filesystem), System Extensions (to monitor system events — replacing the deprecated kernel extensions), and Network Extension (to monitor and filter network traffic for web protection).

Deploying MDE’s TCC permissions requires MDM (Intune). Without MDM, the user receives TCC prompts when MDE tries to access protected resources, and they must manually approve each one. With Intune, the TCC permissions are deployed as a configuration profile — the permissions are granted silently through the MDM channel, and the user never sees the prompts. This is why macOS endpoint security at enterprise scale requires Intune enrollment, not just MDE installation.

The attacker’s perspective on TCC: an attacker who gains code execution on macOS faces TCC restrictions that Windows attackers do not encounter. Keylogging requires an accessibility permission TCC grant. Screen capture requires a screen recording TCC grant. Reading Safari passwords requires full disk access. If the attacker does not have these grants (and they typically do not — they inherit the permissions of the process they compromised), they must either: bypass TCC (exploit a TCC vulnerability — these exist but are patched aggressively by Apple), social-engineer the user into granting TCC permissions, or operate within the permissions the compromised process already has. TCC significantly constrains post-exploitation activity on macOS compared to Windows.

System Integrity Protection and Gatekeeper

System Integrity Protection (SIP) prevents modification of system-protected files and directories even by the root user. The directories /System, /usr (except /usr/local), and /sbin are protected. An attacker with root access cannot: modify system binaries (to establish persistence through binary replacement), load unsigned kernel extensions (to install rootkits), or modify the kernel cache. SIP can only be disabled from macOS Recovery Mode — requiring physical access to the machine. For endpoint security, SIP means that even a fully compromised macOS system with root access cannot modify the OS itself, limiting persistence options to user-level mechanisms (launch agents, login items) rather than system-level modifications.

Gatekeeper prevents execution of applications that are not from the App Store or a verified developer (Apple’s notarization process). When a user downloads an application from the internet, Gatekeeper checks: is the application signed with a valid Developer ID certificate? Has the application been notarized by Apple (submitted for automated malware scanning and approved)? If either check fails, Gatekeeper blocks execution. The user can override Gatekeeper for individual applications (right-click → Open), but this requires deliberate action — drive-by downloads and phishing payloads are blocked by default.

Decision Point

NE has 340 iOS devices and an unspecified number of macOS devices used by engineering staff. Do you deploy Defender for macOS on the macOS endpoints? Yes — but with understanding of what it adds beyond macOS’s native protections. Defender for macOS provides: cross-platform visibility (macOS endpoint events in the same MDE portal and Advanced Hunting tables as Windows), custom detection rules that span both platforms, centralized management through Intune, network protection, and web content filtering. What it does NOT replace: TCC (Apple’s native permission model is still the primary access control), Gatekeeper (still the first-line execution control), SIP (still the system integrity enforcement). MDE complements macOS’s native security — it does not replace it.

Try it: check macOS security status (if you have a macOS device)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Check SIP status
csrutil status

# Check Gatekeeper status
spctl --status

# Check TCC database (requires Full Disk Access)
sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "SELECT client, auth_value, service FROM access;" 2>/dev/null

# Check if Defender for macOS is installed and running
mdatp health 2>/dev/null

SIP should show “enabled.” Gatekeeper should show “assessments enabled.” The TCC database shows which applications have been granted access to which sensitive resources. Review for unexpected entries — an application with full disk access that should not have it is a potential security issue.

Compliance Myth: "macOS doesn't get malware — we don't need endpoint security on Macs"

The myth: macOS’s built-in protections (Gatekeeper, XProtect, SIP) are sufficient. Macs don’t get malware. Deploying EDR on macOS is unnecessary overhead.

The reality: macOS malware exists and is increasing. Families like Shlayer, Silver Sparrow, MacStealer, Atomic Stealer (AMOS), and Realst actively target macOS. TCC bypass vulnerabilities are discovered and exploited. Gatekeeper can be bypassed by distributing malware through already-signed applications or by social engineering users into overriding the Gatekeeper prompt. More importantly, macOS endpoints access the same M365 data, the same email, and the same SharePoint as Windows endpoints — a compromised macOS device is a path to your organisation’s data. MDE on macOS provides the cross-platform visibility and custom detection capability that macOS’s built-in tools do not.

The Endpoint Security framework: Apple’s official security API

Starting with macOS 10.15 Catalina, Apple replaced kernel extensions (kexts) with the Endpoint Security (ES) framework for security tool integration. The ES framework provides an authorised, user-space API for security tools to: monitor process execution (process creation, termination, exec), file system events (file create, modify, delete, rename, mount), network events (socket connections, DNS resolution), and authentication events (authentication attempts, credential changes).

MDE for macOS uses the ES framework as its primary telemetry source — it registers for the event types it needs and receives kernel-level notifications through the ES API without requiring a kernel extension. This is more stable than the kext approach (kexts could cause kernel panics if buggy) and more secure (the ES API limits what the security tool can access to specific event categories, unlike kexts which had unrestricted kernel access).

The practical implication: MDE on macOS has different detection capabilities than MDE on Windows because the ES framework provides different event types than Windows ETW. Some events available through ETW have no ES equivalent, and vice versa. Specific gaps: macOS ES does not provide the equivalent of Windows registry events (macOS uses property lists, not a registry). macOS ES provides different network event granularity than Windows ETW. And macOS ES’s process monitoring captures different metadata fields than Windows DeviceProcessEvents. The result: KQL hunting queries written for Windows DeviceProcessEvents may need adaptation for macOS — the table names are the same in MDE Advanced Hunting, but the available fields and event types differ.

Launch agents and launch daemons: macOS persistence. Where Windows has registry run keys and scheduled tasks, macOS uses launch agents (per-user, ~/Library/LaunchAgents/) and launch daemons (system-wide, /Library/LaunchDaemons/). Each is a property list (.plist) file that specifies a programme to run at user login (agents) or system startup (daemons). An attacker who drops a malicious .plist in LaunchAgents gains persistence that survives reboot. MDE for macOS monitors these directories for new .plist file creation — the ES framework’s file monitoring captures the event, and MDE alerts if the .plist points to a suspicious binary.

Troubleshooting

“Defender for macOS requires Full Disk Access and users keep denying the TCC prompt.” Deploy the TCC configuration profile through Intune. MDM-managed TCC profiles grant permissions silently without user prompts. Create an Intune configuration profile for macOS that grants Full Disk Access, Accessibility, and system extension permissions to the Defender for macOS application. Module ES13 covers the full macOS deployment process.

“We can’t install the Defender for macOS system extension on managed devices.” System extensions require user approval on macOS Ventura+ unless an MDM-managed System Extension profile is deployed. The Intune profile must include the team ID and bundle identifier for Microsoft’s system extension. Without this profile, users see a prompt that blocks the extension installation until they approve it in System Settings.

“Does MDE for macOS detect kernel-level rootkits?” macOS SIP and Secure Boot prevent most kernel-level persistence. On Apple Silicon Macs, the Secure Enclave validates boot chain integrity before the kernel loads. Traditional kernel rootkits that modify kernel memory or load unsigned kernel extensions are effectively impossible on modern macOS with SIP enabled. MDE for macOS focuses on user-space detection through the Endpoint Security framework, which covers the attack surface that remains accessible after SIP and Secure Boot constrain kernel-level modification.

An attacker gains code execution on a macOS endpoint through a phishing attack that delivers a signed and notarized application. The application has passed both Gatekeeper and XProtect checks. What macOS security mechanism prevents the application from accessing the user's Documents folder and camera?
TCC (Transparency, Consent, and Control). Even though the application passed Gatekeeper's signing and notarization checks, TCC requires explicit user consent (or MDM profile approval) before any application can access protected resources including the Documents folder, camera, microphone, and contacts. A signed, notarized malicious application can execute but cannot access TCC-protected resources without the user clicking "Allow" on the TCC prompt. This is the defense-in-depth value of TCC: Gatekeeper controls WHETHER an application can run. TCC controls WHAT a running application can access. An application can be legitimately signed and still be malicious — TCC provides the second gate.
SIP — System Integrity Protection prevents applications from accessing user data directories.
Gatekeeper — since the application is signed and notarized, Gatekeeper allows execution but restricts resource access.
The macOS sandbox — all applications downloaded from the internet run in a sandbox that restricts file and hardware access.

You're reading the free modules of this course

The full course continues with advanced topics, production detection rules, worked investigation scenarios, and deployable artifacts. Premium subscribers get access to all courses.

View Pricing See Full Syllabus