Experts van Kaspersky Lab identificeren mysterieuze taal in de Duqu Trojan dankzij hulp van programmeurs

19 mrt 2012
Virus News

Kaspersky Lab, toonaangevende ontwikkelaar van IT-beveiligingsoplossingen, 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. Het ging om de aanwezigheid van een onbekend codefragment binnen een gedeelte van de payload-DLL van dit kwaadaardige programma. Het gedeelte met onbekende code, dat het "Duqu Framework". wordt genoemd, vormde een onderdeel van de payload-DLL die verantwoordelijk was voor de communicatie met de Command & Control (C&C)-servers nadat het Trojaanse paard de computer van een slachtoffer had geïnfecteerd.


Na de ontvangst van een overstelpende hoeveelheid waardevolle feedback van programmeurs waren de experts van Kaspersky Lab in staat 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.


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 10 tot 12 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++.


"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. De kans bestaat dat deze code voor eerdere cyberaanvallen is gebruikt en vervolgens is aangepast voor integratie in de Duqu Trojan," aldus malware-expert Igor Soumenkov. "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".


Kaspersky Lab wil graag iedereen bedanken die heeft geholpen bij het identificeren van deze onbekende code.


Een volledige analyse door Igor Soumenkov is te vinden op Securelist. De analyse omvat technische informatie over het framework, identificatiemethoden en de inzichtrijke feedback feedback van programmeurs waarmee Kaspersky Lab in staat was om het mysterie rond de Duqu-code te ontrafelen.


© 1997 – 2014 Kaspersky Lab ZAO

All Rights Reserved. Industry-leading Antivirus Software