Evasi0n, a detta degli sviluppatori, è il tool per il jailbreak più complesso a cui abbiano mai lavorato. Apple rende sempre più protetto il proprio sistema operativo sia per renderlo più sicuro dagli attacchi esterni, sia per impedire agli hacker di sbloccarlo per renderlo più libero e, di conseguenza, meno controllato. Planetbeing ci spiega tutti i passi che sono stati compiuti per portare a termine il lavoro.
Come sappiamo, martedì è stato rilasciato evasi0n, l’attesissimo tool per il jailbreak di iOS 6.x. Come abbiamo riportato, questo si è rivelato un grosso successo con quasi 2 milioni download in meno di due giorni dal rilascio ufficiale al pubblico.
In un’intervista al Forbes, Planetbeing, uno degli sviluppatori più importanti al lavoro sul tool, ha raccontato tutti i processi che hanno reso possibile lo sblocco dei nostri dispositivi iOS. Evasi0n fa uso di cinque nuovi bug nel codice di iOS, un numero abbastanza elevato se consideriamo che l’NSA ha avuto bisogno di quattro bug per penetrare le difese delle strutture di arricchimento nucleare in Iran per distruggerne le parti sensibili.
Prima di tutto evasi0n fa uso del servizio libimobiledevice, un programma che utilizza gli stessi protocolli di iTunes per comunicare con il dispositivo in uso. In questo tool evasi0n sfrutta il primo bug nel sistema di backup di iOS, per ottenere l’accesso ad alcune impostazioni di sistema che normalmente l’utente non può modificare, che si trova all’interno di un file che indica il fuso orario del dispositivo.
Il tool inserisce un collegamento simbolico in quel file che permette di collegare due punti del sistema operativo. In questo caso il collegamento conduce ad un socket, un ristretto canale di comunicazione fra programmi diversi. Evasi0n altera il socket con un programma chiamato Launch Daemon (launchd), un processo principale che viene caricato all’avvio del dispositivo iOS e che permette di lanciare anche quelle applicazioni che hanno bisogno dei privilegi di “root”. Questo significa che ogni volta che viene lanciato il backup di un iPhone o di un iPad, a tutti i programmi viene garantito l’accesso al file del fuso orario e, grazie al “collegamento simbolico”, anche l’accesso al launchd.
Ma questo non basta. iOS ha altri metodi di protezione da scardinare, che impediscono alle applicazioni non certificate da Apple di essere lanciate sul dispositivo. Il trucco utilizzato da evasi0n è quello di lanciare un’applicazione che non ha nessun codice al suo interno (il link che lanciamo durante il processo di jailbreak nel nostro dispositivo). Al suo avvio l’applicazione utilizza un trucchetto tipico dei sistemi operativi Unix chiamato shebang, che può riprendere il codice da un’altra applicazione, in questo caso un’applicazione certificata da Apple, e cioè il processo launchd, che può essere raggiunto tramite il trucchetto del “socket” poc’anzi spiegato. Il launchd viene utilizzato per eseguire un comando “remount” che modifica le impostazioni di memoria di sola lettura del file system e lo rende modificabile.
Ora che il file system è scrivibile, evasi0n cambia un file chiamato launchd.conf in modo che le modifiche effettuate al Launch Daemon siano considerate ogni volta che questo viene lanciato, rendendo – di fatto – il jailbreak persistente, untethered.
Ma il jailbreak a questo punto non è ancora pronto, infatti bisogna prima di tutto modificare anche l’AMFID, Apple Mobile File Integrity Daemon, il processo che verifica se l’applicazione che lanciamo sia stata verificata o meno da Apple. Evasi0n aggira questa restrizione caricando una libreria di funzioni dentro l’AMFID sfruttando il launchd facendo in modo che la verifica della certifica di Apple dia sempre risultati positivi.
Un’altra protezione di iOS è data dall’ASLR, Address Space Layout Randomization, un processo che impedisce agli utenti di alterare la memoria del kernel del sistema operativo spostando in maniera casuale la posizione del suo codice all’interno della memoria, in modo da ostacolare chiunque voglia modificarlo. Evasi0n utilizza un trucchetto per localizzare un punto nella memoria che solitamente è difficile da nascondere nei dispositivi basati su chip ARM, che gestisce i crash delle varie applicazioni. Il tool quindi simula un crash e controlla quel punto per vedere dove si è verificato, fornendo le informazioni necessarie per tracciare la posizione del resto del kernel nella memoria del dispositivo.
Una volta aggirato anche questo ostacolo il jailbreak fa uso di un altro bug, che si trova nell’interfaccia USB dei dispositivi iOS. In questo modo gli hacker hanno la possibilità di riscrivere qualsiasi parte del kernel loro vogliano. “Una volta raggiunto questo obiettivo non c’è sicurezza che tenga”, afferma Planetbeing. “Abbiamo vinto!”
Se siete interessati ad effettuare il jailbreak di iOS 6 per il vostro dispositivo vi rimandiamo alla nostra guida con video pubblicata nei giorni scorsi.
Via | Forbes
Leggi o Aggiungi Commenti