LCXHacker热钱包攻击事件反洗钱分析
1. 流入资金分析
黑客地址:0x165402279f2c081c54b00f0e08812f3fd4560a05
分析LCXHacker的洗钱流程,先利用Blocksec的反洗钱工具MetaSleuth
分析该事件,先查看黑客流入的资金
将其分析结果与Etherscan上交易历史进行对比,观察外部交易和Token transfer ,发现一致:
2. 流出资金分析
当黑客获利了多种类型代币的时候,如何进行高效的反洗钱追踪?感觉现有的工具效果并不好,应该建立怎样的模型进行表征?
还是先通过MetaSleuth
的大致资金流向,再结合Etherscan进行分析,这里看到很多都是和DEX进行交互,可能只是对多类型的代币进行了兑换,会导致很多无用的交易
先Token Transfer进行一步一步分析,查看一下交易详情:
- 一最开始的一笔交易为例,在Etherscan可以看到相应的代币和ETH转移记录:
这些交易太多复杂了,两种方式对这样的地址和智能合约的交易进行分析:
感觉可以建立一个代币模型,重点分析特定账户的代币流入和流出
- 如果我们把所有的内部交易和ERC20的交易都获取后,分析每个账户的流入和流出
- 0x1650把所有获利的USDC在Token事件中,转移到0x2057
- 分析所有交易中0x2057的流入,发现主要是1102ETH + 可能若干的USDT
- 最后这笔资金转入0x1111,转入0x1650黑客,最终结果只是相当于把USDC兑换成ETH
是否可以获取到交易的智能合约代码,对智能合约代码进行分析,分析出代码交换行为的逻辑 ?
剩下的三笔交易都是代币兑换交易,将部分的LCX,全部的SAND,全部的QNT进行兑换成ETH
这里存在第二个问题,这里只兑换部分的LCX?是否对反洗钱追踪的结果有什么影响?
- 接着对其它的交易记录进行分析
- ChainLink Token全部兑换成ETH
- 部分EURe Token兑换成ETH
- 部分LCX兑换成ETH
- 全部MKR兑换成ETH
- 全部的ENJ兑换成ETH
- 接着看剩下的交易历史
- 这里前四个交易也都是将LCX兑换成ETH,但在第一个兑换交易结合,攻击者就进行Tornado.Cash存款,1570,随后又间隔着陆续存入120ETH
- 随后第五个交易也是LCX兑换ETH,随后将88.89ETH+5251192LCX全部转账给0x5c41
这里我们可以看到攻击者在大量的交易中只进行了三个步骤:
- 将绝大数Token兑换成ETH
- 存入Tornado.Cash
- 转移剩余资产到0x5c41
3. 洗钱路径分析
接着对0X5C41的交易历史进行分析
- 直接将ETH转账到0x2d06
- 这里通过UniswapV3将LCX兑换成ETH,一个交易示例如下:,这个交易过程和前述就存在一定区别,如果用统一的抽象模型对这样的代币模型进行表征?
- 这些LCX全部兑换成ETH,并转移到0x2d06中
接着对0x2d06的交易历史进行分析,全部转入了Tornado.Cash
4. 总结分析
这样攻击事件洗钱示例,并不复杂,但是如果用现有的工具BlockchainSpider进行分析的话:却有上百万条的交易记录,感觉太过于复杂。