Windows Defender ATP 近日发现一起新的软件供应链攻击活动,未知的攻击者入侵了 PDF 编辑器应用厂商和其软件合作商之间的共享基础设施,使合法的 APP 安装器变成了恶意 payload 的携带者。攻击者使用加密货币挖矿机来从该攻击活动中获利。
图 1. Windows Defender ATP 对该事件中的加密货币挖矿机的告警消息
多厂商软件供应链攻击
攻击者的目标是在受害者机器上安装加密货币挖矿机,用 PDF 编辑器 APP 来下载和传播恶意 payload。为了破坏软件传播链,攻击者将目标锁定为 APP 厂商的软件合作方,合作方在 APP 安装过程中提供下载的字体包等。
图 3. 软件供应链攻击中两个厂商参与的软件分发基础设施图
软件供应链攻击表明了犯罪分子更多的使用了一些复杂网络攻击的方法。此类攻击需要进行一定的侦察活动:攻击者必须要清楚正常安装的过程。攻击者最终发现了 APP 厂商和合作厂商之间交互的弱点,攻击者正是利用这个机会去创造机会。
攻击者要利用在基础设施中的漏洞去劫持 MSI 字体包的安装链。即使 APP 厂商没有被入侵,APP 也会变成恶意 payload 的载体,因为攻击者可以重定向下载。
下面是多层攻击的解释:
1. 攻击者会在其控制和拥有的副本服务器上创建软件合作厂商的基础设施。复制和保存包括字体包在内的所有 MSI 文件,这些文件都是经过数字签名的。
2. 攻击者反编译和修改其中一个 MSI 文件—— Asian 字体包,加入含有加密货币挖矿代码的恶意 payload。修改后的包不在是可信的,也没有签名。
3. 攻击者利用一些机制中存在的漏洞,影响 APP 使用的下载参数。参数包括指向攻击者服务器的新下载链接。
4. 在一定的期限内,APP 下载 MSI 字体包的链接指向的是一个 2015 年在乌克兰注册的域名,服务器是主流的云平台提供商。来自 APP 厂商的 APP 下载器仍然是合法的,但是会被劫持的链接重定向到攻击者的副本服务器,而不是软件合作厂商的服务器。
该攻击当前还在活动中,在 APP 安装过程中,当 APP 到达软件合作商的服务器,就会被重定向到从攻击者的副本服务器下载 MSI 字体包。下载和安装 APP 的用户最终会在机器上安装加密货币挖矿恶意软件。当设备重启后,恶意 MSI 文件就会被合法的 MSI 文件替换,所以受害者也不会意识到入侵的发生。因为更新过程并没有被黑,所以 APP 可以进行自我更新。
因为入侵有二级软件合作厂商参与,所以攻击有可能会扩展到其他 APP 厂商拿到客户。攻击者在恶意 MSI 文件中硬编码了 PDF 应用名,研究人员根据这个信息找出了至少 6 个存在被重定向风险的 APP 厂商。
又一起加密货币挖矿恶意软件活动
恶意 MSI 文件在单独的 DLL 文件中含有恶意代码,该 DLL 文件会添加一个运行加密货币挖矿进程的服务。该恶意软件名为 xbox-service.exe,检测为 Trojan:Win64/CoinMiner。恶意软件运行时,会消耗受感染机器的计算资源进行门罗币挖矿。
图 5. 从 MSI 安装器中提取的恶意 DLL payload
DLL payload 在恶意软件安装阶段会尝试修改 Windows host 文件,这样受感染的设备就不能与指定 PDF 应用和安装软件的更新服务器进行通信了。这是防止受感染的设备进行远程清除和修复的措施。
图 6. 防止指定 PDF APP 厂商的下载更新
在 DLL 文件中,研究人员发现了基于浏览器的加密货币挖矿脚本。目前尚不清楚代码是攻击者的备用方案,还是攻击者想最大限度的进行挖矿。DLL 含有的字符串和代码可能会被用于加载浏览器,连接到主流的 Coinhive 库来进行门罗币挖矿。
图 7. 基于浏览器的挖矿脚本
软件供应链攻击:已成为行业问题
早在 2017 年,研究人员就发现了名为 WilySupply 的攻击链攻击,该攻击入侵了文本编辑器软件更新器来安装后门到金融和 IT 领域的目标企业中。Petya 勒索软件、CCleaner 这样的软件供应链攻击层出不穷。研究人员认为,未来这一趋势会不断加剧。
图 8. 软件供应链攻击趋势
供应链攻击流行的原因之一是 Windows 10 这类加固的现代平台的出现,传统的浏览器漏洞利用这样的感染方式逐渐消失。攻击者不断在寻找各环节中的弱点,因为寻找 0 day 漏洞太难,所以攻击者会寻找一种更加便宜、可行的攻击入口——软件供应链攻击。软件供应链攻击的起因是因为使用了不安全的代码、不安全的协议、或者服务器基础设施未保护。
对攻击者来说,供应链可以提供大量的潜在受害者,回报率非常高。所以,这其实已经成为一个行业问题,需要多方关注和协同去解决,比如软件开发者和厂商在代码编写方面、系统管理员在软件安装过程中、安全管理员找到攻击并提出解决方案等等。
对软件开发商和开发人员的建议
1. 保持基础设施的安全性,并及时更新。
· 对 OS 和软件及时打补丁。
· 进行手动完整性控制确保只有可信的工具才能在设备上运行。
· 对管理员进行多因子认证。
2. 把安全的软件更新作为软件开发生命周期的一部分。
· 更新通信信道要使用 SSL,并应用证书锁定技术。
· 对包括配置文件、脚本、XML 文件、包等各类文件签名。
· 检查数字签名,软件更新器不应接受通用的输入和命令。
3. 开发应对供应链攻击的应急响应
· 供应链攻击事件发生后,应该及时和通知客户准确的信息。
企业如何应对供应链攻击
· 对重要系统和设备使用电子围栏系统。Windows 10 S 模式就只允许安装来自 Microsoft Store 的应用程序,确保经过微软的安装验证。
· 应用强代码完整性策略。应用控制是限制用户可以运行的应用的,同时也限制运行在系统核心态的代码,可以拦截未签名的脚本和其他不可信的代码。
· 使用终端检测和响应解决方案。
在供应链攻击中,真实的入侵活动其实是发生在网络之外的,但是企业可以在恶意软件到达企业边界后检测和拦截恶意软件。
留言与评论(共有 0 条评论) |