Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen
macOS Security im Unternehmen: Hardening, MDM und Enterprise Controls - Betriebssystem-Sicherheit und Systemhaertung
Netzwerk- & Endpoint Security

macOS Security im Unternehmen: Hardening, MDM und Enterprise Controls

macOS im Unternehmenseinsatz sicher konfigurieren: Apple MDM mit Jamf Pro oder Microsoft Intune, macOS CIS Benchmark, System Integrity Protection (SIP), Gatekeeper, FileVault 2, Endpoint Security Framework, XProtect. Inklusive Konfigurationsprofilen für DNS-Filter, Firewall, und Passwort-Richtlinien.

Vincent Heinen Vincent Heinen Abteilungsleiter Offensive Services
11 Min. Lesezeit
OSCP+ OSCP OSWP OSWA

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

Artikel teilen

Über den Autor

Vincent Heinen
Vincent Heinen

Abteilungsleiter Offensive Services

M.Sc. IT-Sicherheit mit über 5 Jahren Erfahrung in offensiver Sicherheitsanalyse. Leitet die Durchführung von Penetrationstests mit Spezialisierung auf Web-Applikationen, Netzwerk-Infrastruktur, Reverse Engineering und Hardware-Sicherheit. Verantwortlich für mehrere Responsible Disclosures.

OSCP+ OSCP OSWP OSWA
Zertifiziert ISO 27001ISO 9001AZAVBSI

Cookielose Analyse via Matomo (selbst gehostet, kein Tracking-Cookie). Datenschutzerklärung