Hackers van Google zijn erin geslaagd een kopie van de super-trojan Pegasus, die zich onder meer richt op iPhones, te analyseren. De aanvalscode die gebruikt is om het te infecteren is zowel uiterst geraffineerd als verontrustend.
Googles hackers analyseren trojan Pegasus
Kort voor Kerstmis ontdekten onderzoekers van Citizen Lab een Pegasus-exploit, van het Israëlische cyberwapenbedrijf NSO. Google’s eigen hackingteam Project Zero heeft het sample geanalyseerd en legt in de blog van het project uit hoe de spyware ongemerkt op de apparaten terecht is gekomen.
Amnesty International onthult
Nog in de zomer van 2021 onthulde de mensenrechtenorganisatie Amnesty International dat meer dan 50.000 telefoonnummers besmet waren met de Pegasus-spionagesoftware. Hoe de exploit precies werkte op iPhones was op dat moment nog niet helemaal duidelijk.
De malware infecteert het apparaat op perfide wijze zonder tussenkomst van de gebruiker – daarom wordt de procedure ook wel een zero-click exploit genoemd.
Indringers via iMessage
Pegasus gebruikt als ingang iMessage-berichten die door iPhones met de voorgeïnstalleerde Berichten-app waren ontvangen. De aanvallers sturen een chatbericht dat een GIF-bestand bevat naar hun beoogde slachtoffer.
In het geval van Pegasus, verbergt de GIF een PDF. Aangezien GIF’s in een doorlopende lus lopen, verwerkt de iPhone het bestand intern nog voordat de gebruiker het bericht opent.
Daartoe stuurt iOS het bestand naar het IMTranscoderAgent proces. Deze negeert echter de .gif extensie, herkent de PDF in het bericht met het ImageIO framework en geeft het bestand door aan de bijbehorende parser.
Cruciale fout
Dit is een cruciale fout, omdat de Pegasus exploit hierdoor gebruik kan maken van een integer overflow in de JBIG2 compressiemethode, die verankerd is in de door iOS gebruikte Xpdf bibliotheek. Apple sloot de exploit met iOS versie 14.8 in september 2021.
De PDF bevat een JBIG2-gecomprimeerde zwart-witafbeelding die een buffer-overflow forceert in een 32-bit integer counter van een JBIG2-functie. Hierdoor begint de teller weer bij 0; het gevolg is dat een met de teller gedefinieerd geheugengebied veel te klein wordt gemaakt.
Blijf op de hoogte van de nieuwste informatie en tips!
Schrijf je in voor de nieuwsbrief:
Geen klassieke buffer overflow
Vervolgens wordt bij het schrijven naar het gebied, voorbij de gebiedsgrenzen geschreven. Dit klinkt als een klassieke buffer overflow op de heap. De hacker FX heeft in 2006 in c’t al in detail uitgelegd hoe je zoiets kunt uitbuiten. Maar dat werkt in dit geval niet, omdat de aanvallers de adressen van de relevante geheugengebieden niet kennen.
Om daar achter te komen, bouwden ze een virtuele computer. Uit de reconstructiefunctie voor JBIG2-gecomprimeerde beelden, construeerden zij zogenaamde NAND-poorten. Dit is een logische bewerking (NOT en AND) waaruit alle andere logische bewerkingen kunnen worden samengesteld.
Virtuele computer
In totaal hebben zij meer dan 70.000 van dergelijke NAND’s met elkaar verbonden om een kleine virtuele computer te vormen. En hiermee berekenden ze vervolgens de benodigde geheugenadressen om uiteindelijk de beveiligingsmaatregelen van iOS te omzeilen en de iPhone in een bug te veranderen.
Analyseren door hackers van trojan Pegagsus gaat door
Hoe dit precies in zijn werk is gegaan, zal in een volgend deel van de analyse door Google’s Project Zero-team worden onthuld. De exploit maakte zelfs indruk op de geharde sterhackers van Google Project Zero: “Een van de technisch meest geraffineerde exploits die we ooit hebben gezien,” was de reactie van het verblufte team.
Conclusie van hackers na analyseren trojan Pegasus
De analyse van de Pegasus spyware toont aan dat je waarschijnlijk alle gebruikelijke beveiligingsmaatregelen te slim af kunt zijn als je er maar genoeg geld in steekt. De aanvalscode is uiterst gevaarlijk, maar ook even indrukwekkend en slim.
Dergelijke “zero-day”-exploits zijn kostbaar en worden alleen tegen geselecteerde doelwitten gebruikt. Want zodra zo’n exploit de ronde doet, zal het niet lang duren voordat de betrokken fabrikant het uitgebuite veiligheidslek dicht.
Omgekeerd betekent dit ook dat de ‘gewone’ gebruiker zich niet veel zorgen hoeft te maken over het per ongeluk kennis maken met zo’n high-tech Trojan. Het is te duur om met deze methode lukraak in het rond te schieten.
Het Project Zero rapport suggereert dat NSO soortgelijke software verkoopt voor Android toestellen. Het Google-team heeft de hiervoor gebruikte exploit echter nog niet gevonden.
De JBIG2-compressiemethode is bijzonder geschikt voor documenten omdat zij zoekt naar blokken die er gelijkaardig uitzien en van elk slechts één kopie bewaart. Wanneer het wordt geopend, wordt het originele document gereconstrueerd op basis van deze voorraad.
Wilhelm Drehling, Jürgen Schmidt, Nick Muijs