导语:供应链攻击是近年来出现的一种新的攻击形式,相对0 day漏洞来说,性价比极高。微软研究人员近日检测到一起多厂商软件参与的供应链攻击,本文将对其进行分析。

Windows Defender ATP近日发现一起新的软件供应链攻击活动,未知的攻击者入侵了PDF编辑器应用厂商和其软件合作商之间的共享基础设施,使合法的APP安装器变成了恶意payload的携带者。攻击者使用加密货币挖矿机来从该攻击活动中获利。

图片.png

图1. Windows Defender ATP对该事件中的加密货币挖矿机的告警消息

多厂商软件供应链攻击

攻击者的目标是在受害者机器上安装加密货币挖矿机,用PDF编辑器APP来下载和传播恶意payload。为了破坏软件传播链,攻击者将目标锁定为APP厂商的软件合作方,合作方在APP安装过程中提供下载的字体包等。

图片.png

图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。恶意软件运行时,会消耗受感染机器的计算资源进行门罗币挖矿。

图片.png

图5. 从MSI安装器中提取的恶意DLL payload

DLL payload在恶意软件安装阶段会尝试修改Windows host文件,这样受感染的设备就不能与指定PDF应用和安装软件的更新服务器进行通信了。这是防止受感染的设备进行远程清除和修复的措施。

图片.png

图6. 防止指定PDF APP厂商的下载更新

在DLL文件中,研究人员发现了基于浏览器的加密货币挖矿脚本。目前尚不清楚代码是攻击者的备用方案,还是攻击者想最大限度的进行挖矿。DLL含有的字符串和代码可能会被用于加载浏览器,连接到主流的Coinhive库来进行门罗币挖矿。

图片.png

图7. 基于浏览器的挖矿脚本

软件供应链攻击:已成为行业问题

早在2017年,研究人员就发现了名为WilySupply的攻击链攻击,该攻击入侵了文本编辑器软件更新器来安装后门到金融和IT领域的目标企业中。Petya勒索软件、CCleaner这样的软件供应链攻击层出不穷。研究人员认为,未来这一趋势会不断加剧。

图片.png

图8. 软件供应链攻击趋势

供应链攻击流行的原因之一是Windows 10这类加固的现代平台的出现,传统的浏览器漏洞利用这样的感染方式逐渐消失。攻击者不断在寻找各环节中的弱点,因为寻找0 day漏洞太难,所以攻击者会寻找一种更加便宜、可行的攻击入口——软件供应链攻击。软件供应链攻击的起因是因为使用了不安全的代码、不安全的协议、或者服务器基础设施未保护。

对攻击者来说,供应链可以提供大量的潜在受害者,回报率非常高。所以,这其实已经成为一个行业问题,需要多方关注和协同去解决,比如软件开发者和厂商在代码编写方面、系统管理员在软件安装过程中、安全管理员找到攻击并提出解决方案等等。

对软件开发商和开发人员的建议

1.保持基础设施的安全性,并及时更新。

· 对OS和软件及时打补丁。

· 进行手动完整性控制确保只有可信的工具才能在设备上运行。

· 对管理员进行多因子认证。

2.把安全的软件更新作为软件开发生命周期的一部分。

· 更新通信信道要使用SSL,并应用证书锁定技术。

· 对包括配置文件、脚本、XML文件、包等各类文件签名。

· 检查数字签名,软件更新器不应接受通用的输入和命令。

3.开发应对供应链攻击的应急响应

· 供应链攻击事件发生后,应该及时和通知客户准确的信息。

企业如何应对供应链攻击

· 对重要系统和设备使用电子围栏系统。Windows 10 S模式就只允许安装来自Microsoft Store的应用程序,确保经过微软的安装验证。

· 应用强代码完整性策略。应用控制是限制用户可以运行的应用的,同时也限制运行在系统核心态的代码,可以拦截未签名的脚本和其他不可信的代码。

· 使用终端检测和响应解决方案。

在供应链攻击中,真实的入侵活动其实是发生在网络之外的,但是企业可以在恶意软件到达企业边界后检测和拦截恶意软件。

源链接

Hacking more

...