«Mystisk» Duqu-språk identifisert

- Old school-utviklere står bak trojaneren.

Det ukjente og mystiske programmeringsspråket brukt i en sentral del av Duqu-trojaneren var ikke så ukjent likevel.
Det ukjente og mystiske programmeringsspråket brukt i en sentral del av Duqu-trojaneren var ikke så ukjent likevel.
20. mars 2012 - 10:26

Eksperter har den siste tiden gransket en del av Duqu-trojaneren, som i motsetning til resten av skadevaren ikke er skrevet i C++.

Duqu åpner en bakdør og spionerer på industrielle kontrollsystemer av typen SCADA («supervisory control and data acquisition») og har trolig samme opphav som den berømte Stuxnet-ormen, som ødela iranske atomsentrifuger.

Det såkalte Duqu-rammeverket måtte være skrevet i et ukjent programmeringsspråk, mente det russiske sikkerhetsselskapet Kaspersky i begynnelsen av måneden.

Mysteriet skal nå være oppklart etter bistand fra publikum. Trojanerens rammeverk er etter alt å dømme skrevet i objektorientert C, eller en dialekt kalt «OO C».

Kildekoden skal deretter være kompilert med MSVC 2008.

- Takket være noen svært nyttige og innsiktsfulle innspill kan vi nå med stor grad av sikkerhet si at vi har funnet svaret, skriver selskapet i et blogginnlegg.

Konklusjonen kommer etter to ukers arbeid, der forskerne blant annet forkastet teorier om at koden kunne være utviklet i språk som Lisp, Delphi, Forth, Erlang, Google Go eller Ada.

Old school

Kaspersky kan ikke svare for hvorfor virus-skaperne valgte OO C framfor C++ eller andre programmeringsspråk.

Men etter å ha snakket med utviklere som foretrekker førstnevnte står de igjen med følgende to teorier:

1. De (bakmennene) stoler ikke på C++-kompilatorer. Dette er typisk personer som begynte å programmere i gamle dager, da assembler var førstevalget. C var et direkte evolusjonært trinn etter assembler og ble raskt standarden. Men når C++ ble utgitt var det mange old school-utviklere som vegret seg av manglende tillit til minneallokering og andre obskure spåkfunksjoner som forårsaker indirekte kjøring av kode (konstruktører, for eksempel).

2. Ekstrem plattform-uavhengighet. Igjen, i gamle dager (10-12 år siden) var ikke C++ helt standardisert og det var mulig å ha C++-kode som kompilerte under Microsoft Visual Studio, men som ikke lot seg kompilere under for eksempel Watcom C++. De som ønsket ekstrem portabilitet og rettet seg mot enhver plattform, valgte derfor C.

- Begge indikerer at koden ble skrevet av en gruppe erfarne «old scool»-utviklere. Slike teknikker blir normalt brukt innen profesjonell programvare og nesten aldri i dagens skadevare, påpeker Kaspersky.

    Les også:

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.