Pegasus: la storia e le caratteristiche del malware zero-click
Il 18 luglio 2021 Amnesty International ha avuto accesso ad un database di oltre 50.000 numeri di telefono di attivisti, giornalisti, politici, avvocati che sarebbero stati presi di mira dallo spyware Pegasus di proprietà della società israeliana NSO Group.
L’ONG inglese si è coordinata con diverse testate giornalistiche, come il The Guardian e Le Monde, per accusare formalmente la società israeliana di aver utilizzato il malware con finalità differenti da quelle previste, ovvero il monitoraggio di criminali e terroristi.
La storia dello spyware
Non è la prima volta che la NSO Group Technologies si trova al centro di un attacco mediatico: già nel 2016 la società venne accusata di sfruttare la vulnerabilità Trident al fine di hackerare diversi dispositivi di attivisti e giornalisti tra cui quello di Ahmed Mansoor, difensore dei diritti umani riconosciuto a livello internazionale.
Trident è composta da tre singole vulnerabilità che, se utilizzate in successione, consentono la completa compromissione di un dispositivo Apple a causa di un difetto del Webkit, il motore utilizzato dal browser Safari, dalla Mail e molte altre app Apple. Nello specifico:
- CVE-2016-4657: Memory Corruption in WebKit - consente all’utente malintenzionato di compromettere il dispositivo quando l’utente fa clic su un link malevolo.
- CVE-2016-4655: Kernel Information Leak - permette di avere accesso alla memoria del sistema operativo.
- CVE-2016-4656: Compromissione della memoria del Kernel porta al Jailbreak – permette all’attaccante di fare in modo silente il jailbreak del dispositivo e installare Pegasus.
Nel 2018, a seguito dell’assassinio ad Instabul del giornalista saudita del Washington Post Jamal Khashoggi, è stato possibile identificare 6 SMS ricevuti che collegavano link malevoli direttamente allo spyware Pegasus.
Inoltre, WhatsApp nel 2019 ha rivelato che il software della NSO è stato utilizzato per inviare malware a più di 1.400 telefoni, tra cui quello di Jeff Bezos, sfruttando una nuova vulnerabilità zero-day: effettuando una chiamata WhatsApp su un dispositivo target, il codice dannoso di Pegasus veniva installato sul telefono, anche senza nessuna risposta da parte delle vittime.
Nel 2020 la vulnerabilità Kismet è stata utilizzata per veicolare Pegasus attraverso l’iMessage degli iPhone delle vittime nella versione iOS 13.5.1, di cui è stata subito rilasciata la patch da Apple.
A Luglio 2021, grazie ai ricercatori di Citizen Lab, sono stati identificati gli exploit ForcedEntry e Megalodon dal gruppo di sicurezza di Amnesty International, che ha appunto provveduto a denunciare la cosa. Le vittime di questo specifico caso hanno un peso specifico non indifferente: sia per la cifra elevata, una lista di 50.000 numeri di telefono, sia per la qualità delle intercettazioni che includono 13 capi di Stato, 180 giornalisti, accademici, uomini d’affari, avvocati, medici, diplomatici. Tra i politici spiccano nomi come Emanuel Macron e Angela Merkel, il primo perseguito dall’intelligence del Marocco mentre la seconda dagli 007 danesi. I Paesi che hanno maggiormente usufruito di questa tecnologia, oltre quelli già citati, sono il Messico e gli Emirati Arabi Uniti, con più di 10 mila numeri sorvegliati. L’immagine mostra una mappa dei Paesi che hanno avuto il maggiore impatto dall’attacco di spionaggio con più di 1000 numeri in Francia e 6000 per l’Algeria.
NSO ha temporaneamente limitato l’utilizzo di Pegasus per alcuni clienti e ha avviato le indagini sulle segnalazioni per uso improprio, decidendo così di creare un fronte di opposizione contro le accuse mondiali da parte di governi e testa giornalistiche, negando sul proprio sito che “la lista” sia riferita ai target dello spyware e che, in nessun modo, siano legate a NSO.
Pegasus:caratteristiche e analisi tecnica
La pericolosità di questi spyware è la natura zero-click: conoscendo il numero di telefono dell’utente target si ha la possibilità, senza la sua interazione, di estrarre messaggi, foto ed e-mail, di registrare chiamate e attivare le webcam e i microfoni. Accedendo al GPS, inoltre, vi sarebbe la possibilità di tracciare con precisione i movimenti di una persona in tempo reale.
Il valore commerciale di un’arma cyber di livello sofisticato varia dai 30 mila euro, se vengono utilizzati lo smishing o il phishing come vettori di attacco, fino a 8 milioni di euro per le vulnerabilità zero-click. In generale, più è facile inoculare un attacco, più questo diventa efficace e oneroso per il compratore.
Analizziamo le due vulnerabilità che hanno interessato i dispositivi Apple sfruttate dal malware Pegasus nel 2021 : CoreGraphics e Webkit.
CoreGraphics CVE-2021-30860, che analizzeremo più nel dettaglio, è stata segnalata il 24 agosto da The Citizen Lab. Si tratta di un attacco zero-click, ovvero dove il criminale non ha bisogno di nessuna interazione dell’utente. La vulnerabilità in questione sfrutta una problematica di integer overflow relativa alla componente Core Graphics, più precisamente nelle operazioni di decodifica di dati JBIG2. JBIG2 (Joint Bi-level Image Experts Group) è un formato di compressione di immagini che può essere inserito come stream in un documento PDF o PSD. Dalle analisi svolte da CitizenLab effettuate su dispositivi compromessi da Pegasus, sono emersi alcuni file di tipo immagine che causavano il crash di “IMTranscoderAgent” (uno dei componenti che permettono il processing dei dati di iMessage, inclusi l’invio / ricezione di immagini).
Dall’analisi effettuata da Tom McGuire, emerge come, all’interno della componente JBIG2Stream processor in una versione di macOS vulnerabile, la variabile “numSyms” (intero a 32bit) viene incrementata della dimensione del segmento del processo corrente. Questo può portare ad un evento di “integer overflow”, poiché non viene effettuato nessun controllo relativo a questi assegnamenti.
Come possiamo vedere anche dal codice disassemblato sottostante preso dalla versione macOS vulnerabile (11.5.2), l’istruzione add eax, rbx+0ch (che è un calcolo a 32-bit) non ha nessun controllo per evitare un possibile overflow.
In generale, per poter sfruttare una vulnerabilità le problematiche di tipo integer overflow sono spesso combinate con altri errori di programmazione. Ad esempio i numeri interi in questione vengono utilizzati per allocare dinamicamente porzioni di memoria. La variabile numSyms viene usata successivamente come primo argomento della gmallocn. Il valore di numSyms è in questo caso controllato dall’attaccante, con l’obbiettivo di mantenerlo il più piccolo possibile in modo da allocare solo una piccola parte di memoria per poi effettuare l’overflow. Nel codice sottostante si può visionare l’overflow effettivo. Alla riga 2004, alla variabile “syms” (risultato della gmallocn) viene assegnato il Bitmap(k). Poiché “k” è definito in funzione di getSize(), esso può avere un valore molto più grande rispetto alla dimensione allocata per “syms” e il risultato è un overflow.
Per quanto riguarda Webkit CVE-2021-30858 è stata scoperta da un ricercatore anonimo e concerne l’infezione del dispositivo dell’utente a causa del caricamento di pagine Web malevole utilizzando il browser Safari. Sembra che il gruppo criminale che ha sfruttato questa vulnerabilità abbia anche un sofisticato front-end per visualizzare i dettagli degli attacchi e delle loro vittime in tempo reale.
Remediation
Per quanto riguarda i dispositivi mobili, Apple ha rilasciato i nuovi aggiornamenti per iOS 14.8 e iPadOS 14.8 con un documento di supporto che descrive in modo approfondito le due vulnerabilità. Il consiglio è di aggiornare immediatamente il sistema operativo: le patch sono disponibili già per l’iPhone 6s e versioni successive, iPad Pro (tutti i modelli), iPad Air 2 e versioni successive, iPad 5a generazione e versioni successive, iPad mini 4 e versioni successive e iPod touch (7a generazione).
Amnesty International ha pubblicato un tool open source gratuito di nome Mobile Verification Toolkit (MVT) che può verificare se il proprio dispositivo è stato infettato da Pegasus. Il tool effettua un’analisi forense sui domini visitati dal dispositivo cercando dei pattern noti.
Attenzione: MVT è uno strumento di ricerca avanzato e il suo utilizzo richiede l’utilizzo di un esperto in analisi forensics.
È disponibile su GitHub
Conclusione
In futuro NSO Group continuerà a operare, a innovare e a sviluppare malware nuovi e sempre più sofisticati.
Alcuni ricercatori sostengono che le versioni più avanzate di Pegasus saranno in grado di occupare solo la memoria temporanea del dispositivo, il che significa che, una volta spento lo smartphone, ogni traccia digitale dello spyware potrebbe scomparire e rendere vani tool e indagini forensi.
Per chi si occupa di sicurezza informatica il compitò sarà quello di ridurre al minimo l’impatto degli attacchi con una strategia di mitigazione, creare awareness e lasciare il compito ai bug hunter di ricercare vulnerabilità zero day nei sistemi operativi e nelle applicazioni.