Vulnerabilità in Mac OS X: intervista a Vincenzo Iozzo

di Matteo Campofiorito

Pubblicato 22 Gennaio 2009
Aggiornato 12 Febbraio 2018 20:48

Nei giorni scorsi, dopo l’uscita di un articolo su The Register, si è parlato molto di una vulnerabilità che affliggerebbe Mac OS X. L’autore della scoperta è un italiano, Vincenzo Iozzo, che abbiamo deciso di intervistare per avere qualche dettaglio in più.

Alla prossima Black Hat Conference di febbraio terrai un talk dal titolo “Let Your Mach-O Fly” che metterà a nudo una grave vulnerabilità in Mac OS X, puoi spiegarci di cosa si tratta?

Il mio attacco è un’implementazione di una tecnica chiamata userland-exec. Questa tecnica permette di lanciare un eseguibile su una macchina senza invocare il kernel e senza che esso sia presente sull’hard-disk. Tuttavia non può essere considerata una vulnerabilità nel senso comune del termine. Infatti l’attacco è reso possibile a livello pratico a causa di un intrinseco problema di Mac OS X da tempo noto; ovvero la mancata randomizzazione del dynamic linker all’interno dell’address space dei processi.

È bene sottolineare che la mia tecnica non permette di violare una macchina più facilmente, bensì rende più semplice l’esecuzione di codice all’interno del sistema attaccato.

L’innovazione che la mia ricerca rappresenta sta nel fatto di poter iniettare in un processo non solo un semplice shellcode ma un intero eseguibile, questo in passato non era possibile su OS X.

Utilizzando la vulnerabilità che hai scoperto è possibile evitare che sistemi di intrusion detection individuino software malevolo presente sul sistema. Quali sono le difficoltà a livello di computer forensic analysis su una macchina compromessa dal tuo exploit code?

Il payload da me sviluppato non lascia tracce sull’hard-disk del sistema vittima. Di conseguenza è possibile individuare l’attacco o a livello di rete usando un network intrusion detection system, oppure usando un anomaly intrusion detection system. Al momento, tuttavia, sistemi di questo tipo non sono in commercio per la difficoltà di un utilizzo quotidiano. È inoltre possibile rilevare la compromissione del sistema facendo un’analisi manuale dello spazio di indirizzamento del processo vittima.

Questo attacco rende più difficile l’analisi forense dal momento che, qualora la macchina venisse spenta, non ci sarebbero più tracce dell’intrusione.

La vulnerabilità che hai scoperto riguarda solo il kernel XNU utilizzato da Apple o potrebbe affliggere anche altri sistemi *BSD-like?

Esistono delle implementazioni della userland-exec su altri sistemi operativi, inclusi sistemi BSD-like. Su i sistemi Windows, meterpreter, payload presente in Metasploit, può essere considerato una implementazione parziale di questo attacco.

Quali strumenti hai utilizzato per mettere a nudo questa vulnerabilità su Mac? Qual è la tua toolbox quando vai a caccia di bug?

Quando faccio della ricerca gli strumenti che uso sono generalmente: gdb, IDA Pro e BinDiff.

Prevedi dopo il talk di rilasciare un exploit integrabile in Metasploit Framework (progetto a cui hai già collaborato)?

Dopo il talk verrà rilasciato un proof of concept per Mac OS X 10.5 scritto in C. Al momento non ho pianificato di riscrivere il codice in Ruby per integrarlo con Metasploit.

Pensi che con la tua scoperta sia messa in discussione la presunta sicurezza di Mac OS X, oppure chi usa Mac è ancora un bersaglio più difficile rispetto agli utenti Windows?

Purtroppo la copertura mediatica che la mia ricerca ha ricevuto ha distorto la percezione di quello che realmente rappresenta. Essa non è pensata per diffondere del malware, dunque la percentuale di attacchi che verranno condotti su Mac OS X resterà inalterata. Tuttavia essa potrebbe rendere gli attacchi più sofisticati e aumentare la difficoltà nell’identificarli.

Stai già lavorando all’individuazione di qualche nuova vulnerabilità?

First things first, al momento sto ultimando il materiale per Black Hat DC. Vorrei concludere l’intervista smentendo gli articolisti Italiani che, forse a causa di un’errata traduzione, mi hanno attribuito il ruolo di ricercatore del Politecnico di Milano. Come specificato da Dan Goodin nell’articolo su The Register, sono uno studente e non un ricercatore dell’università sopra citata.