Resource Fork su macOS: Hide Artifacts – Resource Forking (T1564.009)

La tecnica T1564.009 – Resource Forking rientra nella tattica TA0005 (Defense Evasion) e sfrutta una caratteristica storica del filesystem HFS+ di macOS, poi mantenuta in APFS per retrocompatibilità. Un resource fork è un flusso di dati alternativo, associato a un file principale, pensato originariamente per contenere risorse strutturate come icone, definizioni di menu, dialog box e persino segmenti di codice. Con l'introduzione dell'application bundle structure, Apple ha deprecato l'uso attivo dei resource fork, ma il meccanismo resta funzionante e accessibile attraverso l'attributo esteso com.apple.ResourceFork.

Gli avversari sfruttano questo canale semi-nascosto per occultare payload, binari compressi o shellcode all'interno di file che, alla vista degli strumenti tradizionali (Finder, ls senza flag, molti scanner AV), appaiono innocui. Il contenuto può essere estratto a runtime, spostato in una posizione eseguibile e invocato, spesso dopo una fase di decodifica o decrittazione.

L'impatto è significativo in ambienti macOS aziendali: due famiglie malware note — Keydnap (S0276) e OSX/Shlayer (S0402) — hanno adottato la tecnica per mascherare rispettivamente l'icona di un eseguibile e un binario compresso, riducendo la probabilità di detection sia da parte dell'utente sia da parte di scanner che non ispezionano gli extended attributes. La tecnica si colloca nella fase di Defense Evasion della kill chain, tipicamente subito dopo l'Initial Access e prima dell'Execution.

Per simulare T1564.009 in un ambiente di laboratorio macOS occorre comprendere come creare, popolare e invocare un resource fork. L'accesso avviene tramite il suffisso speciale /..namedfork/rsrc oppure attraverso l'attributo esteso com.apple.ResourceFork.

Una catena tipica di simulazione parte dalla creazione di un file legittimo (ad esempio uno script shell o un binario Mach-O di test) e dall'iniezione di un payload secondario nel resource fork. Il comando base per scrivere dati nel fork è:

echo "payload-content" > file.txt/..namedfork/rsrc

Per verificare la presenza del fork si usa:

ls -l@ file.txt

oppure

xattr -l file.txt

Entrambi mostreranno l'attributo com.apple.ResourceFork con la dimensione dei dati nascosti. Per leggere il contenuto: cat file.txt/..namedfork/rsrc.

Nello scenario replicato da Keydnap, il red teamer può assegnare un'icona JPEG o testo a un eseguibile Mach-O, sfruttando la capacità del resource fork di ospitare l'icona alternativa. Il file appare come innocuo documento nel Finder, ma il doppio click ne innesca l'esecuzione. Per OSX/Shlayer, la simulazione prevede la compressione di un binario secondario con bzip2 o gzip, la sua scrittura nel resource fork di un file host, e uno stager bash che estrae il contenuto in /tmp, imposta i permessi con chmod +x e invoca il binario.

Dal punto di vista degli strumenti, Atomic Red Team (open source) del progetto Red Canary include test specifici per la manipolazione di extended attributes su macOS. PurpleSharp non copre macOS, ma Leonidas (open source) di F-Secure offre moduli utili per esercitazioni cloud/endpoint. Per manipolazione avanzata degli attributi estesi, il comando nativo xattr è sufficiente; per operazioni programmatiche, la funzione setxattr() in C o l'equivalente Python xattr (open source, disponibile via pip) permette di scriptare la catena.

Un dettaglio operativo: molti tool di trasferimento (rsync senza flag -E, scp, upload HTTP standard) rimuovono i resource fork. Questo è utile in laboratorio per verificare la persistenza del vettore ma è anche una considerazione tattica — un avversario reale distribuisce il file all'interno di un archivio .dmg o .zip che preserva gli attributi estesi. Testare la catena end-to-end include quindi la fase di packaging con hdiutil create o ditto --sequesterRsrc.

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.