在病毒编写者与他们的对手——互联网安全公司的较量中,Web 2.0光辉新世界的黑暗面正在暴露。
这种融合了互联、共享和实时更新的网页技术,被冠以“第二代互联网”的称号,然而,它也成为企图向这个混合体注入恶意代码的入侵者的沃土。
微软一度是最主要的攻击对象,其文字处理程序、浏览器和操作系统中的薄弱环节被利用,但随着入侵者把注意力从电脑桌面程序转向web应用程序,谷歌(Google)、雅虎(Yahoo)和MySpace现在也同样可能受到攻击。
浏览器:Web 2.0主角
在Web 2.0环境,许多活动在浏览器内进行。举例来说,谷歌用户可在网页填写电子数据表、进行文字处理,而其日历和电子邮件收件箱的更新方式,与使用基于硬盘的微软Office套装软件相同。
区别在于,信息被不断嵌入网页,这些网页从谷歌服务器传送到用户浏览器,最常用的浏览器是Internet Explorer或火狐(Firefox)。
Web 2.0也代表社会软件(social software),包括维基(wiki)、博客(blog)、简易供稿(RSS)新闻源、标签(tagging)和社区站点。它是一个宽容的社区,用户可以自由地相互借用、添加并混合数据。
尽管这些技术和工具会带来新的自由,但也成为病毒编写者和个人身份信息盗窃者的“新天地”。
Web 2.0对恶意软件(malware)开发者的吸引力,部分在于运行Web 2.0的后台程序的复杂性。Ajax(异步JavaScript和XML)是一系列用来使网页更具互动性的技术的总称。运用这些技术,网页与服务器可自动交换少量数据,以刷新部分网页(如不断变化的股价或比分),让网页“活”起来。
“编写JavaScript代码约有100种不同的方法,火狐和Internet Explorer各有50种,”BreakingPoint Systems的安全研究主管HD?摩尔(HD Moore)称。“问题在于,很难区分善意与恶意代码。”
雅虎遇袭
6月份,一名病毒编写者用雅虎的web电邮服务发出了一封隐含某种JavaScript代码的邮件,使雅虎的网页邮件服务遭到“恶意代码”的冲击。由于雅虎允许网页执行JavaScript,因此其邮件系统很容易受到Yamanner蠕虫病毒的攻击。
任何打开邮件的人都激活了脚本,这些脚本向用户的地址簿发出请求,然后将蠕虫病毒发给地址簿中的每个人,其目的也许是为散布垃圾邮件而收集邮件地址。
“如果没有Ajax,Yamanner蠕虫病毒就不可能发生,”SPI Dynamics安全研究员比利?霍夫曼(Billy Hoffman)称。
“令人害怕的是,在雅虎看来,没有什么危险的事发生,用户只不过创建并发送了一封邮件。浏览器也一样,发现了某个Java脚本,就运行了它,而最终用户对此也无能为力。”
上月,谷歌RSS阅读器也发现了类似的缺陷。谷歌采用了JavaScript技术,以便用户能够为阅读器添加新闻源,而一位安全专家能够向新闻源地址添加数据,从而使浏览器连向另一个网站。如果带有恶意目的,所连向的可能是欺骗用户吐露个人信息的网络钓鱼(phishing)网站。
跨站脚本漏洞
网络安全业内将Web 2.0网站内的这些编码缺陷,称为跨站脚本(XSS)或跨站脚本漏洞。
近期利用跨站脚本漏洞的最著名事件,是去年10月份MySpace网站遭到的相对良性攻击。MySpace是如今最大的社交网站,用户人数达5400万。
19岁的洛杉矶软件开发员“Samy”编写了一段蠕虫程序,令他获得了逾100万网上“好友”,直至MySpace使该程序失效。他在自己的 MySpace简介里,置入一段JavaScript代码,这样每个查看简介的人会在不知不觉中执行这段代码。这段代码把他列为该用户的好友之一,而在通常情况下,列为好友需要得到该用户的同意,但他写的蠕虫使用Ajax技术,使之在后台批准他的请求。
接着,该蠕虫会打开该用户自己的简介,把恶意代码复制进去,并把Samy添加到那里的任何英雄列表中,还附上一句话:“但Samy是我最敬佩的英雄”。同样,任何查看该用户简介的人也会被感染,这样Samy的名声和“人气”迅速扩大到100万MySpace会员。
此时,该网站的管理员才发觉大量活动,被迫将MySpace关闭数小时,以清除该蠕虫病毒。
“在后台袭击MySpace、谷歌和雅虎的是跨站脚本,”计算机安全公司iSEC Partners主合伙人亚历克斯?斯坦默斯(Alex Stamos)说。“你可以通过脚本的输入输出过滤来进行阻挡。在传统的Web 1.0世界里,要处理的只有一大张以标准超文本标识语言(HTML)编写的网页,因此要把这些脚本阻挡在外并不难。”
但在Web 2.0中,插入脚本的方式如此之多,以至于进行阻挡要难得多,他说道。编写web应用的人,再也不能只用现成的过滤器了。
“24小时读完一本Ajax的书”
“你必须培训开发人员,”SPI的霍夫曼先生说。“围绕Ajax的炒作正导致一个问题:人们看到了MySpace的成功而纷纷采用Ajax技术。他们24小时内读完一本如何学会Ajax的书,然后创建一个存在安全隐忧的网站。”
此类初创网站得到了Ajax“框架”的帮助,“框架”就是现成的Web 2.0程序包。“利用Ajax框架的理念就是,你不必理解它如何运行。但我们的观点是,如果不知道它如何运行,你就不知道如何安全地使用它,”斯坦默斯表示。
他的公司探索了一些漏洞,当用户打开多个浏览器窗口,并在一个窗口里访问一个恶意站点时,可能导致在另一个窗口获得信息,并执行脚本。
SPI向一家网上股票经纪商展示了它所创建的恶意软件,该软件冒充会员身份,买卖他们的股票,并清空其银行账户。
程序开发人员将谷歌本地搜索(Google Maps)等应用,与在线分类广告服务网站Craigslist的广告结合起来,给出待售房产的位置信息,此类混合技术(mash-up)意味着,安全问题已扩展到不同的应用程序中。在RSS阅读器中聚合新闻源,并将用户对新闻条目所作的评论包含进去,这种做法也增加了引入恶意代码的概率。
然而,许多Web 2.0初创网站规模太小,无法把很多时间花在安全问题上。“在Web 1.0时代,安全性姗姗来迟,并且总是落在后面,这很正常,”斯坦默斯说。
“你不可能找到一个风险投资家,对他说你将拥有最安全的混合技术站点,然后得到2000万美元。你应该说,你将提供最酷的互动方式,这才会使你得到资助。”