8月17日,區塊鏈投資機構Paradigm研究合伙人、著名白帽黑客samczsun撰文披露了BitDAO在SushiSwapIDO平臺MISO進行的荷蘭拍的智能合約存在安全漏洞,多名白帽黑客聯手從眾籌資金池中拯救回10
}
看看上面這個函數,它似乎被正確地實現了。然而,在我腦海的角落里,有什么東西在提醒著我。那時我意識到我過去曾看到過非常相似的東西。
二、發現
上午9:47
距離今天打印一年多前,我在與Opyn團隊的Zoom視頻通話中,試圖弄清楚如何在遭受毀滅性黑客攻擊后恢復和保護用戶資金。
黑客攻擊手法本身很簡單但很巧妙:它使用一次ETH支付來行使多個期權,因為Opyn合約在循環中使用了msg.value變量。
Bittrex:并沒有進行BTC促銷活動 小心詐騙:11月12日,Bittrex官方于推特發布警示信息稱,Bittrex并沒有進行5.000 BTC的促銷活動。Bittrex不會主動向人們尋求資金,請小心騙子或冒名頂替者。[2020/11/12 12:23:33]
雖然處理代幣支付涉及每個循環迭代的單獨transferFrom調用,但處理ETH支付只是檢查msg.value是否足夠。這允許攻擊者多次重復使用相同的ETH。
回到今天,我意識到我正在看到的是兩個完全相同的漏洞,只是形式不同。在委托調用中,msg.sender和msg.value被持久化。這意味著我應該能夠批量調用commitEth并在每個commitment中重復使用我的msg.value,這將允許我在拍賣中能夠免費出價。
上午9:52
5000萬枚USDT從Bitfinex交易所轉入Huobi交易所:據WhaleAlert數據顯示,北京時間08月01日03:37,5000萬枚USDT從Bitfinex交易所轉入Huobi交易所,按當前價格計算,價值約5010.3萬美元。[2020/8/1]
我的直覺告訴我這是真實的交易,但我無法在沒有實際驗證的情況下確定。我迅速打開Remix并編寫了一個概念驗證。
令我沮喪的是,我的主網分叉環境之前不久被完全損壞了。我一定是在倫敦硬分叉期間不小心弄壞了它。有這么多資金正處于風險之中,而我卻沒有足夠的時間。我很快在命令行上拼湊了一個簡陋的主網分叉并測試了我的漏洞。結果跟我想的一樣。
上午10:13
在對外報告這個漏洞風險之前,我給我的同事GeorgiosKonstantopoulos打了電話,讓他??們再看一遍。在等待回應的同時,我又回到合約中尋找確定嚴重性的方法。在這種情況下,能夠免費參加拍賣是一回事,但能夠竊取所有其他參與者的出價則是另一回事。
動態 | Bitfury建立基于區塊鏈的醫學影像平臺:據Cointelegraph報道,區塊鏈科技公司Bitfury宣布與放射學區塊鏈市場醫療診斷網(MDW)合作,創建一個基于區塊鏈的醫學影像生態系統Longenesis。該平臺據稱將建立在Bitfury的私有區塊鏈框架Exonum上,使用“錨定”技術驗證交易。[2019/2/12]
我注意到在我最初的掃描過程中有一些退款邏輯,但當時我并未多想。現在,這已是一種讓ETH退出合約的方法。我很快檢查了我需要滿足哪些條件才能讓合約為我提供退款。
令我驚訝的是,我發現發送的任何超過拍賣硬上限的ETH都會獲得退款。即使達到硬上限,這也適用,這意味著合約不會完全拒絕交易,而是簡單地退還您的所有ETH。
突然間,我發現的這個漏洞變得巨大。我不是在處理一個讓你出價可以超過其他參與者的漏洞。我在看的是一個價值3.5億美元的漏洞。
動態 | 加密貨幣交易所Bittrex收購了馬耳他一區塊鏈創業公司股份:據ccn報道,Bittrex剛剛收購了總部位于馬耳他的區塊鏈公司Palladium 10%的股份。Palladium的創始人Paolo Catalfamo教授對這一最新進展表示樂觀,并強調了與馬耳他合作以提供一個完全規范的區塊鏈空間的重要性。[2018/9/5]
三、披露
上午10:38
在與Georgios確認這個漏洞后,我讓他和DanRobinson嘗試聯系SushiCTOJosephDelong。幾分鐘后,Joseph做出了回應,然后我與Georgios、Joseph、Mudit、Keno和Omakase一起進行了Zoom通話。我就漏洞向其他參與者進行了快速匯報,然后他們開始四處協調響應。整個通話只持續了幾分鐘。
Bithumb與TIMON(TicketMonster)進行合作:韓國大型虛擬貨幣交易所Bithumb與手機電商TIMON(TicketMonster)進行合作活動。在TIMON年滿19周歲的會員注冊Bithumb的賬戶時,前5000名用戶可獲得3000韓元(約人民幣16元)的BithumbCash和TIMON的3000韓元(約人民幣16元)積分。注冊Bithumb新賬戶的TIMON用戶進行交易的前2000名用戶可獲得TIMON的1萬韓元(約人民幣550元)積分。此次活動時間為5月9日至6月8日,交易活動一直進行到6月15日。[2018/5/9]
四、準備
上午11:26
在救援行動室里,Mudit,Keno,Georgios和我正在忙著寫一份簡單的救援合約。我們決定最干凈的做法是發起一筆閃電貸,直接購買到硬上限,結束拍賣,然后使用拍賣本身的收益償還閃電貸。這種方法不需要前期準備資金,效果非常好。
下午1:36
當我們完成救援合約的工作時,我們討論了批量拍賣的后續步驟。Mudit指出,即使在拍賣進行時也可以設置一個積分列表,并且在每次ETHcommitment期間都會調用它。我們立即意識到這可能是我們正在尋找的暫停功能。
我們集思廣益,想出了不同的方法來使用這個方法。立即還原是一個顯而易見的解決方案,但我們想要更好的方案。
我考慮添加一個檢查,每個源只能為每個區塊做出一個commitment,但我們注意到該函數被標記為視圖,這意味著Solidity編譯器將使用靜態調用操作碼。我們的方式不允許進行任何狀態修改。
經過一番思考,我意識到我們可以使用積分列表來驗證拍賣合約是否有足夠的ETH來匹配所做的commitment。換句話說,如果有人試圖利用這個漏洞,那么commitment會比ETH多。我們可以很容易地檢測到這一點并還原交易。Mudit和Keno開始編寫測試以進行驗證。
五、救援
下午2:01
通信突圍團隊與救援突圍團隊合并工作以同步進度。他們已經與執行拍賣的團隊取得了聯系,但該團隊希望手動完成拍賣。我們討論了風險并認為某個自動化機器人注意到這筆交易或能夠對其采取任何行動的可能性很小。
下午2:44
執行拍賣的團隊完成了拍賣,消除了直接威脅。我們互相祝賀成功,然后各自解散。這次批量拍賣將在當天晚些時候悄悄結束。不知情的人恐怕不知道剛剛避免了一場多么嚴重的災難。
六、反思
下午4:03
過去的幾個小時讓人感覺很模糊,時間好像靜止一樣。我從相遇這個項目到發現漏洞只用了半個多小時,20分鐘內進行了披露,另外30分鐘內作戰室,三個小時內修復漏洞。總而言之,只用了五個小時就保護了3.5億美元不落入壞人之手。
即使沒有金錢上的損失,我相信所有參與其中的人都更愿意一開始就沒有經歷過這個過程。針對這次事件,我有兩個主要的要點給你。
首先,在復雜系統中使用msg.value很困難。它是一個全局變量,您無法更改并在委托調用中保持不變。如果您使用msg.value來檢查是否已收到付款,則絕對不能將該邏輯置于循環中。
隨著代碼庫復雜性的增加,很容易忘記發生的位置并意外地在錯誤的位置循環某些內容。雖然封裝和釋放ETH很麻煩并且引入了額外的步驟,但如果想要避免這樣的事情,那么WETH和其他ERC20代幣之間的統一接口可能值得一試。
其次,兩個安全組件組合在一起,可能就會得到不安全的東西。我之前曾在可組合性和DeFi協議的背景下聲明過這一點,但這次事件表明,即使是安全的合約級組件也可能以產生不安全的合約級行為的方式混合。這里沒有像“檢查-效果-交互”這樣的包羅萬象的建議,所以你只需要了解新組件引入的額外交互。
我要感謝Sushi的貢獻者,Joseph、Mudit、Keno和Omakase對這個問題的快速響應,以及我的同事Georgios、Dan和Jim在整個過程中提供的幫助,包括審閱了這篇文章。
Tags:BITETH區塊鏈MONBaby BitBurnReflectETHFIN區塊鏈騙了多少人SingMon Token
鏈捕手消息,知情人士透露,印度的反洗錢機構正在調查幣安控股有限公司是否在應用程序洗錢案中發揮作用。知情人士稱,執法局已傳喚幣安高管進行訊問,目前正在等待回應.
1900/1/1 0:00:00鏈捕手消息,根據美國投資銀行摩根士丹利向美國證券交易委員會提交的文件顯示,該公司從十幾個基金中購買了超過650萬股灰度比特幣信托.
1900/1/1 0:00:00本文內容來自鏈聞ChainNews,作者為AmyLiu。隨著客戶對投資加密貨幣的需求增長,已有越來越多投行開始提供加密貨幣服務。然而,面臨監管重壓,華爾街銀行布局加密貨幣仍態度謹慎.
1900/1/1 0:00:00鏈捕手消息,基于Solana網絡的去中心化貨幣市場平臺ApricotFinance宣布完成400萬美元融資,以推進其成為個性化DeFi解決方案首選平臺的目標.
1900/1/1 0:00:00作者:谷昱 8月27日,由上汽集團、張江高科和阿里巴巴共同打造智己汽車宣布將“用戶數據權益計劃”正式命名為“原石谷”,并正式進入運營階段.
1900/1/1 0:00:00鏈捕手消息,位于香港的NFT實體畫廊StartArtGallery以共218ETH買入CryptoPunk#8236與CryptoPunk#1970,成為畫廊重要珍藏之一.
1900/1/1 0:00:00