Una vulnerabilità di Instagram permette l’accesso al tuo telefono ad un utente remoto, tramite un semplice invio di una foto
La scoperta del bug è sta segnalata da Check Point, azienda specializzata in sicurezza informatica, direttamente a Facebook, proprietario di Instagram. Le versioni di Instagram coinvolte sono quelle per Android precedenti alla 128.0.0.26.128 e permettono con l’invio di una singola immagine con dimensioni appositamente predisposte, di prendere possesso del telefonino della vittima. La vulnerabilità registrata con CVE-2020-1895 e confermata da Facebook, viene descritta come: “Un buffer overflow dell’heap”.
Instagram: gestione dell’immagine e buffer overflow
Per capire come sia possibile che con una singola immagine si riesca ad avere l’accesso da remoto ad un telefonino, dobbiamo dare uno sguardo su come gestisce le immagini Instagram e cos’è un buffer overflow. Il buffer overflow è causato da un difetto di programmazione in particolare un errato controllo dei limiti di memoria necessaria all’esecuzione di un programma. Quando un programma viene lanciato occupa uno spazio che il sistema operativo gestisce in funzione delle istruzioni presenti all’interno del programma stesso. Ma cosa succede se la memoria destinata alla memorizzazione dei dati risultasse non sufficiente? Questo causerebbe un overflow, cioè una fuoriuscita del dato dalla memoria che il sistema aveva predisposto. L’overflow della memoria (buffer) danneggia i dati presenti nella memoria adiacente sovrascrivendoli. Un malintenzionato veicolando questa sovrascrittura potrebbe far eseguire del codice arbitrario.
Nel nostro caso il buffer overflow riguarda la memoria basata su heap, cioè quella parte di memoria che non viene gestita dal sistema ma viene allocata in modo dinamico dal programmatore tramite apposite funzioni. La gestione della allocazione della memoria varia in base al sistema operativo ed al linguaggio di programmazione utilizzato. Gli sviluppatori di Instagram hanno utilizzato per la gestione delle immagini jpeg la libreria Mozjpeg. Scritta in linguaggio “C++”, questa libreria è stata realizzata da Mozilla Foundation, per fornire una migliore compressione e ridurre le dimensioni dei file jpeg. La funzione vulnerabile contenuta all’interno della libreria Mozjpeg è “read_jpg_copy_loop“, utilizzata durante il processo di decompressione per gestire le dimensioni dell’immagine durante l’analisi del file jpeg. É proprio durante la fase di analisi che l’immagine viene memorizzata sulla memoria heap senza verificarne la dimensione. Il sistema si aspetta quindi che il programma occupi un certo spazio, ma il programmatore non ne ha stabilito il limite massimo. Quando queste dimensioni vengono abusate portano all’overflow.
Instagram: una foto permette l’accesso al tuo telefono
Per creare l’immagine che simulava la foto utilizzata come vettore di attacco, i ricercatori di Check Point hanno usato una libreria chiamata PIL, creando il JPEG dannoso e operando tramite una tecnica di fuzzing che consiste nell’invio di dati casuali in input. Check Point ha comunicato la vulnerabilità a Facebook, che ha rilasciato una patch il 10 febbraio 2020 assegnando un grado di pericolosità alto (7.8) Yaniv Balmas, il capo della ricerca informatica presso Check Point, ha fornito i seguenti suggerimenti sulla sicurezza per gli utenti di smartphone:
- Aggiornare regolarmente le applicazioni.
- Prestare attenzione alle autorizzazioni richieste dalle applicazioni.
- Installare le applicazioni di cui effettivamente se ne fa uso.
Purtroppo un attacco di questo tipo passerebbe inosservato a qualsiasi antivirus e quindi non ci resta che prendere alla lettera i consigli di Check Point e farne tesoro.
Lascia un commento