Security Week 39: XcodeGhost, falla nei certificati D-Link, 1 milione di dollari per bug in iOS 9

News digest di oggi: errori nei codici che vengono sfruttati per vari scopi, tra quelli economici.

security-week-39

Vorrei iniziare il Security Week di questa settimana con una notizia che non ha nulla a che vedere con l’Information Security. Sembra che i veicoli diesel della Volkswagen emettano maggiori sostanze inquinanti rispetto a quanto risulta dai test. Non voglio fare commenti in merito né giudicare la notizia; da questa storia emerge però l’importanza dei software nel mondo moderno e anche il fatto che un piccolo errore di codice può alterare una funzionalità importante e passare inosservata.

Secondo quanto dice Wired, truccare i livelli di emissione non è così difficile. Sapete come sono condotti i test? L’auto cammina su un nastro, si spinge l’acceleratore, le ruote girano e si analizzano le emissioni. Qual è la differenza tra il test di laboratorio e la guida su strada? Che non viene usato il volante, come quando si fa il tagliando. La manomissione dei test può essere scoperta casualmente e credo che sia andata proprio così.

D-Link pubblica per errori i suoi certificati digitali

La notizia. Esaustiva ricerca pubblicata sul sito Internet olandese Tweakers.net e adornata di tante traduzioni con Google Translate.

Immaginate di essere una casa produttrice di vari apparecchi, da router a telecamere di sorveglianza. Questi dispositivi sono accompagnati da firmware, software, software di aggiornamento dei firmware, software di aggiornamento dei driver ecc. Salvate il tutto nella cartella “Lavoro” su un server segreto. Tutto viene aggiornato, distribuito e caricato sui server seguendo una tabella di marcia, gli aggiornamenti sono poi inviati come ultimo stage agli utenti. Tutto fila liscio, no?

Inutile dire che è impossibile fare manualmente l’inventario degli hardware, è lavoro per gli script. Abbiamo una nuova stringa di codice, avviamo un file .bat (script Shell o Python o altro), poi il codice viene passato alle cartelle corrispondenti, si archivia il tutto e il gioco è fatto. Poi arriva l’ingegnere Jack, che decide di migliorare lo script, lo ha testato un paio di volte e il risultato lo soddisfa. Ed è qui che si crea il bug. In una sola stringa di codice che si occupa di selezionare i file o le cartelle da aggiornare non è stata inserita una parentesi o una lineetta, e tutti i dati diventano di pubblico dominio e vengono inviati a non si sa quanti utenti.

Ovviamente non posso garantire che sia andata così al 100% ma sappiamo che un utente attento, che aveva appena scaricato l’aggiornamento del firmware per la sua fotocamera D-Linkg, ha notato che la cartella conteneva chiavi private del software del vendor. Nella cartella c’erano molti certificati, alcuni ormai datati, tuttavia uno era scaduto il 3 settembre scorso, non molto tempo fa quindi.

Prima di allora la chiave era alla portata di tutti ormai da sei mesi e chiunque avrebbe potuto utilizzarla per firmare qualsiasi software, tra cui malware ovviamente. Si è trattato di un errore ovvio, pesante e pericoloso. Viviamo in un’epoca dove una stringa di 512 numeri può contenere di tutto, da una chiave che infetta milioni di computer a monete virtuali o può essere un codice di accesso a informazioni classificate. Allo stesso tempo 512 byte sono un granello di sabbia nell’oceano del nostro hard disk che può diventare di pubblico dominio. Speriamo soltanto che nessuno abbia notato la falla, il che può succedere. Altre volte, però, sì che qualcuno individua la falla (come in questo caso, anche se nessuno è riuscito a trovare il malware che potrebbe sfruttare le chiavi rese pubbliche).

XcodeGhost, bookmark nell’IDE di Apple

La notizia. La ricerca condotta da Palo Alto. L’elenco delle app colpite. La dichiarazione ufficiale di Apple (in cinese, per nostra sfortuna)

Immaginate di essere uno sviluppatore di appi iOS cinesi. Non c’è molto da immaginare in realtà perché i kit e i tool per sviluppatori sono uguali per tutti i paesi. Era solo per aggiungere un dato in più. Mettiamo il caso abbiate comprato un Mac, avete installato il framework di Xcode e iniziate a creare codici. Tutto bene tranne un particolare: quando scaricate il framework di Xcode dal sito Internet ufficiale di Apple, il processo di donwload va dannatamente lento per colpa del Grande Firewall. È più facile e veloce scaricarlo da un sito cinese, in fondo non c’è differenza, in entrambi i casi è gratis.

E poi, all’improvviso, in alcune app (alcune molto diffuse, altre meno) è stato iniettato un codice dannoso che, nel migliore nei casi, invia i dati del dispositivo a un server C&C. Nella peggiore delle ipotesi, il dispositivo accetta comandi dal server che mettono in pericolo l’utente e sfruttano vulnerabilità iOS.

Alla fine si scopre che il codice dannoso si trovava nelle versioni locali di Xcode, colpito in numerose versioni; ciò vuol dire che è stato fatto apposta. E le cose peggiorano: non si tratta solo di alcune app popolari come WeChat o la versione cinese di Angry Birds, il problema è che il codice dannoso è riuscito a superare la moderazione dell’App Store. Naturalmente tutte le app colpite sono già state eliminate ma il codice embedded è facile da trovare attraverso i nomi di dominio C&C (anche quelli bloccati). Bisogna dire che, senza saperlo prima, il codice non è facile da trovare in quanto sapientemente nascosto nelle librerie standard di Apple, utilizzate dal 99,9% delle app.

Una curiosità. The Intercept, specializzato nella pubblicazione di dati segreti disponibili nelle rivelazioni di Snowden, ha affermato che il metodo utilizzato da XcodeGhost per infiltrarsi nei dispositivi Apple, combacia con quello utilizzato dai governi. I giornalisti si sono vantati di essere in possesso di questa informazione dallo scorso marzo; in realtà noi siamo stati i primi a rendercene conto e nel lontano 2009.

Ad esempio, abbiamo individuato un malware che infettava l’IDE di Delhi e iniettava un codice dannoso in tutte le relative app. È un’idea scontata; tuttavia, se si conosce il problema, ci si può sbarazzare della questione facilmente, basta soltanto verificare l’integrità del tool mettendolo a confronto con la versione master. Un’altra raccomandazione davvero semplice: mia scaricare da fonti che non siano 100% affidabili. Può sembrare ovvio, soprattutto perché stiamo parlando di sviluppatori con esperienza. Possibile che commettano un errore del genere? Sembra proprio di sì.

1 milione di dollari come ricompensa per bug su iOS 9

La notizia

Esiste un altro aspetto interessante che riguarda il jailbreak di dispositivi iOS. A differenza di Android o di altri sistemi operativi per computer, dove il controllo olistico del sistema in genere è abilitato di default e può essere sfruttato facilmente, smartphone e tablet Apple (così come TV e smart watch) hanno autorizzazioni utente limiate. Da anni ormai c’è questa diatriba tra Apple che cerca di proteggere i suoi dispositivi con le sue barriere e dall’altra parte gli appassionati del rooting che cercano di bypassare queste protezione. Alla fine sui dispositivi Apple può essere eseguito il jailbreak (tranne su Apple TV v3 e, per lo meno adesso, Apple Watch) e può passare un intervallo di tempo da un giorno a sei mesi da quando il prodotto si trova su tutti gli scaffali dei negozi.

Sul nuovo iOS 9 si può e non può effettuare il jailbreak allo stesso tempo. Si tratta di un jailbreak non completo al 100%. Ad occuparsi di questo problema c’è Zerodium, che ha già annunciato di voler dare una ricompensa di 1 milione di dollari nel caso vengano trovati exploit su iOS 9 ma a patto che:

  • Si tratti di un exploit in remoto (che si avvia automaticamente quando l’utente visita un sito Internet creato ad hoc o legge un SMS/MMS dannoso);
  • L’exploit consenta il sideload di app arbitrarie (come Cydia);
  • Si tratti di un exploit resistente in grado di funzionare anche dopo il reboot;
  • Si tratti di un exploit “affidabile”, discreto e che non richiede l’intervento dell’utente.

Questo elenco dimostra che Zerodium non ha intenzione di spendere 3 milioni di dollari (somma totale della ricompensa) solo per compiacere gli appassionati del rooting. Chaouki Bekrar, fondatore di Zerodium, ha creato inizialmente VUPEN, specializzata nella vendita di vulnerabilità ed exploit a governi. Stiamo parlando di una zona grigia nel mondo dell’Information Security, sia dal punto di vista legale sia morale. I buoni vanno alla caccia dei cattivi utilizzando le stesse armi di quest’ultimi. Sebbene VUPEN (almeno ufficialmente) non si occupasse dell’individuazione di bug, Zerodium è stata creata per questo scopo. Alla fine qualcuno riceverà il premo, qualcuno riuscirà a violare la sicurezza dei dispositivi grazie all’acquisto dell’exploit e non darà indicazioni sulla vulnerabilità (altrimenti che senso avrebbe dare una ricompensa?). Tuttavia, noi sappiamo già cosa succede quando chi individua i bug si “auto-hackera” (ricordiamo il caso di Hacking Tem, quando alcuni 0-day sono diventati di dominio pubblico, e sono venuti a galla dei loschi affari tra l’azienda e alcuni stati del Medio Oriente), il fiasco è dietro l’angolo.

La morale è che, se qualcuno dovesse avere l’urgenza di effettuare il jailbreak dello smartphone, è libero di farlo (anche se non proprio, in realtà). In ogni caso, eseguire questa operazione senza il consenso della persona interessata non è comunque corretto; se ciò dovesse accadere, il vendor dovrebbe fare qualcosa per creare la relativa patch. Usare un exploit a fin di bene comunque non è comunque una buona cosa.

Cos’altro?

Adobe ha pubblicato le patch per 23 vulnerabilità su Flash Player. Altri 30 bug erano stati risolti ad agosto.

OPM ha rilevato conseguenze ancora più gravi dopo il caso dello scorso anno, quando è stata violata la sicurezza di oltre 5,6 milioni d’impronte digitali che appartenevano a dipendenti di alcune agenzie federali. Gli analisti sostengono che non si può sostituire facilmente un’impronta digitale così come avviene con le password e si tratta di un numero di combinazioni limitato. Non si può fare nulla in proposito per il momento ma nessuno sa cosa avverrà in futuro.

Oldies

“PrintScreen”
Si tratta di un virus molto insidioso che occupa 512 byte (un settore). Infetta il boot sector di floppy e hard disk durante la lettura (int 13h). Il vecchio boot sector scrive l’indirizzo 1/0/3 (side/track/sector) su un floppy e l’indirizzo 3/1/13 sull’hard disk. Quando s’infetta l’hard disk, il boot sector viene immagazzinato sull’indirizzo 0/1/1 (ciò dimostra la poca esperienza dei creatori del virus).

Inoltre, compromette anche l’int 13h. A giudicare dal tasso di probabilità di 1/256 d’infezione del drive (dipende comunque dal valore del counter interno), il virus dovrebbe essere chiamato int 5 (PrintScreen) ma, per un errore, il valore non è stato salvato.

Citazione da “Computer viruses in MS-DOS” di Eugene Kaspersky, 1992, p.102.

Dichiarazione di non responsabilità: questo articolo riflette la persona opinione dell’autore. Può coincidere o no con la posizione di Kaspersky Lab.

Consigli