8月17日,區塊鏈投資機構Paradigm研究合伙人、著名白帽黑客samczsun撰文披露了BitDAO在SushiSwapIDO平臺MISO進行的荷蘭拍的智能合約存在安全漏洞,多名白帽黑客聯手從眾籌資金池中拯救回10
}
看看上面這個函數,它似乎被正確地實現了。然而,在我腦海的角落里,有什么東西在提醒著我。那時我意識到我過去曾看到過非常相似的東西。
二、發現
上午9:47
距離今天打印一年多前,我在與Opyn團隊的Zoom視頻通話中,試圖弄清楚如何在遭受毀滅性黑客攻擊后恢復和保護用戶資金。
黑客攻擊手法本身很簡單但很巧妙:它使用一次ETH支付來行使多個期權,因為Opyn合約在循環中使用了msg.value變量。
Bitfinex將于4月27日暫停Filecoin(FIL)充提:4月26日消息,據官方公告,由于Filecoin將進行nv19 Lighting和nv20 Thunder網絡升級,Bitfinex將從UTC時間4月27日13:00(北京時間21:00)開始暫停Filecoin(FIL)充值和提現約24小時。一旦FIL充值和提現再次開放,Bitfinex將通知客戶。交易不會受到影響。[2023/4/26 14:27:39]
雖然處理代幣支付涉及每個循環迭代的單獨transferFrom調用,但處理ETH支付只是檢查msg.value是否足夠。這允許攻擊者多次重復使用相同的ETH。
回到今天,我意識到我正在看到的是兩個完全相同的漏洞,只是形式不同。在委托調用中,msg.sender和msg.value被持久化。這意味著我應該能夠批量調用commitEth并在每個commitment中重復使用我的msg.value,這將允許我在拍賣中能夠免費出價。
UPbit暫停韓元存取款:據官方公告,UPbit暫停韓元存取款。[2021/4/7 19:54:39]
上午9:52
我的直覺告訴我這是真實的交易,但我無法在沒有實際驗證的情況下確定。我迅速打開Remix并編寫了一個概念驗證。
令我沮喪的是,我的主網分叉環境之前不久被完全損壞了。我一定是在倫敦硬分叉期間不小心弄壞了它。有這么多資金正處于風險之中,而我卻沒有足夠的時間。我很快在命令行上拼湊了一個簡陋的主網分叉并測試了我的漏洞。結果跟我想的一樣。
上午10:13
在對外報告這個漏洞風險之前,我給我的同事GeorgiosKonstantopoulos打了電話,讓他??們再看一遍。在等待回應的同時,我又回到合約中尋找確定嚴重性的方法。在這種情況下,能夠免費參加拍賣是一回事,但能夠竊取所有其他參與者的出價則是另一回事。
公告 | Bitfinex將無限期推遲K.im代幣銷售:據Bitfinex官網公告,監管環境迅速發展,與為K.im代幣銷售籌集資金有關的風險已經變得很清楚。經過仔細評估,Bitfinex代幣銷售和K.im團隊已達成共識,目前不舉行代幣銷售,K.im將無限期推遲就是否在K.im平臺上創建令牌或承擔與K.im平臺有關令牌發行的任何決定,直到其完全正常運行為止。同時,K.im平臺項目本身將繼續進行,并且有可能在不久的將來向希望參與該項目階段的合格投資者進行基于股權的收購。[2019/11/6]
我注意到在我最初的掃描過程中有一些退款邏輯,但當時我并未多想。現在,這已是一種讓ETH退出合約的方法。我很快檢查了我需要滿足哪些條件才能讓合約為我提供退款。
令我驚訝的是,我發現發送的任何超過拍賣硬上限的ETH都會獲得退款。即使達到硬上限,這也適用,這意味著合約不會完全拒絕交易,而是簡單地退還您的所有ETH。
動態 | BitLeague推出特幣定期存款產品:據cryptoglobe報道,加密貨幣初創公司BitLeague在2019紐約共識大會期間宣布,最近推出了一種比特幣定期存款產品。定期存款將提供9%的年利率,鎖定期為3至36個月。[2019/5/16]
突然間,我發現的這個漏洞變得巨大。我不是在處理一個讓你出價可以超過其他參與者的漏洞。我在看的是一個價值3.5億美元的漏洞。
三、披露
上午10:38
在與Georgios確認這個漏洞后,我讓他和DanRobinson嘗試聯系SushiCTOJosephDelong。幾分鐘后,Joseph做出了回應,然后我與Georgios、Joseph、Mudit、Keno和Omakase一起進行了Zoom通話。我就漏洞向其他參與者進行了快速匯報,然后他們開始四處協調響應。整個通話只持續了幾分鐘。
公告 | bitFlyer:交易所服務現已恢復正常:日本bitFlyer交易所:交易所服務現已恢復正常[2018/9/21]
四、準備
上午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在整個過程中提供的幫助,包括審閱了這篇文章。
鏈捕手消息,知情人士透露,印度的反洗錢機構正在調查幣安控股有限公司是否在應用程序洗錢案中發揮作用。知情人士稱,執法局已傳喚幣安高管進行訊問,目前正在等待回應.
1900/1/1 0:00:00作者:龔荃宇 近日,AndreCronje等多人在DeFi治理平臺Snapshot發起YearnFinance新提案YIP-63.
1900/1/1 0:00:00本文來源于AKACapital。2021年第一季度是加密資產瘋狂發育的一段時間,在經歷了幾輪調整后,加密資產回歸理性。但目前每日仍達到十億美金或以上的驚人交易量,達到了相對穩定的狀態.
1900/1/1 0:00:00鏈捕手消息,著名的體育賽事收藏平臺Topps今日宣布將發行史上首個德甲NFT交易卡系列:德甲2020-2021賽季紀念NFT。本系列由ToppsNFTs.com獨家發售.
1900/1/1 0:00:00鏈捕手消息,據開曼群島金融管理局表示,幣安、幣安集團和幣安控股有限公司沒有在開曼群??島或在開曼群島內注冊、獲得許可、受到監管或得到管理局的其他授權來經營加密貨幣交易所.
1900/1/1 0:00:00鏈捕手消息,PolyNetwork今日在致白帽黑客的《寫在PolyNetwork主網上線一周年的一封公開信》中表示,在攻擊事件發生前.
1900/1/1 0:00:00