I sistemi mobile hanno subito un'evoluzione importante nel corso del tempo. Android, ad oggi, è il sistema operativo mobile dominante, con un market share mondiale che va oltre il 70%. La tesi inizia presentando questa evoluzione storica che hanno avuto i sistemi mobile e le loro trasformazioni architetturali, sia hardware che software, per poi approfondire nello specifico il sistema Android. Si discuterà della sua architettura stratificata, dei suoi componenti chiave e dei meccanismi di sicurezza che adotta, spesso diversi da quelli che si possono trovare negli ambienti desktop tradizionali. Si passerà poi alla discussione dell'architettura delle applicazioni Android, esplorando le relazioni tra queste, il framework Android e le librerie native. Il fulcro di questa ricerca è rappresentato dalle tecniche di analisi di sicurezza applicate alle applicazioni Android. Verranno trattate nel dettaglio sia l'analisi statica che l'analisi dinamica, presentando gli strumenti più noti a tali scopi e le loro modalità d'uso, al fine di individuare debolezze all'interno dell'applicazione e valutarne la postura di sicurezza nel suo complesso. L'analisi statica prevede il disassemblaggio dell'applicazione, la decompilazione del bytecode e l'ispezione di codice sorgente, risorse statiche e configurazione al fine di individuare debolezze come credenziali memorizzate in chiaro, uso di librerie esterne con vulnerabilità note e l'abuso di privilegi che possono compromettere la privacy dell'utente. L'analisi dinamica, invece, prevede l'esecuzione dell'applicazione in un ambiente controllato per capirne il funzionamento a runtime. Durante l'analisi dinamica vengono utilizzati strumenti di debug (come l'Android Debug Bridge), emulatori (Android Virtual Device, Genymotion) e proxy web (Burp Suite, mitmproxy) per monitorare le chiamate API, il traffico di rete, l'uso di memoria e le azioni fatte dall'applicazione all'interno dell'ambiente, incluso ad esempio l'accesso a file o a periferiche hardware come microfono o fotocamera. L'analisi dinamica consente di rilevare vulnerabilità a tempo d'esecuzione, come la gestione di dati non sicura o controlli di autenticazione e/o autorizzazione deboli. L'analisi dinamica, inoltre, consente di comprendere i servizi esterni con i quali l'applicazione si interfaccia, in modo da avere una visione più chiara del sistema all'interno del quale l'applicazione opera. Ogni servizio esterno può ulteriormente essere analizzato in maniera specifica tramite tecniche di fuzzing e analisi del traffico di rete. Infine, la tesi conclude con raccomandazioni per migliorare la sicurezza delle applicazioni Android e fornisce spunti per sviluppatori, utenti e professionisti della sicurezza per promuovere un sistema mobile più sicuro e rispettoso della privacy degli utenti. L'analisi di sicurezza presentata in questa tesi verrà svolta sull'applicazione My Dacia, sulla quale si è concentrato il percorso di tirocinio interno svolto presso l'Università di Modena e Reggio Emilia. My Dacia è un'applicazione Android, appartenente al settore automotive, sviluppata da Accenture per il gruppo Renault e utilizzata dai proprietari di queste automobili per gestire le informazioni associate al proprio veicolo, come la sua posizione o quella delle officine autorizzate, i tagliandi periodici e le revisioni future.
Analisi di sicurezza di un'applicazione Android moderna
CRACCO, RICCARDO
2024/2025
Abstract
I sistemi mobile hanno subito un'evoluzione importante nel corso del tempo. Android, ad oggi, è il sistema operativo mobile dominante, con un market share mondiale che va oltre il 70%. La tesi inizia presentando questa evoluzione storica che hanno avuto i sistemi mobile e le loro trasformazioni architetturali, sia hardware che software, per poi approfondire nello specifico il sistema Android. Si discuterà della sua architettura stratificata, dei suoi componenti chiave e dei meccanismi di sicurezza che adotta, spesso diversi da quelli che si possono trovare negli ambienti desktop tradizionali. Si passerà poi alla discussione dell'architettura delle applicazioni Android, esplorando le relazioni tra queste, il framework Android e le librerie native. Il fulcro di questa ricerca è rappresentato dalle tecniche di analisi di sicurezza applicate alle applicazioni Android. Verranno trattate nel dettaglio sia l'analisi statica che l'analisi dinamica, presentando gli strumenti più noti a tali scopi e le loro modalità d'uso, al fine di individuare debolezze all'interno dell'applicazione e valutarne la postura di sicurezza nel suo complesso. L'analisi statica prevede il disassemblaggio dell'applicazione, la decompilazione del bytecode e l'ispezione di codice sorgente, risorse statiche e configurazione al fine di individuare debolezze come credenziali memorizzate in chiaro, uso di librerie esterne con vulnerabilità note e l'abuso di privilegi che possono compromettere la privacy dell'utente. L'analisi dinamica, invece, prevede l'esecuzione dell'applicazione in un ambiente controllato per capirne il funzionamento a runtime. Durante l'analisi dinamica vengono utilizzati strumenti di debug (come l'Android Debug Bridge), emulatori (Android Virtual Device, Genymotion) e proxy web (Burp Suite, mitmproxy) per monitorare le chiamate API, il traffico di rete, l'uso di memoria e le azioni fatte dall'applicazione all'interno dell'ambiente, incluso ad esempio l'accesso a file o a periferiche hardware come microfono o fotocamera. L'analisi dinamica consente di rilevare vulnerabilità a tempo d'esecuzione, come la gestione di dati non sicura o controlli di autenticazione e/o autorizzazione deboli. L'analisi dinamica, inoltre, consente di comprendere i servizi esterni con i quali l'applicazione si interfaccia, in modo da avere una visione più chiara del sistema all'interno del quale l'applicazione opera. Ogni servizio esterno può ulteriormente essere analizzato in maniera specifica tramite tecniche di fuzzing e analisi del traffico di rete. Infine, la tesi conclude con raccomandazioni per migliorare la sicurezza delle applicazioni Android e fornisce spunti per sviluppatori, utenti e professionisti della sicurezza per promuovere un sistema mobile più sicuro e rispettoso della privacy degli utenti. L'analisi di sicurezza presentata in questa tesi verrà svolta sull'applicazione My Dacia, sulla quale si è concentrato il percorso di tirocinio interno svolto presso l'Università di Modena e Reggio Emilia. My Dacia è un'applicazione Android, appartenente al settore automotive, sviluppata da Accenture per il gruppo Renault e utilizzata dai proprietari di queste automobili per gestire le informazioni associate al proprio veicolo, come la sua posizione o quella delle officine autorizzate, i tagliandi periodici e le revisioni future.| File | Dimensione | Formato | |
|---|---|---|---|
|
Cracco.Riccardo.pdf
accesso aperto
Dimensione
12.45 MB
Formato
Adobe PDF
|
12.45 MB | Adobe PDF | Visualizza/Apri |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14251/3597