2011年初,互联网上纷纷传播一个消息:某银行网上银行页面被挂马。一些安全专家在进行调查与分析后,确认该银行自己的页面没有被挂马,被挂马的是其网银页面中嵌入的第三方网页。这是一次典型的网站第三方内容安全事件。
绿盟科技的安全专家告诉我们,通常来说,具备安全意识的网站管理者都会自己Web应用进行检查,避免出现容易被利用的漏洞(如SQL注入和XSS)。但安全问题往往是整个系统最薄弱环节所导致的,而第三方内容正是这样缺乏有效管理和监控的薄弱环节。很多网站会通过<iframe>或者<script>的方式直接将第三方内容嵌入到网页中,这实际上将嵌入第三方内容的网页控制权隐性地"授权"给了第三方内容。第三方内容实际上获得了和原网站本地代码一样的权限去修改原网站在浏览器中显示的内容、甚至窃取用户的机密数据,从而导致网站"被黑"、"被挂马"、"被钓鱼"等多种安全事件。
那什么是"第三方内容"呢?简要来说就是网站所使用的非本站资源(包括文字、图片、Flash 、JavaScript脚本等各类网站资源)。这些非本站的资源往往被浏览器自动加载,网站访问者并不关心、也不知道这些资源来自于其他网站,因此对大多数访问者而言,他会认为在自己计算机上所看到的网页内容,全部都来自他所访问的网站。第三方内容方便易用,因此被广泛应用到网页编程中,但网站管理者却很少注意到它的安全隐患。
如上图,访问者在步骤1,用浏览器打开A网站网页时,同时将网页中嵌入的B网站内容指向下载到本地计算机,本地计算机在步骤2中,根据B内容指向,将B内容从B网站下载过来。在访问者的游览器中,最终呈现的是一个完整的A网页,访问者不会知道B内容实际来自于B网站。他会认为所有内容都来自A网站。一旦网站B出现安全问题就会直接影响到A网站,而此次某银行"被挂马"事件正是如此。目前第三方的安全威胁逐渐浮现出来。越来越多的Web安全研究者已经注意到了网站第三方内容的问题,甚至提出了"第三方内容劫持"这样专有的攻击方式。
互联网站是攻击者的主要目标,网站管理者都会对自己的网站进行安全保护,但很多管理者都忽略了对第三方内容安全性的检查。用户访问量大的网站会更容易成为攻击目标,所以安全防护通常更严密,攻击者入侵这些网站时往往很难找到明显漏洞。通过前面的分析,我们了解到第三方内容同样危害严重,而且很少受到检查和监控,攻击者就会利用这个最薄弱的环节发起攻击。
根据国内安全公司绿盟科技的调查分析,全球TOP100和中国大陆TOP100的网站中有超过69%的页面嵌入了第三方内容,即使是管理比较严格的金融行业网站也有20%的网页嵌入了第三方的内容,而中国大陆地区TOP100网站嵌入第三方内容的比例更是高达80.3%.这表明,国内大部分网站都存在着很高比例的、容易出问题的第三方内容,而网站安全管理并不太重视第三方内容存在的问题。
从根本上来说,对网站的第三方内容缺乏管理实际上是在现有的安全体系中引入了一个风险不可控的内容。如果缺乏对第三方内容有效的检查、监控和管理,网站的安全性将会遇到较大的威胁。要确保网站的安全,站点管理者必须高度重视第三方内容的安全性,必须对第三方内容安全进行有效的管理。绿盟科技的专家建议通过以下几个步骤加强对第三方内容安全管理:
1、建立第三方内容的安全审核机制,确保只嵌入有安全保障的第三方内容;
2、建立第三方内容定期安全检查机制,确保及时发现风险隐患并进行修补;
3、建立安全监测及事件的响应机制,一旦发生安全问题,能够具备行之有效的手段进行处理和响应。