Taggat med: spionprogramvara

Så identifierar du spionprogramvaran Pegasus från NSO Group

I detta blogginlägg tänkte jag redogöra för en av flera metoder som kan användas för att identifiera spionprogramvaran Pegasus från ökända NSO Group.

Pegasus installeras via en eller flera sårbarheter som utnyttjas främst i iPhones. Och kräver att användaren öppnar en länk, SMS eller liknande. Dessa sårbarheter går under benämningarna Zero-Click, One-Click eller FCP som står för Full Chain with Persistence. Lite beroende på vilken typ av sårbarhet som utnyttjas.

Att vi känner till några av sårbarheterna som utnyttjas av Pegasus är för att Citizen Lab har analyserat mobiltelefonerna hos personer med kopplingar till Bahrain Center for Human Rights. Sårbarheterna åtgärdades i iOS version 14.8 som släpptes igår. Och sårbarheterna har CVE-2021-30860 som är enligt Apple:

Processing a maliciously crafted PDF may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Samt CVE-2021-30858 som inrapporterats av en anonym person men som återfinnes i Webkit:

Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited.

Detektion

Tyvärr så finns det inget bra sätt att analysera innehållet på en iPhone om den inte är jailbreakad. Jag hoppas på att Apples Endpoint Security som finns till macOS även kommer att komma till iOS.

Har du inte möjlighet att jailbreaka så finns det några andra metoder att använda. Dels kan du via en MDM-lösning forcera ett VPN som gör det möjligt att titta på nätverkstrafik som går till och från en mobiltelefon och dels så kan du analysera backup-filer från iTunes. Även finns det möjlighet att installera en proxy som tittar på all kommunikation samt titta på eventuella loggfiler/krashloggar.

Men för detta blogginlägg tänkte jag testa MVT (Mobile Verification Toolkit) som är ett verktyg som släppts av Amnesty International. Det är ett öppet verktyg som är skrivet i Python och kan ge en fingervisning om en mobiltelefon blivit hackad.

Verktyget MVT hittar du på Github här samt Indicator of Compromise (IOC) hittar du här. Värt att nämna är att MVT även fungerar på Android-baserade mobiltelefoner.

Steg 1 är att skapa en backup av iOS-enheten via iTunes eller Finder. Du kan även skapa en krypterad backup, för mvt kan dekryptera denna med hjälp av ett lösenord:

När vi sedan har en backup så behöver vi eventuellt dekryptera denna först, det kan man göra på följande sätt:

$ mvt-ios decrypt-backup -p lösenord -d decrypted "/Users/kalle/Library/Application Support/MobileSync/Backup/00002040-00030A2313CB021A" 

Då har vi sedan en dekrypterad backup i katalogen decrypted. Då skriver vi nästa kommando som plockar ut artefakter:

$ mvt-ios check-backup --output mvt-output decrypted

Och som sista steg så laddar vi hem Pegasus IOC:er och kollar dessa mot mvt-output katalogen:

$ wget https://raw.githubusercontent.com/AmnestyTech/investigations/master/2021-07-18_nso/pegasus.stix2
$ mvt-ios check-iocs --iocs pegasus.stix2 mvt-output

Och om du ser något annat än en rad som börjar med INFO bör vidare undersökningar genomföras.

MVT pegasus malware scan

Efter detta rekommenderar jag att kontroller med andra verktyg såsom Loki, på följande sätt:

$ docker run -it --rm -v loki_signatures:/app/signature-base -v /Users/kalle/mvt-output/:/scan mablanco/loki --force --printall --intense --debug -p /scan

Även finns det mer IOC:er att kontrollera mot, bl.a här. Observera att denna metod först och främst kontollerar om mobiltelefonen kommunicerat med några av de kända ändpunkterna. Huruvida sårbarheten/sårbarheterna lyckats eller ej är svårare att avgöra med denna metodik.

Uppdatering: Erik från Netresec tipsade om denna enkla metod som kan användas. Obs denna kan ge en hel del false positives:

Bild av Sora Shimazaki från Pexels