探索中国CIO人才现状 | 第四季调研报告
最强蠕虫胁持全球电脑引发网路大战
2013-11-28  作者:机房360 

  Conficker的设计者厉害无比,它在这隻蠕虫上採用最强力的、连政府与国防等级电脑也还未採用的先进加密技术、能够「自动更新」最新版本、被侵入的电脑等于是被它支配并且再也无法藉着防毒软体更新的方式扫除;同时,它对于世界上那群意图以「诱捕网路」拦截病毒的资讯专家常用的防卫技术瞭若指掌,所以虫与虫之间,甚至还配备着「数位金钥」谨慎沟通──更重要的是,没人知道这隻操控全球许多连网电脑的蠕虫主人究竟想要干嘛?


  T.J.坎帕那收到新电脑毒虫的消息来自四面八方:有即时讯息,有电子邮件;像是SRI(美国史丹佛国际研究中心)的菲尔.普瑞斯;开发诺顿防毒软体的赛门铁克公司防毒专家;iDefense的网路安全宅客;来自芬兰的资安公司F-Secure;还有其它很多很多。而这只是Conficker现形的第一个晚上。


  「嗨,有件事真的很奇怪。」


  「有状况。」T.J.并不意外。他知道怎么了。长久以来,他期待会有这样的蠕虫出现。


  他是微软数位犯罪单位的资安防治经理,也就是说他身处无止境的战火之中。由于视窗是全球最主要的电脑作业系统,也就成了那些要去恶意渗透、摧毁、剽窃、劫持电脑的人最大的目标。微软不仅要开发、行销作业系统与软体,也越来越投入这场不止息的战争。这可是高手的对决。恶意软体已是个跨及全球的产业,用各式各样手法欺诈微软的用户,由粗糙直接的色情诱惑、诈骗伎俩,到像这隻蠕虫般的细緻复杂,意图迅速、安静地建置大规模的机器人殭尸网路。


  T.J.的使命是要去阻断它们持续的攻击,抓出背后主谋。他与同事力图主动出击。他们试着在恶徒利用软体弱点大幅攻击前,就找出危险所在,加以修补,这也是他们这次的目的。


  2010年我与T.J.见面时,他头上戴着蓝底绣有「FBI」(美国联邦调查局)金色字样的球帽。他坐上这个位子,不是靠他对技术的兴趣或是能力,而是他想抓坏人的慾望。1990年代他在佛罗里达州立大学过了閒散的九年,自认享尽那个又湿又热校园的社交生活,拿到犯罪学的大学文凭,又继续得到资讯科学的硕士学位。这个学门不仅与电脑有关,他当时就多有涉猎数位网路。快毕业时,他申请联邦执法单位与情报机构的工作。由于他期待自己能「造成影响」,他最想去中情局工作,但一位朋友觉得他的资歷也会让软体公司有兴趣。T.J.在学校的最后几年,他在某一科系兼职担任IT助理。他由支援电脑桌上软体开始,一路发展成为整个科系的系统经理。


  影音档案需要大量储存空间,盗版玩家因此常常骇入大型电脑网路,将盗版影音档放在没人注意的角落。他掌握了比平常再多两倍的频宽,因此可以去建构诱捕网路,以研究快速增长的网路犯罪是如何进行攻击的。他学到很多骇客入侵网路的手法……,也看了不少免费的电影。他并没有真正去窃取这些档案,这些档案早就被别人偷了……他也因而对方兴未艾的网路犯罪世界有了具体了解。


  T.J.对电脑与网路的专精让他成为近乎全职的资讯工作者,不仅要安装机器、测试应用程式、建构校园网路,他也开始为系上处理日益增多、复杂的网路攻击。这唤醒了T.J.心中隐藏的蝙蝠侠。他学会使用「闸埠映射」(portmirror)等监视工具去捕获、追踪入侵者。这样的工作有趣地令人着魔,可以去跟恶棍亦步亦趋地斗法,很快地他对寻常的资讯工作以及课业的兴趣远远不及对打击犯罪的兴趣,因此他想去当联邦干员,真正去抓坏人。但联邦干员的工作非常抢手,尤其在2001年911事件后,美国大学校园的爱国热情高涨,更是竞争激烈,为了确保有工作机会,他在微软到校徵才时也投了履歷表。他当时甚至没把微软的整场说明听完就离开。因此,他次日收到邀请参加审核面谈的电子邮件时非常意外。


  其后,他经歷了在北卡罗莱纳州一轮由早到晚严苛的面谈,几个月后,就在他结婚的前一天,微软聘用了他。T.J.很快就由企业网路工程支援部门转调到安全部门,当时微软越来越重视这个问题。恶意软体一路快速成长,这份工作让他十年来随时紧盯破坏资讯安全之徒,相互对垒作战。


  就像微软一样,恶意软体本身也开始走向专精化。T.J.发现很多新手法,像是预载漏洞攻击(prepackagedexploits),它就像一辆闯空门的车子,可以将任何想送进去的犯罪手法都装载上去。这些漏洞攻击套件销售给发送垃圾邮件、窃取资讯等形形色色的盗贼,他们因此不再需要具备艰深的骇客技能就可以开张作生意。


  这也代表任何一个新发现的漏洞攻击手段不只可以创造一种新的犯罪方式,而是很多种,因而让它的发明人收益增多很多倍,而所谓漏洞攻击本身又根本不算是犯罪行为。要起诉发明恶意软体的人就好像你没法去追讨美国手工具大厂百得公司(Black&Decker)一样,不能因为小偷用百得产製的工具打开保险箱,就认为百得有罪。全球各处现在都有软体高手找寻视窗作业系统的新弱点,发展出漏洞攻击手法,并将这套发明卖给技术能力不行的坏蛋。


  机器人网路是新近的大趋势。大多数网路欺诈行为的报酬率都很确定,实际上当而寄钱的电脑用户百分比或许不高,但如果主使者的网撒得够广,到手的回收绝对不小。就算电脑萤幕上常有讯息提醒用户小心,微软估计有百分之五的电脑用户还是会上当去下载、感染恶意软体。有些社群网站上的「钓鱼」(phishing)攻势试图让用户提供个人资料、信用卡号码等资讯,成功率会达七成。也因此确定能接触到大量电脑的漏洞攻击程式确实是很有价值的工具,几乎就像印钞机一样。由此观察,稳定的大型机器人殭尸网路最有价值,它不但可以让外界的人接触到大量脆弱的电脑,更可以去控制这些电脑。它所能施加于网路防御者的压力没完没了。


  防御电脑要比去攻击电脑困难得多。微软的安全技术人员花下大量时间发出修补程式补丁,将新发现的安全漏洞填补起来。这一点也不古怪、吓人。虽然实际上没有我们形容的那么简单,这作法其实就像是加上一道锁。凡是使用家用电脑的人都熟知视窗不时接到的安全更新程式,微软固定在每个月的第二个星期二送出。网路安全族群把它称为「週二补丁日」。


  2008年9月,一群中国骇客以37美元的价格向外界兜售一组漏洞攻击程式,可以攻击当时大家所不知道的视窗445埠弱点。这群中国骇客没有犯任何法律。他们也没有要进行任何犯罪行为。这只是个可以渗透进入视窗电脑内部核心的工具。一直到9月29日,有人在越南开始积极利用这个程式肆虐。一株以Gimmiv为名的恶意软体很快由越南散佈到23个国家。马来西亚所受影响最大。


  资安专家将Gimmiv归类为「木马」(Trojan)程式,它会依附在合法的程式上,等到远方的控制者启动它时才会开始动作。这匹木马然后会将被感染电脑上所有的机器登录註册资讯,以及启动登入与个人资讯,通通传送给远方的攻击者。作为一个诈欺程式,Gimmiv的效果因为它本身严重的设计缺陷而降低,但就攻击视窗的漏洞来看,它效果卓着。很多人因此都注意到了这个木马程式的成功。像T.J.就认定它标誌了攻击445埠漏洞的竞赛就此开始。


  电脑上的「埠口」就像系统的耳朵,用来传送、接收特定的资料。在视窗系统上有65,353个埠口,由于用户希望电脑速度快,他们要电脑可以同时作很多事情。而防火墙就像是守门员。它在接收到的资讯码中监测有无问题,或放行、或拦阻、或按每个埠口的特定规则转送这些资讯码。要渗透通过防火墙,那批程式码必须与那一埠口所能接收的规则相符才可以接收。只有特定的资料与程式码可以通行。有些埠口的交通量非常大,像专门处理电子邮件的TCP25。大多数的埠口很轻鬆,只针对特定而单纯的功能与指令採取行动,一般电脑用户根本不会注意到这些例行动作的存在。


  埠口的数量多寡由TCP与UDP协议决定,这些协议用来启动作业系统的「监听」动作。如果讯息不符所抵达埠口的需求,那一埠口会关闭,否则埠口会打开,一般情况下电脑在接受到讯息后会回覆讯息来源。在视窗系统中,除非有防火墙来控制进出,有几个埠口的常设状态是打开的。其中一个就是445埠。


  在视窗电脑上,445埠控制RPC远端唿叫程序(RemoteProcedureCall)这项服务,让其它电脑来列印档案或是分享档案。由于RPC服务很复杂,不同旧版本视窗作业系统间的差异,以及RPC与作业系统核心(kernel)的关係密切等等因素,程式的错误常常容许攻击者送出无效的资讯与指令,让系统去执行塬本没要它执行的动作。这是大型软体系统常有的问题。


  举例来说,InternetExplorer浏览器的弱点不会让攻击者控制电脑,但像RPC的弱点却可以。由远端控制InternetExplorer浏览器可以让恶徒逼迫你的电脑下载色情图片或是广告,所造成的影响明显而立即。但一旦电脑作业系统核心受人控制,所能取得的电脑存取控制能力,远比一般人所能看得到的大且深得多,这犹如直抵电脑的心灵深处。当这台电脑被「当」(pwned)了,远端的攻击者实质上等于是拥有这台电脑。


  事实上,渗透进入445埠并不难,要骗过作业系统,让它下载利用漏洞攻击的恶意软体才是困难所在。为了达此目的,那套中国攻击程式使用「缓衝记忆体满溢」(bufferoverflow)这个骇客常用的老戏法。它的运作方法大略如此:远端送来一组程式码来敲门。一旦它来到,这台电脑的作业系统要决定将它放到哪裡。因此这台电脑送出一批网路服务(networkservices)程式,我们可以把这些网路服务看成是教作菜的食谱,而电脑就像积极翻阅食谱的主厨。


  如果执行程序很单纯,主厨可以选定特定菜餚的食谱(也就是程式),将新资讯的封包下载。但这程序并不简单。几乎每一个程式之下都有很多子程序,会打断主任务的执行。子程序是在电脑记忆体裡面的小封包,是包在大括弧裡面的小括弧,好像是一层包一层的俄罗斯娃娃一样。打个比方,一旦主厨选定食谱书裡第73页的食谱,开始阅读,他可能突然被打断,因为有个远方的食客急着要一份蛋糕。为满足需求,主厨随即翻到141页教人作蛋糕的那一章(或可称为程式的子程序)。但就在他要研读蛋糕食谱的章节时,他先创造一个暂时的记忆堆,在那裡放一个指标提醒他塬本是在读第73页,作为他所读蛋糕食谱的附註,一旦他作好蛋糕就可以回到这裡。此时他就去作蛋糕了,而作蛋糕这件事也有它的子程序,像是联络客户确认所要的是天使海绵蛋糕还是巧克力蛋糕。


  这就是开发恶意软体工程师的路数所在。他就是订蛋糕的客户。他让主厨知道他对蛋糕的要求,他也知道主厨会把这些要求放在电脑的缓衝区(buffer)中,也就是刚刚所比方的附註或暂存记忆堆。恶意软体的作者知道这个记忆缓衝区究竟多大。因此,除了提供所需蛋糕的细节资讯给主厨,他还不断将不相干的资讯餵给主厨。如果主厨不察,就像445埠一样,这些没需要的资讯会满出所分配的记忆空间,溢出去覆盖附註部分,将塬本所放置提醒他完事要翻回第73页的指标覆盖掉。


  如果主厨是一个命令一个动作,像机器一样听命行事,这时本该是作蛋糕的指令反而要主厨去作全然不同的事情,例如要它去拿钥匙并打开他背后的保管箱。这段指令与作蛋糕毫无关係,记录在附註部分的最末处。因此在主厨作好蛋糕,并在附註中寻找要去哪裡的指引时,他不会回第73页,反而是去打开背后房间裡的保管箱。


  如果有适当的监测机制,电脑这时应该会挡掉这个资讯封包,或是送出示警讯息,发送只有少数人看得懂的明确讯息提醒用户。作业系统的网路服务可以确认所配置的记忆空间是否够大,或是攻击者是否已成功地写入过多的资讯,由此阻断外界入侵电脑的企图。但这个系统服务必须时时如此检测确认,而一个像RPC这样复杂的程式更需要对几千个潜在弱点进行类似的监控测试。


  中国的骇客就是发现视窗系统没有足够的防护。因此,RPC服务程序不会像加油帮浦一样在加满油时自动关闭油枪,反而在它该放弃执行程序、关闭缓衝区时,让电脑(或主厨)继续依循这条全新又没经核准的途径继续运作。


  这就是漏洞攻击的精髓。一如所有的程式,网路服务列出资料与指令,以及电脑会忠实遵循的执行程序。这时入侵程式码完全听命软体作者指挥,可以去任何地方,而445埠埋藏在作业系统的深处,入侵该处可以得到的回收极度庞大。他们要去攻击破解的门锁就此已被选定。


  微软在中国骇客开始销售这套漏洞攻击程式时就得知它的存在,它知道这株蠕虫潜在的威胁有多大。有心人可以利用这个安全漏洞,插入蠕虫,经由繁衍发展成为机器人网路。它可以执行远端唿叫程序,换句话说,感染这虫的电脑可以交由远方的陌生人控制。这株虫的威胁如此之大,微软决定不按照日常的时程表,等到下一个「週二补丁日」,而是以「非常规」(outofband)的程序,立即送出火速开发的弱点补强更新补丁程式MS08-067(代表微软在2008年发出的67号补丁更新程式)。


  T.J.在微软于2008年10月23日发出MS08-067补丁当天,正在维吉尼亚州阿灵顿参加卡奈基美隆大学主办的国际机器人网路特别工作组会议。时间与场合如此巧合,让他可以亲自对全球顶尖的资讯安全专家说明。当他收到来自雷德蒙园区的最后确认时,他与同事赖瑞奇一齐起身宣布。


  「我要请各位上微软,斜线,technet,斜线,security,」他说。「这是个非常规时程的补丁。」


  这个补丁程式的说明解释:「在微软视窗2000、视窗XP版本、以及视窗伺服器2003版,攻击者可以利用这个软体弱点,不经授权而执行任何程式码。他们可以利用这个软体漏洞进行蠕虫等类型的漏洞攻击。」


  许多与会者立即下载这个补丁程式,开始分析它。T.J.花了几分鐘介绍它并回答问题,接下来他也与联邦调查局的干员见面,向他们简报。「我们觉得这件事非同小可,」他对干员说。「你们应该开始好好研究这东西。」


  在完美的世界,这个补丁程式应就解决了所有的问题。但T.J.很瞭解,MS08-067很可能让事情变得更糟。下载它的人可以免于被攻击,因此微软必须要推出这样的补丁程式来保护客户。但是这防护程式也远比那些中国骇客所买得到的任何宣传工具,更具广告效果。推出它就像在太空轨道上放个闪亮的霓虹告示牌,如此喧嚣耀眼,在地球表面的任何肉眼都可以看到,好像在大喊:来呀!来呀!有个新的视窗漏洞。


  这个新补丁实际上很可能激发了新蠕虫的出现。全球有大批电脑用户忽略了要去安装安全更新程式。而全球盗版、仿造、未经授权的视窗系统数以百万计。如果每个人都去註册所用的软体,迅速更新补丁,视窗应该是牢不可破的。但就因为这么多人不这么做,不论是「週二补丁」或是这次的非常规修补程式都成了微软的大问题。


  Sunblet资安软体公司的研究员赛特斯(EricSites)就撰文:「如果坏人知道如何利用这玩意,我们的麻烦大了。」他警告,像是蠕虫这种设计专业的恶意软体「可以轻易发展出来,造成极大的伤害」。


  MS08-067发表28天后,「这个东西」就出现在SRI普瑞斯所编写的感染清单上,开始到处乱窜进入不设防的电脑。