危及ERC20智能合約、讓代幣價值歸零的溢出漏洞到底是什麼?

2021-01-12 36kr

編者按:本文來自36氪戰略合作區塊鏈媒體「Odaily星球日報 」(公眾號ID:o-daily,APP下載)

7月8日下午,降維安全實驗室(johnwick.io)監控到,以太坊智能合約AMR存在高危風險交易。團隊對代碼進行分析,發現其中存在的整數溢出漏洞已被人惡意利用,導致AMR大量增發。今年4月份,攻擊者也曾利用該漏洞攻擊美圖合作的美鏈BEC,導致市場上頓時出現海量BEC,貨幣價值幾乎歸零。

那麼,整數溢出漏洞是什麼?可以從我們熟悉的登陸密碼說起

程序怎麼判斷用戶輸入密碼的正誤呢?後臺的操作是這樣的,先讓用戶輸入密碼,然後再調取真正的密碼,與之對比,如果差異為0,則輸出密碼正確,否則錯誤。

這在用戶輸入正確密碼(結果為0)或錯誤密碼(結果不為0)時都很好判斷。但是,由於後臺留給密碼的存儲空間是有限的(比如4個字節),如果此時用戶輸入的數據超出4個字節,那麼將會出現字符溢出。如果程序事先沒有被設置對溢出進行判斷的話,溢出的字符將使系統報錯或關閉。

我們再來看此次整數溢出漏洞的缺陷代碼片段(由Bcsec安全團隊提供):

該片段出現在一個叫「multiTransfer」的函數中,函數的作用是讓一個地址可以同時給多個地址轉帳。問題代碼中的totalTokensToTransfer計算出一共要支出的幣的總量,tokens是最終給每個地址轉帳的金額。

由於項目方給totalTokensToTransfer變量賦值時未進行溢出判斷,導致當tokens參數非常大時,totalTokensToTransfer變量進行數次計算後溢出為溢出值(攻擊者一般將溢出值控制在0-10),系統即認為本次轉帳總金額為溢出後的值(比如0,也就是轉帳金額為0),由此便繞過餘額檢查的步驟繼續完成交易,但實際上其轉帳金額遠大於錢包所含金額。於是系統憑空轉(多)出巨額代幣,黑客將其在市場上拋售獲利。

今年6月份,安比實驗室(SECBIT)對以太坊上部署的合約進行的分析檢測,發現共有866個合約存在相同問題。

為什麼會存在這些漏洞呢?

Bcsec安全團隊表示,這類漏洞本質是由於編程人員的疏忽造成的,之所以在以太坊ERC20中較大規模蔓延,是由於很多新上線的合約直接copy自一些合約模板,而未對其進行嚴格的安全評估,因此新項目如要使用應儘量確保其合約的安全性,才可以代表資產進行交易。

我是作者黃雪姣,區塊鏈項目報導/交流可加微信hxjiapg,勞請備註職務和事由。


相關焦點

  • ERC20智能合約又現大量整數溢出漏洞
    今日塊訊(Chinaz.com) 6 月 13 日消息    近期,智能合約漏洞頻頻發生,繼EDU、BAI智能合約存漏洞可轉走任意帳戶Token 、EOS高危漏洞可完全控制虛擬貨幣交易等事件後,今天ERC20 智能合約又被爆出現大量整數溢出漏洞。
  • 研報丨硬核解析智能合約漏洞原理
    撰文:Chen Bo Yu、Hsu Tzu Hsiu智能合約基礎介紹在探討智能合約漏洞解析之前,我們先從一個基本的範例來了解一個智能合約會具備哪些元素。常見漏洞解析了解問題發生的原因,並且歸納問題的類別可以幫助我們更好的防範。DASP(Decentralized Application Security Project)收錄了十種智能合約漏洞,下面我們整理了其中最常見的合約漏洞以及新型態的攻擊模式。
  • BEC代幣被黑,黑客輸入一串數字就套利千萬,說好的安全呢?
    昨日中午,黑客利用以太坊 ERC-20 智能合約中 BatchOverFlow 漏洞中數據溢出的漏洞攻擊與美圖合作的公司美鏈 BEC 的智能合約,成功地向兩個地址轉出了天量級別的 BEC 代幣,導致市場上海量 BEC 被拋售,該數字貨幣價值幾近歸零,給 BEC 市場交易帶來了毀滅性打擊。
  • 零時科技丨CTF技能寶典之智能合約 整數溢出漏洞
    前言近年來,各個大型CTF(Capture The Flag,中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式)比賽中都有了區塊鏈攻防的身影,而且出現的題目絕大多數都是區塊鏈智能合約攻防。此系列文章我們主要以智能合約攻防為中心,來剖析智能合約攻防的要點,前兩篇我們分享了合約反編譯,反彙編的基礎內容。
  • Yam Finance漏洞導致價值75萬美元的Curve代幣被鎖定
    觀點在Yam Finance倉促開發的合約中,一個漏洞導致了治理合約被「永久破壞」,價值75萬美元的Curve代幣被鎖定而無法使用。DeFi開發人員、yEarn協議創始人Andre Cronje表示,這是由於rebase函數的漏洞造成的。倉促制定的Yam Finance合同中的一個錯誤導致治理合同「被永久破壞」,價值750,000美元的Curve代幣被鎖定而無法使用。
  • EDU出現漏洞,火幣Pro:對ERC20智能合約代碼進行覆審
    EDU出現漏洞,火幣Pro:對ERC20智能合約代碼進行覆審 今日塊訊(Chinaz.com) 5 月 24 日消息    針對EduCoin智能合約出現的新型漏洞相關問題
  • 什麼是ERC20?為什麼要基於ERC20發行token代幣
    據相關的數據顯示,現在主流的代幣基本上80%以上都是基於ERC20發行的。究竟什麼是ERC20呢?為什麼要基於ERC20發行代幣呢?幣圈的小夥伴一定都知道ERC20代幣,他不是一種代幣,只是一種代幣設計標準。
  • Hardcore|以太坊中智能合約攻擊和漏洞百科全書
    以太坊上的應用程式管理財務價值,使安全性變得絕對重要。作為一種新興的、實驗性的技術,智能合約當然也受到了相當多的攻擊。為了防止進一步的攻擊,我列出了幾乎所有已知的攻擊和漏洞的列表。儘管此列表可能包含已知的攻擊,但新的漏洞仍在定期發現,因此,這應該只是您作為工程師研究智能合約安全性的開始。
  • 首發| SushiSwap仿盤 YUNO與KIMCHI智能合約漏洞或存安全隱患
    北京時間8月31日和9月1日,CertiK安全研究團隊發現Sushiswap仿盤的兩個項目YUNo Finance (YUNO)與KIMCHI.finance (KIMCHI),其智能合約均存在漏洞。如果利用該漏洞,智能合約擁有者可以無限制地增發項目對應的代幣數目,導致項目金融進度通脹並最終崩潰。
  • Hardcore | 以太坊中智能合約攻擊和漏洞百科全書
    以太坊上的應用程式管理財務價值,使安全性變得絕對重要。作為一種新興的、實驗性的技術,智能合約當然也受到了相當多的攻擊。為了防止進一步的攻擊,我列出了幾乎所有已知的攻擊和漏洞的列表。儘管此列表可能包含已知的攻擊,但新的漏洞仍在定期發現,因此,這應該只是您作為工程師研究智能合約安全性的開始。
  • 多個ERC20智能合約被曝出新的allowAnyone漏洞(CVE-2018-11397,CVE...
    PeckShield公司的漏洞掃描系統迄今為止已經發現了多種高危的智能合約漏洞(batchOverflow[1],proxyOverflow[2],transferFlaw[3],ownerAnyone[4],multiOverflow[5]),burnOverflow[6]),ceoAnyone
  • 美鏈BEC代幣現漏洞被盜 蔡文勝被指牽涉項目方
    藍鯨TMT4月24日訊,近日,BEC美蜜合約出現重大漏洞,黑客通過合約的批量轉帳方法無限生成代幣。天量BEC從兩個地址轉出,引發拋售潮。當日,BEC的價值幾乎歸零,而蔡文勝和美圖則被指有幕后庄家嫌疑。藍鯨TMT就此事向美圖方向求證,截至發稿未獲回應。
  • 【鈦晨報】美圖宣布終止與BEC美鏈合作,後者代幣價值幾天前近乎歸零
    2月23日,美鏈的代幣BEC上線OKex平臺進行交易,開盤暴漲超過4000%,市值280億美元,是美圖的4倍。值得注意的是,「美蜜」項目的司法管轄區為新加坡。自2017年9月4日,中國人民銀行等七部門叫停國內發行各類代幣的融資活動後,國內就不能再發行類似BEC的ICO代幣,但新加坡對此沒有政策限制。
  • 基於以太坊區塊鏈的ERC20實用程序代幣eCoinomic介紹
    個人帳戶的餘額可以通過兩種方式增值:通過轉移先前在 ICO 和加密交易所購買的CNC 代幣;或通過在 eCoinomic 平臺上以固定價格購買 CNC 代幣。 項目啟動後,平臺上 eCoinomic 代幣的價值將在市場上確定——這意味著它將會增值為 CNC 原本的交易價格 + 20%。
  • CTF技能寶典之智能合約 重入漏洞
    前言近年來,各個大型CTF(Capture The Flag,中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式)比賽中都有了區塊鏈攻防的身影,而且出現的題目絕大多數都是區塊鏈智能合約攻防。此系列文章我們主要以智能合約攻防為中心,來剖析智能合約攻防的要點,前兩篇我們分享了合約反編譯,反彙編的基礎內容。
  • 兩大智能合約籤名驗證漏洞分析
    可重入(Reentrancy)或整數溢出漏洞,是大多數開發人員知道或者至少聽說過的,關於智能合約當中容易出現的安全問題。另一方面,在考慮智能合約的安全性時,你可能不會立即想到針對密碼籤名實現的攻擊方式。它們通常是與網絡協議相關聯的。
  • CITA入門和智能合約開發培訓
    參考視頻 :https://www.bilibili.com/video/av58299098智能合約溢出型漏洞16bit 整數:0x0000,0x0001,0x0002,…,0xfffd,0xffff
  • 首發| CertiK:我們每天遇到有漏洞的DeFi合約概率是多少 審計後又...
    智能合約當中,任何一個小bug,都可能會給項目或者投資者造成無法挽回的損失。受此警示之下,CertiK安全團隊利用CertiK天網系統 (Skynet),對自北京時間2020年12月4日0時至24時之間,新加入Uniswap的代幣智能合約進行了監控分析。在本次分析的時間段內,一共產生了29個智能合約代幣項目。