La società israeliana di sicurezza informatica CheckPoint Software Technologies ha pubblicato nei giorni scorsi i risultati di un’investigazione effettuata lo scorso maggio , che ha portato alla scoperta di gravi vulnerabilità riguardanti gli strumenti di sviluppo di applicazioni Android .
Alert: Our Research team has found #vulnerabilities that may have put every organization using #Java / #Android development tools at risk. Read the full report about #ParseDroid here: https://t.co/9xKQvp7lDL #CyberSecurity #InfoSec #Malware #Hack pic.twitter.com/k1BShmUvJe
– Check Point Software (@CheckPointSW) December 5, 2017
Nello specifico, i prodotti affetti da questa vulnerabilità – chiamata ParseDroid – sono i principali IDE utilizzati per sviluppare applicazioni Android: IntelliJ IDEA, Android Studio (il quale è basato sul precedente), Eclipse; sono inoltre vulnerabili diversi strumenti di reverse-engineering , come APKTool ed il servizio di analisi dei malware Cuckoo-Droid .
All’inizio, i ricercatori hanno riscontrato la vulnerabilità nel codice di APKTool, precisamente all’interno della classe DocumentBuilderFactory, un parser di file XML che va a gestire anche il file AndroidManifest.xml
, il descrittore di ogni applicazione Android: questo parser non va ad ignorare eventuali entità esterne presenti all’interno del file, il cui contenuto viene quindi processato.
Un cyber-criminale potrebbe sfruttare questa vulnerabilità di tipo XXE (XML eXternal Entity) in due modi: pubblicando un file AndroidManifest.xml
infetto all’interno di un repository su GitHub, oppure caricando una libreria AAR infetta all’interno di un repository Maven pubblico. In questo modo, il cyber-criminale sarebbe in grado di ottenere qualsiasi file presente all’interno del file system di un dispositivo infetto , ricevendolo direttamente sul suo server HTTP.
Ulteriori indagini effettuate dai ricercatori su APKTool hanno consentito di riscontrare un’ulteriore vulnerabilità, che in questo caso consente l’esecuzione remota di comandi sul computer su cui viene utilizzato il software ; la sezione “unknownFiles” del file APKTOOL.YML
non prevede una validazione dei campi, che in questo caso sono path di file : sfruttando i path relativi ( Path Traversal Attack ), un attaccante sarebbe in grado di scaricare un file in qualsiasi path di sistema, ad esempio una shell PHP all’interno della root di un server HTTP.
I ricercatori di CheckPoint hanno dichiarato che, nel momento in cui scriviamo, tutti i prodotti affetti da queste vulnerabilità sono stati patchati con successo : si raccomanda quindi di utilizzare esclusivamente le ultime versioni disponibili degli IDE Android e degli strumenti di sviluppo e di debug.
Elia Tufarolo