本文作者为Jérôme Segura

威胁行动者使用许多技术来降低分析速度,或者更好的是逃避检测。也许最流行的方法是检测安全研究人员和沙箱解决方案常用的虚拟机。

反向工程师习惯于遇到检查某些注册表项的代码片段,寻找指示VMware或Virtual Box存在的特定值,这是虚拟化软件中最流行的两个部分。许多恶意软件家族合并了这些反虚拟机特性,通常作为第一层。

对于网络威胁而言,通过浏览器检测虚拟机的情况就比较少见了。通常,威胁参与者满足于基于地理位置和用户代理字符串过滤目标。但这一功能在现代浏览器中确实存在,而且非常有效。

在这篇博客文章中,我们展示了Magecart威胁行动者是如何通过确保用户运行的是真正的电脑而不是虚拟的电脑,从而避免研究人员和可能的沙箱。

虚拟机检测

我们的调查从一个可能与Magecart相关的新报道领域开始。可疑的JavaScript被加载在支付方式的图片旁边。注意,直接浏览URL会返回一个诱饵Angular库。

在这个略读脚本中有一个有趣的函数,它使用WebGL JavaScript API来收集关于用户机器的信息。我们可以看到,它标识了图形渲染器并返回它的名称。

对于许多虚拟机,显卡驱动程序将是硬件(GPU)渲染器的软件渲染器。或者,它可以被虚拟化软件支持,但仍然泄露它的名称。

我们注意到略读器在检查单词是否存在swiftshaderllvmpipevirtualbox.谷歌Chrome浏览器使用SwiftShader而Firefox则依赖于llvmpipe作为其渲染器的后备。

通过执行这种浏览器内检查,威胁行动者可以排除研究人员和沙盒,只允许真正的受害者成为掠食者的目标。

数据漏出

如果机器通过检查,个人数据的泄露过程就可以正常进行。该扫描器会抓取许多字段,包括客户的姓名、地址、电子邮件和电话号码以及他们的信用卡数据。

它还收集任何密码(许多在线商店允许客户注册账户)、浏览器的用户代理和唯一的用户ID。然后,通过一个POST请求,数据被编码并转移到同一个主机:

逃避和后卫

犯罪分子采用这种逃避技术并不奇怪,但这表明,随着我们在检测和报告攻击方面做得越来越好,威胁行为者最终也会进化他们的代码。这是我们必须预料到的自然取舍。

除了代码混淆、反调试器技巧和现在的反vm检查,防御者将不得不花费更多的时间来识别和保护这些攻击,或者至少提出有效的对策。

必威平台APPMalwarebytes用户受此保护:

妥协指标(IOCs)

cdn [,] megalixe[。)组织反对[,]数字速度。[,] murdoog[]净api。静态[,]opendwin [] org。css [,] tevidon [] com。com mantisadnetwork[。静态[,]mantisadnetwork [] org。[,] sleefnote[]组织阶段。] com js [,] speed-metrics[。com troadster[。com nypi [] dc-storm(。)组织网络(。)webflow。净js [,] librarysetr[。com librarysetr[。com opendwin[。[,] rolfinder [] com应用。com libsconnect[。]净artesfut[。] com js [,] artesfut[。] com js [,] rawgit[。]net js[.]demo-metrics[.]net demo-metrics[.]net dev[.]crisconnect[.]net m[.]brands-watch[.]com graph[.]cloud-chart[.]net hal-data[.]org stage[.]libsconnect[.]net app[.]iofrontcloud[.]com iofrontcloud[.]com alligaturetrack[.]com webflows[.]net web[.]webflows[.]net tag[.]listrakbi[.]biz api[.]abtasty[.]net cloud-chart[.]net graph[.]cloud-chart[.]net cdn[.]getambassador[.]net climpstatic[.]com stst[.]climpstatic[.]com marklibs[.]com st[.]adsrvr[.]biz cdn[.]cookieslaw[.]org clickcease[.]biz 89.108.127[.]254 89.108.127[.]16 82.202.161[.]77 89.108.116[.]123 82.202.160[.]9 89.108.116[.]48 89.108.123[.]28 89.108.109[.]167 89.108.110[.]208 50.63.202[.]56 212.109.222[.]225 82.202.160[.]8 82.202.160[.]137 192.64.119[.]156 89.108.109[.]169 82.202.160[.]10 82.202.160[.]54 82.146.50[.]89 82.202.160[.]123 82.202.160[.]119 194.67.71[.]75 77.246.157[.]133 82.146.51[.]242 89.108.127[.]57 82.202.160[.]8 185.63.188[.]84 89.108.123[.]168 77.246.157[.]133 185.63.188[.]85 82.146.51[.]202 185.63.188[.]59 89.108.123[.]169 185.63.188[.]71 89.108.127[.]16 82.202.161[.]77