Web2.0不断将网站的能力向外推展,也掀起第二波Web狂潮。然而专家警告,在网站不断增加功能的同时,小心安全主题已被抛到九霄云外去。
这项新科技带动的商机令人回想起90年代的网络风潮,许多所费不赀的大型会议、多如过江鲫的新创公司,以及一些颇具创意的公司像是MySpace.com与Writely被以天价收购,这些都是当时热闹景象不可或缺的元素。
“我们所犯的错还是一样,我们都把安全摆到最后,”SPIDynamicsWeb安全专家首席工程师BillyHoffman说。“大家都全心拥抱这个热朝,把它和Web应用兜在一起,但他们根本没有考虑到安全的问题,不知道这样会置使用者于何种风险之下。”
Yammaner、Samy与Spaceflash是网络上赫赫有名的攻击程序。Yammaner蠕虫锁定雅虎Mail而来,专门收集邮件帐号并将自己复制到雅虎使用者的所有通讯录中。Samy与Spaceflash两只蠕虫都已在MySpace上扩散,将这个知名社交网站的使用者信息(profile)加以变更。
Web2.0其实没有精准的定义,而是一个笼统概念,涵括非静态、非纯网页的网站。Web2.0网站更具互动性,让使用者可以把照片贴在网站上等。而和过去的Web不同的是,它提供了与桌面应用非常相似的使用经验。
AJAX是实现更炫更互动网页的主要技术。Google去年推出的GoogleMaps是第一批向世人展示AJAX开发效果的网站之一,它让使用者可以用鼠标把地图移到屏幕上任何一处。
但AJAX的“功能”不只是把网页变得更互动而已。专家说,它也提供黑客整垮Web服务器,攻击使用者的渠道。
“我们可以用房子来比喻,”将在下周黑帽安全大会上针对AJAX安全发布演说的Hoffman说,“传统网站好比一幢没有窗子、只有一扇门的房子,而AJAX网站则是一个有数不清窗子和旋转门的房子,尽管你在前后大门上加了最安全的锁,但我还是可以从窗口钻进去。”
以这种新技术开发的网站“攻击面积”又更大,因为它和浏览器有更多互动,而且可以在用户端PC上执行JavaScript.JavaScript是常见的描述性语言。传统网站一般需通过表格来接收信息。
跨网站描述语言
AJAX也增加了跨网站指令码(Cross-SiteScripting)的可能性,如果网站源代码撰写不留意就可能发生。专家指出,攻击者可以利用这项弱点绑架使用者帐号,发动网钓诈骗窃取信息,或甚至把恶意源代码下载到使用者电脑中。一些知名公司像是微软、eBay、雅虎与Google等网站都曾出现跨网站指令码的漏洞。
风险还不只如此。AJAX其他可能风险包括程序竞争条件(racecondition)、源代码正确性(codecorrectness)、违反物件模型(objectmodelviolation)、不安全随机(randomness)以及错误处理不当等等,源代码分析工具供应商FortifySoftware首席科学家BrianChess说。
上述错误都可能导致信息外泄、A使用者控制B使用者的通讯,恶意源代码被执行或引发其他攻击等等,Fortify说。该公司研究人员发现在去年一本针对软件开发人员所着的《FoundationofAjax》中,揭露了上述AJAX源代码样本分析结果。
“书中的源代码样本可以当成示范,让许多软件开发人员学到不安全的程序撰写习惯有哪些。”Chess说。
本书作者之一RyanAsleson表示目前还没听到有源代码样本中的漏洞,但他表示,如果有也不令人意外,因为这种源代码太简单了,大家都学得起来。“我们从来没有假设这种源代码已存在企业应用中。”他说。
确保长治久安之道是开发人员训练与作法,Asleson说。“如果有人说他的程序没有安全问题,我觉得他是在痴人说梦,”他说。“开发人员只要一个不小心,就会让安全洞开。”
Chess说,AJAX本身不会引发漏洞,只是它让旧有问题变得更容易发生。软件产业现在还停留在桌面应用时代,缓冲溢位(bufferoverflow)在那是相当严重的问题。但AJAX中的JavaScript则为老问题注入索尼量。“简直就是历史重演。”
写过两本AJAX相关着作的Asleson同时也是开发人员,他并不同意网站开发人员忽视安全问题。“有时这牵涉到桌面电脑十多年来发展的轨迹,十多年前大家都不注重安全,现在这个问题已没人敢轻忽,”他说。
两大网络巨人Google与AOL也有同样看法。Google工程部门副总裁DouglasMerrill在电子邮件中说道,Google是AJAX的爱用者。
“和其他软件开发一样,AJAX的开发也需相当注重安全,时时谨记使用者的最大利益,”Merrill说。Web应用好处之一是修补漏洞又快又简单,而不需要劳动到使用者。
他表示,虽然Google还无法百分之百免除网站漏洞,但安全却是该公司产品与服务设计、开发、上线及运营不可或缺的一环。
“在我们经验里,只由安全小组做完的流程无法适用到别的部门,不够有效,因此我们试着把安全融入到整个产品开发过程当中。”Merrill说。
愈大愈好?
AOL则相信大型网络公司在安全上做得比新创公司来得好。“我们有二十多年经验,又有很大的安全专业部门确保我们既有与新推出的产品的安全,”该公司发言人AndrewWeinstin说。
MySpaces、Flickr或GoogleMaps的成功引发网络另一波拓荒潮,而且进入门槛也不高,Hoffman说。但他表示,事情可不只是架个网站那么简单。开发人员得要具备安全意识,留心软件瑕疵,或是内建功能遭人以恶意程序滥用。
上个月发现的Yamanner蠕虫就是利用雅虎Mail可在信息中附加JavaScript的功能而来,专家出。只要使用者一打开件,描述语言就会执行,并对雅虎Mail服务下指令把使用者的通讯录寄到远端服务器。这只蠕虫也会命令邮件服务把恶意信息寄给所有联络人。
雅虎表示会努力保护用户信息。“我们已成立项目小组确保工程师对安全的重视,并且以各种方法确保整个开发过程中的安全品质,包括开发人员教育、基础架构、检测及工具等等,”该公司代表说。
MySpaces方面,去年十月爆发的Samy被视为第一个跨网站指令码漏洞攻击。它攻击了MySpace网站,把数百万用户加入到作者的“好友名单”上。MySpace用户看到被感染的使用者信息(profile)时,他自己的使用者信息也会被感染,并且会去感染别人。
两种攻击都没有引发损害,但专家警告这些漏洞未来可能遭到更严重攻击。“我认为AJAX还没有这种攻击或防护。”Chess说。
专家表示,网站开发人员对使用者及服务器的安全意识将渐成Web2.0安全之所系。网络使用者的PC安全软件,像是杀毒与反网钓工具的能提供一定程度的防护。但此类应用一般只在攻击发生后效果最大,因为它们需要攻击签名或已知恶意网站的黑名单为之。
“使用者一定被弄得一头雾水,但是Web应用真的存在漏洞,”Hoffman说。“解铃还需系铃人,只有实际撰写Web应用程序的人才能真正解决安全问题。”Hoffeman说。