揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

2015-04-28 1538672人围观 ,发现 10 个不明物体 终端安全资讯

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

研究人员最新透露,原本应长期潜伏在计算机控制系统中的震网(Stuxnet)病毒,最终“暴露身份”居然是因为一个低级失误——一个编程错误使其能够扩散到 “古老的”Windows(Windows 95和98)系统,而震网病毒本身并不支持这些操作系统。

FreeBuf百科:震网病毒

震网(Stuxnet),又称作超级工厂,是一种Windows平台上的计算机蠕虫,这是有史以来第一个包含PLC Rootkit的电脑蠕虫,也是已知的第一个以关键工业基础设施为目标的蠕虫。

详情参见Freebuf深度报道:震网病毒的秘密

如此强大的病毒怎么会被发现的?

据恶意软件研究者Tillmann Werner和Felix Leder介绍称,这个狡猾无比的网络间谍工具——震网病毒延缓了伊朗的核项目长达两年‍就算是同时毁掉所有的离心机也不会产生如此长的延期!‍——最终是因为一段问题代码而暴露了。

设计者希望震网保持“低调”从而不被伊朗的人发现,否则它就要破坏计算机系统。然而,一个编程错误导致它可以蔓延到并不支持的低版本Windows系统的电脑中,导致系统崩溃。而那些在这场网络战中“牺牲”的蓝色电脑屏幕则引起了伊朗Natanz核试验室的怀疑。

Leder在RSA会议上表示:

由于震网不支持win 95和win 98,因此震网蠕虫会在摧毁这两个系统时自行毁灭。
不幸的是,有人某天在编程震网的时候心情很糟糕,因此错误地将and和or字符交换,导致程序能够蔓延到任何版本的Windows系统中,甚至是它并不支持的版本。

当你在一项任务中花费了几年的时间,却因为一次远程攻击系统,突然在几分钟之内你就暴露了。这感觉应该很不好……
然而震网在被发现之前能够成功地破坏了伊朗铀浓缩离心机,可能因为震网蠕虫之前没找到装有Windows老版本的计算机,或者是因为伊朗的科学家们已经习惯了Windows 95和Windows 98出现蓝屏的情况。

别急,还有其他亮点

虽然震网是最复杂的恶意病毒,但是Werner和Leder表示两人找到了其中的漏洞。

Conficker蠕虫中的一个错误编程缩减震网蠕虫的潜在受害者库,同样降低了其攻击性。Conficker蠕虫是以微软的windows操作系统为攻击目标的计算机蠕虫病毒。几乎每个人都可能被感染。‍由于一个随机生成地址的漏洞导致它只能扫描全部IPv4地址的四分之一。它的随机数函数可以输入15比特位整数——从0到0x7fff(即0到RAND_MAX)——然后函数被调两次来产生一个32比特位的IPv4地址。实际上是产生了一个30比特位的整数,遗漏了IPv4空间的组块。

“如果你连续攻击受害者,就很容易被检查出来,所以这些家伙聪明了一些,选择了随机地址。有趣的是RAND_MAX只有15比特位,这就意味着Conflicker产一个IP地址就调用了两次函数,只得到了30个随意比特位。因此它智能扫描四分之一而不是整个互联网。”Werner说。

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

企业安全人员或许会感谢这个的让用户躲过一劫的蠕虫漏洞,然而还有更多蠕虫漏洞的案例:

风暴蠕虫是一种受远程控制的僵尸计算机(或直译机器人网络)组成的网络。截至2007年9月为止,风暴僵尸网络至少藏身于1百万到5千万台计算机系统里某处默默运行。而在07年风暴蠕虫达到顶峰后,便因网络检测系统针对其作者在两个版本windows中的错误拼写“windoss”而受到遏制数量削减。

Energetic Bear,又名“蜻蜓”的俄罗斯黑客组织使用一种复杂的网络武器,已经使1000多家欧洲和北美能源公司受损,与震网相似,这种网络武器可以使黑客们访问到能源部门的控制系统。而这样影响巨大的网络武器也成为了Werner和Leder手中的玩具,他们发现了如何从电脑高速缓冲存储器中获取私人以及公共密钥,从而得以自由访问受害者列表,甚至了解其未来的突围细节。

演讲中的疑点

Werner和Leder的演讲PPT在这里下载

可我们注意到会议幻灯片显示震网的分解并不支持Werner和Leder上文关于震网病毒和Windows 9x的说法:因为会议上展示的代码实际上会阻止在win95和98上安装恶意软件,而非允许。

两人可能无意使用了一个修复版本的震网来进行过程展示,而不是他们以前研究时经历的逆向工程。又或许是他们从蠕虫的另一个部分截取的代码是正确,而会上其他部分是蠕虫存在其二人描述的缺陷。

问题在于这部分的C,来源于震网蠕虫的x86执行指令:

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

演讲人说这种情况下……

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

总在Windows 9x、XP、200x、Vista和7中正常,但这里……

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

因为dwPlatformId是1,所以在Windows 95和98中一直为错误,VER_PLATFORM_WIN32_NT定义为2。因此,根据以上代码Install()将永不能调用Windows 9x系统。

揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?

*参考来源:theregister,转载请注明来自Freebuf黑客与极客(FreeBuf.COM)

更多精彩

这些评论亮了

  • AlanBusinessReview 回复
    震网病毒延缓了伊朗的核项目长达两年(就算是同时毁掉所有的离心机也不会产生如此长的延期!)——最终是因为一段问题代码而暴露了
    )32( 亮了
  • 如果没有出现错误呢????呵呵一脸安全专家
    )23( 亮了
  • 过路人 回复
    是不是装回WIN 98,我电脑就不会那么容易中毒?
    )19( 亮了
发表评论

已有 10 条评论

取消
Loading...

特别推荐

推荐关注

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php