引言
假充值攻击,是指攻击者通过利用交易所在处理充值过程中的漏洞或系统错误,发送伪造的交易信息到交易所钱包地址,这些伪造的交易信息被交易所误认为是真实的充值请求,并将对应的数字资产或货币添加到攻击者的账户中。攻击者利用这种方式,可以获得未经支付的数字资产,导致交易所的资产损失。
本文旨在深入探讨假充值攻击如何突破交易所的防御机制。我们将分析假充值攻击的原理,揭示攻击者利用的漏洞和策略。同时,我们将通过实例分析假充值攻击,以便更好地理解攻击方式和影响。此外,我们还将讨论交易所应对假充值攻击的应急措施和预防措施,以提供相关保护资产和应对类似攻击的建议。
在了解假充值之前,我们需要先了解交易所的充值原理。
一个典型的流程如下:
1. 钱包地址生成
交易所为每个用户分配一个唯一的钱包地址,用于接收用户的充值。这些地址通常由交易所的系统自动生成。用户在进行充值时,需要将数字资产发送到交易所账户中的特定钱包地址。
2. 区块链账本扫描
交易所的节点会与区块链网络中的其它节点同步,以获取最新的区块链状态和交易信息。当交易所节点收到新的区块时,它会从区块包含的交易内容,或者区块触发的交易执行事件中,提取出用户的充值交易 ID 及对应的金额,加入待充值列表。
3. 确认入账
慢雾: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 和 6)
慢雾: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]
交易所是黑客攻击的重灾区,因此交易所通常会把服务器置于重重防御系统的背后,对于管理资金的核心服务,甚至要离线托管。然而由于区块链系统对数据完整上的要求,恶意交易并不会被外围安全系统拦截。
慢雾:yearn攻击者利用闪电贷通过若干步骤完成获利:2021年02月05日,据慢雾区情报,知名的链上机池yearnfinance的DAI策略池遭受攻击,慢雾安全团队第一时间跟进分析,并以简讯的形式给大家分享细节,供大家参考:
1.攻击者首先从dYdX和AAVE中使用闪电贷借出大量的ETH;
2.攻击者使用从第一步借出的ETH在Compound中借出DAI和USDC;
3.攻击者将第二部中的所有USDC和大部分的DAI存入到CurveDAI/USDC/USDT池中,这个时候由于攻击者存入流动性巨大,其实已经控制CruveDAI/USDC/USDT的大部分流动性;
4.攻击者从Curve池中取出一定量的USDT,使DAI/USDT/USDC的比例失衡,及DAI/(USDT&USDC)贬值;
5.攻击者第三步将剩余的DAI充值进yearnDAI策略池中,接着调用yearnDAI策略池的earn函数,将充值的DAI以失衡的比例转入CurveDAI/USDT/USDC池中,同时yearnDAI策略池将获得一定量的3CRV代币;
6.攻击者将第4步取走的USDT重新存入CurveDAI/USDT/USDC池中,使DAI/USDT/USDC的比例恢复;
7.攻击者触发yearnDAI策略池的withdraw函数,由于yearnDAI策略池存入时用的是失衡的比例,现在使用正常的比例体现,DAI在池中的占比提升,导致同等数量的3CRV代币能取回的DAI的数量会变少。这部分少取回的代币留在了CurveDAI/USDC/USDT池中;
8.由于第三步中攻击者已经持有了CurveDAI/USDC/USDT池中大部分的流动性,导致yearnDAI策略池未能取回的DAI将大部分分给了攻击者9.重复上述3-8步骤5次,并归还闪电贷,完成获利。参考攻击交易见原文链接。[2021/2/5 18:58:47]
需要说明的是,假充值攻击并非区块链的漏洞,而是攻击者利用区块链的一些特性,构造出特殊的交易。这些恶意交易会让交易所误认为是真实的充值请求,或者多次处理同一笔充值请求。慢雾安全团队经过长期的实战,总结出了几种常见的假充值攻击手法:
慢雾:攻击者系通过“supply()”函数重入Lendf.Me合约 实现重入攻击:慢雾安全团队发文跟进“DeFi平台Lendf.Me被黑”一事的具体原因及防御建议。文章分析称,通过将交易放在bloxy.info上查看完整交易流程,可发现攻击者对Lendf.Me进行了两次“supply()”函数的调用,但是这两次调用都是独立的,并不是在前一笔“supply()”函数中再次调用“supply()”函数。紧接着,在第二次“supply()”函数的调用过程中,攻击者在他自己的合约中对Lendf.Me的“withdraw()”函数发起调用,最终提现。慢雾安全团队表示,不难分析出,攻击者的“withdraw()”调用是发生在transferFrom函数中,也就是在Lendf.Me通过transferFrom调用用户的“tokensToSend()”钩子函数的时候调用的。很明显,攻击者通过“supply()”函数重入了Lendf.Me合约,造成了重入攻击。[2020/4/19]
自 2018 年以来,慢雾安全团队多次首发披露过多个假充值攻击,包括:
USDT 虚假转账安全?险分析
EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案
动态 | 慢雾:2020年加密货币勒索蠕虫已勒索到 8 笔比特币:慢雾科技反(AML)系统监测:世界最早的知名加密货币勒索蠕虫 WannaCry 还在网络空间中苟延残喘,通过对其三个传播版本的行为分析,其中两个最后一次勒索收到的比特币分别是 2019-04-22 0.0584 枚,2019-09-01 0.03011781 枚,且 2019 年仅发生一次,另外一个 2020 还在活跃,2020 开始已经勒索收到 8 笔比特币支付,但额度都很低 0.0001-0.0002 枚之间。这三个传播版本第一次发生的比特币收益都是在 2017-05-12,总收益比特币 54.43334953 枚。虽然收益很少,但 WannaCry 可以被认为是加密货币历史上勒索作恶的鼻主蠕虫,其传播核心是 2017-04-13 NSA 方程式组织被 ShdowBrokers(影子经纪人) 泄露第三批网络军火里的“永恒之蓝”(EternalBlue)漏洞,其成功的全球影响力且匿名性为之后的一系列勒索蠕虫(如 GandCrab)带来了巨大促进。[2020/2/23]
以太坊代币“假充值”漏洞细节披露及修复方案
比特币 RBF 假充值风险分析
除了这些已经公开的假充值攻击,还有多个我们未曾公开的经典攻击手法,以及一些普适性的攻击手法。例如:
Bitcoin 多签假充值
Ripple 部分支付假充值
Filecoin 双花假充值
TON 反弹假充值
如果要了解更多详情,欢迎和我们联系以深入探讨。
几乎所有的区块链都存在假充值问题,只是有的攻击很容易避免,有的却要对区块链的特性有十分深入的研究才能免受其害。
以 TON 的假充值为例,我们将向大家展示狡猾的攻击者如何利用 TON 的特性攻击交易所。
TON(The Open Network)是知名通讯软件 Telegram 发起的一个区块链项目,支持在用户的账号上部署智能合约。
交易所在对接 TON 充值时,按之前描述的方法,它首先会为用户生成一个充值地址,然后用户将资产转移到充值地址,最后确认入账。
交易所如何确认一笔交易是它的用户的呢?我们通过 RPC 接口来查看一笔正常的转账:
通常交易所会判断 in_msg 里的 destination 是否为用户的充值地址,如果是,那么把金额 value 按照精度换算后为用户入账。但这样安全吗?
TON 交易有一个特性,几乎所有在智能合约之间发送的内部消息都应该是可反弹的,即应该设置它们的 bounce 标志位。这样,如果目标智能合约不存在,或者在处理这条消息时抛出未处理的异常,该消息将被“反弹”回来,并携带原始值的余额(减去所有的消息转账和燃气费用)。
也就是说,如果一个恶意攻击者通过设置 bounce 标志位,给一个未部署过合约的账号转账,那么充值金额在扣掉手续费以后会被反弹回原账号。交易所检测到了用户的充值记录,但没想到充值的币居然还会原路返回“反弹”到攻击者的账号上。
我们来看这一笔交易,对比正常交易可以发现,多了一个 out_msg,这个 out_msg 就是资金被反弹回原账号的操作。
交易所如果只检验了 in_msg,那么就会错误地为攻击者入账,造成平台资产损失。
防范假充值攻击的一些基本策略有:
1. 多重确认机制:设定充值的多重确认要求,确保交易在区块链上得到足够的确认后才被视为有效。确认数目应根据不同数字资产的安全性和区块链的确认速度来设定;
2. 严谨的交易匹配:从区块中筛选用户交易时,只有完全匹配正常转账模式的交易才能自动设置为到账,最后还要检查余额变化;
3. 风险控制系统:建立完善的风险控制系统,监测和检测异常交易活动。该系统可以通过分析充值模式、交易频率、交易规模等因素来识别潜在的风险和异常行为;
4. 人工审核:对于较大金额或高风险交易,采用人工审核机制进行额外的审核。人工审核可以增加交易的可信度,发现异常交易,并防止恶意充值;
5. API 安全:对外部 API 接口进行安全认证和授权,避免未经授权的访问和潜在的漏洞。定期审查 API 接口的安全性,并进行及时的安全更新和修复;
6. 限制提款:充值发生后,暂时限制用户对充值资产的提款操作。这样可以给交易所足够的时间来确认充值的有效性和防范潜在的假充值攻击;
7. 安全更新:及时更新交易所软件和系统,修复可能存在的安全漏洞。持续监控交易所的安全状态,并与网络安全专家合作,定期进行安全审计和渗透测试。
对于特定区块链的假充值防范,则需要通读官方说明文档,了解交易中存在的特征。
慢雾安全团队在长期的攻防实践中开发出 Badwhale 假充值测试系统,专门为数字资产管理平台开发。该系统旨在帮助它们检测和评估其防范假充值攻击的能力,优化其防御机制,以保障用户资产的安全和数字资产管理平台的可靠性。
Badwhale 是慢雾安全团队独家且沉淀多年的商业系统,为数十个平台持续服务多年,已避免了预估几十亿美金资产的假充值风险。
特色功能:
1. 模拟假充值攻击:Badwhale 能够模拟各种类型的假充值攻击,并自动发送虚假的充值请求到被测试的数字资产管理平台。这有助于评估数字资产管理平台的弱点,发现潜在的漏洞和安全隐患;
2. 多样化的测试场景:系统提供多样化的测试场景和攻击模式,可以根据实际情况对数字资产管理平台的假充值防御进行全面测试;
3. 高度可扩展性:Badwhale 设计为高度可扩展的测试系统,支持为不同数字资产管理平台和区块链平台提供测试,可以灵活适应不同系统架构和技术环境的需求。
Badwhale 目前已经支持数百条公链、数万代币的假充值测试,包括:
Bitcoin Families (BTC/LTC/DOGE/QTUM...)
BitcoinCash
Ethereum Families
(ETH/BSC/HECO/RON/CFX-evm/FIL-evm/AVAX-evm/FTM-evm/RSK/GNO/MOVR-evm/GLMR-evm/KLAY/FSN/CELO/CANTO/EGLD/AURORA-evm/TLC/WEMIX/CORE/VS/WAN/KCCL/OKX...)
ERC20 Tokens (USDT...)
Ethereum L2 (ARB/OP/METIS...)
Polygon
Polygon Tokens
Cosmos Families (ATOM/LUNA/KAVA/IRIS/OSMO...)
EOS Families and EOS Tokens (EOS/WAX/XPR/FIO/TLOS...)
Ripple
Flow
Aptos
Solana
Solana SPL-Tokens
Conflux
Polkadot Families (DOT/ASTR/PARA/MOVR/GLMR...)
Tron
Filecoin
Ton
Mina
Sui
Ordinals (ORDI...)
…
借助 Badwhale 的强大功能,数字资产管理平台可以进行全面的假充值防御测试,了解其在面对假充值攻击时的表现,并优化其防御机制,提升用户资产的安全保障。Badwhale 的引入将帮助数字资产管理平台加强安全防护,提高对抗假充值攻击的能力,确保数字资产交易的可靠性和用户信任度。
通过深入研究假充值攻击的突破方式,我们可以更好地认识到数字资产管理平台在保护用户资产和维护安全的重要性。只有通过增强安全防御措施、持续监测漏洞并采取适当的应对措施,数字资产管理平台才能有效地应对假充值攻击和其他安全威胁,确保数字资产交易的可信度和可靠性。
慢雾科技
个人专栏
阅读更多
Foresight News
金色财经 Jason.
白话区块链
金色早8点
LD Capital
-R3PO
MarsBit
深潮TechFlow
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。