Elia Tufarolo

ParseDroid, una vulnerabilitÓ che espone gli sviluppatori Android

Ricercatori di CheckPoint hanno scoperto dei bug all'interno di un parser XML, che consentono ad un utente malevolo di ottenere file da dispositivi Android infetti. APKTool contiene, inoltre, una remote-code execution sfruttabile su PC

Roma - 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.



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.
file manifest infetto


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

Fonte Immagine
Notizie collegate
  • AttualitàAndroid, privacy a rischio bugUn nuovo bug all'interno di un servizio fondamentale per l'OS mobile espone gli utenti alla cattura non autorizzata di audio e video, un problema molto diffuso e risolto solo con l'ultima release di Android
  • AttualitàBlueBorne colpisce anche Amazon Echo e Google HomeL'ennesima minaccia a base di Bluetooth evidenziata dai ricercatori impatta anche i gadget con assistenti digitali nel cloud sui quali i colossi dell'e-commerce e dell'advertising scommettono per il futuro. Le patch sono giÓ in circolazione, ma il pericolo di BlueBorne non finisce qui
  • AttualitàDirty COW, arma per un nuovo malware su AndroidIdentificata una nuova minaccia contro i gadget mobile basati sull'OS di Google ma non aggiornati, costretti a fare i conti con una vulnerabilitÓ vecchia di anni. Le app infette non sono, fortunatamente, finite sullo store Play
8 Commenti alla Notizia ParseDroid, una vulnerabilitÓ che espone gli sviluppatori Android
Ordina
  • questa mi mancava! ora ho capito perché alcuni utenti di questi forum la hanno fissa con certi argomenti.
    non+autenticato
  • oh qualcosa di interessante..... ma mi domando...... il manifest ha una 20ina di tag (meno comandi del basic del c64)... c'era proprio bisogno di usare del bloatware general-purpose stuff come l'XML (o RDF ecc)?
    Uno poi va ad usare un parser 'standard', che ti processa di tutto secondo le rfc/w3c e saltano fuori questi casini... se proprio intriga tanto, alla peggio un bel DTD *hardcoded* ...
    non+autenticato
  • - Scritto da: bubba
    > oh qualcosa di interessante..... ma mi
    > domando...... il manifest ha una 20ina di tag
    > (meno comandi del basic del c64)... c'era proprio
    > bisogno

    Le librerie XML oltre al parsing fanno la validazione, se specifichi il DTD puoi gestire pure le versioni, inoltre, anche se in questo caso è stato abusato, l'include serve, parte del manifest puo venire dai plugin.

    > di usare del bloatware general-purpose
    > stuff come l'XML (o RDF ecc)?
    >

    XML viene considerato un bloatware perchè spesso moltiplica il numero di caratteri caricati nei pacchetti http, ma in questo caso si tratta di un file limitato letto in locale, la differenza nel tempo di elaborazione con una alternativa più semplice è dell'ordine dei millisecondi.

    > Uno poi va ad usare un parser 'standard', che ti
    > processa di tutto secondo le rfc/w3c e saltano
    > fuori questi casini... se proprio intriga tanto,
    > alla peggio un bel DTD *hardcoded*
    > ...

    Tra un parser standard e uno non standard mi sa tanto che è il secondo quello che contiene più vulnerabilità.
    non+autenticato
  • - Scritto da: 3918faf50a6
    > - Scritto da: bubba
    > > oh qualcosa di interessante..... ma mi
    > > domando...... il manifest ha una 20ina di tag
    > > (meno comandi del basic del c64)... c'era
    > proprio
    > > bisogno
    >
    > Le librerie XML oltre al parsing fanno la
    > validazione, se specifichi il DTD puoi gestire
    > pure le versioni, inoltre, anche se in questo
    > caso è stato abusato, l'include serve, parte del
    > manifest puo venire dai
    > plugin.
    A parte che non hai capito il punto (dopo ci torno) sei sicuro che non te lo sei sognato? i tag (o element se vuoi) validi sono quelli indicati qui https://developer.android.com/guide/topics/manifes...

    > > di usare del bloatware general-purpose
    > > stuff come l'XML (o RDF ecc)?
    > >
    >
    > XML viene considerato un bloatware perchè spesso
    > moltiplica il numero di caratteri caricati nei
    > pacchetti http, ma in questo caso si tratta di un
    > file limitato letto in locale, la differenza nel
    > tempo di elaborazione con una alternativa più
    > semplice è dell'ordine dei
    > millisecondi.
    >
    > > Uno poi va ad usare un parser 'standard', che ti
    > > processa di tutto secondo le rfc/w3c e saltano
    > > fuori questi casini... se proprio intriga tanto,
    > > alla peggio un bel DTD *hardcoded*
    > > ...
    >
    > Tra un parser standard e uno non standard mi sa
    > tanto che è il secondo quello che contiene più
    > vulnerabilità.
    eh appunto.. non hai capito il punto... la libreria e la funzione java non e' che sia propriamente buggata... e' usata MALE, perche essendo XML un " bloatware general-purpose stuff" si occupa/preoccupa di tutta una serie di robe che nel povero manifest android non servono. Nel caso di specie un inutile supporto a !ENTITY che poi ha creato il bubbone.
    Tu dovessi parsare/generare un file .pls useresti un bloatware XML-RDF like o ti fai un parser ad hoc semplice e leggero?
    non+autenticato
  • > A parte che non hai capito il punto (dopo ci
    > torno) sei sicuro che non te lo sei sognato? i
    > tag (o element se vuoi) validi sono quelli
    > indicati qui
    > https://developer.android.com/guide/topics/manifes
    >

    E' tanto difficile da capire? Man mano che passano le versioni i tag ammessi possono cambiare. La manutenzione è più semplice appoggiandosi a XML.

    > >
    > > Tra un parser standard e uno non standard mi sa
    > > tanto che è il secondo quello che contiene più
    > > vulnerabilità.
    > eh appunto.. non hai capito il punto... la
    > libreria e la funzione java non e' che sia
    > propriamente buggata... e' usata MALE, perche
    > essendo XML un " bloatware general-purpose stuff"
    > si occupa/preoccupa di tutta una serie di robe
    > che nel povero manifest android non servono. Nel
    > caso di specie un inutile supporto a !ENTITY che
    > poi ha creato il bubbone.

    Deluso

    Mi arrendo.

    > Tu dovessi parsare/generare un file .pls useresti
    > un bloatware XML-RDF like o ti fai un parser ad
    > hoc semplice e
    > leggero?
    non+autenticato
  • ...che mi craccano i programmi. Sto ore ed ore a sviluppare e gli altri si cuccano il mio codice senza far nulla e senza pagarmelo neanche una birra in cambio. Così ho vi metto un bel malware e quando craccate vi cracco io...
    non+autenticato
  • - Scritto da: lamer
    > ...che mi craccano i programmi. Sto ore ed ore a
    > sviluppare e gli altri si cuccano il mio codice
    > senza far nulla e senza pagarmelo neanche una
    > birra in cambio. Così ho vi metto un bel malware
    > e quando craccate vi cracco
    > io...
    beh non e' che prima di questo bug scrivere malware fosse impossibile o ontologicamente vietato.... e' solo un tantino illegale diffonderlo ..
    non+autenticato
  • 1) Se non vuoi che ti copino il codice offuschi e cifri tutto quello che puoi.

    2) Qui il malware (se mai ce ne sono stati) non è inserito nel codice di un'app, qui si parla di malware che potrebbe essere distribuito tramite librerie messe a disposizione volontariamente.
    non+autenticato