
Ein binäres Autorisierungs- und Überwachungssystem für macOS
[!NOTE] Ab 2025 wird Santa nicht mehr von Google gewartet. Wir empfehlen bestehenden Benutzern, zu einem aktiv gewarteten Fork von Santa zu migrieren, wie z. B. https://github.com/northpolesec/santa.
Santa ist ein Autorisierungssystem für Binärdateien und Dateizugriffe für macOS. Es besteht aus einer Systemerweiterung, die Ausführungen überwacht, einem Daemon, der auf Basis des Inhalts einer lokalen Datenbank Ausführungsentscheidungen trifft, einem GUI-Agenten, der den Benutzer im Falle einer Blockierungsentscheidung benachrichtigt, und einem Befehlszeilentool zur Verwaltung des Systems und zur Synchronisierung der Datenbank mit einem Server.
Es heißt Santa, weil es den Überblick über Binärdateien behält, die brav oder unartig sind.
Die Santa-Dokumentation befindet sich im Verzeichnis Docs und wird unter https://santa.dev veröffentlicht.
Die Dokumentation enthält Bereitstellungsoptionen, Details zur Funktionsweise von Santa sowie Anleitungen zur Entwicklung von Santa selbst.
Wenn Sie Fragen haben oder anderweitig Hilfe beim Einstieg benötigen, ist die santa-dev-Gruppe ein guter Ort.
Wenn Sie glauben, einen Fehler gefunden zu haben, melden Sie bitte ein Issue, und wir werden uns so schnell wie möglich darum kümmern.
Wenn Sie glauben, eine Sicherheitslücke gefunden zu haben, lesen Sie bitte die Security Policy für die Meldung von Schwachstellen.
Mehrere Modi: Im Standard-Monitor-Modus dürfen alle Binärdateien außer denen, die als blockiert markiert sind, ausgeführt werden, während sie protokolliert und in der Ereignisdatenbank aufgezeichnet werden. Im Lockdown-Modus dürfen nur gelistete Binärdateien ausgeführt werden.
Ereignisprotokollierung: Wenn die Systemerweiterung geladen ist, werden alle Binärstarts protokolliert. In beiden Modi werden alle unbekannten oder verweigerten Binärdateien in der Datenbank gespeichert, um eine spätere Aggregation zu ermöglichen.
Zertifikatsbasierte Regeln mit Überschreibungsebenen: Anstatt sich auf den Hash (oder „Fingerabdruck") einer Binärdatei zu verlassen, können ausführbare Dateien anhand ihres Signierzertifikats erlaubt/blockiert werden. So können Sie alle Binärdateien eines bestimmten Herausgebers, die mit diesem Zertifikat signiert wurden, über Versionsupdates hinweg erlauben/blockieren. Eine Binärdatei kann nur durch ihr Zertifikat erlaubt werden, wenn ihre Signatur korrekt validiert wird. Eine Regel für den Fingerabdruck einer Binärdatei überschreibt jedoch eine Entscheidung für ein Zertifikat; d.h. Sie können ein Zertifikat auf die Whitelist setzen, während Sie eine mit diesem Zertifikat signierte Binärdatei blockieren, oder umgekehrt.
Pfadbasierte Regeln (über NSRegularExpression/ICU): Dies ermöglicht eine ähnliche Funktion wie in Managed Client (dem Vorläufer von Konfigurationsprofilen, der denselben Implementierungsmechanismus verwendete), nämlich Anwendungsstartbeschränkungen über die mcxalr-Binärdatei. Diese Implementierung bietet den zusätzlichen Vorteil, dass sie per Regex konfigurierbar ist und nicht auf LaunchServices angewiesen ist. Wie im Wiki beschrieben, hat diese Regel die niedrigste Priorität bei der Auswertung.
Failsafe-Zertifikatsregeln: Sie können keine Verweigerungsregel erstellen, die das zum Signieren von launchd (auch bekannt als PID 1) verwendete Zertifikat blockieren würde, und damit alle in macOS verwendeten Komponenten. Die Binärdateien jedes Betriebssystem-Updates (und in einigen Fällen ganzer neuer Versionen) werden daher automatisch zugelassen. Dies betrifft keine Binärdateien aus dem Apple App Store, die für gängige Apps verschiedene, regelmäßig wechselnde Zertifikate verwenden. Ebenso können Sie Santa selbst nicht blockieren, und Santa verwendet ein eigenes, separates Zertifikat, das sich von anderen Google-Apps unterscheidet.
Benutzerlandkomponenten validieren sich gegenseitig: Jede der Benutzerlandkomponenten (der Daemon, der GUI-Agent und das Befehlszeilentool) kommunizieren miteinander über XPC und prüfen, ob ihre Signierzertifikate identisch sind, bevor eine Kommunikation akzeptiert wird.
Caching: Zugelassene Binärdateien werden zwischengespeichert, sodass die für eine Anfrage erforderliche Verarbeitung nur dann durchgeführt wird, wenn die Binärdatei nicht bereits zwischengespeichert ist.
Kein einzelnes System oder Prozess wird alle Angriffe stoppen oder 100%ige Sicherheit bieten. Santa wurde mit der Absicht entwickelt, Benutzer vor sich selbst zu schützen. Menschen laden oft Schadsoftware herunter und vertrauen ihr, geben der Schadsoftware Anmeldeinformationen oder erlauben unbekannter Software, mehr Daten über Ihr System zu exfiltrieren. Als zentral verwaltete Komponente kann Santa helfen, die Verbreitung von Schadsoftware in einer großen Flotte von Rechnern zu stoppen. Unabhängig davon kann Santa bei der Analyse helfen, was auf Ihrem Computer ausgeführt wird.
Santa ist Teil einer Defense-in-Depth-Strategie, und Sie sollten Hosts weiterhin auf andere Weise schützen, die Sie für angemessen halten.
Santa blockiert nur die Ausführung (execve und Varianten), es schützt nicht vor dynamischen Bibliotheken, die mit dlopen geladen werden, Bibliotheken auf der Festplatte, die ersetzt wurden, oder Bibliotheken, die mit DYLD_INSERT_LIBRARIES geladen werden.
Skripte: Santa ist derzeit darauf ausgelegt, jede Ausführung zu ignorieren, die keine Binärdatei ist. Der Grund dafür ist, dass wir nach Abwägung der Verwaltungskosten gegen den Nutzen festgestellt haben, dass es sich nicht lohnt. Darüber hinaus verwenden viele Anwendungen temporär generierte Skripte, die wir unmöglich auf die Whitelist setzen können, und wenn wir es nicht tun würden, würde das Probleme verursachen. Wir sind gerne bereit, dies erneut zu prüfen (oder es zumindest als Option anzubieten), falls es für andere nützlich wäre.
Das Befehlszeilentool santactl enthält eine Option zur Synchronisierung mit einem Verwaltungsserver, der Ereignisse hochlädt, die auf dem Rechner aufgetreten sind, und neue Regeln herunterlädt. Es gibt mehrere Open-Source-Server, mit denen Sie synchronisieren können:
Alternativ kann santactl Regeln auch lokal (ohne Sync-Server) konfigurieren.
Ein Tool wie Santa eignet sich nicht wirklich für Screenshots, daher gibt es stattdessen ein Video.
Patches zu diesem Projekt sind sehr willkommen. Bitte lesen Sie das Dokument CONTRIBUTING.
Dies ist kein offizielles Google-Produkt.