“防”字当头,第三方脚本的安全风险与应对方式
孟焯 Akamai大中华区高级售前技术顾问
孟焯 Akamai大中华区高级售前技术顾问
新冠肺炎疫情带来的大量不确定性正让人们越发依赖数字化工具,并使远程办公、学习、购物、娱乐等生活方式变为常态,随着人们对互联网的依赖达到了前所未有的程度,网络威胁发起者也在关注线上活动的迅猛增长,伺机而动,窃取终端用户个人信息并以此获利。作为易操纵且适用范围广的攻击方式,第三方脚本攻击正在快速流行,对包括电子商务、媒体出版业网站在内的众多网站形成威胁。
和其他以服务器为目标的攻击方式不同,第三方脚本攻击主要针对浏览器端发起攻击。这种攻击方式较为隐蔽,企业较难使用传统手段进行防御和打击。而一旦攻击者得手,造成的影响往往又是难以估量的。其中的代表Magecart攻击就“攻陷”过许多备受瞩目的网站,包括奥运会售票网站、英国航空、Ticketmaster等。RiskIQ的一项研究显示,疫情爆发的前几个月,Magecart攻击数量增长了20%。鉴于第三方脚本攻击形势愈加严峻,加上在线服务使用的继续增加为攻击者提供更多可乘之机,企业须做好充分的防范准备,应对这一迫在眉睫的新型网络攻击威胁。
第三方脚本成为网络攻击“重灾区”
第三方脚本攻击的兴起源于第三方脚本的流行。为使用户获得更丰富、便捷的Web体验,越来越多的网站通过第三方脚本为用户提供支付、预订等服务。一方面,这些脚本都是通过第三方进行功能维护和更新,对于第一方而言通常未知,因此为第一方网站的自身安全性埋下了隐患。另一方面,随着用户对网站功能多样化的需求增加,第三方脚本的大小与请求数正在飞速增长,这使得攻击面进一步扩大。数据显示,2011年至2018年间,网页页面中的第三方脚本大小增长了706%,请求数增加了140%。以Akamai官网为例,如果使用可视化工具“RequestMap”来展现页面上所有请求的来源,会发现网站中超过50%的脚本都是来自第三方的脚本。
具体而言,第三方脚本攻击往往从第三方、第四方网站开始。攻击者通过将恶意代码添加到第三方脚本更新中,从而“穿透”平台的必要安全检查(例如WAF),进入供应链交付,最终在第一方网站页面上窃取个人识别信息(PII),再通过执行恶意代码,把这些数据发回给攻击者。
当前,第三方脚本攻击中最“臭名昭著”的莫过于Magecart攻击。该攻击以Magecart这一黑客组织命名,专门使用恶意代码通过污染第三方和第四方的脚本,从终端用户提交的支付表单中窃取支付信息,以获取经济利益。其具备以下几个特点:
第一,影响范围广。该攻击不仅针对大型支付网站,任何有支付业务、需要在页面中提交表单的网站,无论大小,均有可能遭受此类攻击。第二,攻击后果严重。该攻击“威力”巨大,单一攻击事件就可以造成数以千计的网站感染、百万个信息被盗取。在针对英国航空的Magecart攻击中,攻击者仅用22行脚本代码,就盗取了38万张信用卡的信息,相当于给犯罪分子送去1700多万美元的净收益。第三,攻击手段不断升级。最近一次已知的Magecart攻击发生在今年4月,Magecart黑客团体采用名为“MakeFrame”的新型数据窃取器,将HTMLiframes注入网页中以获取用户付款数据,成功地破坏了至少19个不同的电子商务网站。
事实上,像Magecart攻击这样的“表单劫持类”第三方脚本攻击还有很多种,例如黑客针对优化电商转换率的分析服务Picreel和开源项目AlpacaForms发起的攻击都属于这一范畴。2019年5月,攻击者通过修改Picreel和AlpacaForms的JavaScript文件,在超过4600个网站上嵌入恶意代码,“劫持”用户提交的表单。这种情况愈演愈烈,根据2019年《互联网安全威胁报告》,全球平均每个月有超过4800个不同的网站遭到类似的表单劫持代码入侵。
后患无穷:第三方脚本带来的安全风险
第三方脚本攻击利用的是第一方网站对第三方脚本的控制力不足和难以实现的全面监测,造成较为严重的攻击后果。除此之外,第三方脚本还会带来一些其他的潜在隐患。综合来看,第三方脚本带来的安全风险通常有以下几种:
数据窃取。数据窃取是在用户端通过脚本窃取用户的个人数据和账单数据的一种钓鱼攻击。2019年第四季度,某北美大型零售商的支付页面被攻击者盗取了姓名、电话、邮件和信用卡号码、安全码和过期日期等。
意外泄漏。意外泄漏指应用意外收集用户敏感数据导致的合规风险。2019年第四季度,某国际零售商网站上出现了不安全脚本,使得任何人都可以通过Web浏览器访问该网站近1.3TB的数据,包括用户的IP、住址、邮箱地址和在网站的活动轨迹。此外,这还可能会引发针对性的网络钓鱼攻击。
已知漏洞(CVE)。这是指在真实使用场景中,脚本已经暴露出漏洞,但未能得到及时修复。2019年第四季度,某旅游服务商在一次第三方脚本攻击的15天内暴露了30多万用户的个人信息,导致百万美金的罚款。而造成此次攻击的漏洞就来自于已知的脚本漏洞,并且该漏洞已在此前导致过数据泄漏。
防患于未然:多管齐下防范第三方脚本安全隐患
由此可见,第三方脚本带来的种种安全风险为各种类型的网络攻击提供了“温床”,但其自身又往往处于“隐秘的角落”,较难控制和监测。但对于这样的风险,企业并非完全束手无策,目前有四种常用的应对方法,以将第三方脚本带来的安全风险“扼杀在摇篮中”。
第一种方法是内容安全策略(CSP)白名单。内容安全策略是通过白名单的方式,检测和监控来自第三方的安全隐患,适用于能够严格遵守该策略的企业,且以防御为主。但该方法也存在一定弊端,一是如果可信的第三方被利用并成为攻击媒介,这种策略就无法起到应有效果;二是该策略在实际操作中较难实施和维护,需要持续的手段分析和测试,如果策略设置得过于严格也将产生误报;三是如果对于通用云存储和开源项目中的资源设置白名单,会进一步增加网站的“脆弱性”。
第二种方法是仿真测试扫描。仿真测试扫描是一种离线的策略方法,适用于简单的网站及策略更新时。但实行该方法仍然需要持续的手动分析和测试。
第三种方法是访问控制/沙盒。访问控制/沙盒的方式适用于页面简单或页面数量较少、不包含个人验证信息的网站。该方法可以与内容安全策略结合使用,同时也需要持续的手动分析和测试。
第四种方法是应用程序内检测。其检测脚本的行为、可疑的活动,着力于快速缓解攻击、减少对业务的影响。这也是Akamai认为有效的脚本保护方式之一。持续的手动分析和测试在现实场景下较难实现,应用程序内检测则是一个独立于平台且自动的、不断演进的安全威胁检测方式,并且不依靠于访问控制方法,真正能够做到保障网站安全。举例而言,对于Magecart攻击来说,这种方式能够检测可疑的行为,并且易于管理和设置,让企业的网站始终处于监测状态、随时在线。另外,它还能够排除干扰信息,根据已知的安全威胁提供情报,避免“重蹈覆辙”。最后,针对访问的控制策略,该方法也会根据反馈不断进行更新。
随着第三方脚本成为现代网站的“必需品”,针对第三方脚本的攻击发生得也越来越频繁,且往往给企业带来巨大损失。企业应当保持警惕,使用诸如RequestMap这样的工具检测网站页面第三方脚本的数量,并对网站页面的第三方脚本予以监视,哪怕该脚本来自受信任的第三方也是如此。同时,企业应考虑适用自身网站的脚本管理方式,进行第三方脚本行为检测,实施管理和风险控制,并将应用程序内的脚本保护与访问控制解决方案结合起来,协同运行。
Akamai最近推出的PageIntegrityManager为Akamai客户提供了管理脚本(包括第一方、第三方乃至第n方脚本)风险所需的检测能力,以及根据客户自身独特需要制定业务决策所必不可少的实用信息。