Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sinter — Ein Benutzermodus-Anwendungsautorisierungssystem für macOS, geschrieben in Swift. | Kitploit
Tools/GitHubGitHub/trailofbits/sinter
DefensivwerkzeugeKonfigurationsprüfungIncident ResponseArchived
GitHubtrailofbits/sinter

sinter

Ein Benutzermodus-Anwendungsautorisierungssystem für macOS, geschrieben in Swift.

Repository anzeigenWebseite
29915vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Sinter

Build Status

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.

Funktionen

  • Erlauben oder Verweigern der Prozessausführung anhand des Code-Verzeichnis-Hashs (auch 'CD-Hash')
    • Option, alle unbekannten Programme zu verweigern (jedes Programm, das nicht explizit erlaubt ist)
    • Option, alle unsignierten Programme zu verweigern
    • Option, alle Programme mit ungültigen Signaturen zu verweigern
  • "Monitor"-Modus, um alle Prozessausführungsereignisse zu verfolgen und zu protokollieren (aber zu erlauben)
  • Akzeptiert Erlauben/Verweigern-Regeln von einem Santa-Sync-Server
  • Konfigurieren von Verweigerungsregeln in JSON, die lokal oder von einem Sync-Server bereitgestellt werden
  • Protokollierung auf dem lokalen Dateisystem in einem strukturierten JSON-Format

Geplante zukünftige Funktionen:

  • Prozessausführung anhand des ausführbaren Dateipfads verweigern
  • Prozessausführung anhand der Zertifikat-Team-ID verweigern

Anti-Funktionen

  • Verwendet keine Kernel-Erweiterungen (die in macOS 11 Big Sur offiziell veraltet sein werden)
  • Unterstützt kein veraltetes macOS (10.14 oder älter)
  • Verwendet keinen speicherunsicheren Code
  • Begrenzt Abhängigkeiten von Drittanbieter-Bibliotheken
  • Kein Anti-Malware oder Anti-Virus. Keine Signaturdatenbank. Verweigert nur das, was Sie ihm sagen, es zu verweigern, unter Verwendung von Regeln.

Hintergrund

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.

Erste Schritte

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.

Konfiguration

Sinter benötigt eine Konfigurationsdatei unter /etc/sinter/config.json. Ein Beispiel befindet sich im Quellbaum unter ./config/config.json:

root@kitploit:~
{
  "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:

  1. filesystem: Nachrichten werden in eine Datei geschrieben, unter Verwendung des unter FilesystemLogger.log_file_path angegebenen Pfads
  2. unifiedlogging: Protokolle werden mit Unified Logging unter Verwendung von com.trailofbits.sinter als Subsystem ausgegeben.

Zulässige Anwendungsverzeichnisse

Es ist möglich, Sinter so zu konfigurieren, dass Anwendungen, die nicht aus einem zulässigen Ordner gestartet wurden, protokolliert und optional verweigert werden.

  • allow_misplaced_applications: Wenn auf true gesetzt, erzeugen fehlplatzierte Anwendungen nur eine Warnung. Wenn auf false gesetzt, wird jede Ausführung, die nicht von einem gültigen Pfad aus startet, verweigert.
  • allowed_application_directories: Wenn nicht leer, wird es verwendet, um festzustellen, ob Anwendungen im falschen Ordner abgelegt sind.

Aktivieren von UI-Benachrichtigungen

  1. Installieren Sie den Benachrichtigungsserver (der PKG-Installer erledigt dies automatisch): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. Starten Sie den Agenten: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

Konfigurieren von Sinter im MONITOR-Modus

Modi sind in Sinter nicht implementiert, da alles regelbasiert ist. Die Überwachungsfunktionalität kann durch Anpassen der folgenden Einstellungen implementiert werden:

  • allow_unsigned_programs: Anwendungen erlauben, die nicht signiert sind
  • allow_invalid_programs: Anwendungen erlauben, die die Signaturprüfung nicht bestehen
  • allow_unknown_programs: Anwendungen automatisch erlauben, die nicht von der aktiven Regelbasis abgedeckt sind
  • allow_expired_auth_requests: Die EndpointSecurity-API verlangt von Sinter, innerhalb eines nicht näher festgelegten Zeitrahmens (typischerweise weniger als eine Minute) auf Autorisierungsanfragen zu antworten. Große Anwendungen wie Xcode benötigen eine beträchtliche Zeit für die Überprüfung. Diese Ausführungen werden standardmäßig verweigert, und der Benutzer soll es erneut versuchen, sobald die Anwendung überprüft wurde. Wenn diese Konfiguration auf true gesetzt wird, ändert sich dieses Verhalten, sodass diese Anfragen immer erlaubt werden.

Regelformat

Regeldatenbanken werden im JSON-Format geschrieben. Hier ist ein Beispiel für eine Datenbank, die das CMake-Anwendungsbündel von cmake.org erlaubt:

root@kitploit:~
{
  "rules": [
    {
      "rule_type": "BINARY",
      "policy": "ALLOWLIST",
      "sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
      "custom_msg": "CMake"
    }
  ]
}

Sinter unterstützt derzeit nur BINARY-Regeln, entweder mit ALLOWLIST- oder DENYLIST-Richtlinien. Der Code-Verzeichnis-Hash-Wert kann aus der Ausgabe des codesign-Tools entnommen werden (Beispiel: codesign -dvvv /Applications/CMake.app). Beachten Sie, dass die CLI-Tools den vollständigen SHA256-Hash abrufen können, die Kernel/EndpointSecurity-API jedoch auf die ersten 20 Bytes beschränkt ist.

Aus dem Quellcode erstellen

Das Erstellen von Sinter erfordert bestimmte Code-Signing-Zertifikate und Berechtigungen, die Apple Ihrer Organisation gewähren muss. Sinter kann jedoch dennoch aus dem Quellcode erstellt und lokal auf einem Testsytem mit deaktiviertem SIP ausgeführt werden. Anweisungen finden Sie im Sinter-Wiki.

Lizenz

Sinter ist unter der AGPLv3-Lizenz lizenziert und verteilt. Kontaktieren Sie uns, wenn Sie eine Ausnahme von den Bedingungen suchen.

Tool herunterladen