買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > FTX > Info

Cred:以Kadena智能合約為例 簡析如何規避重入攻擊和跨函數攻擊_RED

Author:

Time:1900/1/1 0:00:00

在這篇文章中,我們將簡要地解釋重入和跨函數重入之間的區別,以及圖靈不完備性如何能夠防止一些這樣的攻擊。

其中我們將提供一個跨函數重入利用的案例,該案例中Kadena區塊鏈使用的是編程語言Pact,但圖靈不完備性并未防止該惡意利用的發生。

事件簡介

Kadena區塊鏈旨在實現比其他L1鏈更高的可擴展性、安全性和可用性。其開發了一種新的語言用以編寫智能合約:Pact。

這種語言是人類可讀的,且易于形式化驗證,并具備可提高安全性的圖靈不完備性。

這里提到的圖靈不完備性意味著Pact無法做到圖靈完備編程語言所能做到的那些事——看起來好像是個劣勢,但其實智能合約編程,哪怕是最復雜的DeFi協議也很少會需要用到圖靈完備性。

圖靈不完備性最重要的一點是沒有無界遞歸。雖然這確實大大減少了攻擊面,但一些「經典」攻擊是無法被100%避免的,接下來我們就會講述跨函數重入的問題。

ChatGPT已升至美國地區App Store免費App排行榜首位:5月19日消息,繼 OpenAI 今晨宣布將推出 iOS 平臺的 ChatGPT 應用程序之后,OpenAI ChatGPT現已躍升至美國地區 App Store 免費 App 排行榜首位。[2023/5/19 15:13:31]

經典重入攻擊

重入攻擊是非常常見的安全問題。這個問題不僅很難被開發者發現,也很難被審計師審查出其會導致的所有潛在后果。

重入攻擊取決于函數在進行外部調用之前和之后執行的特定任務的順序。

如果一個合約調用了一個不受信任的外部合約,攻擊者可以讓它一次又一次地重復這個函數調用,形成一個遞歸調用。而如果重新輸入的函數執行重要的任務,那這可能就會導致災難性的后果。

下方是一個簡化的例子。

我們把易受攻擊的合約稱為unsafe合約,把惡意的合約稱為Attack合約。

香港立法會議委員邱達根:法例更新、行業監管等是香港有序合規投入Web3進程的下一步工作:4月12日消息,在2023 香港 Web3 嘉年華上,香港特別行政區立法會議委員邱達根在發表主旨演講時表示,香港在 Web3 方面的舉措是一個非常重要的時刻,Web3 行業的技術與政策需要齊頭并進,以此建立一個更好的經濟系統。過去幾個月,香港政府從宣布支持虛擬資產、到對穩定幣咨詢工作的完成,行動是非常快的。另外今年 6 月份將正式引入虛擬資產服務供應商發牌制度,目前已經發放了兩個牌照。關于香港如何有序、合規地投入 Web3 的發展進程,下一步工作將是法例更新、行業監管、投資者保護和企業管治。

另外,“十四五規劃綱要”確立香港作為國際創新科技中心,要素包括貨幣國際影響力、科技自立自強和人才引領驅動,香港將配合國家發展策略,方向一為:聯通數字人民幣,發展數碼港元和虛擬資產服務;方向二為:提升科研轉化,深入上游科技研發,分布式賬本技術的創新應用;方向三為推出人才服務計劃,多方面引入科技人才等。[2023/4/12 13:58:30]

1.攻擊者調用unsafe合約,以將資金轉移到Attack合約中。

數據:SSV DAO融資中21%份額Token已完成拋售:2月27日消息,據鏈上分析師 Bit 余燼監測,2021 年 11-12 月,SSV DAO 以每枚 SSV 6.19 的價格向機構和個人投資者出售了 978,229 枚 SSV,目前投資方購買的超半數 Token 已解鎖,目前已有 183,399 沒 SSV 拋售獲利,約占已解鎖份額的 50.7%,約占全部購買份額的 21%。

其中,stakewith.us、NGC Ventures、Lead Capital 已將其全部解鎖 Token 拋售,DCG、OKX、Coinbase 等機構暫無拋售動作。

此前報道,2022 年 2 月,ssv.network 于 2021 年年底進行 DAO 融資,該輪融資中機構所獲份額將在一年后立即釋放 50%,其余 50% 在未來一年內線性釋放。[2023/2/27 12:32:31]

2.收到調用之后,unsafe合約首先檢查攻擊者是否有資金,然后將資金轉移到Attack合約。

美國國會議員Tom Emmer就Tornado Cash遭制裁致信耶倫:技術是中立的,對隱私的期望是正常的:8月23日消息,美國國會議員Tom Emmer就Tornado Cash遭到制裁一事致信財政部長耶倫(Janet Yellen)稱,越來越多地采用去中心化技術肯定會給美國財政部外國資產控制辦公室(OFAC) 帶來新的挑戰。盡管如此,技術是中立的,對隱私的期望是正常的。[2022/8/24 12:44:18]

3.收到資金后,Attack合約執行回退函數,在它能夠更新余額之前回調到不安全的合約,從而重新啟動該過程。

因為這種攻擊是通過無界遞歸調用進行的,所以如果語言不是圖靈完備的,攻擊就不可能進行。

跨函數重入

以太坊網絡當前已銷毀超251.37萬枚ETH:金色財經報道,據Ultrasound數據顯示,截止目前,以太坊網絡總共銷毀2,513,721.69枚ETH。其中,ETHtransfers銷毀232,145.21枚ETH,OpenSea銷毀230,049.97枚ETH,UniswapV2銷毀134,465.10枚。注:自以太坊倫敦升級引入EIP-1559后,以太坊網絡會根據交易需求和區塊大小動態調整每筆交易的BaseFee,而這部分的費用將直接燃燒銷毀。[2022/7/6 1:53:10]

跨函數重入類似于經典的重入攻擊,除了重入的函數與進行外部調用的函數功能不同。這種重入攻擊通常更難被發現——因為在復雜的協議中,組合的可能性太多,無法手動測試每個可能的結果。

這就引出了我們的概念證明:使用Pact語言進行簡單的跨函數重入攻擊。

Pact模塊中的簡單跨函數重入

正如我們在下方代碼片段中看到的,合約中的函數對另一個實現特定接口的合約進行外部調用。這允許重入一個設計好的攻擊合約。Pact中的功能是內置函數,可授予用戶權限來執行敏感任務。以下代碼僅供說明之用,并非取自真實案例合約。

我們將使用的代碼例子包含三個部分:

1.?合約接口

用以使主合約與一個惡意的外部模塊進行交互

2.主要模塊

被攻擊的模擬示例合約

首先,數據庫被定義為一個表,其中字符串存儲在具有關聯十進制數的行中。

然后定義了一個能力:CREDIT。這個條件將是credit函數所需要的,但只被with_capability語句中的bad_function內部授予。這意味著直接調用credit會失敗。

現在,函數credit被定義如下:它增加了作為輸入的字符串的余額。如果該地址不在表中,它還會創建該條目。

最后,函數bad_function增加了legit_address的余額,但也執行了對符合之前定義的接口的合約的調用,該合約可以作為一個輸入參數提供。函數get-balance允許我們讀取該表格。

3.用于觸發重入的模塊:

重新進入主模塊,調用credit函數

大致流程如下:

a.以攻擊合約為參數調用bad_function

b.?CREDIT功能被授予

c.“legit_address”的余額增加了10

d.?調用惡意模塊的external_function:因為它仍然具有CREDIT功能,它可以重新進入合約并直接調用credit函數,給"attacker_address"一個100的余額。

之后,返回10,返回100。

重入成功。

現在,如果我們不重入調用credit,而是嘗試重入再次調用bad_function,會發生什么?即使第一次調用credit成功,由于重入是在bad_function中,這將是一個遞歸調用且執行將會失敗。

現在,如果我們嘗試直接調用external_function,這將不起作用,因為所需的功能CREDIT沒有被授予。

寫在最后

通過移除無界遞歸,圖靈不完備性可以防止一些重入攻擊的載體。

然而,由于跨函數重入可以在沒有遞歸調用的情況下進行,圖靈不完備性并不能阻止所有此類攻擊載體,因此用戶在與這種語言交互時不應該假設重入不會造成惡劣影響。

重入和跨函數重入是非常常見的安全問題,Web3.0領域也因此發生了一系列規模巨大的攻擊事件。

Pact作為一種智能合約編程語言,極具潛力。

它采取的方法與其他語言如Solidity或Haskell有些不同。Pact并不完全依靠圖靈不完備性來提高安全性;該語言被設計地更容易閱讀、理解和正式驗證。

然而,沒有哪種編程語言能對所有的攻擊載體免疫。因此開發者必須了解他們所使用的語言的獨特功能,并且在部署前對所有項目進行徹底審計。

目前,CertiK的審計及端到端解決方案已覆蓋目前市面上大部分生態系統,并支持幾乎所有主流編程語言,就區塊鏈平臺、數字資產交易平臺、智能合約的安全性等領域為各個生態鏈提供安全技術支持。

Tags:DITCredCREREDReditusLBRY CreditsCarbon CreditRipio Credit Network

FTX
區塊鏈:2023年將是又一個空投大年 這 19 個項目值得關注_區塊鏈技術通俗講解無中介

原文作者:加密分析師MilesDeutscher2023年將成為空投的重要一年。近年來,用戶從一些熱門項目空投中獲得了萬元以上的美味糖果,如OP、ENS、UNI、APT等等.

1900/1/1 0:00:00
SUI:Sui開發者必看:如何構建Capy原型?_CAP

原文:《在Sui上構建Capy原型》 作者:Alan 在這個去中心化的游戲中,玩家購買、交易、繁殖和裝飾可愛的南美半水生嚙齒動物Capybaras.

1900/1/1 0:00:00
OIN:Filecoin談BNB Greenfield:其說明數據經濟、互聯網基礎設施原語與可編程性結合的重要_DarryringCoin幣

BNBGreenfield白皮書發布,對于存儲賽道里的現有的項目方來說,這既是迎來了新的競爭,也為行業的發展注入了新的范式.

1900/1/1 0:00:00
APT:探究 Aptos 暴漲背后三大原因:DEX、韓國加密市場、空頭頭寸_ANC

Aptos的代幣APT的價格自今年年初以來飆升了460%。根據TokenTerminal的數據,目前Aptos上只有50名活躍開發者和31,000位日活躍用戶.

1900/1/1 0:00:00
BLUR:Blur 成功的背后:市場造就明星_SEA

作者:veDAO 一個新晉NFT市場再次掀起加密市場的波瀾。2月5日,據DuneAnalytics數據顯示,Blur近三個月成交量突破2億美元,遠超同類NFT聚合器.

1900/1/1 0:00:00
COIN:金色觀察 | ChatGPT之父瘋狂三部曲和加密項目WorldCoin_coinex交易所老板是誰

文/金色財經記者0xnative最近兩個月,全球科技圈最風頭無兩的產品一定非OpenAI和它旗下的產品ChatGPT莫屬.

1900/1/1 0:00:00
ads