Droidcon Italy 2014
Si chiama Droidcon, Android Convention, è il più importante congresso Europeo per gli svulippatori del sistema operativo Android.
Dopo le ultime edizioni a Londra, Parigi e Berlino arriva a Torino portato dalla società di Information Technology: Synesthesia
Table of Contents
Reverse Engineering, Penetration Testing e Hardening di applicazioni Android
– Marco Grassi @marcograss, viaForensics:
In questo talk, Marco Grassi, ha proposto una sessione di Penetration Test eseguita su alcune applicazioni Android. Marco ha dimostrato come con solo l’apk e eventuali account creati ad hoc per il testing sia possibile (coi giusti strumenti e conoscenze) effettuare il Reverse Engineering dell’app.
Il talk era suddiviso nelle seguenti fasi:
- Analisi Dinamica: “sniffare” il traffico, la memoria RAM di un’applicazione in fase di run
- Analisi Statica: il vero e proprio Reverse Engineering dell’applicazione
(parte su cui ci soffermeremo maggiormente)
Per eseguire i test sulle applicazioni è stata utilizzata la seguente distribuzione Linux: Santoku
Questi sono alcuni dei passaggi effettuati durante la fase di analisi statica:
- Estrarre l’apk dal device utilizzando software per il backup oppurel’adb shell (android debug bridge), eseguibile anche senza root
- Reverse engineering:
Ecco i tools utilizzati: apk tools/smali baksmali in grado di rendere la Dalvik VM abbastanza leggibile.
Dex2jar: che permette di passare dal bytecode dalvik al bytecode java e quindi di utilizzare i decompiler java standard.
JEB decompiler: pro tools (a pagamento), utilizzato anche nella decompilazione di malware. - Runtime manipulation: senza toccare il codice delle apk, cydia subscribe, xposed framework (necessitano di ROOT)
- RAM memory attack, alla ricerca di password in variabili o dati sensibili all’interno della memoria
Marco ha evidenziato per ognuno dei punti precedenti le possibili contromisure pratiche per difendersi da questi attacchi, ve ne proponiamo alcune
- Tampering detection, non usare lo stack trace in applicazioni già in fase di “produzione”
- Disattivare il logging, evitate di memorizzare password, indirizzi ip ecc
- Non “storate” password in plaintext, neanche nella private directory dell’app
- Non memorizzate nei Database i dati sensibili in plaintext (inutile introdurre un pin se poi è salvato in chiaro, usate gli hash)
- Non implementare MAI la nostra crittografia (XOR, metodi inventati), utilizzare sempre metodi conosciuti e testati (
MD5, SHA2, AES) - Proteggere i dati in transito dal server all’applicazione mediante connessioni SSL
Qui potete trovare le slide di Marco, ne vale veramente la pena.
UDOO e Android
– Emanuele Palazzetti @palazzem
UDOO è un computer open source fatto e finito. Per poco più di 100 dollari ti porti a casa una macchina completamente programmabile e compatibile con Arduino. Connessioni USB, canali audio, WiFi, ethernet e 1 GB di RAM. Ci puoi fare di tutto, e il sistema operativo gira su Linux e Android.
Udoo è una palestra hardware per sviluppatori, hacker e persone che si avvicinano per la prima volta alla programmazione. L’idea funziona, e lo ha dimostrato la campagna di crowdfunding lanciata su Kickstarter. In soli due giorni ha raccolto i 27mila dollari che servivano per portare a casa il primo risultato: iniziare la prototipazione e presentare il prodotto finito a settembre 2013.
I punti di forza del progetto sono tanti. Primo tra tutti, Udoo coinvolge un team di sviluppatori italiani e stranieri divisi tra Siena, Pittsburgh, Toronto e Aarhus. Interaction designer, sviluppatori e informatici ci hanno messo dentro tutto quello che serve per abbattere le barriere tra la programmazione e la vita reale.
Emanuele ha inoltre presentato un esempio reale di integrazione tra Android e Arduino, grazie a UDOO; una simpatica “macchina” controllata grazie ad Arduino e comandata da “remoto” grazie a un’applicazione su un dispositivo Android, molto interessante la possibilità di farle eseguire movimenti grazie a i tweet inviati al suo account.
Problematiche di sicurezza nel mondo mobile/android
Luca Baggio, Security Advisor @Media Service
Luca Baggio durante il suo talk ha messo in evidenza il crescente trend del cyber crime, “interessato” ai mostri dispositivi mobile, ma sopratutto ai dati in essi contenuti:
- Concentrato di dati personali foto, video, SMS
- Geo localizzazione, history, meta tag
- I dispositivi Android sono oltre l’80% del totale
- Si sfrutta il rapporto diverso (e la conoscenza) che gli utilizzatori hanno tra un cellulare/tablet e un PC
- Per il cybercrime è un metodo semplice e veloce per monetizzare
Com’è distribuito il Malware Mobile – TrendMicro 2013
- SMS o chiamate a pagamento
- Data stealer
- Adware
- Malware downloader
- Hacking Tool
- Backdoor (RAT)
- Messaggi di spam o di pubblicità (ai contatti in rubrica) a nostre spese
Perchè Android è così “facile” da attaccare?
Semplice, Android ha un vasto ecosistema che gli ruota attorno: aziende, utenti, sviluppatori, dispositivi, Google, Hardware OEM, Carrier, utenti
Ogni elemento della catena di Android può introdurre (involontariamente) e/o ampliare la superficie di attacco.
- Google è il mantainer ufficiale di Android.
Android è basato sul kernel di Linux che quindi può risultare vulnerabile agli stessi exploit es. CVE-2013-1773
Il market di Android è più libero dei concorrenti e infatti è possibile trovare delle copie di applicazioni famose infettate
- Hardware/OEM
Devono prendere il kernel e adattarlo ai dispositivi, possono introdurre vulnerabilità e/o bug
Possono introdurre app di sistema di cui non abbiamo i sorgenti.
es. HTC logger, collezionava i dati e li rendeva disponibili su un servizio non autenticato
- Carrier
I dispositivi brandizzati possono avere delle applicazioni già installate, antivirus o proxy/filtro per pattern malevoli
Es. Carrier IQ – Keylogger di tutti i dati inviati poi ai server remoti di carrier IQ
- Sviluppatori
Scrivono applicazioni che dovrebbero essere controllate, non abbiammo i sorgenti e potrebbero non essere sicure.
es. Il protocollo utilizzato da Watsapp non cifrava i dati inviati/ricevuti, fino al 2013
es. Ruzzle era senza controlli lato server, era pertanto possibile vincere una partita senza disputarla, inoltre, inviava al server l’id dell’utente di Facebook senza nessun motivo - Utenti
Gli Utenti devono prendere decisioni che non sanno prendere, per esempio l’installazione di applicazioni di terze parti (senza leggere i permessi richiesti), oppure alcune configurazioni di protezione lasciate disattivate di default (cifratura del dispositivo).
- Patch
Google si occupa di “fixare” i bug trovati e rilascia delle patch, queste patch devono però essere verificate dai produttori dei dispositivi Android per la compatibilità.
Ogni passaggio all’interno dell’ecosistema dilata il tempo, inoltre, la vita media dei dispositivo è di 18mesi e quindi i produttori danno la priorità ad aggiornare gli ultimi dispositivi rilasciati creando così delle finestre di attacco non indifferenti.
Baggio termina il suo tak ricordando che il cybercrime va dove vanno gli utenti e ricorda inoltre come i pagamenti NFC, i QR Code e gli exploit remoti siano dei territori ancora inesplorati ma che potranno dare il via a ulteriori superfici di attacco.
Cosa ci è piaciuto del Droidcon e cosa no
Ci ha colpito: I’m watch, SmartWatch di una nostrana startup
Non ci è piaciuto: i ritmi serrati dettati dalla gigantesca line-up di talks ma capiamo che non sarebbe stato possibile fare altrimenti.
Consigliamo a chiunque voglia intraprendere questa esperienza il prossimo anno di andarci in gruppo, in modo tale da poter girare e suddividersi per tutti i talks disponibili.
Un enorme ringraziamento all’organizzazione, Synesthesia, per averci dato la possibilità di partecipare al Droidcon, al prossimo evento.
di VoidSec e kalup