Lucian Constantin
CSO Senior Writer

Researchers can’t identify programming language used in Duqu, ask for help

news
Mar 8, 20123 mins

The programming language used to write parts of the Duqu malware remains a mystery despite countless hours of analysis

Malware experts from Kaspersky Lab have asked the programming community for help identifying the programming language, compiler, or framework that was used to write an important part of the Duqu Trojan, in the hope that it could reveal clues about who created it or why.

“When we checked Duqu it looked totally unknown and that was very curious, because it’s unclear why something very custom was developed and used,” said Vitaly Kamluk, chief malware expert with Kaspersky Lab’s global research and analysis team.

[ Find out how to block the viruses, worms, and other malware that threaten your business, with hands-on advice from InfoWorld’s expert contributors in InfoWorld’s “Malware Deep Dive” PDF guide. | Don’t look now, but your antivirus may be killing your virtualization infrastructure. InfoWorld’s Matt Prigge shows you how to detect the warning signs. ]

Understanding how a piece of malware was created can offer clues about where to look for it next or the level of resources required for its development, the security expert said.

Some parts of the Duqu payload DLL, the component responsible for interacting with the command and control servers, downloading and executing additional modules, and performing other tasks, were written in standard C++, but a big chunk of it was not.

“This slice is different from others, because it was not compiled from C++ sources. It contains no references to any standard or user-written C++ functions, but is definitely object-oriented,” said Kaspersky Lab expert Igor Soumenkov in a blog post that describes the particularities of the unfamiliar code.

Kaspersky researchers refer to this portion of the Trojan as “The Duqu Framework” and believe that it might have been created by a different programming team. The unusual code is also particular to Duqu and doesn’t exist in Stuxnet, unlike some other parts that were directly borrowed from the infamous industrial sabotage malware.

“The mysterious programming language is definitively not C++, Objective C, Java, Python, Ada, Lua, and many other languages we have checked,” Soumenkov said, adding that Kaspersky’s research team has spent countless hours analyzing the code.

The company’s researchers even discussed it with third-party experts, but didn’t get any closer to solving the mystery. “It looks absolutely alien,” Kamluk said.

Finally, Kaspersky Lab appealed to the entire programming community in the hope that someone might recognize the code constructions and figure out what was framework, toolkit or language was used.

The company has received various suggestions in comments on its blog, that range from F, D, Iron Python, High-Level Assembly, Common LISP, Forth, Erlang, Vala, to more exotic tools like RoseRT, which one user claims was used in secure government projects.

“It took us several weeks to check commonly used programming languages and various compilers,” Kamluk said. “So, I guess it may also take some time to check other suggestions.”

Lucian Constantin

Lucian Constantin writes about information security, privacy, and data protection for CSO. Before joining CSO in 2019, Lucian was a freelance writer for VICE Motherboard, Security Boulevard, Forbes, and The New Stack. Earlier in his career, he was an information security correspondent for the IDG News Service and Information security news editor for Softpedia.

Before he became a journalist, Lucian worked as a system and network administrator. He enjoys attending security conferences and delving into interesting research papers. He lives and works in Romania.

You can reach him at lucian_constantin@foundryco.com or @lconstantin on X. For encrypted email, his PGP key's fingerprint is: 7A66 4901 5CDA 844E 8C6D 04D5 2BB4 6332 FC52 6D42

More from this author