Sie verwenden möglicherweise verschiedene Werkzeuge, um zu prüfen, ob die von Ihnen verwalteten Geräte mit Ihren Unternehmensrichtlinien konform sind. Microsoft bietet die in Intune integrierte Compliance Policy-Funktion. Mit einer Compliance Policy-Definition können Sie prüfen, ob das SIP der von Ihnen verwalteten Macs ausgeschaltet ist, ob das Betriebssystem aktuell ist, dass die Gatekeeper-Einstellungen vorgenommen wurden und sogar die FileVault-Verschlüsselung. Als Ergebnis davon können Sie Geräte als Compliant (konform) oder Non-Compliant (nicht konform) markieren.
Wenn Sie es zuvor nicht gelesen haben, können Sie einen Blick auf unseren Artikel Compliance Policy für macOS in Microsoft Intune verwenden werfen, in dem wir die Verwendung der Compliance Policy in Intune behandelt haben.
Unter den Compliance Policy-Optionen in Intune ist es auch möglich, einige Durchsetzungen für als Non-Compliant markierte Geräte anzuwenden. Wie das Informieren des Benutzers und des IT-Teams, das Außerdienststellen des Geräts usw.
Aber anstatt diese Arten von Durchsetzungen anzuwenden, prüfen Organisationen nur, dass ein Gerät Compliant ist. Und sie können diese Information für die Kontrolle anderer Regeln verwenden. Zum Beispiel können sie, um mit NAC-Lösungen Netzwerkzugriff zu gewähren, in ihre Regelsätze aufnehmen, dass ein Gerät mit Intune verwaltet wird + das Gerät Compliant ist. Wenn dies der Fall ist, können sie sicherstellen, dass Non-Compliant-Geräte keinen Unternehmensnetzwerkzugriff haben.

Dass ein Gerät Compliant ist oder nicht, kann für Sie tatsächlich ausreichend sein. Aber Sie möchten dennoch vielleicht mehr prüfen, als Intune Ihnen als Compliance Policy bietet, und dafür einige Aktionen ergreifen.
In ihrer aktuellen Form prüfen die integrierten Compliance Policies von Intune Folgendes:
Require system integrity protection: ob System Integrity Protection ein- oder ausgeschaltet ist
Minimum OS version: die niedrigste verwendbare macOS-Version
Maximum OS version: die höchste verwendbare macOS-Version
Minimum OS build version: die niedrigste verwendbare macOS-Build-Version
Maximum OS build version: die höchste verwendbare macOS-Build-Version
Require a password to unlock devices: ob ein Passwort vorhanden ist oder nicht
Simple passwords: ob einfache Passwörter akzeptiert werden oder nicht
Minimum password length: minimale Passwortlänge
Password type: Passworttyp (alphanumerisch oder nur Zahlen)
Number of non-alphanumeric characters in password: die Anzahl der Sonderzeichen im Passwort
Maximum minutes of inactivity before password is required: die Information, nach wie vielen Minuten Inaktivität das Gerät beginnt, nach einem Passwort zu fragen
Password expiration (days): Passwortgültigkeitsdauer
Number of previous passwords to prevent reuse: die Anzahl der letzten Passwörter, die akzeptiert werden
Require encryption of data storage on device: ob FileVault ein- oder ausgeschaltet ist
Firewall: ob die Firewall auf dem Gerät ein- oder ausgeschaltet ist
Incoming connections: ob eingehende Verbindungsanfragen mit der Firewall auf dem Gerät ein- oder ausgeschaltet sind
Stealth Mode: ob der Stealth-Modus in der Firewall auf dem Gerät ein- oder ausgeschaltet ist
Allow apps downloaded from these locations: die Gatekeeper-Einstellung — also, was die Präferenz bezüglich der Quellen ist, aus denen Anwendungen installiert werden können

Die oben aufgeführten können natürlich für viele Verwendungen ausreichend sein. Aber Sie möchten vielleicht auch eine Regel außerhalb dieser Liste verwenden, um das Gerät als Compliant zu markieren. In diesem Fall wird Ihnen die Verwendung der Custom Compliance Policy helfen. Die Verwendung der Custom Compliance Policy, die in Intune zuvor für die Windows- und Linux-Seite verfügbar war, wurde seit diesem vergangenen Juli 2026 auch für macOS geöffnet.
Jedes Detail, das im Regelsatz von CIS oder NIST enthalten ist, aber nicht unter den integrierten Compliance Policies von Intune vorhanden ist, kann ein Teil einer Custom Compliance Policy sein. Dass SSH-Zugriff eingeschaltet ist, die Kontrolle, ob ein bestimmtes Zertifikat auf dem Gerät vorhanden ist, die Kontrolle, ob irgendeine Software — zum Beispiel AnyDesk — auf dem Gerät installiert ist, freie Festplattenkapazität… Geben Sie ihm einen Namen.
Wie wird Custom Compliance Policy verwendet?
Um Custom Compliance Policies verwenden zu können, benötigen Sie zwei Komponenten. Ein Skript und ein JSON-Dokument.
1. Discovery Script: Sie sollten das Discovery Script verwenden, um für die von Ihnen festgelegten Regeln den Status auf den von Ihnen verwalteten Geräten erfahren zu können.
2. Compliance Rules: Nachdem Sie den Status auf den Geräten erfahren haben, sollten Sie, um ihn mit den Werten vergleichen zu können, die er sein sollte, diesen Regelsatz als ein JSON-Dokument in die Custom Compliance Policy hochladen.

Ein Beispiel-Discovery-Script können Sie unten untersuchen. Dieses .sh-Dokument ruft die Information ab, ob der SSH-Zugriff auf dem Gerät eingeschaltet ist, ob der Screen-Sharing-Dienst eingeschaltet ist, ob der Guest Account aktiviert ist, ob die Option Automatic Login aktiv ist, ob der Firewall-Stealth-Modus eingeschaltet ist und wie viele Tage das Gerät eingeschaltet ist. Sie können auch einen Test durchführen, indem Sie das untenstehende Skript kopieren.
#!/bin/bash
# Settings Blog Intune macOS Custom Compliance - Discovery script 1: System hardening
# Runs as root via the Intune management agent. Must print ONE line of JSON to stdout.
# SSH (Remote Login)
if launchctl print system/com.openssh.sshd >/dev/null 2>&1; then ssh=true; else ssh=false; fi
# Screen Sharing
if launchctl print system/com.apple.screensharing >/dev/null 2>&1; then screenshare=true; else screenshare=false; fi
# Guest account
guest=$(defaults read /Library/Preferences/com.apple.loginwindow GuestEnabled 2>/dev/null)
[[ "$guest" == "1" ]] && guest=true || guest=false
# Automatic login
if defaults read /Library/Preferences/com.apple.loginwindow autoLoginUser >/dev/null 2>&1; then autologin=true; else autologin=false; fi
# Firewall stealth mode
if /usr/libexec/ApplicationFirewall/socketfilterfw --getstealthmode 2>/dev/null | grep -Eqi "is on|enabled"; then stealth=true; else stealth=false; fi
# Uptime in days (catches devices that never reboot to apply updates)
boot=$(sysctl -n kern.boottime | awk -F'[ ,]' '{print $4}')
uptime_days=$(( ( $(date +%s) - boot ) / 86400 ))
echo "{\"SSHEnabled\":$ssh,\"ScreenSharingEnabled\":$screenshare,\"GuestAccountEnabled\":$guest,\"AutoLoginEnabled\":$autologin,\"FirewallStealthMode\":$stealth,\"UptimeDays\":$uptime_days}"
Um Ihr Discovery Script verwenden zu können, sollten Sie es zuerst in Intune hochladen. Aber diese Upload-Aufgabe müssen Sie wiederum vom Reiter Scripts im Compliance Policy-Bereich aus erledigen. Gehen Sie nicht versehentlich zum Abschnitt Devices / macOS / Scripts.

Nach dem Hochladen Ihres Discovery Scripts müssen Sie Ihr JSON-Dokument hochladen, das Ihren Regelsatz enthält. Dies können Sie direkt vom Bearbeitungsbildschirm der Custom Compliance Policy aus tun. Ein Beispiel-JSON-Dokument, das zum obigen Discovery Script passen wird, können Sie unten untersuchen.
{
"Rules": [
{
"SettingName": "SSHEnabled",
"Operator": "IsEquals",
"DataType": "Boolean",
"Operand": false,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Remote Login (SSH) is enabled", "Description": "Turn off Remote Login in System Settings > General > Sharing." }
]
},
{
"SettingName": "ScreenSharingEnabled",
"Operator": "IsEquals",
"DataType": "Boolean",
"Operand": false,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Screen Sharing is enabled", "Description": "Turn off Screen Sharing in System Settings > General > Sharing." }
]
},
{
"SettingName": "GuestAccountEnabled",
"Operator": "IsEquals",
"DataType": "Boolean",
"Operand": false,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Guest account is enabled", "Description": "Disable the Guest User in System Settings > Users & Groups." }
]
},
{
"SettingName": "AutoLoginEnabled",
"Operator": "IsEquals",
"DataType": "Boolean",
"Operand": false,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Automatic login is enabled", "Description": "Set automatic login to Off in System Settings > Users & Groups." }
]
},
{
"SettingName": "FirewallStealthMode",
"Operator": "IsEquals",
"DataType": "Boolean",
"Operand": true,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Firewall stealth mode is off", "Description": "Enable stealth mode in System Settings > Network > Firewall > Options." }
]
},
{
"SettingName": "UptimeDays",
"Operator": "LessEquals",
"DataType": "Int64",
"Operand": 14,
"MoreInfoUrl": "https://settings.blog",
"RemediationStrings": [
{ "Language": "en_US", "Title": "Restart required", "Description": "Your Mac has not been restarted for more than 14 days. Please restart it." }
]
}
]
}
Nach dem Hochladen Ihrer Discovery-Script- und Rules-JSON-Dokumente sehen Sie einen Bildschirm wie den untenstehenden. Wie Sie auch von hier aus verstehen werden, diktiert unser JSON-Dokument, dass SSH, Screen Sharing, Guest-Benutzerzugriff und die Auto-Login-Funktion ausgeschaltet sind; dass der Firewall-Stealth-Modus eingeschaltet ist; und dass die Up-Zeit des Geräts weniger als 14 Tage beträgt.

Aber was passiert nach dem Senden?
Nachdem Sie die allgemeine Compliance Policy, die auch die Custom-Seite enthält, Ihren Benutzern zugewiesen (Assign) haben, werden die Geräte, falls es einen nicht konformen Punkt auf Ihren Geräten gibt, als Non-Compliant markiert.
Wenn Sie unter der Überschrift Device Compliance auf der eigenen Detailseite eines beliebigen Geräts nachsehen, können Sie die Information sehen, welche Überschriften die von Ihnen gesendete Compliance Policy bestanden und bei welchen Überschriften sie durchgefallen ist. Im untenstehenden Screenshot erscheint das geprüfte Gerät als nicht konform markiert bei den Überschriften Auto Login, Firewall Stealth Mode und Full-Disk-Verschlüsselung. Natürlich wird dieses Gerät als Non-Compliant angezeigt, bis alle Kriterien erfüllt sind. Nachdem diese Kriterien erfüllt sind, wird es erneut als Compliant markiert.

Abschließend ein Anwendungsbeispiel
Microsoft hat kürzlich einen Artikel veröffentlicht, der als Beispiel für die Verwendung einer Custom Compliance Policy dienen kann. Er behandelt die Verwendung der im Rahmen von NISTs macOS Security Compliance erstellen Ausgaben als eine Custom Compliance Policy. Den Artikel, der als Beispiel die CIS Level 1-Baseline verwendet, können Sie unter dieser Adresse lesen.


Kommentar verfassen