際際滷

際際滷Share a Scribd company logo
11 Ottobre 
2014 
Pentesting Android Applications 
Raffaele Forte
About 
 BackBox 竪 una distribuzione GNU/Linux 
 Nasce nel Maggio 2010 
 Sviluppata per effettuare Penetration Test 
e Security Assessment 
 2011 - Nuova sezione Forensic Analysis 
 2014 - Nuova sezione Mobile Analysis
Development 
 Basata su Ubuntu 14.04 LTS 
 Last release 4.0 (Ottobre 2014) 
 Release schedule: every 4 months 
 Oltre 200 Tools!
Supported architectures 
 64 Bit (amd64) 
 32 Bit (i386) 
 Predisposition to ARM (armhf)
Community 
 Main developers 
 Repository maintainers 
 Public relations 
 Community staff 
 Contributors 
 Translators 
http://www.backbox.org/about
Resources & infrastructure 
 Web Site 
 Forum 
 Wiki 
 Chat 
 Repository LP 
 Server Amazon
Social Network 
 Facebook (1406 Users, 3792 Likes) 
 Google+ (1271 Users, 43406 Views) 
 Twitter (1698 Followers) 
 Linkedin (166 Users, 255 Followers) 
2 Ottobre 2014
Who uses BackBox?
BackBox Analytics
HD Encryption, RAM wipe 
 Full Hard Disk encryption in fase di 
installazione utilizzando LUKS su LVM. 
 Wipe della RAM in fare di arresto o 
riavvio del sistema. 
Il cold boot attack 竪 una tipologia di attacco che 
pu嘆 essere attuato se si ha accesso fisico al 
computer. 
Le informazioni presenti in RAM possono essere 
recuperate anche dopo il reboot/shutdown del 
sistema.
Pentesting Android with BackBox 4
New anonymous feature 
 Transparent Tor proxy 
 Random Hostname e MAC address 
 Pulizia Log di sistema
Pentesting Android with BackBox 4
Pentesting Android with BackBox 4
La sicurezza delle APP Mobile 竪 
inadeguata? 
Gartner Says More than 75 Percent of 
Mobile Applications will Fail Basic Security 
Tests Through 2015 
Analysts to Discuss Latest Mobile Security Threats and Trends at the Gartner 
Security and Risk Management Summit, 15-16 September 2014 in Dubai, UAE 
Fonte: www.gartner.com/newsroom/id/2846017
Esempi di casi reali 
Nelle seguenti slide sono riportati alcuni casi 
reali che sono stati studiati da ricercatori che 
collaborano con lo sviluppo di BackBox. 
Questi esempi mostrano come la sicurezza 
delle applicazioni mobile non sia ancora 
garantita come lo 竪 invece per infrastrutture 
server e applicazioni web.
iPad Newspapers Exploit 
A Maggio 2011 tramite un attacco Man in the 
Middle 竪 stato possibile aggirare il sistema di 
In-App Purchase di alcuni applicativi per 
smartphone e tablet al fine di ottenere 
giornalmente una copia gratuita di 17 quotidiani 
italiani: 
La Repubblica, Il Sole 24 Ore, Il Corriere della 
Sera, ecc. 
Ricercatore: Andrea Draghetti
Unapplicazione presente nella Top Five 
dellApple Store 竪 vulnerabile alla tecnica di 
SQL Injection. 
Il software comunica con un server esterno 
(back-end) memorizzando in un database 
lindirizzo email dellutente e informazioni 
sulla sua salute. 
Tali informazioni possono essere estratte 
attraverso un attacco mirato (SQLi) e 
sfruttate a fini malevoli (es. Phishing). 
Backend Vulnerability - SQL Injection 
Ricercatore: Andrea Draghetti
A Luglio 2014 analizzando lapplicazione 
IWBank dellomonima banca 竪 stata 
individuata lassenza totale di una 
connessione protetta, era pertanto possibile 
visualizzare in chiaro tutto il traffico che tale 
software generava. 
Username, Password e Token erano quindi 
intercettabili, rendendo assolutamente 
insicuro il metodo di autenticazione 
progettato dallistituto di credito. 
Scelta da chi sa scegliere... 
Ricercatori: Mattia Trapani e 
Andrea Draghetti
Un utente IWBank si collega ad una rete WiFi pubblica, creata ad hoc per 
intercettare il traffico in chiaro, intento a controllare il proprio conto corrente 
attraverso lapplicazione per smartphone e digiter le sue credenziali per eseguire il 
login. 
Lutente malevolo intercetta le credenziali e eseguir il login con i dati rubati sul 
proprio computer. 
Come sfruttare questa vulnerabilit?
Personal banking apps leak info 
through phone by Ariel Sanchez 
La ricerca sulle applicazioni di homebanking ha 
previsto lutilizzo di iPhone/iPad per analizzare 
40 applicazioni scelte tra le 60 banche pi湛 
influenti al mondo. 
Fonte: blog.ioactive.com
Tutte le applicazioni possono essere installate su dispositivi su cui 竪 stato 
effettuato jailbreak (questo ha velocizzato lanalisi statica e black box).
 Il 40% delle applicazioni testate non valida lautenticit 
dei Certificati SSL. Questo rende tali APP attaccabili 
tramite attacchi di tipo Man in The Middle. 
 In aggiunta, il 20% delle applicazioni invia codici di 
accesso in chiaro tramite Protocollo HTTP. Anche se 
questa funzionalit 竪 limitata allinizializzazione 
dellaccount, il rischio che ne scaturisce 竪 elevato. Se un 
malintenzionato intercettasse il traffico di rete, potrebbe 
eseguire attacchi di tipo Session Hijacking ed accedere 
allaccount della vittima senza che ci siano evidenze di 
accesso non autorizzato. 
Vulnerabilit comuni - SSL misconfiguration
La maggior parte delle 
applicazioni (90%) contiene 
diversi link che non utilizzano 
SSL per la connessione. 
Questo permetterebbe ad un 
malintenzionato di intercettare il 
traffico e di iniettare codice 
JavaScript/HTML al fine di 
creare false richieste di accesso 
o contenuti malevoli. 
Vulnerabilit comuni - Comunicazione non protetta
In aggiunta, 竪 stato identificato 
come il 50% delle applicazioni 
sia vulnerabile ad attacchi di 
tipo JavaScript injections 
attraverso UIWebView. 
In alcuni casi 竪 stato possibile 
accedere alle funzionalit 
native di iOS, avendo la 
possibilit, ad esempio, di 
inviare SMS o email dal 
dispositivo dellutente. 
Vulnerabilit comuni - Code injection
La maggior parte dei log generati dalle applicazioni, come Crash 
Report, espongono informazioni sensibili che potrebbero essere 
utilizzati da un malintenzionato per eseguire attacchi pi湛 precisi, o 
per ricercare nuovi exploit 0day per attaccare gli utilizzatori dellAPP. 
Vulnerabilit comuni - Information disclosure
Pentesting Android APP 
In queste slide vedremo come condurre un 
penetration test su applicazioni mobile Android. 
Lanalisi si concentrer su tre aree principali: 
 Reverse Engineering 
 Intecettazione del canale di 
comunicazione e analisi del traffico 
 Analisi della memoria locale
Reverse Engineering 
Il Reverse Engineering 竪 un processo mirato 
allanalisi del codice sorgente. Il fine 竪 trovare 
dati sensibili, come credenziali di accesso e la 
possibilit di modificare il codice stesso per 
alterare il funzionamento dellapplicazione. 
Tools utilizzati: 
 apktools 
 dex2jar
Intercepting APP Traffic 
In questa fase viene utilizzato il Wi-Fi per 
intercettare i dati in ingresso/uscita delle 
applicazioni Android. 
Devieremo il traffico dallo smartphone al nostro 
computer utilizzando un server proxy, per poi 
analizzarlo ed eventualmente portare attacchi ai 
server di back-end. 
Tools utilizzati: 
 zaproxy 
 burpsuite
Memory Analysis 
I files memorizzati sulla memory card o sulla 
memoria locale del dispositivo possono 
contenere informazioni sensibili come 
credenziali di accesso, dati sensibili e token di 
sessione. 
Se non opportunamente protetti questi dati 
possono essere facilmente recuperati da un 
malintenzionato.
Conclusions 
Da un punto di vista difensivo, le seguenti raccomandazioni aiutano a mitigare 
il rischio dato dalle vulnerabilit pi湛 comuni: 
 Assicurarsi che tutte le connessioni avvengano su canale protetto 
 Verificare e controllare i certificati SSL 
 Proteggere i dati sensibili che vengono salvati sul dispositivo utilizzando 
meccanismi di cifratura 
 Implementare controlli aggiuntivi per identificare dispositivi su cui 竪 stato 
effettuato il jailbreak. 
 Offuscare il codice assembly e utilizzare meccanismi anti-debugging per 
rallentare eventuali attacchi che prevedono tecniche di reverse 
engineering dei binari. 
 Rimuovere tutte le operazioni di debug (logs, statement, etc.) 
 Rimuovere tutte le informazioni inerenti alla fase di sviluppo dal codice 
applicativo messo in produzione.
Grazie per lattenzione! 
Raffaele Forte 
raffaele@backbox.org

More Related Content

Pentesting Android with BackBox 4

  • 1. 11 Ottobre 2014 Pentesting Android Applications Raffaele Forte
  • 2. About BackBox 竪 una distribuzione GNU/Linux Nasce nel Maggio 2010 Sviluppata per effettuare Penetration Test e Security Assessment 2011 - Nuova sezione Forensic Analysis 2014 - Nuova sezione Mobile Analysis
  • 3. Development Basata su Ubuntu 14.04 LTS Last release 4.0 (Ottobre 2014) Release schedule: every 4 months Oltre 200 Tools!
  • 4. Supported architectures 64 Bit (amd64) 32 Bit (i386) Predisposition to ARM (armhf)
  • 5. Community Main developers Repository maintainers Public relations Community staff Contributors Translators http://www.backbox.org/about
  • 6. Resources & infrastructure Web Site Forum Wiki Chat Repository LP Server Amazon
  • 7. Social Network Facebook (1406 Users, 3792 Likes) Google+ (1271 Users, 43406 Views) Twitter (1698 Followers) Linkedin (166 Users, 255 Followers) 2 Ottobre 2014
  • 10. HD Encryption, RAM wipe Full Hard Disk encryption in fase di installazione utilizzando LUKS su LVM. Wipe della RAM in fare di arresto o riavvio del sistema. Il cold boot attack 竪 una tipologia di attacco che pu嘆 essere attuato se si ha accesso fisico al computer. Le informazioni presenti in RAM possono essere recuperate anche dopo il reboot/shutdown del sistema.
  • 12. New anonymous feature Transparent Tor proxy Random Hostname e MAC address Pulizia Log di sistema
  • 15. La sicurezza delle APP Mobile 竪 inadeguata? Gartner Says More than 75 Percent of Mobile Applications will Fail Basic Security Tests Through 2015 Analysts to Discuss Latest Mobile Security Threats and Trends at the Gartner Security and Risk Management Summit, 15-16 September 2014 in Dubai, UAE Fonte: www.gartner.com/newsroom/id/2846017
  • 16. Esempi di casi reali Nelle seguenti slide sono riportati alcuni casi reali che sono stati studiati da ricercatori che collaborano con lo sviluppo di BackBox. Questi esempi mostrano come la sicurezza delle applicazioni mobile non sia ancora garantita come lo 竪 invece per infrastrutture server e applicazioni web.
  • 17. iPad Newspapers Exploit A Maggio 2011 tramite un attacco Man in the Middle 竪 stato possibile aggirare il sistema di In-App Purchase di alcuni applicativi per smartphone e tablet al fine di ottenere giornalmente una copia gratuita di 17 quotidiani italiani: La Repubblica, Il Sole 24 Ore, Il Corriere della Sera, ecc. Ricercatore: Andrea Draghetti
  • 18. Unapplicazione presente nella Top Five dellApple Store 竪 vulnerabile alla tecnica di SQL Injection. Il software comunica con un server esterno (back-end) memorizzando in un database lindirizzo email dellutente e informazioni sulla sua salute. Tali informazioni possono essere estratte attraverso un attacco mirato (SQLi) e sfruttate a fini malevoli (es. Phishing). Backend Vulnerability - SQL Injection Ricercatore: Andrea Draghetti
  • 19. A Luglio 2014 analizzando lapplicazione IWBank dellomonima banca 竪 stata individuata lassenza totale di una connessione protetta, era pertanto possibile visualizzare in chiaro tutto il traffico che tale software generava. Username, Password e Token erano quindi intercettabili, rendendo assolutamente insicuro il metodo di autenticazione progettato dallistituto di credito. Scelta da chi sa scegliere... Ricercatori: Mattia Trapani e Andrea Draghetti
  • 20. Un utente IWBank si collega ad una rete WiFi pubblica, creata ad hoc per intercettare il traffico in chiaro, intento a controllare il proprio conto corrente attraverso lapplicazione per smartphone e digiter le sue credenziali per eseguire il login. Lutente malevolo intercetta le credenziali e eseguir il login con i dati rubati sul proprio computer. Come sfruttare questa vulnerabilit?
  • 21. Personal banking apps leak info through phone by Ariel Sanchez La ricerca sulle applicazioni di homebanking ha previsto lutilizzo di iPhone/iPad per analizzare 40 applicazioni scelte tra le 60 banche pi湛 influenti al mondo. Fonte: blog.ioactive.com
  • 22. Tutte le applicazioni possono essere installate su dispositivi su cui 竪 stato effettuato jailbreak (questo ha velocizzato lanalisi statica e black box).
  • 23. Il 40% delle applicazioni testate non valida lautenticit dei Certificati SSL. Questo rende tali APP attaccabili tramite attacchi di tipo Man in The Middle. In aggiunta, il 20% delle applicazioni invia codici di accesso in chiaro tramite Protocollo HTTP. Anche se questa funzionalit 竪 limitata allinizializzazione dellaccount, il rischio che ne scaturisce 竪 elevato. Se un malintenzionato intercettasse il traffico di rete, potrebbe eseguire attacchi di tipo Session Hijacking ed accedere allaccount della vittima senza che ci siano evidenze di accesso non autorizzato. Vulnerabilit comuni - SSL misconfiguration
  • 24. La maggior parte delle applicazioni (90%) contiene diversi link che non utilizzano SSL per la connessione. Questo permetterebbe ad un malintenzionato di intercettare il traffico e di iniettare codice JavaScript/HTML al fine di creare false richieste di accesso o contenuti malevoli. Vulnerabilit comuni - Comunicazione non protetta
  • 25. In aggiunta, 竪 stato identificato come il 50% delle applicazioni sia vulnerabile ad attacchi di tipo JavaScript injections attraverso UIWebView. In alcuni casi 竪 stato possibile accedere alle funzionalit native di iOS, avendo la possibilit, ad esempio, di inviare SMS o email dal dispositivo dellutente. Vulnerabilit comuni - Code injection
  • 26. La maggior parte dei log generati dalle applicazioni, come Crash Report, espongono informazioni sensibili che potrebbero essere utilizzati da un malintenzionato per eseguire attacchi pi湛 precisi, o per ricercare nuovi exploit 0day per attaccare gli utilizzatori dellAPP. Vulnerabilit comuni - Information disclosure
  • 27. Pentesting Android APP In queste slide vedremo come condurre un penetration test su applicazioni mobile Android. Lanalisi si concentrer su tre aree principali: Reverse Engineering Intecettazione del canale di comunicazione e analisi del traffico Analisi della memoria locale
  • 28. Reverse Engineering Il Reverse Engineering 竪 un processo mirato allanalisi del codice sorgente. Il fine 竪 trovare dati sensibili, come credenziali di accesso e la possibilit di modificare il codice stesso per alterare il funzionamento dellapplicazione. Tools utilizzati: apktools dex2jar
  • 29. Intercepting APP Traffic In questa fase viene utilizzato il Wi-Fi per intercettare i dati in ingresso/uscita delle applicazioni Android. Devieremo il traffico dallo smartphone al nostro computer utilizzando un server proxy, per poi analizzarlo ed eventualmente portare attacchi ai server di back-end. Tools utilizzati: zaproxy burpsuite
  • 30. Memory Analysis I files memorizzati sulla memory card o sulla memoria locale del dispositivo possono contenere informazioni sensibili come credenziali di accesso, dati sensibili e token di sessione. Se non opportunamente protetti questi dati possono essere facilmente recuperati da un malintenzionato.
  • 31. Conclusions Da un punto di vista difensivo, le seguenti raccomandazioni aiutano a mitigare il rischio dato dalle vulnerabilit pi湛 comuni: Assicurarsi che tutte le connessioni avvengano su canale protetto Verificare e controllare i certificati SSL Proteggere i dati sensibili che vengono salvati sul dispositivo utilizzando meccanismi di cifratura Implementare controlli aggiuntivi per identificare dispositivi su cui 竪 stato effettuato il jailbreak. Offuscare il codice assembly e utilizzare meccanismi anti-debugging per rallentare eventuali attacchi che prevedono tecniche di reverse engineering dei binari. Rimuovere tutte le operazioni di debug (logs, statement, etc.) Rimuovere tutte le informazioni inerenti alla fase di sviluppo dal codice applicativo messo in produzione.
  • 32. Grazie per lattenzione! Raffaele Forte raffaele@backbox.org