Santa ist ein Binär- und Dateizugriffsautorisierungssystem für macOS. Es besteht aus einer Systemerweiterung, die Ausführungen überwacht, einem Daemon, der Ausführungsentscheidungen auf der Grundlage des Inhalts einer lokalen Datenbank trifft, einem GUI-Agenten, der den Benutzer im Falle einer Blockierungsentscheidung benachrichtigt, und einem Befehlszeilendienstprogramm zur Verwaltung des Systems und Synchronisieren der Datenbank mit einem Server.
Es heißt Santa, weil es Binärdateien verfolgt, die ungezogen oder nett sind.
Die Santa-Dokumente werden im Docs-Verzeichnis gespeichert und unter https://santa.dev veröffentlicht.
Die Dokumente enthalten Bereitstellungsoptionen, Details zur Funktionsweise von Teilen von Santa und Anweisungen zur Entwicklung von Santa selbst.
Wenn Sie Fragen haben oder anderweitig Hilfe beim Einstieg benötigen, ist die Santa-Dev-Gruppe ein großartiger Ort.
Wenn Sie glauben, dass Sie einen Fehler haben, können Sie uns gerne ein Problem melden. Wir werden dann so schnell wie möglich antworten.
Wenn Sie glauben, eine Sicherheitslücke gefunden zu haben, lesen Sie bitte die Sicherheitsrichtlinie für Offenlegungsmeldungen.
Mehrere Modi: Im standardmäßigen MONITOR-Modus dürfen alle Binärdateien mit Ausnahme derjenigen, die als blockiert markiert sind, ausgeführt werden, während sie protokolliert und in der Ereignisdatenbank aufgezeichnet werden. Im LOCKDOWN-Modus dürfen nur aufgelistete Binärdateien ausgeführt werden.
Ereignisprotokollierung: Wenn die Systemerweiterung geladen wird, werden alle Binärstarts protokolliert. In beiden Modi werden alle unbekannten oder abgelehnten Binärdateien in der Datenbank gespeichert, um eine spätere Aggregation zu ermöglichen.
Zertifikatbasierte Regeln mit Überschreibungsebenen: Anstatt sich auf den Hash (oder „Fingerabdruck“) einer Binärdatei zu verlassen, können ausführbare Dateien durch ihr Signaturzertifikat zugelassen/blockiert werden. Sie können daher alle Binärdateien eines bestimmten Herausgebers, die mit diesem Zertifikat signiert wurden, über Versionsaktualisierungen hinweg zulassen/blockieren. Eine Binärdatei kann nur dann von ihrem Zertifikat zugelassen werden, wenn ihre Signatur korrekt validiert wird, aber eine Regel für den Fingerabdruck einer Binärdatei hat Vorrang vor einer Entscheidung für ein Zertifikat; Das heißt, Sie können ein Zertifikat auf die Zulassungsliste setzen und gleichzeitig eine mit diesem Zertifikat signierte Binärdatei blockieren oder umgekehrt.
Pfadbasierte Regeln (über NSRegularExpression/ICU): Dies ermöglicht eine ähnliche Funktion wie im Managed Client (dem Vorläufer von Konfigurationsprofilen, die denselben Implementierungsmechanismus verwendeten), Anwendungsstartbeschränkungen über die mcxalr-Binärdatei. Diese Implementierung bietet den zusätzlichen Vorteil, dass sie über Regex konfigurierbar ist und nicht auf LaunchServices angewiesen ist. Wie im Wiki beschrieben, hat dies bei der Bewertung von Regeln die niedrigste Priorität.
Ausfallsichere Zertifikatsregeln: Sie können keine Verweigerungsregel festlegen, die das zum Signieren von launchd (auch bekannt als PID 1) verwendete Zertifikat und damit alle in macOS verwendeten Komponenten blockieren würde. Die Binärdateien in jedem Betriebssystem-Update (und in manchen Fällen auch in ganzen neuen Versionen) sind daher automatisch zulässig. Dies betrifft nicht die Binärdateien aus dem App Store von Apple, die verschiedene Zertifikate verwenden, die sich für gängige Apps regelmäßig ändern. Ebenso können Sie Santa selbst nicht blockieren und Santa verwendet ein anderes Zertifikat als andere Google-Apps.
Userland-Komponenten validieren sich gegenseitig: Jede Userland-Komponente (der Daemon, der GUI-Agent und das Befehlszeilenprogramm) kommuniziert über XPC miteinander und überprüft, ob ihre Signaturzertifikate identisch sind, bevor eine Kommunikation akzeptiert wird.
Caching: Zulässige Binärdateien werden zwischengespeichert, sodass die zum Senden einer Anfrage erforderliche Verarbeitung nur dann erfolgt, wenn die Binärdatei nicht bereits zwischengespeichert ist.
Kein einzelnes System oder Prozess kann alle Angriffe stoppen oder 100 % Sicherheit bieten. Santa wurde mit der Absicht geschrieben, Benutzer vor sich selbst zu schützen. Menschen laden oft Malware herunter und vertrauen ihr, geben die Malware-Anmeldeinformationen an oder erlauben unbekannter Software, mehr Daten über Ihr System zu exfiltrieren. Als zentral verwaltete Komponente kann Santa dazu beitragen, die Verbreitung von Malware auf einer großen Maschinenflotte zu stoppen. Unabhängig davon kann der Weihnachtsmann bei der Analyse der Vorgänge auf Ihrem Computer behilflich sein.
Der Weihnachtsmann ist Teil einer tiefgreifenden Verteidigungsstrategie, und Sie sollten die Gastgeber weiterhin auf jede andere Art und Weise schützen, die Sie für richtig halten.
Santa blockiert nur die Ausführung (execve und Varianten), es schützt nicht vor dynamischen Bibliotheken, die mit dlopen geladen wurden, Bibliotheken auf der Festplatte, die ersetzt wurden, oder Bibliotheken, die mit DYLD_INSERT_LIBRARIES
geladen wurden.
Skripte: Santa ist derzeit so geschrieben, dass es jede Ausführung ignoriert, die keine Binärdatei ist. Dies liegt daran, dass wir nach Abwägung der Verwaltungskosten und des Nutzens festgestellt haben, dass es sich nicht lohnt. Darüber hinaus nutzen eine Reihe von Anwendungen temporär generierte Skripts, die wir unmöglich auf die Zulassungsliste setzen können und dies sonst zu Problemen führen würde. Wir kommen gerne noch einmal darauf zurück (oder machen es zumindest zu einer Option), wenn es für andere nützlich wäre.
Der Befehlszeilenclient santactl
enthält ein Flag zur Synchronisierung mit einem Verwaltungsserver, der auf dem Computer aufgetretene Ereignisse hochlädt und neue Regeln herunterlädt. Es gibt mehrere Open-Source-Server, mit denen Sie synchronisieren können:
Alternativ kann santactl
Regeln lokal konfigurieren (ohne Synchronisierungsserver).
Ein Tool wie Santa eignet sich nicht wirklich für Screenshots, daher hier stattdessen ein Video.
Patches für dieses Projekt sind sehr willkommen. Bitte sehen Sie sich das Dokument „Beitrag“ an.
Dies ist kein offizielles Google-Produkt.