卡巴斯基揭秘Duqu木马疑团
卡巴斯基 发表于:12年03月31日 11:00 [来稿] DOIT.com.cn
从Duqu木马出现以来,卡巴斯基实验室就一直严密监控该木马,帮助用户解决其带来的各种问题。不久前,卡巴斯基实验室呼吁编程社区帮助识别Duqu木马中恶意有效负荷DLL文件中包含的一段未知代码,近日卡巴斯基实验室揭开了Duqu木马的疑团。
据了解,其中的未知代码段被称作“Duqu架构”,是该恶意软件有效负荷DLL文件的一部分,其主要功能是同命令控制中心(C&C)服务器进行交互。在收到大量来自编程社区的反馈后,卡巴斯基实验室的专家几乎可以肯定,Duqu架构包含由Microsoft Visual Studio 2008编译的“C”源代码,并且对代码体积和代码嵌入进行了优化。源代码还采用了定制的扩展名,便于利用C进行面向对象的编译,通常称作“OO C”。这类内部编程方法非常复杂,经常应用于内部软件项目中。在当代恶意软件中并不常见。
虽然很难解释为什么网络罪犯会利用OO C编程,而没有采用C++编写Duqu架构。推测其原因主要如下:
一、对源代码更好的控制:当C++最早发布时,很多资历较老的编程人员并没有立刻就采用这一语言。因为他们对C++的内存分配以及其它编程特性不信任,可能导致代码无法直接执行。而OO C架构则更可靠一些,产生不可预测的行为几率较低。
二、极高的可移植性:大约10-12年前,C++还没有完全标准化。所以,当时的C++代码可能无法同所有的编译程序互通。使用C的话,编程者所写程序的可移植性大大加强,因为C能够面向当时所有的平台,而不受C++各种限制的影响。
“上述两个原因表明,Duqu架构的代码是由经验丰富的‘老派’编程团队所开发的。目的是创造一个可定制的架构,从而确保其成为具有高度灵活性和可扩展性的攻击平台。这些源代码可能之前用于其他网络行动中,之后才被重新定制,集成到Duqu木马中,”卡巴斯基实验室的恶意软件专家Igor Soumenkov解释说,“但是,有一点我们可以确认。即该恶意软件所使用的这些技术一般只存在于精英软件开发者中,很少应用于当今的恶意软件中。”