8月17日,區塊鏈投資機構Paradigm研究合伙人、著名白帽黑客samczsun撰文披露了BitDAO在SushiSwapIDO平臺MISO進行的荷蘭拍的智能合約存在安全漏洞,多名白帽黑客聯手從眾籌資金池中拯救回10
}
看看上面這個函數,它似乎被正確地實現了。然而,在我腦海的角落里,有什么東西在提醒著我。那時我意識到我過去曾看到過非常相似的東西。
二、發現
上午9:47
距離今天打印一年多前,我在與Opyn團隊的Zoom視頻通話中,試圖弄清楚如何在遭受毀滅性黑客攻擊后恢復和保護用戶資金。
黑客攻擊手法本身很簡單但很巧妙:它使用一次ETH支付來行使多個期權,因為Opyn合約在循環中使用了msg.value變量。
BitMEX創始人:生態系統使Solana等競爭對手無法擊敗以太坊:10月26日消息,BitMEX創始人Arthur Hayes在接受采訪時表示,他對以太坊寄予厚望,Solana等競爭對手不會擊敗它,以太坊的生態系統比每秒交易量或更低的Gas費用更重要,以太坊有數千名開發人員,而其他生態最多有幾百個,這就是最重要的。[2022/10/26 16:39:12]
雖然處理代幣支付涉及每個循環迭代的單獨transferFrom調用,但處理ETH支付只是檢查msg.value是否足夠。這允許攻擊者多次重復使用相同的ETH。
回到今天,我意識到我正在看到的是兩個完全相同的漏洞,只是形式不同。在委托調用中,msg.sender和msg.value被持久化。這意味著我應該能夠批量調用commitEth并在每個commitment中重復使用我的msg.value,這將允許我在拍賣中能夠免費出價。
Bit.Store通過Alchemy Pay添加手機錢包支付等功能:5月30日消息,SocialFi加密投資平臺Bit.Store(STORE)與加密支付提供商Alchemy Pay(ACH)強化合作關系。除了目前的信用卡和Paypal支付方式之外,Alchemy Pay還將幫助Bit.Store支持手機錢包支付和本地即時轉賬服務。
此外,Alchemy Pay將為Bit.Store提供出金功能,這意味著其用戶可以將加密貨幣轉換為100多種當地法定貨幣,并將其直接存入銀行賬戶。(PRNewswire)[2022/5/30 3:51:09]
上午9:52
我的直覺告訴我這是真實的交易,但我無法在沒有實際驗證的情況下確定。我迅速打開Remix并編寫了一個概念驗證。
令我沮喪的是,我的主網分叉環境之前不久被完全損壞了。我一定是在倫敦硬分叉期間不小心弄壞了它。有這么多資金正處于風險之中,而我卻沒有足夠的時間。我很快在命令行上拼湊了一個簡陋的主網分叉并測試了我的漏洞。結果跟我想的一樣。
Deribit宣布新發行的期權完成2萬BTC巨鯨大單:加密衍生品交易所Deribit宣布,新發行的2021年1月的期權今天完成2萬BTC的交易。3.2萬美元行使價的未平倉合約為4000張,而3.6萬美元行使價的未平倉合約為1.6萬張。24小時滾動BTC期權交易量為4.7萬,這是一個新的歷史記錄。[2020/10/30 11:16:38]
上午10:13
在對外報告這個漏洞風險之前,我給我的同事GeorgiosKonstantopoulos打了電話,讓他??們再看一遍。在等待回應的同時,我又回到合約中尋找確定嚴重性的方法。在這種情況下,能夠免費參加拍賣是一回事,但能夠竊取所有其他參與者的出價則是另一回事。
我注意到在我最初的掃描過程中有一些退款邏輯,但當時我并未多想。現在,這已是一種讓ETH退出合約的方法。我很快檢查了我需要滿足哪些條件才能讓合約為我提供退款。
BITUAN幣團主流幣行情:BTC 24小時跌1.41%:BITUAN幣團交易所官方行情數據,截至9月11日15:00:BTC 24小時跌1.41%,報10271.00USDT;ETH 24小時跌2.17%,報363.33USDT;EOS 24小時跌1.25%,報2.7510USDT;BCH 24小時跌1.51%,報223.03USDT;BSV 24小時跌2.70%,報165.0411USDT;LTC 24小時跌1.47%,報48.12USDT;XRP 24小時跌1.84%,報0.24113USDT;ETC 24小時漲0.06%,報5.1447USDT。[2020/9/11]
令我驚訝的是,我發現發送的任何超過拍賣硬上限的ETH都會獲得退款。即使達到硬上限,這也適用,這意味著合約不會完全拒絕交易,而是簡單地退還您的所有ETH。
Yobit.Net:Yobit.Net發布公告稱,LOCX,COVX,SENT,CHATX及BTCA已上線交易。[2018/1/20]
突然間,我發現的這個漏洞變得巨大。我不是在處理一個讓你出價可以超過其他參與者的漏洞。我在看的是一個價值3.5億美元的漏洞。
三、披露
上午10:38
在與Georgios確認這個漏洞后,我讓他和DanRobinson嘗試聯系SushiCTOJosephDelong。幾分鐘后,Joseph做出了回應,然后我與Georgios、Joseph、Mudit、Keno和Omakase一起進行了Zoom通話。我就漏洞向其他參與者進行了快速匯報,然后他們開始四處協調響應。整個通話只持續了幾分鐘。
四、準備
上午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在整個過程中提供的幫助,包括審閱了這篇文章。
鏈捕手消息,支持比特幣發展的知名網站Bitcoin.org在英國法院做出裁決后,將不得不刪除所有對比特幣白皮書的引用.
1900/1/1 0:00:00鏈捕手消息,歐洲投資基金首次投資于專注于數字資產的基金。風險投資公司FabricVentures完成1.2億美元融資,其中,由歐洲投資銀行、歐盟和其他金融機構組成的歐盟下屬機構與風險投資基金「歐.
1900/1/1 0:00:00鏈捕手消息,總部位于新加坡的區塊鏈公司Chintai宣布完成750萬美元種子輪融資,Block.one和CryptologyAssetGroup領投.
1900/1/1 0:00:00鏈捕手消息,Layer2交易平臺DeversiFi將通過其啟動市場分發2,000,000個DVF治理代幣,銷售將于7月8日下午3點左右開始,并于7月10日下午3點左右結束.
1900/1/1 0:00:00鏈捕手消息,跨鏈NFT資產流動性協議TakerProtocol宣布完成種子輪融資,本輪融資由ElectricCapital領投.
1900/1/1 0:00:00本文來源于Odaily星球日報,作者為Azuma7月27日22:00,知名鏈游公會、AxieInfinity爆火背后最大的助推者之一?YieldGuildGames?于SushiSwapMISO.
1900/1/1 0:00:00