
Un sistema di autorizzazione all'accesso a binari e file per macOS.
Santa è un sistema di autorizzazione per l'accesso a file e binari per macOS. È costituito da un'estensione di sistema che monitora le esecuzioni e l'accesso ai file, e prende decisioni in base al contenuto di un database locale, un agente GUI che notifica all'utente in caso di blocco, un servizio in background per sincronizzare la configurazione con un server remoto e un'utilità a riga di comando per gestire il sistema.
Si chiama Santa perché tiene traccia dei binari che sono stati cattivi o buoni.
La documentazione di Santa è archiviata nella directory Docs e viene pubblicata su https://northpole.dev.
La documentazione include opzioni di distribuzione, dettagli su come funzionano le parti di Santa e istruzioni per sviluppare Santa stesso.
Se hai domande o hai bisogno di aiuto per iniziare, il canale #santa su Slack di macadmins è un ottimo punto di partenza.
Se pensi di aver trovato un bug, segnala un problema e risponderemo appena possibile.
Se pensi di aver trovato una vulnerabilità, leggi la security policy per segnalarla in modo responsabile.
Modalità multiple: nella modalità MONITOR predefinita, tutti i binari tranne quelli marcati come bloccati possono essere eseguiti, mentre vengono registrati e salvati nel database degli eventi. In modalità LOCKDOWN, solo i binari elencati possono essere eseguiti.
Registrazione degli eventi: quando l'estensione di sistema è caricata, tutti gli avvii di binari vengono registrati. In entrambe le modalità, tutti i binari sconosciuti o negati vengono salvati nel database per consentire un'aggregazione successiva.
Regole basate sulla firma del codice, con livelli di override: invece di fare affidamento sull'hash (o 'impronta') di un binario, gli eseguibili possono essere consentiti/bloccati tramite la loro firma del codice (attraverso regole CDHash, Certificate, TeamID o SigningID). Puoi quindi consentire/bloccare tutti i binari firmati da un publisher o tutte le versioni di un binario firmato. Le regole vengono applicate in ordine di specificità, il che ti consente di consentire tutti i binari di un determinato publisher bloccando al contempo uno specifico signing ID o binario (o viceversa).
Regole basate sul percorso (tramite NSRegularExpression/ICU): ciò consente una funzionalità simile a quella presente in Managed Client (il predecessore dei profili di configurazione, che usava lo stesso meccanismo di implementazione), le Restrizioni di Avvio Applicazioni tramite il binario mcxalr. Questa implementazione ha il vantaggio aggiuntivo di essere configurabile tramite regex e di non dipendere da LaunchServices. Come dettagliato nella wiki, nella valutazione delle regole ha la precedenza più bassa.
Regole certificate failsafe: non puoi inserire una regola di deny che blocchi il certificato usato per firmare launchd, noto anche come pid 1, e quindi tutti i componenti usati in macOS. I binari di ogni aggiornamento del sistema operativo (e in alcuni casi intere nuove versioni) sono quindi automaticamente consentiti. Questo non riguarda i binari dell'App Store di Apple, che usano vari certificati che cambiano regolarmente per le app comuni. Allo stesso modo, non puoi bloccare Santa stesso.
I componenti in userland si convalidano a vicenda: ciascuno dei componenti userland (il demone, l'agente GUI e l'utilità a riga di comando) comunica con gli altri tramite XPC e verifica che i propri certificati di firma siano identici prima di accettare qualsiasi comunicazione.
Cache: i binari consentiti vengono memorizzati nella cache, così l'elaborazione necessaria per soddisfare una richiesta viene eseguita solo se il binario non è già in cache.
Nessun singolo sistema o processo fermerà tutti gli attacchi, né fornirà sicurezza al 100%. Santa è scritto con l'intenzione di aiutare a proteggere gli utenti da sé stessi. Le persone spesso scaricano malware e si fidano di esso, dando al malware credenziali o consentendo a software sconosciuti di esfiltrare più dati sul tuo sistema. Come componente gestito centralmente, Santa può aiutare a fermare la diffusione di malware tra una grande flotta di macchine. In modo indipendente, Santa può aiutare ad analizzare cosa sta girando sul tuo computer.
Santa fa parte di una strategia di difesa in profondità e dovresti continuare a proteggere gli host in tutti gli altri modi che ritieni opportuni.
Santa blocca solo l'esecuzione (execve e varianti), non protegge dalle librerie dinamiche caricate con dlopen, dalle librerie su disco che sono state sostituite o dalle librerie caricate usando DYLD_INSERT_LIBRARIES. Altre parti di macOS di solito proteggono da queste vie, purché SIP sia attiva.
Script: Santa è attualmente scritto per ignorare qualsiasi esecuzione che non sia un binario. Questo perché, dopo aver soppesato il costo amministrativo rispetto al beneficio, abbiamo concluso che non ne valeva la pena. Inoltre, molte applicazioni utilizzano script temporanei generati al volo, che non possiamo in alcun modo mettere in allowlist e non farlo causerebbe problemi. Siamo felici di rivalutare questa scelta (o almeno renderla un'opzione) se potesse essere utile ad altri.
Santa può sincronizzare le sue impostazioni e policy con un server di gestione, consentendo cambi di configurazione molto rapidi.
Sono disponibili diversi server commerciali e open-source:
In alternativa, le regole possono essere configurate localmente usando la chiave di configurazione StaticRules oppure il comando santactl rule.
Uno strumento come Santa non si presta molto agli screenshot, quindi ecco un video.
Le patch a questo progetto sono molto benvenute. Consulta il documento CONTRIBUTING.
North Pole Security e North Pole Security Santa non sono affiliate a Google.