慢雾:起底假充值攻击如何突破交易所的层层防御_数字资产:USDC

引言

假充值攻击,是指攻击者通过利用交易所在处理充值过程中的漏洞或系统错误,发送伪造的交易信息到交易所钱包地址,这些伪造的交易信息被交易所误认为是真实的充值请求,并将对应的数字资产或货币添加到攻击者的账户中。攻击者利用这种方式,可以获得未经支付的数字资产,导致交易所的资产损失。

本文旨在深入探讨假充值攻击如何突破交易所的防御机制。我们将分析假充值攻击的原理,揭示攻击者利用的漏洞和策略。同时,我们将通过实例分析假充值攻击,以便更好地理解攻击方式和影响。此外,我们还将讨论交易所应对假充值攻击的应急措施和预防措施,以提供相关保护资产和应对类似攻击的建议。

在了解假充值之前,我们需要先了解交易所的充值原理。

一个典型的流程如下:

1. 钱包地址生成

交易所为每个用户分配一个唯一的钱包地址,用于接收用户的充值。这些地址通常由交易所的系统自动生成。用户在进行充值时,需要将数字资产发送到交易所账户中的特定钱包地址。

2. 区块链账本扫描

交易所的节点会与区块链网络中的其它节点同步,以获取最新的区块链状态和交易信息。当交易所节点收到新的区块时,它会从区块包含的交易内容,或者区块触发的交易执行事件中,提取出用户的充值交易 ID 及对应的金额,加入待充值列表。

3. 确认入账

慢雾:Platypus再次遭遇攻击,套利者获取约5万美元收益:7月12日消息,SlowMist发推称,稳定币项目Platypus似乎再次收到攻击。由于在通过CoverageRatio进行代币交换时没有考虑两个池之间的价格差异,导致用户可以通过存入USDC然后提取更多USDT来套利,套利者通过这种方式套利了大约50,000美元USDC。[2023/7/12 10:50:27]

交易所通常要求交易在区块链网络中获得一定数量的确认后才被视为有效。确认是指交易所在区块被一定数量的区块所引用,并被其他矿工验证和确认。交易所设定的确认数目可以根据不同的数字资产和网络而有所不同。

如图所示:

(假充值攻击发生在步骤 5 和 6)

交易所是黑客攻击的重灾区,因此交易所通常会把服务器置于重重防御系统的背后,对于管理资金的核心服务,甚至要离线托管。然而由于区块链系统对数据完整上的要求,恶意交易并不会被外围安全系统拦截。

需要说明的是,假充值攻击并非区块链的漏洞,而是攻击者利用区块链的一些特性,构造出特殊的交易。这些恶意交易会让交易所误认为是真实的充值请求,或者多次处理同一笔充值请求。慢雾安全团队经过长期的实战,总结出了几种常见的假充值攻击手法:

慢雾:6月24日至28日Web3生态因安全问题损失近1.5亿美元:7月3日消息,慢雾发推称,自6月24日至6月28日,Web3生态因安全问题遭遇攻击损失149,658,500美元,包括Shido、Ichioka Ventures、Blockchain for dog nose wrinkles、Chibi Finance、Biswap、Themis等。[2023/7/3 22:14:33]

自 2018 年以来,慢雾安全团队多次首发披露过多个假充值攻击,包括:

USDT 虚假转账安全?险分析

EOS 假充值(hard_fail 状态攻击)红色预警细节披露与修复方案

以太坊代币“假充值”漏洞细节披露及修复方案

比特币 RBF 假充值风险分析

除了这些已经公开的假充值攻击,还有多个我们未曾公开的经典攻击手法,以及一些普适性的攻击手法。例如:

Bitcoin 多签假充值

Ripple 部分支付假充值

Filecoin 双花假充值

TON 反弹假充值

如果要了解更多详情,欢迎和我们联系以深入探讨。

慢雾:Rubic协议错将USDC添至Router白名单,导致已授权合约用户USDC遭窃取:12月25日消息,据慢雾安全团队情报,Rubic跨链聚合器项目遭到攻击,导致用户账户中的USDC被窃取。慢雾安全团队分享如下:1. Rubic是一个DEX跨链聚合器,用户可以通过RubicProxy合约中的routerCallNative函数进行Native Token兑换。在进行兑换前,会先检查用户传入的所需调用的目标 Router是否在协议的白名单中。

2. 经过白名单检查后才会对用户传入的目标Router进行调用,调用数据也由用户外部传入。

3. 不幸的是USDC也被添加到Rubic协议的Router白名单中,因此任意用户都可以通过RubicProxy合约任意调用USDC。

4. 恶意用户利用此问题通过routerCallNative函数调用USDC合约将已授权给RubicProxy合约的用户的USDC通过transferFrom接口转移至恶意用户账户中。

此次攻击的根本原因在于Rubic协议错误的将USDC添加进Router白名单中,导致已授权给RubicProxy合约的用户的USDC被窃取。[2022/12/26 22:07:00]

几乎所有的区块链都存在假充值问题,只是有的攻击很容易避免,有的却要对区块链的特性有十分深入的研究才能免受其害。

以 TON 的假充值为例,我们将向大家展示狡猾的攻击者如何利用 TON 的特性攻击交易所。

慢雾:Polkatrain 薅羊毛事故简析:据慢雾区消息,波卡生态IDO平台Polkatrain于今早发生事故,慢雾安全团队第一时间介入分析,并定位到了具体问题。本次出现问题的合约为Polkatrain项目的POLT_LBP合约,该合约有一个swap函数,并存在一个返佣机制,当用户通过swap函数购买PLOT代币的时候获得一定量的返佣,该笔返佣会通过合约里的_update函数调用transferFrom的形式转发送给用户。由于_update函数没有设置一个池子的最多的返佣数量,也未在返佣的时候判断总返佣金是否用完了,导致恶意的套利者可通过不断调用swap函数进行代币兑换来薅取合约的返佣奖励。慢雾安全团队提醒DApp项目方在设计AMM兑换机制的时候需充分考虑项目的业务场景及其经济模型,防止意外情况发生。[2021/4/5 19:46:39]

TON(The Open Network)是知名通讯软件 Telegram 发起的一个区块链项目,支持在用户的账号上部署智能合约。

交易所在对接 TON 充值时,按之前描述的方法,它首先会为用户生成一个充值地址,然后用户将资产转移到充值地址,最后确认入账。

交易所如何确认一笔交易是它的用户的呢?我们通过 RPC 接口来查看一笔正常的转账:

声音 | 慢雾:使用中心化数字货币交易所及钱包的用户注意撞库攻击:据慢雾消息,近日,注意到撞库攻击导致用户数字货币被盗的情况,具体原因在于用户重复使用了已泄露的密码或密码通过撞库攻击的“密码生成基本算法”可以被轻易猜测,同时用户在这些中心化服务里并未开启双因素认证。分析认为,被盗用户之所以没开启双因素认证是以为设置了独立的资金密码就很安全,但实际上依赖密码的认证体系本身就不是个足够靠谱的安全体系,且各大中心化数字货币交易所及钱包在用户账号风控体系的策略不一定都一致,这种不一致可能导致用户由于“惯性思维”而出现安全问题。[2019/3/10]

通常交易所会判断 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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:31ms0-1:24ms