Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sinter — Un sistema di autorizzazione per applicazioni in modalità utente per MacOS scritto in Swift. | Kitploit
Strumenti/GitHubGitHub/trailofbits/sinter
Strumenti DifensiviAudit di ConfigurazioneRisposta agli IncidentiArchived
GitHubtrailofbits/sinter

sinter

Un sistema di autorizzazione per applicazioni in modalità utente per MacOS scritto in Swift.

Vedi RepositorySito web
299155 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Sinter

Build Status

Sinter è un agente di sicurezza endpoint 100% in modalità utente per macOS 10.15 e successivi, scritto in Swift.

Sinter utilizza l'API EndpointSecurity in modalità utente per sottoscrivere e ricevere callback di autorizzazione dal kernel macOS per un insieme di tipi di eventi rilevanti per la sicurezza. La versione corrente di Sinter supporta l'autorizzazione/il rifiuto delle esecuzioni di processi; nelle versioni future intendiamo supportare altri tipi di eventi come file, socket ed eventi del kernel.

Sinter è un work-in-progress. I feedback sono benvenuti. Se sei interessato a contribuire o a sponsorizzarci per aiutarci a realizzare il suo potenziale, mettiamoci in contatto.

Caratteristiche

  • Consenti o nega l'esecuzione di un processo tramite hash della directory del codice (aka "CD hash")
    • opzione per negare tutti i programmi sconosciuti (qualsiasi programma non esplicitamente consentito)
    • opzione per negare tutti i programmi non firmati
    • opzione per negare tutti i programmi con firme non valide
  • Modalità "monitor" per tracciare e registrare (ma consentire) tutti gli eventi di esecuzione dei processi
  • Accetta regole di autorizzazione/rifiuto da un server di sincronizzazione Santa
  • Configura regole di rifiuto in JSON, fornite localmente o da un server di sincronizzazione
  • Registra sul filesystem locale in formato JSON strutturato

Funzionalità future pianificate:

  • Nega l'esecuzione di un processo tramite percorso del file eseguibile
  • Nega l'esecuzione di un processo tramite ID del team del certificato

Anti-Features

  • Non utilizza estensioni del kernel (che saranno ufficialmente deprecate in macOS 11 Big Sur)
  • Non supporta macOS legacy (10.14 o precedenti)
  • Non utilizza codice non sicuro per la memoria
  • Limita le dipendenze da librerie di terze parti
  • Non è un anti-malware o anti-virus. Nessun database di firme. Nega solo ciò che gli dici di negare, utilizzando regole.

Contesto

La prima soluzione open-source per macOS per consentire/negare processi è stata Google Santa. Siamo fan di Santa e abbiamo contribuito al suo codice in passato. Tuttavia, per molto tempo molti nella comunità macOS hanno chiesto una soluzione open-source per tracciare e gestire più dei soli eventi di processo.

Abbiamo visto la piattaforma ideale per costruire tale capacità con l'API EndpointSecurity in macOS 10.15. Partire da zero attorno a un'API strettamente in modalità utente significava poter tentare un design più semplice e utilizzare un linguaggio di programmazione moderno con una gestione della memoria più sicura e prestazioni migliori. Così, abbiamo iniziato a sviluppare Sinter, abbreviazione di "Sinter Klausen", un altro nome per Babbo Natale.

Per Iniziare

Scarica e installa l'ultima versione di Sinter utilizzando il link del pacchetto pkg dalla pagina Releases.

Dopo aver installato Sinter, devi abilitare l'autorizzazione "Accesso completo al disco" per Sinter.app. Apri Preferenze di Sistema, scheda Sicurezza e Privacy, seleziona Privacy, quindi Accesso completo al disco. Spunta l'elemento per Sinter.app. Se utilizzi MDM, puoi abilitare automaticamente questa autorizzazione sui tuoi endpoint e non sarà richiesta alcuna interazione da parte dell'utente.

Configurazione

Sinter richiede un file di configurazione in /etc/sinter/config.json. Un esempio è fornito nell'albero sorgente in ./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",
  }
}

Il plugin decision manager può essere selezionato cambiando il valore decision_manager. Il plugin local abilita la sezione di configurazione LocalDecisionManager, puntando Sinter a utilizzare il database di regole locale presente nel percorso indicato. È possibile utilizzare un server di sincronizzazione compatibile con Santa, utilizzando invece il plugin sync-server. Questo abilita la sezione di configurazione RemoteDecisionManager, dove possono essere impostati l'URL del server e l'identificativo della macchina.

Attualmente sono implementati due plugin logger:

  1. filesystem: i messaggi vengono scritti su file, utilizzando il percorso specificato in FilesystemLogger.log_file_path
  2. unifiedlogging: i log vengono emessi utilizzando il Unified Logging, con com.trailofbits.sinter come sottosistema.

Directory delle applicazioni consentite

È possibile configurare Sinter per registrare e, opzionalmente, negare le applicazioni che non sono state avviate da una cartella consentita.

  • allow_misplaced_applications: se impostato su true, le applicazioni fuori posto genereranno solo un avviso. Se impostato su false, qualsiasi esecuzione che non parte da un percorso valido viene negata.
  • allowed_application_directories: se non vuoto, verrà utilizzato per determinare se le applicazioni sono posizionate nella cartella sbagliata.

Abilitare le notifiche UI

  1. Installa il server di notifica (il pacchetto PKG lo farà automaticamente): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. Avvia l'agente: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

Configurare Sinter in modalità MONITOR

Le modalità non sono implementate in Sinter, poiché tutto è basato su regole. È possibile implementare la funzionalità di monitoraggio modificando le seguenti impostazioni:

  • allow_unsigned_programs: consente applicazioni non firmate
  • allow_invalid_programs: consente applicazioni che falliscono il controllo della firma
  • allow_unknown_programs: consente automaticamente applicazioni non coperte dal database di regole attivo
  • allow_expired_auth_requests: l'API EndpointSecurity richiede che Sinter risponda a una richiesta di autorizzazione entro un intervallo di tempo non specificato (tipicamente meno di un minuto). Applicazioni grandi, come Xcode, impiegheranno un tempo considerevole per essere verificate. Quelle esecuzioni vengono negate per impostazione predefinita e si prevede che l'utente riprovi una volta verificata l'applicazione. Impostare questa configurazione su true cambia questo comportamento in modo che tali richieste siano sempre consentite.

Formato delle regole

I database di regole sono scritti in formato JSON. Ecco un database di esempio che consente il bundle dell'applicazione CMake da cmake.org:

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

Sinter supporta per ora solo regole BINARY, utilizzando politiche ALLOWLIST o DENYLIST. Il valore hash della directory del codice può essere preso dall'output del tool codesign (esempio: codesign -dvvv /Applications/CMake.app). Nota che anche se gli strumenti CLI possono acquisire l'intero hash SHA256, l'API Kernel/EndpointSecurity è limitata ai primi 20 byte.

Compilare dai Sorgenti

Compilare Sinter richiede determinati certificati di code signing e entitlement che Apple deve concedere alla tua organizzazione. Tuttavia, Sinter può comunque essere compilato dai sorgenti ed eseguito localmente su un sistema di test con SIP disabilitato. Per istruzioni, consulta il wiki di Sinter.

Licenza

Sinter è concesso in licenza e distribuito sotto licenza AGPLv3. Contattaci se cerchi un'eccezione ai termini.

Scarica lo strumento