智能合約是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議。智能合約允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。智能合約概念于1995年由NickSzabo首次提出。智能合約的目的是提供優于傳統合約的安全方法,并減少與合約相關的其他交易成本。
漏洞概述:
因為以太坊智能合約中是可以調用外部的合約代碼,外部合約可能是攻擊者構造的惡意不安全的合約代碼,當在轉賬操作時執行代碼,迫使攻擊的合約回調包括自身的代碼,和繞過源代碼的限制發生了重入攻擊事件。
發生重入攻擊漏洞有兩個原因:
火必成為香港虛擬資產評級機構HKVAC首位交易所成員:5月31日消息,火必宣布成為香港虛擬資產評級機構 HKVAC 首位交易所成員。火必表示,將為 HKVAC 提供交易所專業的安全技術及合規的標準化流程作為參考,共同為行業投資者提供更權威的風險管理指標,并制定嚴格的評級標準,對現有交易所進行信用評估。此外,火必加入 HKVAC 后將與其共同探索技術、數據、生態等多維度的合作及升級,加速 Web3 基礎設施落地。
HKVAC 由專業評級機構及業界發起成立,由虛擬資產業界利益相關者包括大數據公司、交易所、機構投資者等并同香港牌照評級機構組成,旨在創造安全的虛擬資產投資環境,以提高公眾投資者對虛擬資產的認可。[2023/5/31 11:49:48]
1.?調用了外面不安全的合約代碼
BAYC:“Summoning”已正式開啟:3月16日消息,“無聊猿”BAYC在官推宣布“Summoning”已正式開啟,對所有符合條件的下水道通行證Sewer Pass持有者開放。
“Summoning”是猴子吉米試煉中的下一個重大事件,允許銷毀下水道通行證已召喚Power Sources,但目前BAYC尚未公布如何使用Power Sources,僅透露將基于Dookey Dash排名有八種不同類型的Power Sources。
此外BAYC還表示用戶可以不急于鑄造Power Sources,因為召喚“Summoning”將無限期開放,目前有大約3500枚下水道通行證Sewer Pass NFT從未被認領,789個被認領但不符合召喚資格。[2023/3/16 13:07:11]
2.?外部合約的函數早于狀態變量的修改
趙長鵬:區塊鏈沒有國界,不應用“離岸”和“在岸”的思維討論問題:2月20日消息,幣安創始人趙長鵬發推文稱:“‘離岸’一詞顯得過于狹隘、以自我為中心,放眼大局,無助于我們行業的發展,從‘在岸’的角度來看,所討論的問題,FTX.US是一個‘在岸’交易所(角度是從美國出發)。SBF和FTX的主要執行官是美國人。他們花費了大量的時間和精力在美國進行游說。這并沒有阻止欺詐行為的發生。區分‘在岸’和其他人是以自我為中心的,有點自大。
每個人都從自己的角度‘在岸’。‘我們比其他人都好’并不是建設更好行業的靈丹妙藥。到處都有好人和壞人。擁抱多樣性和開放性將帶來更好的結果。任何過度概括(尤其是針對他人)都會適得其反,而且是消極的。區塊鏈沒有國界。”[2023/2/20 12:17:19]
Ripple指責美國SEC試圖“壓制公眾對其專家意見的批評”:7月11日消息,Ripple案的被告指控美國SEC對專家報告采取“極端立場”。在最近寫給法官Analisa Torres的一封信中,他們聲稱原告試圖壓制任何“實質性批評”。
5月底,Deaton律師事務所的律師John Deaton提交了一份動議信,請求法官允許他代表數萬名XRP持有者提交一份摘要。在此之前,SEC的專家證人Patrick B. Doody剛剛準備了一份關于XRP持有者購買動機的報告。
Deaton表示他打算提交道伯特動議排除不合格的證據呈現。Hogan & Hogan律所的律師Jeremy Hogan表示,這一動議“意義重大”,因為打擊專家將使證明其案件更具挑戰性。
6月9日,美國最高法院否決了SEC的動議,即封存其對法庭之友參與道伯特訴訟請求的反對函,理由是SEC試圖封存的內容超出了必要范圍。6月15日,SEC提交了修改建議,以證明該專家證人沒有受到“進一步的威脅”和“騷擾”。然而,被告聲稱,SEC試圖“壓制公眾對其專家意見的批評”。(U.Today)[2022/7/11 2:05:03]
漏洞分析:
看withdraw函數,我們可以看到它接收了一個_amount參數,將其與發送者的balance進行比較,不超過發送者的balance就將這些_amount發送給sender,同時我們注意到這里它用來發送ether的函數是call.value,發送完成后,它才在下面更新了sender的balances,這里就是可重入攻擊的關鍵所在了,因為該函數在發送ether后才更新余額,所以我們可以想辦法讓它卡在call.value這里不斷給我們發送ether,同樣利用的是我們熟悉的fallback函數來實現。
當然,這里還有另外一個關鍵的地方——call.value函數特性,當我們使用call.value()來調用代碼時,執行的代碼會被賦予賬戶所有可用的gas,這樣就能保證我們的fallback函數能被順利執行,對應的,如果我們使用transfer和send函數來發送時,代碼可用的gas僅有2300而已,這點gas可能僅僅只夠捕獲一個event,所以也將無法進行可重入攻擊,因為send本來就是transfer的底層實現,所以他兩性質也差不多。
2016年6月以太幣組織TheDAO被攻擊,攻擊者利用兩個代碼漏洞創建子合約提取了360萬個以太幣。接下來我們簡單說一下這個事件
攻擊者利用the?DAO函數智能合約中splitDAO()函數,重復對DAO資產進行重入攻擊,不斷從項目的資產里面分離出DAO資產并轉移到自己的賬戶中
1.?創建錢包,調用splitDAO函數
2.?創建一個分割提案到一個新的錢包地址
3.?等待再調用splitDAO函數
4.?成功獲取了ether
?解決方法:
1.?使用其他轉賬函數
進行以太坊轉賬時發送給外部地址時使用Solidity的內置函數,這將不足以調用另一份合約.
2.?先修改狀態變量
這種方式就是確保狀態變量的修改要早于轉賬操作,即Solidity官方推薦的檢查-生效-交互模式(checks-effects-interactions)。
1.?使用互斥鎖
互斥鎖就是添加一個在代碼執行過程中鎖定合約的狀態變量以防止重入攻擊。
2.?使用OpenZeppelin官方庫
OpenZeppelin官方庫中有一個專門針對重入攻擊的安全合約
??本文作者:權星實驗室團隊
來源:金色財經
最近,元宇宙概念有多火爆?先有臉書公司改名元宇宙,其他大公司也在紛紛跑步入場元宇宙行業,就怕落伍了。 比如鴻海董事長說:在元宇宙領域不會缺席,將以平臺方式打造元宇宙.
1900/1/1 0:00:00以太坊不斷高企的Gas費雖令人備受困擾,不過也促成了Layer2這一具有想象力的賽道。在以太坊2.0成功實施之前,Layer2或將是最佳替代方案.
1900/1/1 0:00:002021年是DeFi爆發的一年,縱然疫情肆虐,DeFi概念幣卻屢創新高,加密行業的潘多拉魔盒被打開之后,熱點不斷.
1900/1/1 0:00:00比特幣將跌破3萬美元? 最近,比特幣行情表現不容可樂觀:連續三天呈下跌狀態,最低價格至41138美元,為6天以來的新低。與此同時,加密貨幣行情整體下跌趨勢明顯,ETH三連跌,最低至3040美元.
1900/1/1 0:00:00黑客在1月23日下午的某個時間點攻擊了一些受歡迎的加密YouTube賬戶。這些賬戶發布了未經授權的視頻,并配有文字指示觀眾向黑客的錢包匯款.
1900/1/1 0:00:00分析師預測美聯儲將加速緊縮,引發對市場和經濟的不安。受奧密克戎變種明顯較溫和的跡象鼓舞,各國政府和央行正試圖推動本國經濟回到正常狀態.
1900/1/1 0:00:00