Trojaner: Duqu-Code erweist sich als "Oldschool"
Eine erste Analyse des Trojaners Duqu ergab, dass die Schadsoftware weitgehend mit C++ programmiert wurde - bis auf das C-&-C-Modul. Zunächst vermuteten Sicherheitsexperten eine bislang unbekannte Programmiersprache, bis die Community bei der Entschlüsselung mithalf.

Die Sicherheitsunternehmen Kaspersky und Symantec hatten monatelang versucht, dem auf Stuxnet basierenden Trojaner Duqu sein Geheimnis zu entlocken. Denn große Teile des etwa 500 KByte großen Trojaners waren zwar in der Programmiersprache C++ geschrieben. Ein kleiner Teil aber, der für die Verbindung zum Command-&-Control-Server zuständig ist, ließ sich partout nicht entschlüsseln.
Nicht identifizierbare Programmiersprache
"Die Sprache ist definitiv nicht C++, Objective C, Java, Python, Ada, Lua oder eine der anderen vielen Sprachen, auf denen wir den Trojaner untersucht haben", hatte Kasperskys Sicherheitsexperte Igor Soumenkov noch am 7. März 2012 geschrieben. Es handele sich womöglich um eine bislang unbekannte Programmiersprache.
Jetzt hat Soumenkov mit Hilfe der Community die unbekannte Programmiersprache identifiziert, die allerdings gar nicht so unbekannt ist - sie wird nur fast nicht mehr verwendet. Daraus schließen die Sicherheitsexperten, dass der Programmierer nicht nur ein Experte, sondern auch ein erfahrener Entwickler ist. Denn das Modul für die Kommunikation wurde in Object Oriented C (OO C) - C mit einem eigenen Dialekt erstellt. OO C sei populär gewesen, als viele Entwickler von Assembler zu C wechselten, aber um C++ noch einen großen Bogen machten, sagte Vitaly Kamluk von Kaspersky.
Läuft zuverlässig und überall
Solcher Code findet sich in modernen Trojanern und Viren nicht. "Die Entwickler wollten sicherstellen, dass der Trojaner zuverlässig und überall läuft", resümiert Kamluk. Die Kaspersky-Mitarbeiter gehen davon aus, dass mehr als eine Person an der Entwicklung von Duqu beteiligt war.
Compiler unterstützen OO C mit entsprechenden Schaltern weiterhin, etwa Microsofts Visual Studio Compiler 2008, mit dem mutmaßlich auch der gesamte Duqu-Trojaner kompiliert wurde. Mit den Schaltern 01 und Ob1 konnten die Entwickler bei Kaspersky einen annähernd ähnlichen Code generieren wie die im Duqu-Trojaner verpackten Payload.
Duqu soll Daten stehlen
Duqu ist für das Stehlen von Daten konzipiert worden. Einer Analyse von Symantec zufolge basiert Duqu auf Stuxnet und das Sicherheitsunternehmen ist sich sicher, dass die Entwickler von Duqu Zugriff auf den Quelltext von Stuxnet hatten, nicht nur auf dessen ausführbare Dateien. Der Windows-Trojaner verhält sich wie ein klassischer Botnet-Trojaner: Dateien werden vom kompromittierten PC verschlüsselt an einen Command-&-Control-Server verschickt, zusätzlich wird andere Malware installiert, die Tastatureingaben abfangen kann.
Als Botnet-Trojaner war Duqu jedoch wohl nicht gedacht, denn das Programm verbreitet sich nicht selbst weiter und deinstalliert sich nach 36 Tagen selbst. Die von Duqu erbeuteten Daten werden unter anderem in Dateien verpackt, die wie JPEG-Bilder aussehen, eine Verschleierungstechnik, die in herkömmlichen Trojanern nicht vorkommt. Duqu installiert mit einem von Symantec gestohlenen und inzwischen widerrufenen Zertifikat einen Treiber, über den weitere Systemkomponenten nachinstalliert werden können.
Verwandtschaft zu Stuxnet
Symantec zufolge soll die Malware unter anderem bei Organisationen gefunden worden sein, die "in Verbindung mit der Herstellung von industriellen Anlagensteuerungen stehen", und damit mit Stuxnet, das gezielt nach Software zur Steuerung von Scada-Industrieanlagen suchte. Stuxnet nutzte zur Verbreitung vier bis dahin unbekannte Windows-Lücken aus.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
"....Die Programmierung sei ausgeklügelt und in komplexer Malware zu finden, die...
Er meint vermutlich: http://ooc-coding.sourceforge.net/
Och, irgendjemand wird sicher mal eine Sprache namens OOC gebastelt haben. Gibt ja...
Naja, dem "Rest der Welt" würde es vielleicht gar nicht schaden, auch mal mit Assembler...