DuQu aus der Feder von “Old School”-Programmierern
Die Sicherheitsforscher der Kaspersky Labs untersuchen weiterhin den Code des Spionageschädlings DuQu, der als Nachfolger oder Wegbegleiter des Schädlings Stuxnet gilt.
Bei der Analyse des Codes habe sich gezeigt, dass die Programmierer von DuQu so etwas wie alte Hasen sein müssen, die sehr viel Erfahrung mitbringen, wie der Kaspersky-Sicherheitsforscher Igor Soumenkov in einem Blog erläutert.
Die Hacker verwendeten, die relativ selten genutzte Sprache OO C. Die Abkürzung steht für Object Oriented C und ist eine etwas in Vergessenheit geratene angepasste Erweiterung der Sprache C. Die Hacker haben diese Sprache verwendet, um damit die Komponenten für ‘Command and Control’ (C&C) des Schädlings zu programmieren.
Den Compiler für den DuQu-Code herauszufinden war offenbar nicht ganz einfach. Aber jetzt scheint mit Microsoft Visual C++ der richtige gefunden zu sein. esi wird dabei meist als erster Kandidat für temporäres Storage gewählt und auch ‘pop ecx’ statt ‘add esp, 4’ ist ein Charakteristikum von MSVC. Quelle: Kaspersky Lab
Die größten Teile von DuQu wurden hingegen mit C++ geschrieben und mit Visual C++ 2008 kompiliert. Das C&C-Modul hingegen wurde in C verfasst und dann mit dem Compiler in Microsoft Visual Studio 2008 kompiliert.
Aus dieser Tatsache schließt Soumenkov, dass zumindest einige der Entwickler von DuQu zu Zeiten von Assembler zu programmieren begonnen haben müssen. Die Assembler-Entwickler wechselten damals häufig zu C, als sich die Sprache langsam durchsetzte.
“Als dann C++ veröffentlich wurde, blieben viele Old-School-Programmierer dieser Sprache fern, weil sie ihr misstrauten”, so Soumenkov. Die Autoren, die diese Programm-Komponenten lieferten müssen in ihrem Bereich absolute Spezialisten sein. Solche Techniken kämen heutzutage in professioneller Software vor und nahezu nie in “dummer Malware”. Damit “rage DuQu aus der Masse der Schadsoftware heraus wie ein Diamant”, erklärt Soumenkov.
Es war offenbar für den Sicherheitsforscher nicht ganz einfach, herauszufinden, um welche Sprache es sich handelt. Er hatte bereits vor einigen Wochen über den “mysteriösen Programmiersprache” berichtet und sich an die Öffentlichkeit gewandt, um herauszufinden, worum es sich dabei handelt. Er bekam reichlich Post und gute Ratschläge. Und die Vermutungen gingen über Delphi, Google Go, Forth, Erlang, OO C oder auch Varianten von LISP. Zwei Kommentare und schließlich zwei Mails, davon eine anonym, hätten schließlich den entscheidenden Hinweis gebracht.