引言
假充值攻擊,是指攻擊者通過利用交易所在處理充值過程中的漏洞或系統錯誤,發送偽造的交易信息到交易所錢包地址,這些偽造的交易信息被交易所誤認為是真實的充值請求,并將對應的數字資產或貨幣添加到攻擊者的賬戶中。攻擊者利用這種方式,可以獲得未經支付的數字資產,導致交易所的資產損失。
本文旨在深入探討假充值攻擊如何突破交易所的防御機制。我們將分析假充值攻擊的原理,揭示攻擊者利用的漏洞和策略。同時,我們將通過實例分析假充值攻擊,以便更好地理解攻擊方式和影響。此外,我們還將討論交易所應對假充值攻擊的應急措施和預防措施,以提供相關保護資產和應對類似攻擊的建議。
在了解假充值之前,我們需要先了解交易所的充值原理。
一個典型的流程如下:
1. 錢包地址生成
交易所為每個用戶分配一個唯一的錢包地址,用于接收用戶的充值。這些地址通常由交易所的系統自動生成。用戶在進行充值時,需要將數字資產發送到交易所賬戶中的特定錢包地址。
2. 區塊鏈賬本掃描
交易所的節點會與區塊鏈網絡中的其它節點同步,以獲取最新的區塊鏈狀態和交易信息。當交易所節點收到新的區塊時,它會從區塊包含的交易內容,或者區塊觸發的交易執行事件中,提取出用戶的充值交易 ID 及對應的金額,加入待充值列表。
3. 確認入賬
慢霧:警惕針對 Blur NFT 市場的批量掛單簽名“零元購”釣魚風險:金色財經報道,近期,慢霧生態安全合作伙伴 Scam Sniffer 演示了一個針對 Blur NFT 市場批量掛單簽名的“零元購”釣魚攻擊測試,通過一個如圖這樣的“Root 簽名”即可以極低成本(特指“零元購”)釣走目標用戶在 Blur 平臺授權的所有 NFT,Blur 平臺的這個“Root 簽名”格式類似“盲簽”,用戶無法識別這種簽名的影響。慢霧安全團隊驗證了該攻擊的可行性及危害性。特此提醒 Blur 平臺的所有用戶警惕,當發現來非 Blur 官方域名(blur.io)的“Root 簽名”,一定要拒絕,避免潛在的資產損失。[2023/3/7 12:46:39]
交易所通常要求交易在區塊鏈網絡中獲得一定數量的確認后才被視為有效。確認是指交易所在區塊被一定數量的區塊所引用,并被其他礦工驗證和確認。交易所設定的確認數目可以根據不同的數字資產和網絡而有所不同。
如圖所示:
(假充值攻擊發生在步驟 5 和 6)
交易所是黑客攻擊的重災區,因此交易所通常會把服務器置于重重防御系統的背后,對于管理資金的核心服務,甚至要離線托管。然而由于區塊鏈系統對數據完整上的要求,惡意交易并不會被外圍安全系統攔截。
慢霧:Quixotic黑客盜取約22萬枚OP,跨鏈至BNB Chain后轉入Tornado Cash:7月1日消息,據慢霧分析,Quixotic黑客盜取了大約22萬枚OP(約11.9萬美元),然后將其兌換成USDC并跨鏈到BNB Chain,之后將其兌換成BNB并轉入Tornado Cash。[2022/7/1 1:44:55]
需要說明的是,假充值攻擊并非區塊鏈的漏洞,而是攻擊者利用區塊鏈的一些特性,構造出特殊的交易。這些惡意交易會讓交易所誤認為是真實的充值請求,或者多次處理同一筆充值請求。慢霧安全團隊經過長期的實戰,總結出了幾種常見的假充值攻擊手法:
自 2018 年以來,慢霧安全團隊多次首發披露過多個假充值攻擊,包括:
USDT 虛假轉賬安全?險分析
EOS 假充值(hard_fail 狀態攻擊)紅色預警細節披露與修復方案
以太坊代幣“假充值”漏洞細節披露及修復方案
比特幣 RBF 假充值風險分析
除了這些已經公開的假充值攻擊,還有多個我們未曾公開的經典攻擊手法,以及一些普適性的攻擊手法。例如:
Bitcoin 多簽假充值
慢霧:Crosswise遭受攻擊因setTrustedForwarder函數未做權限限制:據慢霧區情報,2022年1月18日,bsc鏈上Crosswise項目遭受攻擊。慢霧安全團隊進行分析后表示,此次攻擊是由于setTrustedForwarder函數未做權限限制,且在獲取調用者地址的函數_msg.sender()中,寫了一個特殊的判斷,導致后續owner權限被轉移以及后續對池子的攻擊利用。[2022/1/19 8:57:48]
Ripple 部分支付假充值
Filecoin 雙花假充值
TON 反彈假充值
如果要了解更多詳情,歡迎和我們聯系以深入探討。
幾乎所有的區塊鏈都存在假充值問題,只是有的攻擊很容易避免,有的卻要對區塊鏈的特性有十分深入的研究才能免受其害。
以 TON 的假充值為例,我們將向大家展示狡猾的攻擊者如何利用 TON 的特性攻擊交易所。
TON(The Open Network)是知名通訊軟件 Telegram 發起的一個區塊鏈項目,支持在用戶的賬號上部署智能合約。
交易所在對接 TON 充值時,按之前描述的方法,它首先會為用戶生成一個充值地址,然后用戶將資產轉移到充值地址,最后確認入賬。
交易所如何確認一筆交易是它的用戶的呢?我們通過 RPC 接口來查看一筆正常的轉賬:
慢霧:跨鏈互操作協議Poly Network遭受攻擊并非由于網傳的keeper私鑰泄漏:對于跨鏈互操作協議Poly Network遭受攻擊事件,慢霧安全團隊分析指出:本次攻擊主要在于EthCrossChainData合約的keeper可由EthCrossChainManager合約進行修改,而EthCrossChainManager合約的verifyHeaderAndExecuteTx函數又可以通過_executeCrossChainTx函數執行用戶傳入的數據。因此攻擊者通過此函數傳入精心構造的數據修改了EthCrossChainData合約的keeper為攻擊者指定的地址,并非網傳的是由于keeper私鑰泄漏導致這一事件的發生。[2021/8/11 1:47:48]
通常交易所會判斷 in_msg 里的 destination 是否為用戶的充值地址,如果是,那么把金額 value 按照精度換算后為用戶入賬。但這樣安全嗎?
TON 交易有一個特性,幾乎所有在智能合約之間發送的內部消息都應該是可反彈的,即應該設置它們的 bounce 標志位。這樣,如果目標智能合約不存在,或者在處理這條消息時拋出未處理的異常,該消息將被“反彈”回來,并攜帶原始值的余額(減去所有的消息轉賬和燃氣費用)。
慢霧:BSC項目Value DeFi vSwap 模塊被黑簡析:據慢霧區情報,幣安智能鏈項目 Value DeFi 的 vSwap 模塊被黑,慢霧安全團隊第一時間介入分析,并將結果以簡訊的形式分享,供大家參考:
1. 攻擊者首先使用 0.05 枚 WBNB 通過 vSwap 合約兌換出 vBSWAP 代幣;
2. 攻擊者在兌換的同時也進行閃電貸操作,因此 vSwap 合約會將兌換的 vBSWAP 代幣與閃電貸借出的 WBNB 轉給攻擊者;
3. 而在完成整個兌換流程并更新池子中代幣數量前,會根據池子的 tokenWeight0 參數是否為 50 來選擇不同的算法來檢查池子中的代幣數量是否符合預期;
4. 由于 vSwap 合約的 tokenWeight0 參數設置為 70,因此將會采用第二種算法對池子中的代幣數量進行檢查;
5. 而漏洞的關鍵點就在于采用第二種算法進行檢查時,可以通過特殊構造的數據來使檢查通過;
6. 第二種算法是通過調用 formula 合約的 ensureConstantValue 函數并傳入池子中緩存的代幣數量與實時的代幣數量進行檢查的;
7. 在通過對此算法進行具體分析調試后我們可以發現,在使用 WBNB 兌換最小單位(即 0.000000000000000001) vBSWAP 時,池子中緩存的 WBNB 值與實時的值之間允許有一個巨大的波動范圍,在此范圍內此算法檢查都將通過;
8. 因此攻擊者可以轉入 WBNB 進行最小單位的 vBSWAP 代幣兌換的同時,將池子中的大量 WBNB 代幣通過閃電貸的方式借出,由于算法問題,在不歸還閃電貸的情況下仍可以通過 vSwap 的檢查;
9. 攻擊者只需要在所有的 vSwap 池子中,不斷的重復此過程,即可將池子中的流動性盜走完成獲利。詳情見原文鏈接。[2021/5/8 21:37:37]
也就是說,如果一個惡意攻擊者通過設置 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
作者:BEN STRACK,blockworks 翻譯:善歐巴,金色財經分析師表示,萊特幣減半帶來的歷史性價格上漲已經在此次事件中發生。大多數加密圈人士都知道,明年比特幣的挖礦獎勵將減少一半.
1900/1/1 0:00:00作者:Pablo Bartol;編譯:深潮 TechFlow在衍生品領域,永續合約比期權更受歡迎,這在散戶和機構市場上獲得了廣泛的認可.
1900/1/1 0:00:00背景 從 DeFi 之夏到現在,我們在遭受各種漏洞、后門、跑路等層出不窮的手段洗禮后,總算學會了在 DEX 上參與新項目前.
1900/1/1 0:00:00【07.23 - 07.29】周報概要:1、上周NFT總交易額:104,642,920(美元)2、上周NFT總交易筆數:283,3713、上周NFT總用戶數:130.
1900/1/1 0:00:00作者:BitAns,Krypital Group在FTX破產后,去中心化衍生品交易所的交易量和關注度獲得了顯著的提升, 近幾年隨著L2和各類Appchain開源架構的完善.
1900/1/1 0:00:00作者:Web3世界的拓荒者本文分別從流動性質押協議、流動性質押DeFi協議以及去中心化解決方案三個維度對LSD賽道進行了整體梳理,并對代表性協議作了概要性分析,認為當前三大敘事方向基本形成.
1900/1/1 0:00:00