Android forensics

Post on 10-Aug-2015

110 views 1 download

Tags:

Transcript of Android forensics

Mobile Forensics Android Forensics

Google I/O 28-29 Maggio, Camerino

Relatore

Alessandro Di Carlo

About me

• IT Security• Digital/Computer Forensics

• Penetration Testing

Cos’è la Digital Forensics?

"Non c'è alcun ramo delle scienze investigative così poco praticato, eppure tanto importante, qual è l'arte d'interpretare le orme"

(Sherlock Holmes)

La Computer Forensics, o informatica forense, è la disciplina che si occupa dell’identificazione, della conservazione, dell’analisi e della documentazione dei reperti informatici al fine di presentare prove digitali valide in procedure civili e penali.

Campi di azione della Digital Forensics

• Computer Forensics• Network Forensics

• Data Analysis Forensics• Database Forensics• Mobile Forensics

• Steganography

Agenda

Cosa tratteremo oggi:

1. Introduzione e breve storia di Android

2. Tecniche di acquisizione logica e fisica

3. Bypassare il codice di protezione

4. Studio delle directory e del File System Android

Storia

Features

Da un punto di vista forense, sono molto importanti:

• GSM/CDMA/LTE • WiMax

• Bluetooth• WiFi• GPS

• Google Play Store• Memoria Flash (NAND)

• Memorie esterne (microSD)

Linux vs Android

Comandi Shell Linux Comandi Shell Android

man man

help help

cd cd

mkdir mkdir

mount mount

rmdir/rm -rf rmdir/rm -rf

nano nano

ls ls

tree tree

cat cat

dd dd

find find

chmod chmod

grep grep

Architettura

Prevenzione di alterazioni

• Isolare il dispositivo A. Impostare l’ Air Mode (anche a telefono bloccato)B. Gabbia di FaradayC. Rimozione della SIM

• Se il telefono è rinvenuto acceso e non bloccato , bisogna prevenire il blocco (es. aumentando il delay del display)

• Verificare con attenzione la presenza del PIN (se c’è non toglierlo)

• Attivare l’ USB Debug

Attenzione allo spegnimento!!

• E’ possibile farlo anche a telefono bloccato

• E’ presente un PIN al riavvio?

• Perdita totale dei dati caricati in RAM (volatili)

Metodi di acquisizione

Acquisizione

Fisica (dump dell’intera memoria NAND)

Logica (acquisizione del File System

o parte di esso)

ADB (Android Debug Bridge) con privilegi di root

ADB è un coltellino svizzero per gli investigatori forensi!

• Utilizzabile se è stata attivata la modalità “USB Debug” sul telefono

- adb shell forward - adb push di tool e agent (compresi quelli di

unlock)- adb shell su- adb backup -apk-all -f nomebackup.ad

Esempi di shell adb

ADB (Android Debug Bridge) senza privilegi di root

• Utilizzabile se è stata attivata la modalità “USB Debug” sul telefono

- AntiGuard (applicazione OpenSource)

• Si prova una privilege escalation a root :- privilegi temporanei (exploit, fino al reboot);- AFLogical App

• Recovery mode :

- root mediande flashing di custom recovery partition

Cosa si ottiene da adb?

1. SMS2. Contatti

3. Call History4. Eventi

5. Calendari6. etc…

USB Debug non attivo

E se l’USB Debug non è attivo?!?!

USB Debug non attivo

E se l’USB Debug non è attivo?!?!

Fastboot

• Quando il device è in bootloader mode , si può sfruttare il protocollo fastboot

• Il bootloader è protetto? : - SI = S-ON quindi protezione attiva, protocollo

inibito - NO = S-OFF quindi protezione inibita , protocollo

attivo

• Exploit per ottenere l’ S-OFF

Break the passcode

Ci sono varie tecniche per craccare un passcode!

• Prima però , dobbiamo individuare di quale tipologia è

Smudge Attack

Pattern Lock attack

• Il pattern creato con il codice di sblocco salva un file in /data/system/gesture.key

La chiave può essere decriptata, alcuni siti permettono di farlo:

Cracking Pin

Quando viene usata una password oppure un pin , viene salvata la relativa chiave in /data/system/passwords.key

Non facile da decriptare, dipende dalla robustezza della password!!

Brute Force Dictionary Attack

Directory File System

Directory SD Card

Directory SD Card

SQLite3

SQLite 3 è il database di riferimento nei terminali Android.

Vediamone alcuni comandi :

Comando Descrizione Sqlite3 <nomedb>

Carica un database

.tables mostra le tabelle

Select * from <table>

mostra l’attributo della tabella

.dump dump del db

SQLite3

Domande?

Contatti

• Email: alessandro.dicarlo@hotmail.it

• Facebook : Alessandro Di Carlo —> https://www.facebook.com/dikkemberg

• Twitter : @Dikkemberg —> https://twitter.com/Dikkemberg

• Linkedin : Alessandro Di Carlo —>https://it.linkedin.com/in/alessandrodicarlo92

Sito internet: www.alessandrodicarlo.com

Blog: blog.alessandrodicarlo.com

Grazie per l’attenzione!