三、典型案例分析
3.1 Rugpull 工厂黑色产业链分析
近期发生了多起 Rug Pull 事件,SharkTeam 安全研究团队对这些事件进行了详细分析。在分析过程中,我们发现 BNB Chain 上的 Rugpull 工厂合约在过去一个月内已经发起了 70 多次 Rugpull。接下来,我们将从资金溯源、欺诈行为模式等方面进行分析。
鉴于篇幅所限,我们将主要分析 SEI、X、TIP 和 Blue 几个代币事件。这些代币都是由代币工厂合约 0xDC4397ffb9F2C9119ED9c32E42E3588bbD377696 进行 createToken 操作创建的。
在 createToken 函数中,创建代币时需要传入以下参数:代币名称、代币符号、精度、供应量、代币所有者地址、创建代币对的工厂合约地址以及 BUSD-T 稳定币地址。其中,创建代币对的工厂合约使用了 PancakeSwap 的工厂合约,并且每个代币都有不同的所有者地址。
让我们一起看看 SEI、X、TIP 和 Blue 几个代币的 Rugpull 工厂欺诈行为模式。
(1)SEI
首先,SEI 代币所有者 0x0a8310eca430beb13a8d1b42a03b3521326e4a58 以 1 u 的价格兑换了 249 枚 SEI。
然后, 0x6f9963448071b88FB23Fd9971d24A87e5244451A 进行了批量买入和卖出操作。在买入和卖出操作下,代币的流动性明显增加,价格也发生了上涨。
通过钓鱼等方式宣传,诱惑大量用户购买,随着流动性增加,代币价格翻倍。
代币的价格达到一定的数值时,代币所有者进场 sell 操作进行 Rugpull。可以从下图看出,进场收割时间段和价格都不同。
(2)X、TIP、Blue
首先 X、TIP 和 Blue 代币所有者 0x44A028Dae3680697795A8d50960c8C155cBc0D74 用 1 u 兑换了相应的代币。然后,和 Sei 代币一样。0x6f9963448071b88FB23Fd9971d24A87e5244451A 批量的买入和卖出操作。在买入和卖出操作下,流动性明显增加,价格上涨。
然后通过钓鱼等一些途径宣传,诱惑大量的用户进行购买,随着流动性增加,代币价格也翻倍。
和 SEI 一样,代币的价格达到一定的数值时,代币所有者进场 sell 操作进行 Rugpull。可以从下图看出,进场收割时间段和价格都不同。
SEI、X、TIP 和 Blue 几个代币的波动图如下:
我们从资金溯源、行为模式中可以得知:
在资金溯源内容中,代币工厂的创建者和代币创建者的资金来自多个 EOA 账户。不同账户之间也有资金往来,其中一些通过钓鱼地址转移,一些通过之前进行代币 Rugpull 行为获取,还有一些通过 tornado cash 等混币平台获得。采用多种方式进行资金转移旨在构建复杂错综的资金网络。不同地址还创建了多个代币工厂合约,并大量生产代币。
在分析代币 Rugpull 行为时,我们发现地址 0x6f9963448071b88FB23Fd9971d24A87e5244451A 是其中一个资金来源。操作代币价格时,也采用了批量方式。地址 0x072e9A13791f3a45fc6eB6AD38e6ea258C080cc3 也充当了资金提供者的角色,向多个代币持有者提供相应的资金。
总而言之,这一系列行为背后有一个分工明确的 Web3 诈骗团伙,构成了一个黑色产业链,主要涉及热点搜集、自动发币、自动交易、虚假宣传、钓鱼攻击、Rugpull 收割等环节,多发生于 BNBChain。所发的 Rugpull 虚假代币都与行业热点事件紧密相关,具有较强的迷惑性和鼓动性。用户需时刻提高警惕,保持理性,避免不必要的损失。
3.2 典型钓鱼攻击链上资产转移分析
2023 年 9 月 7 日,地址(0x13e382)遭遇钓鱼攻击,损失超 2,400 万美元。钓鱼黑客通过资金盗取、资金兑换和分散式地资金转移,最终损失资金中 3,800ETH 被相继分批次转移至 Tornado.Cash、10,000ETH 被转移至中间地址(0x702350),以及 1078,087 DAI 至今保留在中间地址(0x4F2F02)。
根据 SharkTeam 链上大数据分析平台 ChainAegis 的跟踪分析,我们将对典型钓鱼攻击的诈骗过程、资金转移情况以及诈骗者链上行为进行相关分析。
(1) 钓鱼欺诈过程
受害者地址(0x13e382)通过‘Increase Allowance’向诈骗者地址 1(0x4c10a4)授权 rETH 和 stETH。
诈骗者地址 1(0x4c10a4)将受害者地址(0x13e382)账户中的 9,579 stETH 转账至诈骗者地址 2(0x693b72),金额约 1,532 万美元。
诈骗者地址 1(0x4c10a4)将受害者地址(0x13e382)账户中的 4,850 rETH 转账至诈骗者地址 2(0x693b72),金额约 841 万美元。
攻击者将盗取的 stETH 和 rETH 兑换成 ETH。自 2023-09-07 凌晨开始,诈骗者地址 2(0x693b72)分别在 UniswapV2、UniswapV3、Curve 平台进行多笔兑换交易,将 9,579 stETH 和 4,850 rETH 全部兑换成 ETH,兑换合计 14,783.9413 ETH。
stETH 兑换:
rETH 兑换:
部分 ETH 兑换成 DAI。诈骗者地址 2(0x693b72)将 1,000ETH 通过 UniswapV3 平台兑换成 1,635,047.761675421713685327 DAI。
诈骗者通过分散式资金转移手段,将盗用资金转移至多个中间钱包地址,合计 1,635,139 DAI 和 13,785 ETH。其中 1,785 ETH 被转移至中间地址(0x4F2F02),2,000 ETH 被转移至中间地址(0x2ABdC2)以及 10,000 ETH 被转移至中间地址(0x702350)。此外,中间地址(0x4F2F02)于次日获得 1,635,139 DAI。
该地址经一层资金转移,拥有 1,785 ETH 和 1,635,139 DAI。
(1) 分散转移资金 DAI,以及小额兑换成 ETH
首先,诈骗者于 2023-09-07 日凌晨开始陆续通过 10 笔交易转移 529,000 个 DAI。随后,前 7 笔共 452,000 DAI 已由中间地址转至 0x4E5B2e(FixedFloat),第 8 笔,由中间地址转至 0x6cC5F6(OKX),最后 2 笔共 77,000 DAI 由中间地址转至 0xf1dA17(eXch)。
其次在 9 月 10 日,通过 UniswapV2 将 28,052 DAI 兑换成 17.3 ETH。
经过转移后,该地址最终还剩余盗取资金 1078,087 DAI 未转出。
(2)ETH 资金转移
诈骗者从 9 月 8 日开始到 9 月 11 号,陆续进行 18 笔交易,将 1,800ETH 全部转移至 Tornado.Cash。
该地址经一层资金转移,拥有 2,000ETH。首先该地址于 9 月 11 日将 2000ETH 转移至中间地址(0x71C848)。
随后中间地址(0x71C848)分别在 9 月 11 日和 10 月 1 日,通过两次资金转移,总计 20 笔交易,每笔转移 100ETH,总计转移 2000ETH 至 Tornado.Cash。
该地址经一层资金转移,拥有 10,000 ETH。截至 2023 年 10 月 08 日,10,000 ETH 仍在该地址账户中未被转移。
经过对诈骗者地址 1(0x4c10a4)和诈骗者地址 2(0x693b72)的历史交易进行分析,,发现曾有一个 EOA 地址(0x846317)转账 1.353 ETH 至诈骗者地址 2(0x693b72),而该 EOA 地址资金来源涉及与中心化交易所 KuCoin 和 Binance 的热钱包地址。
总结: 诈骗者盗用受害地址的资金后,进行了一系列资金兑换和资金转移,如下图所示。期间总共涉及两个诈骗地址:诈骗者地址 1(0x4c10a4)和诈骗者地址 2(0x693b72),4 个中间地址:中间地址(0x4F2F02)、中间地址(0x2ABdC2)、中间地址(0x702350)和中间地址(0x71C848)。均被 ChainAegis 列入黑名单地址库,并且对中间地址进行实时监测。
3.3 朝鲜 APT 组织 Lazarus Group,攻击手法及洗钱模式
国家级 APT(Advanced Persistent Threat,高级持续性威胁)组织是有国家背景支持的顶尖黑客团伙,专门针对特定目标进行长期的持续性网络攻击。朝鲜 APT 组织 Lazarus Group 就是非常活跃的一个 APT 团伙,其攻击目的主要以窃取资金为主,堪称全球金融机构的最大威胁,近年来多起加密货币领域的攻击和资金窃取案件就是他们所为。
据维基百科资料,Lazarus Group 成立于 2007 年,隶属于北韩人民军总参谋部侦察总局第三局旗下的 110 号研究中心,专门负责网络战。该组织分为 2 个部门,一个是大约 1700 名成员的 BlueNorOff(也称为 APT38),负责通过伪造 SWIFT 订单进行非法转账,专注于利用网络漏洞谋取经济利益或控制系统来实施金融网络犯罪,此部门针对金融机构和加密货币交易所。另一个是大约 1600 名成员的 AndAriel,以韩国为攻击目标。
已知 Lazarus Group 最早的攻击活动是 2009 年其利用 DDoS 技术来攻击韩国政府的「特洛伊行动」。而最著名的一次是 2014 年对索尼影业的攻击,原因是索尼上映关于暗杀朝鲜领导人金正恩的喜剧。
该组织旗下机构 BlueNorOff 的一次知名攻击是 2016 年的孟加拉国银行攻击案,他们试图利用 SWIFT 网络从属于孟加拉国中央银行的纽约联邦储备银行账户非法转移近 10 亿美元。在完成了几笔交易(2000 万美元追踪到斯里兰卡,8100 万美元追踪到菲律宾)后,纽约联邦储备银行以拼写错误引起的怀疑为由阻止了其余交易。
自 2017 年以来,该组织开始对加密行业进行攻击,并获利至少 10 多亿美元。
Lazarus 早期多利用僵尸网络对目标进行 DDos 攻击;目前主要攻击手段转为鱼叉攻击、水坑攻击、供应链攻击等手法,还针对不同人员采取定向社会工程学攻击。
战术特征:
(1)使用邮件鱼叉攻击和水坑攻击
(2)攻击过程会利用系统破坏或勒索应用干扰事件的分析
(3)利用 SMB 协议漏洞或相关蠕虫工具实现横向移动和载荷投放
(4)攻击银行 SWIFT 系统实现资金盗取
技术特征:
(1)使用多种加密算法,包括 RC4,AES, Spritz 等标准算法,也使用 XOR 及自定义字符变换算法
(2)主要使用虚假构造的 TLS 协议,通过在 SNI record 中写入白域名来 Bypass IDS。也使用 IRC、HTTP 协议
(3)通过破坏 MBR、分区表或者向扇区写入垃圾数据从而破坏系统
(4)使用自删除脚本
攻击手段:
(1)鱼叉攻击:鱼叉攻击是计算机病毒术语,是黑客攻击方式之一。将木马程序作为电子邮件的附件,并起上一个极具诱惑力的名称,发送给目标电脑,诱使受害者打开附件,从而感染木马。Lazarus 通常以邮件夹带恶意文档作为诱饵,常见文件格式为 DOCX,后期增加了 BMP 格式。入侵方式主要利用恶意宏与 Office 常见漏洞、0day 漏洞、植入 RAT 的手法。
(2)水坑攻击:顾名思义,是在受害者必经之路设置了一个「水坑 ( 陷阱 )」,最常见的做法是,黑客分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,先将此网站「攻破」并植入攻击代码,一旦攻击目标访问该网站就会「中招」。Lazarus 通常针对贫穷的或欠发达地区的小规模银行金融机构使用水坑攻击,这样就可以在短时间内大范围盗取资金。2017 年,Lazarus 对波兰金融监管机构发动水坑攻击,在网站官方网站植入恶意的 JavaScript 漏洞,导致波兰多家银行被植入恶意程式。此次攻击感染了 31 个国家的 104 个组织,大多数目标是位于波兰、智利、美国、墨西哥和巴西的金融机构。
(3)社工攻击:社会工程攻击,是一种利用「社会工程学」来实施的网络攻击行为。在计算机科学中,社会工程学指的是通过与他人的合法地交流,来使其心理受到影响,做出某些动作或者是透露一些机密信息的方式。这通常被认为是一种欺诈他人以收集信息、行骗和入侵计算机系统的行为。Lazarus 擅长将社工技术运用到攻击周期中,无论是投递的诱饵还是身份伪装,都令受害者无法甄别,从而掉入它的陷阱中。2020 年期间,Lazarus 在领英网站伪装招聘加密货币工作人员并发送恶意文档,旨在获取凭证从而盗取目标加密货币。2021 年,Lazarus 以网络安全人员身份潜伏在 Twitter 中,伺机发送嵌有恶意代码的工程文件攻击同行人员。
武器库:
Lazarus 使用的网络武器中包含大量定制工具,并且使用代码有很多相似之处。肯定地说,这些软件来自相同的开发人员,可以说明 Lazarus 背后有具有一定规模的开发团队。Lazarus 拥有的攻击能力和工具包括 DDoS botnets、 keyloggers、 RATs、wiper malware,使用的恶意代码包括 Destover、Duuzer 和 Hangman 等。
下面以一起典型的 Lazarus 针对加密行业的鱼叉攻击为例进行分析。Lazarus 通过邮件附件或链接的方式,诱导目标工作人员下载恶意压缩包,并执行压缩包中的恶意文件。
邮件末尾的「CoinbaseJobDescription」即为恶意链接并诱导用户点击,一旦点击用户就会下载恶意压缩包,并执行压缩包中的恶意文件。压缩包分为三种情况:
(1)释放加密的诱饵文件和一个带有恶意命令的 LNK 文件,由 LNK 文件下载后续载荷,后续载荷释放文件密钥和恶意脚本;
(2)释放 LNK 文件,LNK 文件下载后续载荷,后续载荷释放诱饵文件和恶意脚本;
(3)释放带宏的 OFFICE 文件,由恶意宏下载后续载荷并执行。
以样本 b94a13586828f8f3474f7b89755f5e7615ff946efd510a4cca350e6e1b4af440 为例进行分析。该样本文件名为 Ledger_Nano_S&X_Security_Patch_Manual.zip,是一个 zip 压缩包,文件名中的 LedgerNano 是一款硬件钱包,用于保护加密资产,S 和 X 是其型号。
该样本伪装成 LedgerNano 的安全补丁手册,解压后会释放一个伪装成 pdf 文件的快捷方式文件:
用户双击该快捷方式后,会执行命令:
该命令中,使用 cmd 静默执行 expand 程序,将 msiexec.exe 复制到 %appdata%\pat.exe 路径下,然后使用 pcalua.exe 打开 pat.exe,从远程服务器上下载 msi 文件并执行。这个过程中使用了多种逃避木马检测的技术:
(1)expand.exe 是系统用于解压压缩包的程序,但可以被用来进行文件复制,代替敏感的 copy 命令;
(2)复制并重命名 msiexec.exe,以逃避对 msiexec.exe 的执行检测;
(3)pcalua.exe 是 windows 程序兼容性助手,是系统的白名单程序,攻击者使用该程序调用重命名为 pat.exe 的 msiexec.exe,访问远程服务器上的恶意 msi 文件,从而逃避检测。
获取到的 MSI 文件运行后,会执行内嵌的脚本:
该脚本为 Lazarus 典型的一阶段脚本,其功能包括:
(1)下载并打开正常的 PDF 文件从而迷惑受害者;
(2)向启动目录释放 Edge.lnk 文件,完成自启动;lnk 文件执行的命令与样本解压后的 lnk 文件基本相同,也是使用 pcalua.exe 调用重命名后的 msiexec.exe 加载远程服务器上的 msi 文件;该文件的名称和图标都伪装为 Edge 浏览器,使受害者降低警惕;
(3)调用 WMI 命令获取进程名称列表并进行拼接,然后检查如下进程名称:
「kwsprot」:金山毒霸相关进程
「npprot」:Net ProtectorAntiVirus 相关进程
「fshoster」:F-Secure 相关进程
(4)如果拼接后的进程名称中存在上述字符串之一,则会使用 cscript.exe 执行后续脚本,否则使 npprot 用 wscript.exe;
(5)将选定的脚本执行程序复制到 %public% 目录下;并且如果进程名称中存在 kwsprot 或 npprot,会将用于执行脚本的程序重命名为 icb.exe,以逃避检测;
(6)解码 base64 编码的后续脚本,释放到临时文件夹下,命名为 RgdASRgrsF.js
(7)使用复制到 %public% 目录下的脚本执行程序,执行 RgdASRgrsF.js
RgdASRgrsF.js 是 Lazarus 典型的二阶段脚本,其功能非常简单,生成随机的 UID 后与服务器通讯,然后循环接受服务器的命令并执行;所执行的命令通常一些收集系统信息的命令:
至此攻击已经完成,黑客可以在用户电脑上获得他所需的文件或密码等敏感信息。通过对 Lazarus 可以发现,目前其攻击的目标行业包括政府、军队、金融、核工业、化工、医疗、航空航天、娱乐媒体和加密货币,从 2017 年开始加密货币行业的比重明显增大。
目前已明确统计到的 Lazarus 攻击加密领域的安全事件和损失如下:
超过 30 亿美元的资金在网络攻击中被 Lazarus 盗取,据悉,Lazarus 黑客组织背后有着朝鲜战略利益的支撑,为朝鲜的核弹、弹道导弹计划提供资金。为此,美国宣布悬赏 500 万美元,对 Lazarus 黑客组织进行制裁。美国财政部也已将相关地址添加到 OFAC 特别指定国民(SDN)名单中,禁止美国个人、实体和相关地址进行交易,以确保国家资助的集团无法兑现这些资金,以此进行制裁。以太坊开发商 Virgil Griffith 因帮助朝鲜使用虚拟货币逃避制裁而被判处五年零三个月的监禁,今年 OFAC 也制裁了三名与 Lazarus Group 相关人员,其中两名被制裁者 Cheng Hung Man 和 Wu Huihui 是为 Lazarus 提供加密货币交易便利的场外交易 (OTC) 交易员,而第三人 Sim Hyon Sop 提供了其他财务支持。
尽管如此,Lazarus 已完成了超 10 亿美元的资产转移和清洗,他们的洗钱模式分析如下。以 Atomic Wallet 事件为例,去除黑客设置的技术干扰因素后(大量的假代币转账交易 + 多地址分账),可以得到黑客的资金转移模式:
图:Atomic Wallet 受害者 1 资金转移视图
受害者 1 地址 0xb02d...c6072 向黑客地址 0x3916...6340 转移 304.36 ETH,通过中间地址 0x0159...7b70 进行 8 次分账后,归集至地址 0x69ca...5324。此后将归集资金转移至地址 0x514c...58f67,目前资金仍在该地址中,地址 ETH 余额为 692.74 ETH(价值 127 万美元)。
图:Atomic Wallet 受害者 2 资金转移视图
受害者 2 地址 0x0b45...d662 向黑客地址 0xf0f7...79b3 转移 126.6 万 USDT,黑客将其分成三笔,其中两笔转移至 Uniswap,转账总额为 126.6 万 USDT;另一笔向地址 0x49ce...80fb 进行转移,转移金额为 672.71ETH。受害者 2 向黑客地址 0x0d5a...08c2 转移 2.2 万 USDT,该黑客通过中间地址 0xec13...02d6 等进行多次分账,直接或间接将资金归集至地址 0x3c2e...94a8。
这种洗钱模式与之前的 Ronin Network、Harmony 攻击事件中的洗钱模式高度一致,均包含三个步骤:
(1)被盗资金整理兑换:发起攻击后整理原始被盗代币,通过 dex 等方式将多种代币 swap 成 ETH。这是规避资金冻结的常用方式。
(2)被盗资金归集:将整理好的 ETH 归集到数个一次性钱包地址中。Ronin 事件中黑客一共用了 9 个这样的地址,Harmony 使用了 14 个,Atomic Wallet 事件使用了近 30 个地址。
(3)被盗资金转出:使用归集地址通过 Tornado.Cash 将钱洗出。这便完成了全部的资金转移过程。
除了具备相同的洗钱步骤,在洗钱的细节上也有高度的一致性:
(1)攻击者非常有耐心,均使用了长达一周的时间进行洗钱操作,均在事件发生几天后开始后续洗钱动作。
(2)洗钱流程中均采用了自动化交易,大部分资金归集的动作交易笔数多,时间间隔小,模式统一。
通过分析,我们认为 Lazarus 的洗钱模式通常如下:
(1)多账号分账、小额多笔转移资产,提高追踪难度。
(2)开始制造大量假币交易,提高追踪难度。以 Atomic Wallet 事件为例,27 个中间地址中有 23 个账户均为假币转移地址,近期在对 Stake.com 的事件分析中也发现采用类似技术,但之前的 Ronin Network、Harmony 事件并没有这种干扰技术,说明 Lazarus 的洗钱技术也在升级。
(3)更多的采用链上方式(如 Tonado Cash)进行混币,早期的事件中 Lazarus 经常使用中心化交易所获得启动资金或进行后续的 OTC,但近期越来越少的使用中心化交易所,甚至可以认为是尽量在避免使用中心化交易所。
Discord:https://discord.gg/jGH9xXCjDZ