背景概述
2022年8月3日,Solana公链上发生大规模盗币事件,大量用户在不知情的情况下被转移SOL和SPL代币。慢雾安全团队第一时间介入分析,并在Slope团队的邀请下对Slope钱包应用进行分析,分析表明:Slope钱包在2022年6月24日及之后发布的版本存在向第三方应用监控服务发送私钥或助记词信息的现象。
但从对Slope钱包应用进行调查到现在,无法明确证明此次事件的根源就是Slope钱包的问题,于是慢雾安全团队开始对Slope的服务器进行分析取证。
分析过程
事件发生之后各方的关注点主要聚焦在调查本次事件的根源以及资金的追踪和挽救的可能性。于是慢雾安全团队制定相关的计划,开始从链下和链上两个部分着手调查和分析。
在事件根源调查这个方向上,慢雾安全团队重点专注在对Slope服务器的分析取证。这里面有大量且复杂的工作需要推进,也需要有更多明确的证据来解释这次的大规模盗币事件的根源。
资金追踪和挽救的可能性这部分工作,慢雾安全团队主要依靠MistTrack的追踪分析能力、标签数据能力并结合情报能力,尽最大的努力识别和追踪黑客的链上行为。并且也和Slope团队沟通交流挽救的可能性,Slope团队也在尝试与黑客沟通希望通过发布漏洞赏金的方式,鼓励黑客归还资产,共同维护Solana这个生态的健康发展。
本篇仅向社区用户同步阶段性的调查情况,还有很多的分析工作正在进行,并且不断推进。各方人员不仅是慢雾,还有其他第三方安全团队,以及一些特殊力量也在努力帮忙调查中,希望这次事件最终能够有相对明确的结论。
注:本文所提到的Sentry服务指的是Slope团队私有化部署的Sentry服务,并非使用Sentry官方提供的接口和服务。
慢雾:针对传言火币信息泄漏事件不涉及用户账户与资金安全 请保持客观冷静对待:据官方消息,慢雾注意到近日有白帽子公开了此前一个火币已经处理完毕的过往漏洞信息。经慢雾与火币官方确认,火币本着负责任披露信息的策略,对本次事件做以下说明:本次事件是小范围内(4000人)的用户联络信息泄露,信息种类不涉及敏感信息,不涉及用户账户与资金安全。事件发生于2021年6月22日日本站测试环境S3桶相关人员不规范操作导致,相关用户信息于2022年10月8日已经完全隔离,日本站与火币全球站无关。本次事件由白帽团队发现后,火币安全团队2023年6月21日(10天前)已第一时间进行处理,立即关闭相关文件访问权限,当前漏洞已修复,所有相关用户信息已经删除。感谢白帽团队对于火币安全做出的贡献。最后提醒请大家冷静对待,切勿传谣。[2023/7/1 22:12:01]
一些疑问点
在同步分析的情况之前,我们先来回答上篇文章的分析过程中的一些疑问点:
1.Sentry的服务收集用户钱包助记词的行为是否属于普遍的安全问题?
答:Sentry主要用于收集相关应用服务在运行状态时出现的异常或者错误日志信息,在配置错误的情况下,可能会收集到预期之外的数据,如:私钥或助记词等信息,因此并非普遍存在的安全问题。开发人员在使用第三方应用监控服务切记不能在生成环境中开启Debug模式。
2.Phantom使用了Sentry,那么Phantom钱包会受到影响吗?
答:虽然Phantom使用了第三方应用监控服务但是慢雾安全团队通过对Phantom钱包历史各版本的监测,并未明显发现Sentry上传私钥/助记词的行为。
3.SolanaFoundation提供的调研数据显示本次事件近60%被盗用户使用Phantom钱包,30%左右地址使用Slope钱包,其余用户使用TrustWallet等,那这60%被盗用户被黑的原因是什么呢?
慢雾:Grafana存在账户被接管和认证绕过漏洞:金色财经报道,据慢雾消息,Grafana发布严重安全提醒,其存在账户被接管和认证绕过漏洞(CVE-2023-3128),目前PoC在互联网上公开,已出现攻击案例。Grafana是一个跨平台、开源的数据可视化网络应用程序平台,用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。Grafana根据电子邮件的要求来验证Azure Active Directory账户。在Azure AD上,配置文件的电子邮件字段在Azure AD租户之间是不唯一的。当Azure AD OAuth与多租户Azure AD OAuth应用配置在一起时,这可能会使Grafana账户被接管和认证绕过。其中,Grafana>=6.7.0受到影响。加密货币行业有大量平台采用此方案用来监控服务器性能情况,请注意风险,并将Grafana升级到最新版本。[2023/6/25 21:58:31]
答:经过比对发现服务器上的私钥和助记词派生出来的地址与受害者地址有交集的有5个ETH地址和1388个Solana地址。目前的调查情况看,还没有明确的证据能够解释另外部分用户钱包被黑的原因。
4.Sentry作为一个使用非常广泛的服务,会不会是Sentry官方遭遇了入侵?从而导致了定向入侵加密货币生态的攻击?
答:目前暂无证据表明Sentry官方遭到了入侵和攻击,Slope钱包使用的Sentry是内部搭建的服务,因此和官方服务被入侵无直接关系。
链下分析部分
链下部分慢雾安全团队主要聚焦排查链下服务器、相关后台等被入侵的可能性,工作的重点是对Slope服务器进行外围服务器资产风险排查,服务器的入侵痕迹排查,Sentry数据库分析,服务器镜像分析,DNS劫持的可能性分析。如下是排查和分析的情况:
慢雾:LendHub疑似被攻击损失近600万美金,1100枚ETH已转移到Tornado Cash:金色财经报道,据慢雾区情报,HECO生态跨链借贷平台LendHub疑似被攻击,主要黑客获利地址为0x9d01..ab03。黑客于1月12日从Tornado.Cash接收100ETH后,将部分资金跨链到Heco链展开攻击后获利,后使用多个平台(如TransitSwap、Multichain、Uniswap、Curve和OptimismBridge)跨链或兑换被盗资金。截至目前,黑客已分11笔共转1,100ETH到Tornado.Cash。被攻击的具体原因尚待分析,慢雾安全团队将持续跟进此事件。[2023/1/13 11:10:43]
1.外围服务器资产风险排查
Slope团队知道Slope钱包回传助记词和私钥信息之后,第一时间就关停了Slope钱包相关的服务。因此Slope钱包相关的服务已经不能通过直接访问,慢雾安全团队依靠互联网搜索引擎等工具对Slope外围服务器资产进行信息收集,包括slope.finance域名下的子域名和IP等进行模拟渗透测试分析,排查从外围可能存在的入侵风险点,通过分析和渗透测试并未发现存在可被直接入侵的风险点。
2.服务器的入侵痕迹排查
主要对第三方应用监控服务器进行内部排查,包括服务器登录日志,系统历史操作命令,可疑进程,可疑网络连接,可疑系统计划任务,数据删除和获取操作等,服务器内部还有5个Docker服务也进行同样的入侵痕迹排查。排查发现几个可疑登录IP为:113.*.*.*,114.*.*.*,153.*.*.*,这些IP是在06.24之前访问过第三方应用监控服务的后台。虽然这发生在回传私钥和助记词的时间之前,但是仍然存在可疑。
3.PostgreSQL数据库分析
慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:
1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。
2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。
3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。
4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。
5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。
针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]
由于助记词和私钥被Slope钱包的第三方应用监控服务回传到服务器上,所以慢雾安全团队也对服务器中可能存在私钥或助记词的位置进行了分析,分析发现私钥或助记词较大可能会留存在如下位置:
Sentry的数据库表中
慢雾: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]
PostgreSQL的数据库日志中
镜像磁盘已删除的数据中
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地址被盗交易表
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。