TL;DR
Ein unmanaged macOS-Gerät stellt
Diese Zusammenfassung wurde KI-gestützt erstellt (EU AI Act Art. 52).
Inhaltsverzeichnis (8 Abschnitte)
macOS gilt als sicheres Betriebssystem - und das zu Recht. Apple hat in den letzten Jahren erheblich in Sicherheitsfeatures investiert: System Integrity Protection, Gatekeeper, Notarisierungspflicht, App Sandbox. Trotzdem: Ein unmanaged MacBook im Unternehmenseinsatz ist kein sicheres System. Dieser Guide zeigt die notwendigen Enterprise-Härtungsmaßnahmen.
macOS Security-Architektur
Apple Security Framework - Überblick:
System Integrity Protection (SIP):
→ Schützt kritische Systempfade: /System, /usr, /bin, /sbin
→ Gilt sogar für root! Kein Prozess kann diese Pfade modifizieren
→ /Library und /Applications: kein SIP-Schutz
→ Deaktivierung: nur im Recovery-Mode möglich
Status prüfen:
csrutil status
# System Integrity Protection status: enabled.
Seit macOS Ventura: SIP + Signed System Volume (SSV)
→ Alle Systempfade kryptografisch gesiegelt
→ Hash-Tree der gesamten System-Partition
→ Manipulation unmöglich ohne komplettes Volume-Rebuild
Gatekeeper:
→ Verhindert Ausführung unsignierter Apps
→ Notarization: Apple prüft App auf Malware-Freiheit
→ Nicht notarisiert → User-Warning → "In den Papierkorb?"
→ Quarantine-Flag: gesetzt bei Download aus Internet
xattr -l /Applications/SomeApp.app | grep quarantine
Gatekeeper Status (MDM-managed):
spctl --status
# assessments enabled
XProtect (eingebautes AV):
→ Signatur-basiertes Malware-Scanning
→ Automatische tägliche Updates (auch ohne macOS-Update!)
→ XProtect Remediator (seit Ventura): aktive Malware-Bereinigung
Updates prüfen:
system_profiler SPInstallHistoryDataType | grep XProtect
Endpoint Security Framework (ESF):
→ Kern-API für EDR-Produkte (CrowdStrike, Jamf Protect, etc.)
→ Echtzeit-Events: Prozessstart, Datei-Zugriff, Netzwerkverbindung
→ Ersetzt alte Kernel-Extensions (kexts) → sicherer, stabiler
MDM-Deployment mit Jamf Pro
Jamf Pro - Enterprise macOS Management:
Installation und Enrollment:
# Zero-Touch-Deployment via Apple Business Manager (ABM):
# ABM → Gerät registriert → bei Aktivierung → MDM-Enrollment
# Mitarbeiter schaltet neuen Mac ein → DEP-Enrollment automatisch
# Manuelles Enrollment (für bestehende Macs):
# Jamf Self Service installieren
sudo profiles install -path /path/to/enrollment.mobileconfig
Konfigurationsprofil - Passwort-Richtlinien:
# /etc/jamf/profiles/password-policy.mobileconfig (XML):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "...">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.mobiledevice.passwordpolicy</string>
<key>minLength</key>
<integer>12</integer>
<key>requireAlphanumeric</key>
<true/>
<key>maxPINAgeInDays</key>
<integer>90</integer>
<key>maxFailedAttempts</key>
<integer>10</integer>
<key>minutesUntilFailedLoginReset</key>
<integer>5</integer>
</dict>
</array>
</dict>
</plist>
Jamf Policy - Software-Deployment:
# Jamf Pro → Policies → New Policy
# Trigger: Login, Enrollment, Recurring Check-In
# Scripts: Shell-Scripts für Konfiguration
# Packages: .pkg-Dateien für Installation
Jamf Protect (Endpoint Security):
→ Jamf-eigenes EDR für macOS
→ ESF-basiert (Endpoint Security Framework)
→ Erkennt: Process Injection, LOLBin-Missbrauch, Privilege Escalation
→ Integration: Splunk, Microsoft Sentinel, CrowdStrike Falcon
Microsoft Intune für macOS
Intune macOS MDM-Setup:
Enrollment via Company Portal:
# 1. Intune → Devices → macOS → Enrollment → Apple MDM Push Certificate
# 2. Mitarbeiter: Company Portal App installieren
# 3. Sign-In mit Microsoft 365 Account → Enrollment
# 4. Conditional Access: nur enrolled → O365-Zugriff
Compliance-Richtlinie (Intune):
# Mindestanforderungen für Compliance:
✓ macOS 14.0 (Sonoma) oder neuer
✓ FileVault aktiviert
✓ System Integrity Protection aktiviert
✓ Firewall aktiviert
✓ Passwort-Komplexität erfüllt
Konfigurationsprofil via Intune (macOS):
# Custom-Profile: Property List (.plist) für beliebige Settings
# Intune → Devices → Configuration Profiles → macOS → Custom
# Beispiel: DNS-über-HTTPS erzwingen (Encrypted DNS):
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>HTTPS</string>
<key>ServerURL</key>
<string>https://dns.nextdns.io/[PROFILE]</string>
</dict>
Conditional Access (Azure AD):
# Nur konforme Macs → Zugriff auf Microsoft 365:
# Azure AD → Conditional Access → Policies → New Policy
# Conditions: Device Platforms → macOS
# Grant: Require device to be marked as compliant
# Ergebnis: unkomplizierter Mac → kein O365!
Firewall und Netzwerk
macOS Firewall (Application Firewall):
Aktivierung:
# Application Firewall aktivieren:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw \
--setglobalstate on
# Stealth Mode (kein ICMP-Response auf Ping):
sudo /usr/libexec/ApplicationFirewall/socketfilterfw \
--setstealthmode on
# Status prüfen:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw \
--getglobalstate
MDM-Profil für Firewall:
<key>PayloadType</key>
<string>com.apple.security.firewall</string>
<key>EnableFirewall</key><true/>
<key>EnableStealthMode</key><true/>
<key>BlockAllIncoming</key><false/>
Pf (Packet Filter) für Netzwerk-Isolation:
# /etc/pf.conf - nur bestimmte ausgehende Verbindungen:
# (Für hochsichere Workstations)
block all
pass on lo0 all
pass out proto tcp to any port {80, 443, 22} keep state
pass out proto udp to any port {53, 123} keep state
DNS-Security mit NextDNS:
# Encrypted DNS + Filtering via MDM deployen:
# Intune/Jamf: DNS-Settings-Profil
# NextDNS-Profile: Malware-Blocking, Social-Engineering-Schutz
# Kein separater Agent nötig - eingebaut in macOS!
FileVault 2 und Festplattenverschlüsselung
FileVault 2 - Full Disk Encryption:
Aktivierung:
# Lokal:
sudo fdesetup enable
# → Gibt Recovery Key aus → SICHER aufbewahren!
# MDM-managed (empfohlen):
# Recovery Key wird an Jamf Pro / Intune escrowed
# Mitarbeiter verliert Key → IT kann entsperren
# Status prüfen:
fdesetup status
# FileVault is On.
MDM FileVault-Profil:
<key>PayloadType</key>
<string>com.apple.MCX.FileVault2</string>
<key>Enable</key>
<string>On</string>
<key>Defer</key>
<true/> <!-- Aktivierung beim nächsten Logout -->
<key>DeferForceAtUserLoginMaxBypassAttempts</key>
<integer>3</integer> <!-- Max 3 Mal überspringen -->
Institutional Recovery Key:
# Unternehmen hat Master-Key der alle Macs entsperren kann:
# Jamf Pro → Security → FileVault → Institutional Recovery Key
# Wichtig bei: Mitarbeiter-Ausscheiden, vergessenem Passwort
FileVault + Apple Silicon (M1/M2/M3):
→ Volle Disk-Encryption immer aktiv (Secure Enclave)
→ FileVault aktiviert: FileVault-Passwort schützt den Schlüssel
→ Ohne FileVault: Daten auch von anderem Benutzer des Macs lesbar
→ Enterprise: FileVault IMMER aktivieren!
CIS Benchmark macOS
CIS macOS 14 Benchmark - wichtigste Controls:
1. Grundlegende System-Settings:
# Software-Updates automatisch aktivieren:
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool true
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticallyInstallMacOSUpdates -bool true
# Zeitzone automatisch setzen (NTP):
sudo systemsetup -setusingnetworktime on
2. Secure Remote Management:
# SSH deaktivieren (wenn nicht benötigt):
sudo systemsetup -setremotelogin off
# Screen Sharing deaktivieren:
sudo launchctl disable system/com.apple.screensharing
# Apple Remote Desktop deaktivieren:
sudo launchctl disable system/com.apple.RemoteDesktop.agent
3. Privacy und Logging:
# Audit-Daemon aktivieren:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
# Unified Log für Security-Events:
log show --predicate 'eventMessage contains "authentication"' --last 1h
# Audit-Klassen: lo (Login/Logout), aa (Authentication):
# /etc/security/audit_control:
flags:lo,aa,ad,pc,nt,ex,ws
4. Safari/Browser-Härtung:
# Fraudulent Website Warning:
defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true
# Keine PDF-Inline-Ausführung:
defaults write com.apple.Safari WebKitOmitPDFSupport -bool true
5. Kernel-Extension-Policy (MDEX):
# Nur von Apple genehmigte Kernel-Erweiterungen:
# MDM-Profil: Kernel Extension Policy
# → Blockt unsignierte kexts vollständig
# → Wichtig: verhindert Rootkits via kext-Loading
CIS Benchmark-Scan:
# Bash-Script für CIS-Compliance-Check:
# https://github.com/usnistgov/macos_security (NIST)
# macOS Security Compliance Project:
git clone https://github.com/usnistgov/macos_security
cd macos_security
./rules/generate_guidance.py --baseline cis_lvl1
./compliance_report.sh
macOS-spezifische Bedrohungen
Aktuelle macOS Malware und Angriffsvektoren:
AMOS (Atomic macOS Stealer):
→ Stiehlt: Passwörter (Keychain), Cookies, Krypto-Wallets
→ Verbreitung: Fake-Software-Downloads, Malvertising
→ Erkennung: LuLu-Firewall (Ausgehende Verbindungen!)
→ Schutz: Gatekeeper, Notarisierungspflicht, Jamf Protect
XLoader (macOS-Port von FormBook):
→ Java-basierter InfoStealer + C2
→ Verbreitung: Phishing-E-Mails mit .dmg
→ Schutz: macOS-Firewall, Application-Allowlisting
Bundlore/Shlayer (Adware/Downloader):
→ Häufigste macOS-Malware (2020-2023)
→ Verbreitung: Gefälschte Flash-Updates
→ Schutz: Gatekeeper, XProtect
Privilege Escalation auf macOS:
→ sudo-Schwachstellen (regelmäßige Updates!)
→ setuid-Binaries: find / -perm -4000 2>/dev/null
→ LaunchDaemon-Hijacking: /Library/LaunchDaemons prüfen
Persistence-Mechanismen (macOS):
→ LaunchAgents: ~/Library/LaunchAgents/ (User-Level)
→ LaunchDaemons: /Library/LaunchDaemons/ (System-Level)
→ Login Items: Systemeinstellungen → Allgemein → Anmeldeobjekte
→ cron (weniger üblich auf macOS)
Monitoring:
# Alle LaunchAgents des aktuellen Users:
ls -la ~/Library/LaunchAgents/
# Unbekannte .plist-Dateien? → Verdächtig!
# Jamf Protect erkennt: neuer LaunchAgent → Alert
# LuLu (Open Source): ausgehende Verbindung neuer Apps → Alert
Privileged Access Management für macOS
macOS-Admin-Rechte reduzieren:
Standard-User-Policy:
→ Alle Mitarbeiter: Standard-User (kein Admin!)
→ Admin-Rechte nur via Request → temporär via PAM
# Jamf Pro - Privilege Management:
# Jamf Connect + Jamf Unlock: Admin-Rechte auf Anfrage
# BeyondTrust Endpoint Privilege Management für macOS
# CyberArk Endpoint Privilege Manager
Local Admin-Konto entfernen:
# Prüfen wer Admin ist:
dscl . -read /Groups/admin GroupMembership
# Admin-Rechte entziehen:
sudo dscl . -delete /Groups/admin GroupMembership [USERNAME]
# Sicherheit: IT-Admin-Account separat (nicht täglich nutzen)
Bootstrap Token (Enterprise):
# Ermöglicht MDM-gesteuerte Security-Operationen auch ohne User-Login:
# FileVault-Unlock, Secure Token vergeben, Software-Updates erzwingen
# Jamf Pro: Bootstrap Token automatisch escrow'd bei Enrollment
sudo profiles validate -type bootstraptoken Nächster Schritt
Unsere zertifizierten Sicherheitsexperten beraten Sie zu den Themen aus diesem Artikel — unverbindlich und kostenlos.
Kostenlos · 30 Minuten · Unverbindlich
