De backdoor in de xz-compressietool voor Linux die eerder dit jaar aan het licht kwam, maakte gebruik van verschillende geavanceerde technieken om onopgemerkt te blijven. Een van de meest opvallende is het gebruik van een custom steganografietechniek. Daarbij verborg de maker de public key in x86 binary code.
Steganografie betreft het verbergen van informatie in een ander medium, zoals in een afbeelding, audio of video of zelfs tekst, bijvoorbeeld door het toevoegen van specifieke patronen. Deze methode is hier dus gebruikt, blijkt uit een analyse van het Russische cybersecuritybedrijf Kaspersky. Dit bedrijf heeft een reeks artikelen gewijd aan het voorval.
De backdoor kon potentieel een kwaadwillende ongeautoriseerd toegang geven tot het hele systeem. Dat was mogelijk door code in te voegen tijdens het SSH-aanmeldproces. Voor het ontsleutelen en verifiëren van de payload-data gebruikte de backdoor een public key uit de binary.
Werking bleef lang onduidelijk
Het is lang onduidelijk gebleven hoe het genereren van deze key in zijn werk ging. Onderzoekers van Kaspersky geven in het artikel toe dat ze aanvankelijk ook niets wijzer werden. Bij het checken van de key-extraction procedure leek het alsof de makers van de backdoor erin waren geslaagd code te maken die een correcte public key genereerde vóór de private key. Dit zou onmogelijk moeten zijn. Normaal gesproken genereert het gebruikte Elliptic Curve-algoritme éérst de private key en vervolgens de public key die daarvan is afgeleid.
Na het vruchteloos analyseren van de binaire code van verschillende cryptografische libraries, gingen de onderzoekers nog maar eens terug naar de oorspronkelijke backdoor-code. Toen ontdekten ze dat de keys ‘gewoon’ werden gegenereerd volgens een reguliere procedure. De reden dat dit echter zo moeilijk was te achterhalen, kwam omdat de malafide partij een zelfgemaakte steganografie toepaste in in de x86-code. Daarmee verborgen ze de public key tussen de ‘gewone’ code.
Meer slimmigheden gebruikt
De backdoor bevatte nog meer slimmigheden om detectie te vermijden. Zo was er een anti-replay-mechanisme geïmplementeerd die moest voorkomen dat communicatie van de backdoor kon worden onderschept en eventueel elders nagespeeld. Ook wiste het zijn sporen uit in de loggingfunctie van de SSH-server.
Om toegang te krijgen tot gecompromitteerde servers haakte de backdoor in op de authenticatiefunctie voor wachtwoorden. Daarmee kon een aanvaller met elke combinatie van gebruikersnaam en wachtwoord toegang krijgen tot een geïnfecteerde server, zonder dat er nog naar verdere authenticatie werd gevraagd.
Als kers op deze knap gemaakte, maar giftige taart bood de backdoor de mogelijkheid om op afstand code uit te voeren, waardoor aanvallers de geïnfecteerde server in principe helemaal naar hun hand konden zetten.
Dat is door de tijdige ontdekking door een Microsoft-medewerker overigens nooit gebeurd. De daadwerkelijk gecompromitteerde 5.6.0- en 5.6.1-versies van xz zijn in slechts enkele Linux-distributies terecht gekomen. De meeste daarvan waren development-, test- of experimentele versies en niet veelvuldig in gebruik.
Knappe code én social engineering
De onderzoekers van Kaspersky spreken zelf over een ‘zeer geraffineerde dreiging’. Het verbergen van de public key zou herstel lastig hebben gemaakt als de backdoor actief zou zijn geëxploiteerd. Daarnaast kwam er ook ‘social engineering’ aan te pas om het vertrouwen te winnen van de oorspronkelijke maker van de xz-compressietool.
Die zou kampen met gezondheidsproblemen en daarom na veelvuldig aandringen van derden (waarschijnlijk kwaadwillenden) het stokje hebben overgedragen aan ene Jia Tan. Jia Tan had al meerdere bijdragen gedaan en kreeg door steunbetuigingen van anderen de schijn van legitimiteit. Deze persoon (of personen) heeft in de loop van twee jaar geleidelijk het project gekaapt en stukje bij beetje de kwaadaardige code toegevoegd.
Gebruik Kaspersky-software verboden
Al met al dus een aardige reconstructie van Kaspersky. Wel is goed te weten dat overheidsinstanties in Nederland geen gebruik mogen maken van de software van dit bedrijf. In de VS mogen de security-oplossingen van Kaspersky vanaf 20 juli zelfs helemaal niet meer worden verkocht en gebruikt.
Vanaf 29 september zijn in Amerika ook software-updates voor bestaande klanten verboden. Dat komt omdat de Russische overheid directe invloed zou uitoefenen op de werkzaamheden van de securityspecialist.
Lees ook: xz-backdoor toont hoe kwetsbaar open-source is voor hackers met lange adem