8月17日,區塊鏈投資機構Paradigm研究合伙人、著名白帽黑客samczsun撰文披露了BitDAO在SushiSwapIDO平臺MISO進行的荷蘭拍的智能合約存在安全漏洞,多名白帽黑客聯手從眾籌資金池中拯救回10
}
看看上面這個函數,它似乎被正確地實現了。然而,在我腦海的角落里,有什么東西在提醒著我。那時我意識到我過去曾看到過非常相似的東西。
二、發現
上午9:47
距離今天打印一年多前,我在與Opyn團隊的Zoom視頻通話中,試圖弄清楚如何在遭受毀滅性黑客攻擊后恢復和保護用戶資金。
黑客攻擊手法本身很簡單但很巧妙:它使用一次ETH支付來行使多個期權,因為Opyn合約在循環中使用了msg.value變量。
Bitstamp 將向美國投資者推出其 Bitstamp Earn 產品:6月2日消息,隨著公司繼續進軍美國市場,總部位于盧森堡的加密交易所 Bitstamp 將向美國投資者推出其 Bitstamp Earn 產品,讓客戶可以通過質押以太坊和 Algorand 來賺取利息。(decrypt)[2022/6/3 3:59:26]
雖然處理代幣支付涉及每個循環迭代的單獨transferFrom調用,但處理ETH支付只是檢查msg.value是否足夠。這允許攻擊者多次重復使用相同的ETH。
回到今天,我意識到我正在看到的是兩個完全相同的漏洞,只是形式不同。在委托調用中,msg.sender和msg.value被持久化。這意味著我應該能夠批量調用commitEth并在每個commitment中重復使用我的msg.value,這將允許我在拍賣中能夠免費出價。
Web3教程協議RabbitHole遭到意外中斷:金色財經消息,Web3教程協議RabbitHole發推稱,遭到意外中斷,目前正在尋求解決方案。[2022/3/26 14:18:55]
上午9:52
我的直覺告訴我這是真實的交易,但我無法在沒有實際驗證的情況下確定。我迅速打開Remix并編寫了一個概念驗證。
令我沮喪的是,我的主網分叉環境之前不久被完全損壞了。我一定是在倫敦硬分叉期間不小心弄壞了它。有這么多資金正處于風險之中,而我卻沒有足夠的時間。我很快在命令行上拼湊了一個簡陋的主網分叉并測試了我的漏洞。結果跟我想的一樣。
上午10:13
在對外報告這個漏洞風險之前,我給我的同事GeorgiosKonstantopoulos打了電話,讓他??們再看一遍。在等待回應的同時,我又回到合約中尋找確定嚴重性的方法。在這種情況下,能夠免費參加拍賣是一回事,但能夠竊取所有其他參與者的出價則是另一回事。
Bitfinex首席技術官:自從2017年牛市以來,加密空間已成熟很多:雖然有一些回撤,但一旦比特幣突破2萬美元的價格區間,分析師強調在該心理區間上方沒有歷史阻力。Bitfinex首席技術官Paolo Ardoino解釋說,自從2017年的牛市以來,加密空間已經成熟了很多。Ardoino表示:“加密市場今天正在回撤最近的一些漲幅。”隨著加密空間內的一些興奮消退,參與者可以開始思考,自比特幣2萬美元的歷史高點以來,這個空間發生了多大的變化。再多的憤世嫉俗、懷疑,甚至是異想天開的想法,都無法掩蓋比特幣令人信服的理由。全球資產管理公司將繼續相應地調整其投資組合。”(Bitcoin.com)[2020/12/3 22:59:10]
我注意到在我最初的掃描過程中有一些退款邏輯,但當時我并未多想。現在,這已是一種讓ETH退出合約的方法。我很快檢查了我需要滿足哪些條件才能讓合約為我提供退款。
聲音 | Bitfinex CTO發推稱Bitfinex能夠在10天內通過私募籌集10億美元:Bitfinex CTO Paolo Ardoino 發推稱能夠在10天內通過私募籌集10億美元。我們行業內外的巨頭私營企業,每家投資超過1億。大量的內外部用戶都投資超過100萬美元。[2019/5/13]
令我驚訝的是,我發現發送的任何超過拍賣硬上限的ETH都會獲得退款。即使達到硬上限,這也適用,這意味著合約不會完全拒絕交易,而是簡單地退還您的所有ETH。
突然間,我發現的這個漏洞變得巨大。我不是在處理一個讓你出價可以超過其他參與者的漏洞。我在看的是一個價值3.5億美元的漏洞。
三、披露
上午10:38
在與Georgios確認這個漏洞后,我讓他和DanRobinson嘗試聯系SushiCTOJosephDelong。幾分鐘后,Joseph做出了回應,然后我與Georgios、Joseph、Mudit、Keno和Omakase一起進行了Zoom通話。我就漏洞向其他參與者進行了快速匯報,然后他們開始四處協調響應。整個通話只持續了幾分鐘。
Bitwise Investment擬推出由10個加密數字貨幣組合的指數基金:據了解,Bitwise Investment獲400萬美元投資 擬推出由10個加密數字貨幣組合的指數基金。[2017/12/13]
四、準備
上午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在整個過程中提供的幫助,包括審閱了這篇文章。
鏈捕手消息,近日以柴犬為主題的狗狗幣中最為人所知的meme代幣在今年四月迎來最大漲幅后進入連續下跌態勢.
1900/1/1 0:00:00鏈捕手消息,美國跨國金融和支付卡公司Visa將加密支付初創公司Wyre添加到其快速通道支付計劃中,使Wyre能夠集成Visa的技術和附加功能.
1900/1/1 0:00:00長期以來,高杠桿率在加密市場盛行,不僅令許多投資者遭遇巨大損失,也加劇了加密市場的波動性,成為影響加密市場的最大系統性風險之一.
1900/1/1 0:00:00鏈捕手消息,跨鏈預言機PythNetwork宣布將在Solana主網上線。開發者將能夠在現有和新的DeFi平臺和應用程序中集成Pyth實時喂價.
1900/1/1 0:00:00本文來自富達數字資產,并由鏈捕手翻譯。到目前為止,機構投資者社區的大部分討論都集中在“為什么是比特幣?”如果有人確實得出比特幣適合其投資組合的結論,那么下一個邏輯問題通常是“如何”投資比特幣.
1900/1/1 0:00:00原文標題:《頭等倉深度報告:PerpetualProtocol》 撰文:頭等倉 PerpetualProtocol是一個建立在以太坊上的去中心化永續合約協議,其V1版本使用虛擬AMM定價的設計.
1900/1/1 0:00:00