Bancor 2350萬美元被盜!區塊鏈安全事故頻發,我們是否真的束手無策?
矽谷Live / 實地探訪/ 熱點探秘 / 深度探討
2018年7月8日, Bancor (BNT)的智能合約爆出了安全漏洞, 導致價值2350萬美元資金被竊取。
Bancor團隊官方聲稱, 被竊取的原因是一個用來升級智能合約的管理員賬號被盜。從嚴格意義上講, 目前還沒有一個百分百保證賬戶私鑰安全的方法。面臨這類頻發的區塊鏈安全事故,我們真的束手無策嗎?據悉,在事故發生前,Bancor代碼的管理員許可權設計已被CertiK平台標記為高風險預警,此次Bancor的被盜損失是可以通過CertiK的深度規範技術規避風險的。
發生了什麼?
這個資金盜取過程,簡而言之, Bancor的管理員賬戶被竊取, 導致了暫存在Bancor合約里價值千萬的虛擬貨幣被提取到了一個私人地址。
具體而言, 事情發生的經過是這樣的:
一個被竊取的賬號(https://etherscan.io/address/0x33ed22f4b6b05f8a5faac4701550d52286bd735a), Fake_Phishing1701, 在合約升級時拿到了管理員許可權。
然後Fake_Phising1701在這個交易中(https://etherscan.io/tx/0x43a964e635f31b0cc329db6f980f09096054e4e3a627c85654852fd026b92ba0)將22,000個以太幣從Bancor團隊開發的TokenHolder合約中轉到了黑客的個人錢包。
在Bancor的智能合約設計中, TokenHolder用來暫存用戶用來去中心化交易的資金. 然而從代碼中我們可以看到, Bancor團隊的管理員可以隨意在任何時間將所有用戶暫存的全部資金轉移到任意地址。
如此完全集中的許可權可以算一個嚴重的設計缺陷。基本上Bancor團隊擁有類似神的特權, 團隊管理員可以在任意時間轉移用戶暫存的所有資金。而正是這樣嚴重的設計缺陷, 導致了價值2350萬美元的以太幣被黑客利用,達到資金竊取目的。
CertiK如何預警這樣的風險?
為了盡量規避管理員權利過於集中的風險, CertiK的深度規範技術提供了針對性的智能標記:OWNER_ONLY_TRANSFER_WARNING, 並會自動標記到所有隻有管理員許可權才能調用的函數上, 對開發者發出管理員許可權設計的預警。
上面的demo中我們可以看到, CertiK的驗證引擎會對開發人員提出許可權警告。 如果Bancor團隊利用CertiK平台來驗證合約的代碼, 這樣的警告就可以提前提醒開發團隊重新審視和設計管理員的許可權, 從而規避出現超級管理員賬戶被盜而導致巨額損失的風險。
CertiK團隊致力於利用形式化驗證保證區塊鏈生態系統安全. 團隊的創始人來自於耶魯大學和哥倫比亞大學計算機學教授, 團隊核心成員均來自於Google和Facebook。
Telegram: https://t.me/certikorg
Twitter: https://twitter.com/certikorg
Email: info@certik.org
TAG:矽谷密探 |