电脑电缆蛇穿过地板。神秘的流程图潦草地写在装饰墙壁的各种白板上。一个真人大小的蝙蝠侠玩偶站在大厅里。这个办公室可能看起来和其他极客的工作场所没什么不同,但事实上,它是一场战争的前线——一场网络战争,大多数战斗不是在遥远的丛林或沙漠中展开,而是在像这样的郊区办公园区。作为总部位于莫斯科的领先计算机安全公司卡巴斯基实验室(Kaspersky Lab)的高级研究员,罗埃尔·舒文伯格(Roel Schouwenberg)每天(很多晚上)都在位于马萨诸塞州沃本的实验室美国总部工作。这些武器能够摧毁供水系统、发电厂、银行,甚至曾经看似无懈可击的基础设施。
2010年6月,随着Stuxnet蠕虫病毒的发现,人们对此类威胁的认识迅速增长。Stuxnet是一种500千字节的计算机蠕虫病毒,它感染了伊朗至少14个工业场所的软件,其中包括一个铀浓缩工厂。虽然计算机病毒依赖于不知情的受害者来安装它蠕虫通常通过计算机网络自行传播。
这种蠕虫是一段前所未有的熟练和恶意的代码,分三个阶段进行攻击。首先,它针对微软的Windows电脑和网络,不断复制自己。后来,它又找到了西门子的Step7软件,这款软件也是基于windows操作系统,用于为离心机等设备的工业控制系统编程。最后,它损害了可编程逻辑控制器。因此,蠕虫病毒的作者可以窥探工业系统,甚至在工厂的人类操作员不知情的情况下,使快速旋转的离心机自行解体。(伊朗尚未证实震网病毒摧毁了部分离心机的报道。)
Stuxnet病毒可以在运行windows系统的电脑之间悄悄传播——即使是那些没有连接到互联网的电脑。如果一名工作人员将一个u盘插入一台受感染的机器,Stuxnet就可以通过蠕虫病毒进入这台机器,然后传播到下一台读取该u盘的机器上。由于有人可以通过这种方式在不知不觉中感染一台机器,让蠕虫病毒在局域网中扩散,专家们担心这种恶意软件可能已经在全球范围内泛滥。
2012年10月,美国国防部长莱昂·帕内塔警告美国很容易遭受“网络珍珠港事件”的袭击,火车脱轨,供水系统中毒,电网瘫痪。次月,雪佛龙(Chevron)确认了这一猜测,成为第一家承认Stuxnet病毒已经在其机器上传播的美国公司。
虽然Stuxnet病毒的作者还没有被官方确认,但蠕虫的大小和复杂性让专家们相信它可能是在某个民族国家的支持下创造出来的,尽管没有人承认这一点,泄露给媒体来自美国和以色列官员的强烈暗示,这两个国家做了这件事。自从Stuxnet病毒被发现以来,Schouwenberg和其他计算机安全工程师一直在抗击其他武器化病毒,如Duqu、Flame和Gauss,这种攻击没有减弱的迹象。
这标志着地缘政治冲突的一个转折点,曾经只能在电影中想象的世界末日场景自由生活或虎胆龙威终于变得可信了。“小说突然变成了现实,”Schouwenberg说。但与之抗争的英雄不是布鲁斯·威利斯;他27岁,梳着马尾,邋里邋遢。Schouwenberg告诉我:“我们是来拯救世界的。”问题是:卡巴斯基实验室有这个能力吗?
病毒并不总是这个恶意。在20世纪90年代,Schouwenberg还只是荷兰的一个极客少年,恶意软件通常是恶作剧者和黑客的作品,他们想要破坏你的机器,或者在你的AOL主页上涂鸦。
在自己发现电脑病毒后,14岁的Schouwenberg联系了领先的反病毒公司之一卡巴斯基实验室。对这些公司的评判部分取决于它们首先发现了多少病毒,卡巴斯基被认为是最好的之一。但它的成功也带来了争议。一些人指责卡巴斯基与俄罗斯政府有联系——该公司确实有联系否认.
几年后,舒文伯格给公司创始人尤金·卡巴斯基发了一封电子邮件,问他如果想成为一名安全专家,是否应该在大学里学习数学。作为回应,卡巴斯基给了这位17岁的少年一份工作,他接受了。在荷兰的公司工作了四年之后,他去了波士顿地区。在那里,Schouwenberg了解到工程师需要特定的技能来对抗恶意软件。因为大多数病毒都是为Windows编写的,所以对它们进行逆向工程需要具备x86汇编语言的知识。
在接下来的十年里,Schouwenberg见证了这个行业有史以来最重大的变化。人工检测病毒让位于自动化方法,每天可以发现多达25万个新的恶意软件文件。起初,银行面临着最严重的威胁,国与国之间的网络战似乎还很遥远。加州山景城电脑安全公司赛门铁克公司的分析师利亚姆·奥默楚说:“这不在谈话中。
这一切在2010年6月发生了改变,当时一家白俄罗斯恶意软件检测公司收到了客户的请求,要求确定其机器为什么会一次又一次地重新启动。恶意软件通过数字证书进行签名,使其看起来来自一家可靠的公司。这一壮举引起了反病毒社区的注意,他们的自动检测程序无法处理这样的威胁。这是第一次在野外发现震网病毒。
伪造签名带来的危险是如此可怕,以至于计算机安全专家开始在电子邮件和私人网络论坛上悄悄分享他们的发现。这很正常。芬兰赫尔辛基一家安全公司F-Secure的首席研究官Mikko H. Hypponen补充说:“计算机安全行业的信息共享只能被归类为非同寻常。”“我想不出还有哪个IT行业的竞争对手之间有如此广泛的合作。”尽管如此,公司确实在竞争——例如,第一个发现网络武器的关键特征,然后利用由此带来的公共关系好处来赚钱。
卡巴斯基和其他安全公司的研究人员还不知道Stuxnet的设计目标是什么,就开始对代码进行逆向工程,一路上寻找线索:感染数量、伊朗感染的比例,以及对西门子工业程序的参考,这些程序被用于发电厂。
Schouwenberg印象最深刻的是Stuxnet不仅执行了一次而是四次零日攻击,这些攻击利用了白帽社区以前不知道的漏洞。“这不仅是一个开创性的数字;它们都能完美地互补,”他说。“LNK(微软Windows中的文件快捷方式)漏洞被用来通过u盘传播。共享打印假脱机程序漏洞被用于在具有共享打印机的网络中传播,这在Internet连接共享网络中极为常见。另外两个漏洞与特权升级有关,旨在获得系统级特权,即使计算机已经完全锁定。它的执行非常出色。”
舒文伯格和他在卡巴斯基的同事们很快得出结论,这种代码太复杂了,不可能是一群乌合之众的黑帽黑客的心血结晶。Schouwenberg认为,一个10人的团队至少需要两到三年的时间来创造它。问题是,谁该为此负责?
很快,从代码本身和现场报告中就可以清楚地看出,Stuxnet是专门设计来破坏伊朗核浓缩项目中运行离心机的西门子系统的。卡巴斯基的分析师随后意识到,经济利益并不是他们的目标。这是一次有政治动机的袭击。Schouwenberg说:“在那一点上,毫无疑问,这是由民族国家赞助的。”这一现象让大多数计算机安全专家感到惊讶。“我们都是工程师;赛门铁克的O'Murchu说。“这是我们看到的第一个真正的威胁,它在现实世界中产生了政治影响。这是我们必须接受的。”
恶意软件的里程碑
1971
爬行者,一个实验性的自我复制病毒程序,由博尔特,贝拉内克和纽曼的鲍勃·托马斯编写。它感染了运行Tenex操作系统的DEC PDP-10计算机。爬行者通过因特网的前身阿帕网获得访问权限,并将自己复制到远程系统,在那里显示了“我是爬行者,如果你能抓住我!”的信息。死神程序后来被创建来删除爬行者。
1981
由Richard Skrenta为Apple II系统编写的Elk Cloner导致了历史上第一次大规模的计算机病毒爆发。
1986
脑引导扇区病毒(又名巴基斯坦流感),第一个IBM pc兼容的病毒,被释放并引起流行。它由19岁的Basit Farooq Alvi和他的兄弟Amjad Farooq Alvi在巴基斯坦的拉合尔创建。
1988
莫里斯蠕虫,由罗伯特·塔潘·莫里斯创造,感染DEC VAX和Sun机器运行BSD Unix连接到互联网。它成为第一个在“野外”广泛传播的蠕虫。
1992
米开朗基罗被计算机安全主管约翰·迈克菲炒作,他预测3月6日病毒将清除数百万台计算机上的信息;实际损害很小。
2003
SQL Slammer蠕虫(又名Sapphire蠕虫)攻击Microsoft结构化查询语言服务器和Microsoft SQL Server数据引擎中的漏洞,成为有史以来传播最快的蠕虫,在发布后15分钟内使互联网崩溃。
2010
检测到Stuxnet蠕虫。这是已知的第一个攻击SCADA(监控和数据采集)系统的蠕虫。
2011
Duqu蠕虫被发现。与似乎与之相关的震网病毒(Stuxnet)不同,它的设计目的是收集信息,而不是干扰工业操作。
2012
Flame被发现并被用于伊朗和其他中东国家的网络间谍活动。
2012年5月,卡巴斯基实验室收到了来自国际电信联盟联合国负责管理信息和通信技术的机构负责研究一款恶意软件,据称这款软件破坏了伊朗石油公司电脑中的文件。到目前为止,Schouwenberg和他的同事已经在寻找Stuxnet病毒的变种。他们知道,2011年9月,匈牙利研究人员发现了Duqu,该病毒被设计用来窃取工业控制系统的信息。
在寻求联合国的同时卡巴斯基的自动系统识别出了另一种Stuxnet变种。起初,Schouwenberg和他的团队认为系统犯了一个错误,因为新发现的恶意软件与Stuxnet没有明显的相似之处。但在更深入地研究代码后,他们发现了另一个名为Flame的文件的痕迹,这在Stuxnet的早期迭代中很明显。起初,Flame和Stuxnet被认为是完全独立的,但现在研究人员意识到Flame实际上是Stuxnet的前身,只是不知为何没有被发现。
火焰总共有20兆字节,大约是震网病毒的40倍。安全专家们意识到,正如Schouwenberg所言,“这可能再次成为民族国家。”
为了分析Flame,卡巴斯基使用了一种被称为“天坑”的技术。这需要控制Flame的命令和控制服务器域,这样当Flame试图与其总部的服务器通信时,它实际上会将信息发送到卡巴斯基的服务器。很难确定谁拥有Flame的服务器。Schouwenberg说:“有了所有被盗的信用卡和互联网代理,攻击者真的很容易变得隐形。”
震网病毒的目的是摧毁东西,而火焰病毒的目的仅仅是监视人类。通过u盘传播,它可以感染在同一网络上共享的打印机。一旦Flame侵入了一台机器,它就可以在绝密的PDF文件中偷偷搜索关键字,然后制作并传输文件摘要——所有这些都不会被发现。
Schouwenberg说,的确,Flame的设计者“竭尽全力避免被安全软件发现”。他举了一个例子:Flame并没有简单地将它收集到的所有信息一次性传输到它的指挥控制服务器,因为网络管理员可能会注意到这种突然的流出。“数据以较小的块发送,以避免占用可用带宽太长时间,”他说。
最令人印象深刻的是,Flame可以与任何蓝牙设备交换数据。事实上,攻击者不仅可以在蓝牙标准的30米范围内窃取信息或安装其他恶意软件,还可以在更远的地方。一个“蓝牙步枪一种与蓝牙电脑相连的定向天线,可以在近2公里外完成这项工作。
但关于Flame最令人担忧的是它最初是如何进入电脑的:通过Windows 7操作系统的更新。用户会认为她只是从微软下载了一个合法的补丁,结果却安装了Flame。Schouwenberg说:“通过Windows更新传播的火焰比火焰本身更重要。”他估计,世界上可能只有10个程序员能够设计这种行为。“这是一项令人惊叹的技术壮举,因为它打破了世界级的加密,”F-Secure的Hypponen说。“你需要一台超级计算机和一大堆科学家来做这件事。”
如果美国政府确实是蠕虫病毒的幕后黑手,这种对微软加密的规避可能会在该公司与其最大客户联邦调查局之间制造一些紧张关系。“我猜微软的比尔·盖茨、史蒂夫·鲍尔默和巴拉克·奥巴马都通过电话,”Hypponen说。“我真想听听那通电话。”
在对Flame进行逆向工程时,Schouwenberg和他的团队微调了他们的“相似算法”——本质上是他们的检测代码——以搜索建立在同一平台上的变体。7月,他们发现了高斯。它的目的也是网络监视。
通过u盘从一台电脑转移到另一台电脑,高斯会窃取文件并收集密码,以不明原因的黎巴嫩银行凭证为目标。(专家推测,这要么是为了监控交易,要么是从某些账户中吸走资金。)“USB模块从系统中获取信息——紧随着加密的有效载荷——并将这些信息存储在u盘本身,”Schouwenberg解释道。“当这个u盘被插入一台感染了高斯病毒的机器时,高斯就会从u盘中获取收集到的数据,并将其发送到指挥控制服务器。”
就在卡巴斯基的工程师欺骗高斯与他们自己的服务器通信时,这些服务器突然宕机了,这让工程师们认为恶意软件的作者正在迅速掩盖他们的踪迹。卡巴斯基已经收集了足够的信息来保护其客户免受高斯攻击,但这一刻令人不寒而栗。Schouwenberg说:“我们不确定我们是否做了什么,黑客是否盯上了我们。”
的含义火焰和震网不仅仅是国家支持的网络攻击。Schouwenberg说:“普通的网络罪犯看到Stuxnet正在做的事情,会说,这是个好主意,让我们复制一下。”
弗吉尼亚州麦克莱恩安全公司Taia Global的创始人兼首席执行官杰弗里·卡尔(Jeffrey Carr)说:“结论是,民族国家正在花费数百万美元开发这类网络工具,而且这一趋势在未来只会增加。”尽管Stuxnet可能暂时减缓了伊朗的铀浓缩计划,但它并没有达到最终目标。“无论是谁花了数百万美元在Stuxnet、Flame、Duqu等等——所有这些钱都是浪费。这种恶意软件现在已经出现在公共场所,并且可以进行逆向工程,”卡尔说。
黑客可以简单地重复使用网上可用的特定组件和技术进行自己的攻击。犯罪分子可能会利用网络间谍活动,比如从银行窃取客户数据,或者只是在精心策划的恶作剧中造成严重破坏。Schouwenberg说:“有很多人说有些国家试图攻击我们,但我们现在的处境是,我们很容易受到一支只有两周训练的14岁少年军队的攻击。”
脆弱性是巨大的,尤其是工业机器。例如,只需使用正确的谷歌搜索词,就可以找到进入美国水务公司系统的方法。Schouwenberg说:“我们看到的是,许多工业控制系统都连接到互联网上,而且它们不会更改默认密码,所以如果你知道正确的关键字,你就可以找到这些控制面板。”
企业在投入升级工业控制所需的资源方面行动迟缓。卡巴斯基已经找到了一些关键基础设施公司,它们运行着已有30年历史的操作系统。在华盛顿,政界人士一直在呼吁制定法律,要求这类公司保持更好的安全措施。然而,一项网络安全法案却是如此在8月受阻理由是这对企业来说成本太高了。帕内塔最近表示:“为了在我们的民主制度中充分提供必要的保护,国会必须通过网络安全法案。”“没有它,我们现在和将来都会很脆弱。”
与此同时,卡巴斯基和其他地方的病毒猎人将继续战斗。Schouwenberg说:“风险越来越高。“我很好奇10年、20年后会发生什么。历史将如何看待我们所做的决定?”