背景概述
2022年8月3日,Solana公链上发生大规模盗币事件,大量用户在不知情的情况下被转移SOL和SPL代币。慢雾安全团队第一时间介入分析,并在Slope团队的邀请下对Slope钱包应用进行分析,分析表明:Slope钱包在2022年6月24日及之后发布的版本存在向第三方应用监控服务发送私钥或助记词信息的现象。
但从对Slope钱包应用进行调查到现在,无法明确证明此次事件的根源就是Slope钱包的问题,于是慢雾安全团队开始对Slope的服务器进行分析取证。
分析过程
事件发生之后各方的关注点主要聚焦在调查本次事件的根源以及资金的追踪和挽救的可能性。于是慢雾安全团队制定相关的计划,开始从链下和链上两个部分着手调查和分析。
在事件根源调查这个方向上,慢雾安全团队重点专注在对Slope服务器的分析取证。这里面有大量且复杂的工作需要推进,也需要有更多明确的证据来解释这次的大规模盗币事件的根源。
资金追踪和挽救的可能性这部分工作,慢雾安全团队主要依靠MistTrack的追踪分析能力、标签数据能力并结合情报能力,尽最大的努力识别和追踪黑客的链上行为。并且也和Slope团队沟通交流挽救的可能性,Slope团队也在尝试与黑客沟通希望通过发布漏洞赏金的方式,鼓励黑客归还资产,共同维护Solana这个生态的健康发展。
本篇仅向社区用户同步阶段性的调查情况,还有很多的分析工作正在进行,并且不断推进。各方人员不仅是慢雾,还有其他第三方安全团队,以及一些特殊力量也在努力帮忙调查中,希望这次事件最终能够有相对明确的结论。
注:本文所提到的Sentry服务指的是Slope团队私有化部署的Sentry服务,并非使用Sentry官方提供的接口和服务。
慢雾:Uwerx遭受攻击因为接收地址会多销毁掉from地址转账金额1%的代币:金色财经报道,Uwerx遭到攻击,损失约174.78枚ETH,据慢雾分析,根本原因是当接收地址为 uniswapPoolAddress(0x01)时,将会多burn掉from地址的转账金额1%的代币,因此攻击者利用uniswapv2池的skim功能消耗大量WERX代币,然后调用sync函数恶意抬高代币价格,最后反向兑换手中剩余的WERX为ETH以获得利润。据MistTrack分析,黑客初始资金来自Tornadocash转入的10 BNB,接着将10 BNB换成1.3 ETH,并通过Socket跨链到以太坊。目前,被盗资金仍停留在黑客地址0x605...Ce4。[2023/8/2 16:14:10]
一些疑问点
在同步分析的情况之前,我们先来回答上篇文章的分析过程中的一些疑问点:
1.Sentry的服务收集用户钱包助记词的行为是否属于普遍的安全问题?
答:Sentry主要用于收集相关应用服务在运行状态时出现的异常或者错误日志信息,在配置错误的情况下,可能会收集到预期之外的数据,如:私钥或助记词等信息,因此并非普遍存在的安全问题。开发人员在使用第三方应用监控服务切记不能在生成环境中开启Debug模式。
2.Phantom使用了Sentry,那么Phantom钱包会受到影响吗?
答:虽然Phantom使用了第三方应用监控服务但是慢雾安全团队通过对Phantom钱包历史各版本的监测,并未明显发现Sentry上传私钥/助记词的行为。
3.SolanaFoundation提供的调研数据显示本次事件近60%被盗用户使用Phantom钱包,30%左右地址使用Slope钱包,其余用户使用TrustWallet等,那这60%被盗用户被黑的原因是什么呢?
慢雾:Transit Swap事件中转移到Tornado Cash的资金超过600万美元:金色财经报道,慢雾 MistTrack 对 Transit Swap 事件资金转移进行跟进分析,以下将分析结论同步社区:
Hacker#1 攻击黑客(盗取最大资金黑客),获利金额:约 2410 万美元
1: 0x75F2...FFD46
2: 0xfa71...90fb
已归还超 1890 万美元的被盗资金;12,500 BNB 存款到 Tornado Cash;约 1400 万 MOONEY 代币和 67,709 DAI 代币转入 ShibaSwap: BONE Token 合约地址。
Hacker#2 套利机器人-1,获利金额:1,166,882.07 BUSD
0xcfb0...7ac7(BSC)
保留在获利地址中,未进一步转移。
Hacker#3 攻击模仿者-1,获利金额:356,690.71 USDT
0x87be...3c4c(BSC)
Hacker#4 套利机器人-2,获利金额:246,757.31 USDT
0x0000...4922(BSC)
已全部追回。
Hacker#5 套利机器人-3,获利金额:584,801.17 USDC
0xcc3d...ae7d(BSC)
USDC 全部转移至新地址 0x8960...8525,后无进一步转移。
Hacker#6 攻击模仿者-2,获利金额:2,348,967.9 USDT
0x6e60...c5ea(BSC)
Hacker#7 套利机器人-4,获利金额:5,974.52 UNI、1,667.36 MANA
0x6C6B...364e(ETH)
通过 Uniswap 兑换为 30.17 ETH,其中 0.71 支付给 Flashbots,剩余 ETH 未进一步转移。[2022/10/6 18:41:10]
答:经过比对发现服务器上的私钥和助记词派生出来的地址与受害者地址有交集的有5个ETH地址和1388个Solana地址。目前的调查情况看,还没有明确的证据能够解释另外部分用户钱包被黑的原因。
慢雾:Solana公链上发生大规模盗币,建议用户先将热钱包代币转移到硬件钱包或知名交易所:8月3日消息,据慢雾区情报,Solana公链上发生大规模盗币事件,大量用户在不知情的情况下被转移SOL和SPL代币,慢雾安全团队对此事件进行跟踪分析:
已知攻击者地址:
Htp9MGP8Tig923ZFY7Qf2zzbMUmYneFRAhSp7vSg4wxV、CEzN7mqP9xoxn2HdyW6fjEJ73t7qaX9Rp2zyS6hb3iEu、5WwBYgQG6BdErM2nNNyUmQXfcUnB68b6kesxBywh1J3n、GeEccGJ9BEzVbVor1njkBCCiqXJbXVeDHaXDCrBDbmuy
目前攻击仍在进行,从交易特征上看,攻击者在没有使用攻击合约的情况下,对账号进行签名转账,初步判断是私钥泄露。不少受害者反馈,他们使用过多种不同的钱包,以移动端钱包为主,我们推测可能问题出现在软件供应链上。在新证据被发现前,我们建议用户先将热钱包代币转移到硬件钱包或知名交易所等相对安全的位置,等待事件分析结果。[2022/8/3 2:55:22]
4.Sentry作为一个使用非常广泛的服务,会不会是Sentry官方遭遇了入侵?从而导致了定向入侵加密货币生态的攻击?
答:目前暂无证据表明Sentry官方遭到了入侵和攻击,Slope钱包使用的Sentry是内部搭建的服务,因此和官方服务被入侵无直接关系。
链下分析部分
链下部分慢雾安全团队主要聚焦排查链下服务器、相关后台等被入侵的可能性,工作的重点是对Slope服务器进行外围服务器资产风险排查,服务器的入侵痕迹排查,Sentry数据库分析,服务器镜像分析,DNS劫持的可能性分析。如下是排查和分析的情况:
慢雾:攻击Ronin Network的黑客地址向火币转入3750枚 ETH:3月30日消息,慢雾发推称,攻击Axie Infinity侧链Ronin Network的黑客地址向交易所火币转入3750枚ETH。此前金色财经报道,Ronin桥被攻击,17.36万枚ETH和2550万USDC被盗。[2022/3/30 14:26:38]
1.外围服务器资产风险排查
Slope团队知道Slope钱包回传助记词和私钥信息之后,第一时间就关停了Slope钱包相关的服务。因此Slope钱包相关的服务已经不能通过直接访问,慢雾安全团队依靠互联网搜索引擎等工具对Slope外围服务器资产进行信息收集,包括slope.finance域名下的子域名和IP等进行模拟渗透测试分析,排查从外围可能存在的入侵风险点,通过分析和渗透测试并未发现存在可被直接入侵的风险点。
2.服务器的入侵痕迹排查
主要对第三方应用监控服务器进行内部排查,包括服务器登录日志,系统历史操作命令,可疑进程,可疑网络连接,可疑系统计划任务,数据删除和获取操作等,服务器内部还有5个Docker服务也进行同样的入侵痕迹排查。排查发现几个可疑登录IP为:113.*.*.*,114.*.*.*,153.*.*.*,这些IP是在06.24之前访问过第三方应用监控服务的后台。虽然这发生在回传私钥和助记词的时间之前,但是仍然存在可疑。
3.PostgreSQL数据库分析
由于助记词和私钥被Slope钱包的第三方应用监控服务回传到服务器上,所以慢雾安全团队也对服务器中可能存在私钥或助记词的位置进行了分析,分析发现私钥或助记词较大可能会留存在如下位置:
Sentry的数据库表中
PostgreSQL的数据库日志中
慢雾:DOD合约中的BUSD代币被非预期取出,主要是DOD低价情况下与合约锁定的BUSD将产生套利空间:据慢雾区情报,2022 年 3 月 10 日, BSC 链上的 DOD 项目中锁定的 BUSD 代币被非预期的取出。慢雾安全团队进行分析原因如下:
1. DOD 项目使用了一种特定的锁仓机制,当 DOD 合约中 BUSD 数量大于 99,999,000 或 DOD 销毁数量超过 99,999,000,000,000 或 DOD 总供应量低于 1,000,000,000 时将触发 DOD 合约解锁,若不满足以上条件,DOD 合约也将在五年后自动解锁。DOD 合约解锁后的情况下,用户向 DOD 合约中转入指定数量的 DOD 代币后将获取该数量 1/10 的 BUSD 代币,即转入的 DOD 代币数量越多获得的 BUSD 也越多。
2. 但由于 DOD 代币价格较低,恶意用户使用了 2.8 个 BNB 即兑换出 99,990,000 个 DOD。
3. 随后从各个池子中闪电贷借出大量的 BUSD 转入 DOD 合约中,以满足合约中 BUSD 数量大于 99,999,000 的解锁条件。
4. 之后只需要调用 DOD 合约中的 swap 函数,将持有的 DOD 代币转入 DOD 合约中,既可取出 1/10 转入数量的 BUSD 代币。
5. 因此 DOD 合约中的 BUSD 代币被非预期的取出。
本次 DOD 合约中的 BUSD 代币被非预期取出的主要原因在于项目方并未考虑到 DOD 低价情况下与合约中锁定的 BUSD 将产生套利空间。慢雾安全团队建议在进行经济模型设计时应充分考虑各方面因素带来的影响。[2022/3/10 13:48:45]
镜像磁盘已删除的数据中
Docker运行时的数据文件中
在分析过程中发现第三方应用监控服务采用了PostgreSQL数据库,其中nodestore_node表的data字段里发现存在第三方应用监控服务采集的私钥和助记词数据。经过分析调查得到以下信息:
私钥和助记词数据内容在nodestore_node表的数据库记录时间为2022.7.28-2022.8.5。
慢雾安全团队通过对数据解密和分析,发现私钥或助记词数据内容中记录的最早是2022.6.29上传的数据,也就是说Sentry在6月29号采集的数据延迟了一个月的时间才在2022.7.28开始陆续被存储到了PostgreSQL数据库的nodestore_node表,但是这部分延时的数据占较少,大部分的私钥和助记词采集的时间是集中在2022.07.28-2022.08.05。
进一步排查数据库操作日志,发现在7.28之前nodestore_node表存在SQL语句执行失败的记录,原因是键值冲突,经过深入排查和沟通发现是由于Kafka服务出错导致没有进行数据写入。
由于部分数据在日志记录和数据恢复的时候暂时不能恢复出完整的数据,需要进一步对数据进行修复,因此优先解密可以被完整恢复的数据,解密出来的地址数量为189个ETH地址和4914个Solana地址,有5073组助记词,而链上黑客事件的钱包地址有42个ETH地址和9231个Solana地址,经过比对发现服务器上的私钥和助记词派生出来的地址与受害者有交集的地址有5个ETH地址和1388个Solana地址。
在数据库操作日志中还发现另一个内部测试的应用com.slope.game在3月份也存在私钥和助记词的上报数据,该内部测试应用并未对外发布。
4.服务器镜像分析
慢雾安全团队对Sentry的云服务器的镜像进行分析,并对服务器磁盘已删除的数据进行恢复,并在恢复后的数据中发现了私钥和助记词信息。
5.DNS劫持的可能性分析
慢雾安全团队通过各方的能力以及全球情报资源,包括对DNS解析数据查询和分析,目前暂无明确证据能够证明域名o7e.slope.finance曾经发生过DNS劫持事件。
链下调查和分析的阶段性结论:
就现阶段的调查和分析的情况看,未发现外围服务器可以直接被入侵的风险点;未发现服务器被入侵的痕迹但是对可疑IP仍需要继续调查;DNS劫持的可能性较小;已在数据库表、数据库日志文件、磁盘已删除文件恢复后的数据中发现了私钥和助记词信息。
链上分析部分
链上部分主要聚焦于风险资金评估、被盗资金转移和黑客痕迹分析,重点梳理分析了以下几点内容:
1.风险资金评估
根据Solana链、ETH链、BSC链的被盗资金情况,慢雾安全团队将风险资金分为以下两类:
风险资金:黑客具有地址权限的资金。
疑似风险资金:黑客可能具有地址权限的资金。
根据以下地址列表进行风险资金评估:
被盗地址助记词映射到其他链的地址
被盗地址助记词通过派生路径推导出来的地址
排除风险资金地址列表,根据以下地址列表进行疑似风险资金评估:
Slope服务器上存在助记词/私钥记录的地址
Slope服务器上存在的助记词映射到其他链的地址
Slope服务器上存在的助记词通过派生路径推导出来的地址
未发现大额可转移风险的资金和可能存在风险的资金。
2.被盗资金统计
为了避免一些垃圾币对被盗资金的影响,我们在统计过程中只统计主流币种的被盗资金:
Solana链:SOL、USDC、USDT、BTC和ETH。
ETH链:ETH、USDT、USDC和PAXG。
被盗币种价值取被盗当日价格。
1SOL=$38.54
1BTC=$22,846.51
1ETH=$1,618.87
1PAXG=$1,759.64
1BNB=$298.36
对Slope服务器上的已解密的私钥和助记词对应派生出来的地址与链上统计的受害者地址进行分析,有交集的地址有5个ETH地址和1388个Solana地址,对这些存在交集的地址做被盗资金统计如下,此部分被盗资金占到总被盗资金的31.42%。
3.资金转移分析
Solana链:
资金截止发文时间未进一步转移。
ETH链:
21,801USDT转移到个人钱包地址。慢雾安全团队正在与各方沟通配合努力追查黑客的身份。
剩余大部分资金兑换为ETH后转移到Tornado.Cash。
BSC链:
资金截止发文时间未进一步转移。
4.黑客链上时间线分析
根据黑客链上行为梳理出时间线如下图:
5.黑客痕迹分析
黑客地址列表如下:
疑似黑客地址列表如下:
第一笔转入
Solana链黑客钱包1、2、3和4的链上第一笔转入交易都是来自Solana链疑似黑客钱包的0.1SOL的转账。根据对链上痕迹的分析,评估Solana链疑似黑客钱包可能是黑客地址,也存在更大可能是受害者地址。
黑客过程中使用工具
TransitSwap
Uniswap
MetaMaskSwap
黑客变现方式
转移到疑似OTC个人钱包地址。
转移到Tornado.Cash。
黑客地址与交易所/平台的关联
直接关联:
TRON链,黑客8月5日存款USDT到Binance
存款地址:TE4bkS2PYqWxijgh5eqEz9A5jLn7HcS6fn
存款交易:b6615bf10b2e619edc9315a08f89732664adc9d385c980f77caa6e82872fe376
TRON链,黑客8月5日从Binance提款TRX
提款交易:0e012643a7db1b8c5d1f27447b16e313d4b3f89efaa22b3661188fe399cd2d0e
ETH链,黑客8月5日从Binance提款ETH
提款交易:0xd035e009173e968d8f72de783f02655009d6f85ef906121e5b99b496a10283dd
ETH链,黑客8月8日从Binance提款USDC
提款交易:0xff60f24f8ebd874a1e5da8eae44583af554af9a109a9bd7420da048f12c83cdc
ETH链,黑客8月10日从Binance提款USDC
提款交易:0xc861c40c0e53f7e28a6f78ec9584bfb7722cec51843ddf714b9c10fc0f311806
TRON链,黑客8月10日从Binance提款USDT
提款交易:10c4186e4d95fb2e4a1a31a18f750a39c0f803d7f5768108d6f219d3c2a02d26
间接关联:
Solana链疑似黑客钱包1月8日从Binance提款SOL
提款交易:668jpJec7hiiuzGDzj4VQKSsMWpSnbzt7BLMGWQmrGvHVQQbNGc3i1g8dCj2F5EAxFT8oDG5xWPAeQUMEMBTjhZs
Solana链疑似黑客钱包存在与SolrazrIDOprogram交互的链上痕迹
交易:2LxLhL7oAiTyHGrAXCZEJyazQQLM7veaKvqUZL6iPkonL4wPLHcwV66MFX3ERyWvJtdd2wFdKfgKUuT1oAv2XepK
疑似OTC个人钱包地址与Binance、Kucoin和OKX多个交易所存在存款和提款关系
黑客Solana链交易记录汇总表Sentry回传问题导致可能暴露的Slope地址被盗交易表
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。