
Ein Benutzermodus-Anwendungsautorisierungssystem für macOS, geschrieben in Swift.
Sinter ist ein 100%iger Benutzermodus-Endpunktsicherheitsagent für macOS 10.15 und höher, geschrieben in Swift.
Sinter verwendet die Benutzermodus-API EndpointSecurity, um Autorisierungs-Callbacks vom macOS-Kernel für eine Reihe sicherheitsrelevanter Ereignistypen zu abonnieren und zu empfangen. Die aktuelle Version von Sinter unterstützt das Erlauben/Verweigern von Prozessausführungen; in zukünftigen Versionen planen wir, andere Ereignistypen wie Datei-, Socket- und Kernel-Ereignisse zu unterstützen.
Sinter ist ein Work-in-Progress. Rückmeldungen sind willkommen. Wenn Sie Interesse haben, einen Beitrag zu leisten oder uns zu sponsern, um sein Potenzial zu entfalten, nehmen Sie Kontakt auf.
Geplante zukünftige Funktionen:
Die erste Open-Source-macOS-Lösung zum Erlauben/Verweigern von Prozessen war Google Santa. Wir sind Fans von Santa und haben in der Vergangenheit zu seiner Codebasis beigetragen. Lange Zeit jedoch haben viele in der macOS-Community nach einer Open-Source-Lösung gefragt, um mehr als nur Prozessereignisse zu verfolgen und zu verwalten.
Wir sahen die ideale Plattform, um eine solche Fähigkeit mit der EndpointSecurity-API in macOS 10.15 aufzubauen. Von Grund auf um eine strikte Benutzermodus-API herum aufgebaut, bedeutete dies, dass wir ein einfacheres Design versuchen und eine moderne Programmiersprache mit sichererem Speichermanagement und besserer Leistung verwenden konnten. Also machten wir uns daran, Sinter zu entwickeln, kurz für 'Sinter Klausen', ein anderer Name für den Weihnachtsmann.
Laden Sie die neueste Version von Sinter mit dem pkg-Installer-Link von der Releases-Seite herunter und installieren Sie sie.
Nach der Installation von Sinter müssen Sie die Berechtigung 'Voller Festplattenzugriff' für Sinter.app aktivieren. Öffnen Sie dazu die Systemeinstellungen, den Tab Sicherheit, Datenschutz, Voller Festplattenzugriff. Aktivieren Sie das Element für Sinter.app. Wenn Sie MDM verwenden, können Sie diese Berechtigung automatisch auf Ihren Endpunkten aktivieren, und es ist keine Benutzerinteraktion erforderlich.
Sinter benötigt eine Konfigurationsdatei unter /etc/sinter/config.json. Ein Beispiel befindet sich im Quellbaum unter ./config/config.json:
{
"Sinter": {
"decision_manager": "local",
"logger": "filesystem",
"allow_unsigned_programs": "true",
"allow_invalid_programs": "true",
"allow_unknown_programs": "true",
"allow_expired_auth_requests": "true",
"allow_misplaced_applications": "true",
"config_update_interval": 600,
"allowed_application_directories": [
"/bin",
"/usr/bin",
"/usr/local/bin",
"/Applications",
"/System",
"/usr/sbin",
"/usr/libexec",
],
},
"FilesystemLogger": {
"log_file_path": "/var/log/sinter.log",
},
"RemoteDecisionManager": {
"server_url": "https://server_address:port",
"machine_identifier": "identifier",
},
"LocalDecisionManager": {
"rule_database_path": "/etc/sinter/rules.json",
}
}
Das Decision-Manager-Plugin kann durch Ändern des Werts decision_manager ausgewählt werden. Das lokale Plugin aktiviert den Konfigurationsabschnitt LocalDecisionManager, der Sinter anweist, die lokale Regelbasis am angegebenen Pfad zu verwenden. Es ist möglich, einen Santa-kompatiblen Sync-Server zu verwenden, indem stattdessen das sync-server-Plugin verwendet wird. Dies aktiviert den Konfigurationsabschnitt RemoteDecisionManager, in dem die Server-URL und die Maschinenkennung festgelegt werden können.
Es sind derzeit zwei Logger-Plugins implementiert:
Es ist möglich, Sinter so zu konfigurieren, dass Anwendungen, die nicht aus einem zulässigen Ordner gestartet wurden, protokolliert und optional verweigert werden.
sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server/Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-serverModi sind in Sinter nicht implementiert, da alles regelbasiert ist. Die Überwachungsfunktionalität kann durch Anpassen der folgenden Einstellungen implementiert werden:
Regeldatenbanken werden im JSON-Format geschrieben. Hier ist ein Beispiel für eine Datenbank, die das CMake-Anwendungsbündel von cmake.org erlaubt: