【阿菜读论文】利用区块链获取指令服务器地址的恶意软件
论文简介
论文题目:Analysis and Takeover of the Bitcoin-Coordinated Pony Malware
PDF地址:https://www.cyber-threat-intelligence.com/publications/AsiaCCS2021-pony.pdf
这篇论文是来自blackhat大会上的一个议题,介绍了一款名叫Pony的恶意软件利用区块链上交易的金额来构造指令服务器的地址,达到逃避DNS黑名单的目的。
相关概念
下面是论文中比较有趣的概念
C&C server(command & control server)
恶意软件在感染了受害者主机后,会和C&C服务器取得联系,接收并执行攻击者的下达的命令。
DGAs(domain-generation algorithms):
DGAs通过算法生成大量的域名,用于与C&C服务器联系。恶意程序只要逐个访问生成的域名,找到有效的服务器地址即可。但防御者则需要将所有的域名都加入到黑名单中。
连接到指令服务器的方法演变史
把地址写到程序里
在最早的恶意软件中,是将指令服务器的地址直接写到软件中。对于这种方法,能够通过软件逆向的手段获取到指令服务器的地址,将该地址加入到黑名单中即可断绝恶意软件和指令服务器之间的联系。
算法动态生成
利用DGAs来生成指令服务器的地址,但是这种方法也是需要将生成算法写入到恶意程序中。同样的可以通过软件逆向的方法对算法进行研究,将算法生成的地址列表加入到黑名单中,从而断绝恶意软件和指令服务器之间的联系。
通过区块链中的交易生成
受感染的客户端将监视区块链交易,监视特定账户的交易,通过交易信息计算出指令服务器的地址并与其取得联系。由于比特币交易无法预测,对区块链的访问不可能在没有附带损害的情况下被普遍列入黑名单,交易也无法通过设计有选择性地从区块链中删除,这就引入了一种看似可以自由操控的指令服务器地址生成方法。但是在该方法中,被监视的账户也是需要写入到程序中的。
攻击方法
地址生成方法
恶意软件通过监视1BkeG
的收款交易,取最近两次交易的信息,进行简单的变换,构造出目标IP地址。
攻击过程
- 首先,对手向区块链发送两笔用作生成IP地址的交易;
- 其次,恶意软件通过网络钓鱼、垃圾邮件传播,当用户点击时就会触发,从而运行恶意软件;
- 恶意软件解压,并从区块链获取命令控制地址;
- 恶意软件连接C&C服务器,下载一个加密的动态链接库(DLL);
- 解包后通过发送加密的HTTP POST消息提取用户的敏感数据。
恶意软件的自我保护
为了能够访问到区块链查询网站,它准备了三个API:blockchain.info,api.coinmarketcap.com,api.blockcypher.com
如果恶意软件无法联系任何区块链api,或从加载服务器接收到无效文件,它仍然会删除原始文件,不添加任何东西到启动选项卡,隐藏感染文件。
恶意软件的漏洞
恶意软件只监测1BkeG
的收款交易,对于是哪个账户发给它的并不作要求。所以你也可以给1BkeG
转两笔账,它就会构造出错误的指令服务器地址,从而找不到家了。(嘿)
在研究人员第三次进行干扰后,敌人修改了他们的设置,以解决关键的设计缺陷。地址生成信息不再是1BkeG
的收款交易,而是改为了1BkeG
的付款交易。