Securityleverancier Kaspersky Lab heeft samen met een groep programmeurs een onbekend codefragment binnen een gedeelte van de payload-DLL van het Duqu-malware weten te ontcijferen. Dit Duqu Framework was voor de communicatie met de command & control (C&C)-servers nadat het Trojaanse paard de computer van een slachtoffer had geïnfecteerd.
De securityleverancier deed recentelijk een beroep op de gemeenschap van programmeurs voor hulp bij het oplossen van een van de grootste mysteries rond het Trojaanse paard Duqu. Kaspersky werd overstelpt met waardevolle feedback van programmeurs waardoor de experts van Kaspersky Lab in staat waren om met een hoge mate van zekerheid vast te stellen dat het Duqu Framework uit ‘C'-broncode bestaat. Deze code is gecompileerd met Microsoft Visual Studio 2008 en bevat speciale opties voor het optimaliseren van de codeomvang en inline uitbreiding. De code werd daarnaast geschreven met een aangepaste extensie die in de meeste gevallen ‘OO C' wordt genoemd en het mogelijk maakt om objectgeoriënteerd programmeren te combineren met C.
Twee redenen
Dit type intern ontwikkelde programmatuur is uiterst geavanceerd en wordt normaliter aangetroffen binnen complexe ‘civiele' softwareprojecten in plaats van moderne malware. Hoewel er geen eenvoudige verklaring is voor het feit dat het Duqu Framework gebruikmaakte van OO in plaats van C++, zijn er twee mogelijke redenen aan te wijzen:
– Meer controle over de code. Toen C++ werd gepubliceerd, besloten veel ‘old school' programmeurs om deze taal te vermijden vanwege twijfels over de geheugentoewijzing en andere obscure functies die ervoor zorgen dat code op indirecte wijze wordt uitgevoerd. OO C zou een betrouwbaarder framework bieden met minder kans op dergelijk onverwacht gedrag.
– Hoge overdraagbaarheid. Zo'n tien tot twaalf jaar geleden was C++ nog niet volledig gestandaardiseerd, waardoor de kans bestond dat de code van deze taal niet compatibel was met elke compiler. Het gebruik van C biedt programmeurs een uiterst hoge mate van overdraagbaarheid, omdat deze taal op elk gewenst moment ondersteuning biedt voor elk bestaand platform, zonder gebukt te gaan onder de beperkingen van C++.
Eerder gebruikt
‘Deze twee verklaringen doen vermoeden dat de code is geschreven door een team van ervaren ‘old school' ontwikkelaars die een aangepast framework wilden creëren ter ondersteuning van een uiterst flexibel en aanpasbaar aanvalsplatform', aldus malware-expert Igor Soumenkov. ‘De kans bestaat dat deze code voor eerdere cyberaanvallen is gebruikt en vervolgens is aangepast voor integratie in de Duqu-trojan. Maar één ding is zeker: deze technieken worden normaliter gebruikt door softwareontwikkelaars die tot de elite behoren, en worden vrijwel nooit aangetroffen in de malware die momenteel in omloop is.'