Secondo lo svilppatore Daniel Pistelli è semplicissimo creare un malware non rilevabile per Mac OS X
E’ risaputo come l’ecosistema #Mac sia universalmente riconosciuto come molto più sicuro di quello Windows e questo è oggettivamente vero, almeno stando al numero di virus e malware presenti per il sistema operativo Microsoft.
Tuttavia la crescente popolarità e diffusione del Mac OS X, soprattutto in ambienti business e governativi, ha portato di pari passo ad un incremento nelle minacce per il sistema operativo made in Cupertino.
Lo sviluppatore Daniel Pistelli, esperto di ingegneria inversa e creatore dell’applicazione Cerbero Profiler (tool per l’analisi e il monitoraggio del malware), ha pubblicato sul suo blog i risultati di una ricerca molto interessante nella quale spiega come creare un malware non rilevabile da nessun sistema di sicurezza, utilizzando proprio una feature del sistema operativo Apple: il sistema di crittografia di Mac OS X.
Tale sistema di crittografia infatti, implementato per proteggere i Mach-O, ossia gli eseguibili del sistema (ad esempio Finder.app, Dock.app, ecc…) può essere utilizzato per fini opposti, ossia criptare il codice di un malware e renderlo di fatto non rilevabile da nessuna applicazione antivirus o similare.
La procedura, per chi ha un po’ di dimestichezza con il reverse engineering, si rivela anche abbastanza semplice, in quanto i pezzi di codice cifrati vengono marcati tramite un flag:
Daniel specifica inoltre che tale procedura può essere applicata anche ai malware esistenti e già mappati dai software per la sicurezza. Tali malware infatti diventerebbero non rilevabili perchè, grazie al sistema di crittografia i software non riuscirebbero più a riconoscerli.
Per dimostrare tale affermazione Daniel ci mostra un malware di Mac OS X già noto (i dati sono oscurati per ovvi motivi ma il tasso di rilevamento, detection ratio, era intorno a 20-25):
ed ecco lo stesso malware dopo aver applicato la cifratura, la sua detection rate è 0 (ZERO):
Per ovviare tale problematica Daniel ci suggerisce 3 opzioni:
- Implementare il meccanismo di decodifica da lui suggerito (ossia tramite la programmazione Python SDK pura).
- Fidarsi solo degli eseguibili con un certificato valido rilasciato da Apple.
- Fidarsi solo degli eseguibili il cui hash crittografico corrisponde a uno di fiducia.
Sul Blog di Daniel potrete leggere tutti i dettagli tecnici delle procedure utilizzate nella sua ricerca.
Ci tengo a sottolineare inoltre che, in linea con l’etica hacker, questa ricerca ha come scopo quello di portare alla luce le falle di sicurezza per risolverle e non per istigare alla creazione di malware per Mac OS X.
Commenta utilizzando Google+