Taggat med: NSO Group

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

Ökad detektion av 0-days

Googles specialgrupp vid namn Threat Analysis Group (TAG) har skrivit ett intressant inlägg om detektion av 0-days som används vid cyberattacker. 0-days är sårbarheter som är okända och ej åtgärdade av leverantören.

Tittar vi på statistik som TAG presenterar så har detektionen senaste året ökat markant över sårbarheter som utnyttjas ”in the wild”. Dvs sårbarheter som aktivt utnyttjas med en exploit och som sedan detekteras på ett eller annat sätt:

Bildkälla

Men vad beror denna ökning på? Jo det finns ett antal faktorer som spelar in:

  • Det finns fler aktörer som handlar med sårbarheter. Så kallade Cyber Arms Dealers eller exploitmäklare
  • Marknaden har blivit mer mogen och gör det svårare att ta sig in i system via mer traditionella sätt såsom social engineering
  • Vi blir bättre på att detektera 0-days
  • Aktörer såsom Google, Microsoft och Apple anger numera i sina säkerhetsuppdateringar om en viss sårbarhet som åtgärdats, utnyttjas aktivt ”in the wild”
  • Länders budgetar att utföra offensiva cyberoperationer antas öka successivt. Därmed även möjligheterna att införskaffa zero-days

Det jag hoppas och tror är att Apple i framtiden kommer att öppna upp iOS mer så att forensiska undersökningar ska bli lättre och därmed också möjligheterna att detektera 0-days i efterhand bättre. Detta är så klart möjligt i dagsläget till viss del med verktyg såsom MVT.

Värt också att notera är att de som utnyttjar 0-days är måna om att dessa inte detekteras och åtgärdas, därför använder man metoder såsom ECDH för att försvåra analys (anti-forensics).

Som jag också har skrivit om tidigare så ökar troligtvis även N-days/patchgapping-behovet och marknaden. För att nämna några företag som livnär sig i denna gråzon med att förmedla 0-days och utveckla trojaner/bakdörrar kan jag lista:

  • Candiru, Saito Tech Ltd
  • NSO Group
  • Memento Labs (fd. HackingTeam)
  • Gamma Group
  • Zerodium
  • DarkMatter. Med kontor i bla Finland under namnet Zeline 1 Oy, Digital 14 Oy
  • Exodus Intel
  • Endgame

Finns givetvis ett antal till. Kommentera gärna nedan om du känner till fler.