Bypass di Gatekeeper: Gatekeeper Bypass (T1553.001)

La tecnica T1553.001 descrive come un attaccante possa aggirare Gatekeeper, il livello di sicurezza di macOS che verifica la fiducia delle applicazioni prima dell'esecuzione. Rientra nella tattica TA0005 (Defense Evasion) e si colloca tipicamente nelle fasi post-Initial Access, quando il payload è già stato consegnato sull'endpoint e deve essere lanciato senza generare prompt utente.

Gatekeeper è un insieme di controlli che comprende File Quarantine, verifica del Code Signing, valutazione delle policy di sistema e Notarization verso i server Apple. Il meccanismo si attiva quando un file scaricato riceve l'attributo esteso com.apple.quarantine, che segnala a Launch Services la necessità di sospendere l'app e mostrare l'alert di conferma.

Gli avversari sfruttano diverse debolezze strutturali: rimozione dell'attributo di quarantena tramite xattr, download effettuati con curl o via USB che non impostano il flag, notarizzazione fraudolenta ottenuta da Apple, e prima di macOS 13 la possibilità di scrivere binari in bundle di app già lanciate per eludere il controllo del primo avvio.

I dati MITRE censiscono 6 famiglie malware che implementano questa tecnica (OSX_OCEANLOTUS.D, CoinTicker, OSX/Shlayer, XCSSET, MacMa, Cuckoo Stealer) e 1 mitigazione ufficiale, a dimostrazione di quanto il bypass di Gatekeeper resti un vettore centrale nell'ecosistema macOS malware, soprattutto per stealer e backdoor mirati a utenti aziendali e sviluppatori.

In un esercizio red team su macOS il bypass di Gatekeeper si simula riproducendo le catene osservate nelle famiglie reali. Il punto di partenza è comprendere il ciclo di vita dell'attributo com.apple.quarantine, che viene applicato da Safari, Mail e dai principali browser ma non da strumenti come curl, wget o dai mount di volumi esterni.

Per verificare la presenza del flag su un file scaricato si usa:

xattr -l /Users/target/Downloads/payload.dmg

Se l'attributo è presente comparirà com.apple.quarantine seguito da un valore esadecimale con timestamp e agent identifier. La rimozione, replicando la tecnica di OSX_OCEANLOTUS.D e Cuckoo Stealer, avviene con:

xattr -d com.apple.quarantine /Users/target/Downloads/payload.dmg

Oppure ricorsivamente su un bundle:

xattr -cr /Applications/PayloadApp.app

La catena adottata da CoinTicker consiste nel far scaricare al dropper iniziale (firmato e notarizzato) un secondo stadio tramite curl, che nativamente non applica il flag. In laboratorio si riproduce con:

curl -o /tmp/stage2 && chmod +x /tmp/stage2 && /tmp/stage2

Con privilegi elevati, come fa OSX/Shlayer, si può disattivare direttamente la valutazione delle policy:

sudo spctl --master-disable

e verificarne lo stato con spctl --status. Su versioni recenti di macOS questa opzione richiede intervento manuale in System Settings > Privacy & Security, quindi va documentata come limite del test.

La tecnica di XCSSET, valida su macOS ≤ 12, prevede la scrittura di un applet malevolo dentro Contents/MacOS/ di un'app già lanciata almeno una volta: Gatekeeper non rivalidava le firme sui launch successivi. Per la simulazione si costruisce un piccolo applet AppleScript con osacompile -o Evil.app payload.scpt e lo si posiziona nel bundle target.

Tool utili in laboratorio: Mythic (open source) con l'agent Poseidon per la parte C2 su macOS, Swift Belt (open source) per l'enumerazione post-exploitation, e Platypus (open source) per generare rapidamente app bundle da script. Per validare la firma di un payload notarizzato si usa codesign -dvv Evil.app e spctl -a -vv Evil.app, riproducendo esattamente ciò che valuterebbe il sistema. Tutti i test devono essere confinati in VM isolate senza Apple ID di produzione, per evitare revoche di sviluppatore reali.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.