使用 Google Analytics 的漏洞发起网页攻击

  • 来源:网络
  • 更新日期:2020-06-28

摘要:通过网络浏览器发起的攻击是最常见的一类攻击,通常针对在线购物者。攻击原理很简单:将恶意代码注入受感染的网站,该网站收集用户输入的数据并将其发送到网络攻击者的后台。如果

通过网络浏览器发起的攻击是最常见的一类攻击,通常针对在线购物者。攻击原理很简单:将恶意代码注入受感染的网站,该网站收集用户输入的数据并将其发送到网络攻击者的后台。如果攻击成功,网络攻击者便可以访问购物者的付款信息。

为了使数据流向第三方资源的可见性降低,欺诈者通常会注册类似于流行网络服务的域名,尤其是 Google Analytics(google-anatytics [ . ] com, google-analytcsapi [ . ] com, google-analytc [ . ] com, google-anaiytlcs [ . ] com, google-analytics [ . ] top, google-analytics [ . ] cm, google-analytics [ . ] to, google-analytics-js [ . ] com, googlc-analytics [ . ] com 等),但这类攻击也被发现有时使用了真实服务。Google Analytics(Google 分析)是 Google 的一款免费的网站分析服务,自从其诞生以来就广受好评。Google Analytics 功能非常强大,只要在网站的页面上加入一段代码,就可以提供丰富详尽的图表式报告。

要使用 Google Analytics 收集有关访问者的数据,网站所有者必须在其 analytics.google.com 上的帐户中配置跟踪参数,获取跟踪 ID(trackingId,类似于 UA-XXXX-Y 的字符串),然后将其插入网页以及跟踪代码(特殊的代码段)。多个跟踪代码可以在一个网站上并肩作战,将有关访问者的数据发送到不同的 Google Analytics 帐户。

最近,我们发现了滥用该服务的几种情况:攻击者向网站注入了恶意代码,这些网站收集用户输入的所有数据,然后通过 Analytics 发送。结果,攻击者可以访问其 Google Analytics 帐户中的被盗数据。我们在全球发现了大约二十个受感染的网站。受害者包括在欧洲以及北美和南美销售数字设备、化妆品、食品、零件等的商店。

下面的屏幕截图显示了感染的外观——带有攻击者的跟踪代码和跟踪 ID 的恶意代码:

攻击者试图使用经典的反调试技术隐藏其恶意活动,屏幕截图 2 显示了用于检查访问者浏览器中是否启用了开发人员模式的代码。仅当结果为负时,才执行上面的屏幕快照中的代码。

奇怪的是,攻击者给自己留下了一个漏洞,在 调试 模式下监视脚本的选项。如果浏览器的本地存储(localStorage)包含值 \'debug_mode\'==\'11\',即使打开开发人员工具,该恶意代码也会冒出来,甚至会用笨拙的英语在控制台编写带有错误的注释。在下图中,带有‘ debug_mode ’检查的一行代码执行了 RC4 加密算法 ( 用于在发送之前对收集的数据进行加密 ) 。

如果通过了反调试,则脚本将收集网站上任何人输入的所有内容(以及有关输入数据的用户的信息:IP 地址,UserAgent,时区)。使用 Google Analytics 测量协议对收集的数据进行加密和发送,收集和发送过程如屏幕截图 4 所示。

通过调用 eventAction 字段中的 send 事件方法来发送被盗数据。

在本文的示例中,函数签名为:

ga ( \'send\', \'event\', { \'eventCategory\': \'Category\', //Protocol Parameter: ec; Value type: text; Max Lenght: 150 Bytes \'eventAction\': \'Action\', //Protocol Parameter: ea; Value type: text; Max Lenght: 500 Bytes \'eventLabel\': \'Label\' //Protocol Parameter: el; Value type: text; Max Lenght: 500 Bytes } ) ;

这将导致将 HTTP 请求发送到 URL。

https [ : ] //www.google-analytics.com/collect?&ea=packed_stolen_data&

在上述情况下,恶意代码以 可读 形式插入受感染网站上的脚本中。但是,在其他情况下,注入可能会被混淆。恶意代码也可以从第三方资源下载。下图显示了一个示例混淆选项。在此变体中,将来自 firebasestorage.googleapis [ . ] com 的对恶意脚本的调用插入到受感染的网站中。

经过模糊处理后,我们获得了具有相同注释的相似脚本。屏幕截图 6 中显示了部分代码(使用了不同的跟踪 ID)。

Google Analytics 的漏洞

Google Analytics 是一项非常受欢迎的服务(根据 BuiltWith 的数据,该服务已用于 2900 万个网站),并受到用户的盲目信任:管理员将 * .google-analytics.com 写入 Content-Security-Policy 标头(用于列出来自以下位置的资源)可以下载的第三方代码,从而允许该服务收集数据。此外,无需从外部来源下载代码即可实施攻击。

缓解措施

对于使用者来说:安装安全软件。

网站管理员:

1. 不要从不受信任的来源安装 Web 应用程序和 CMS 组件,保持所有软件为最新,关注有关漏洞的新闻,并采取建议的措施对其进行修补。

2. 为所有管理帐户创建强密码;

3. 将用户权限限制到最低限度,跟踪有权访问服务界面的用户数量;

4. 过滤用户输入的数据和查询参数以防止第三方代码注入;

5. 对于电子商务网站,建议使用兼容 PCI DSS 的支付网关。

IOC

firebasestorage.googleapis [ . ] com/v0/b/bragvintage-f929b.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/canature-5fab3.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/ericeirasurfskate-559bf.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/gluten-8e34e.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/laser-43e6f.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/movile-720cd.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/plumb-99e97.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/redfox-64c35.appspot.com/o/* firebasestorage.googleapis [ . ] com/v0/b/tictoc-9677e.appspot.com/o/*