LCXHacker热钱包攻击事件洗钱分析

LCXHacker热钱包攻击事件反洗钱分析

1. 流入资金分析

黑客地址:0x165402279f2c081c54b00f0e08812f3fd4560a05

分析LCXHacker的洗钱流程,先利用Blocksec的反洗钱工具MetaSleuth分析该事件,先查看黑客流入的资金

image-20250113154403748

将其分析结果与Etherscan上交易历史进行对比,观察外部交易和Token transfer ,发现一致:

image-20250113154633584

image-20250113154649786

2. 流出资金分析

当黑客获利了多种类型代币的时候,如何进行高效的反洗钱追踪?感觉现有的工具效果并不好,应该建立怎样的模型进行表征?

还是先通过MetaSleuth的大致资金流向,再结合Etherscan进行分析,这里看到很多都是和DEX进行交互,可能只是对多类型的代币进行了兑换,会导致很多无用的交易

image-20250113155306111

先Token Transfer进行一步一步分析,查看一下交易详情:

image-20250113161247298

  1. 一最开始的一笔交易为例,在Etherscan可以看到相应的代币和ETH转移记录:

image-20250113161849382

这些交易太多复杂了,两种方式对这样的地址和智能合约的交易进行分析:

  • 感觉可以建立一个代币模型,重点分析特定账户的代币流入和流出

    • 如果我们把所有的内部交易和ERC20的交易都获取后,分析每个账户的流入和流出
    • 0x1650把所有获利的USDC在Token事件中,转移到0x2057
    • 分析所有交易中0x2057的流入,发现主要是1102ETH + 可能若干的USDT
    • 最后这笔资金转入0x1111,转入0x1650黑客,最终结果只是相当于把USDC兑换成ETH
  • 是否可以获取到交易的智能合约代码,对智能合约代码进行分析,分析出代码交换行为的逻辑 ?

剩下的三笔交易都是代币兑换交易,将部分的LCX,全部的SAND,全部的QNT进行兑换成ETH

这里存在第二个问题,这里只兑换部分的LCX?是否对反洗钱追踪的结果有什么影响?

  1. 接着对其它的交易记录进行分析

image-20250113164248787

  • ChainLink Token全部兑换成ETH
  • 部分EURe Token兑换成ETH
  • 部分LCX兑换成ETH
  • 全部MKR兑换成ETH
  • 全部的ENJ兑换成ETH
  1. 接着看剩下的交易历史

image-20250113164921592

  • 这里前四个交易也都是将LCX兑换成ETH,但在第一个兑换交易结合,攻击者就进行Tornado.Cash存款,1570,随后又间隔着陆续存入120ETH
  • 随后第五个交易也是LCX兑换ETH,随后将88.89ETH+5251192LCX全部转账给0x5c41

这里我们可以看到攻击者在大量的交易中只进行了三个步骤:

  • 将绝大数Token兑换成ETH
  • 存入Tornado.Cash
  • 转移剩余资产到0x5c41

3. 洗钱路径分析

接着对0X5C41的交易历史进行分析

  • 直接将ETH转账到0x2d06
  • 这里通过UniswapV3将LCX兑换成ETH,一个交易示例如下:,这个交易过程和前述就存在一定区别,如果用统一的抽象模型对这样的代币模型进行表征?

image-20250113171339362

  • 这些LCX全部兑换成ETH,并转移到0x2d06中

接着对0x2d06的交易历史进行分析,全部转入了Tornado.Cash

4. 总结分析

image-20250113172348727

这样攻击事件洗钱示例,并不复杂,但是如果用现有的工具BlockchainSpider进行分析的话:却有上百万条的交易记录,感觉太过于复杂。