以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > 比特幣 > Info

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

Author:

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

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

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

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

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

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

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

安全公司Unciphered破解OneKey制造的加密硬件錢包:金色財經報道,根據官方公告,安全公司 Unciphered 成功破解了 OneKey 制造的加密硬件錢包,OneKey 是一家總部位于香港的公司,去年籌集了 2000 萬美元。在硬件錢包中,授予對加密資產訪問權限的私鑰離線存儲并受物理設備保護,這使得它們更不容易受到黑客攻擊或盜竊,但是 Unciphered 能夠繞過 OneKey Mini 中的硬件安全機制,該公司成功實施了“中間人”錢包黑客攻擊,它能夠通過利用漏洞從 OneKey Mini 硬件錢包中提取助記種子短語(即私鑰)。

OneKey 承認了該漏洞,表示其硬件團隊已經更新了安全補丁,沒有任何人受到影響,團隊還向 Unciphered 支付了漏洞賞金,以感謝他們對 OneKey 安全性的貢獻。[2023/2/11 12:00:19]

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

RPL短時沖高至49美元,創歷史新高:金色財經報道,據行情數據顯示,Rocket Pool(RPL)短時沖高至 49 美元,創歷史新高。當前暫報 47.27 美元,24 小時漲幅達 11.28%。行情波動較大,請做好風險控制。[2023/2/9 11:56:28]

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

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

下方是一個簡化的例子。

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

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

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

ConsenSys zkEVM 測試網已面向外部用戶注冊:1月10日消息,ConsenSys官方表示,新的EVM等效ConsenSys zk EVM私人Beta測試網現已于去年年底在Infura上面向選定用戶開放,未來幾周將面向更多用戶。目前注冊申請系統已經開放。

ConsenSys此前表示,其zkEVM可實現EVM等效性,享受以太坊的安全性以及zkEVM的可擴展性和低費用有所。ConsenSys將從2023年1月份開始將逐步開放許可名單允許外部用戶注冊。[2023/1/10 11:03:43]

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

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

MoonPay與Unstoppable Domains合作,支持用戶用域名發送和接收加密資產:7月13日消息,區塊鏈域名服務商Unstoppable Domains與加密貨幣支付服務商MoonPay合作,MoonPay用戶可以使用他們的域名發送和接收加密資產,而無需輸入錢包地址,此外還支持用戶使用域名登錄DApps。[2022/7/13 2:10:47]

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

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

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

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

消息人士:加密借貸平臺Celsius已聘請重組律師:6月15日消息,據華爾街日報援引消息人士報道,加密借貸平臺 Celsius 已經聘請了來自律師事務所 Akin Gump Straus Hauer & Feld 的重組律師,就其財務問題提供可能的解決方案。知情人士表示,Celsius 首先從投資者那里尋求可能的融資選擇,但也在探索其他戰略選擇,包括財務重組。

此前消息, Celsius 上周由于市場劇烈波動暫停了賬戶提現、交易和轉賬。[2022/6/15 4:27:24]

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

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的余額。

之后,(get-balance "legit_address")返回10,(get-balance "attacker_address")返回100。

重入成功。

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

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

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

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

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

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

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

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

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

CertiK中文社區

企業專欄

閱讀更多

金色財經

金色早8點

Odaily星球日報

Arcane Labs

澎湃新聞

深潮TechFlow

歐科云鏈

MarsBit

BTCStudy

鏈得得

Tags:REDDITUNCREDINolian CreditsStarCreditsLaunchXRipio Credit Network

比特幣
詳解Sui密碼學中的錢包規范_SUI:BSP

作者:SophonLabsSui 遵循加密貨幣行業廣泛接受的錢包規范,如 BIP-32 (及其變體,SLIP-0010 ).

1900/1/1 0:00:00
手把手教你用 AIGC 賦能 Web3 項目_Fusion:AIGENIUS價格

近期“AI+Web3”的熱度上升,相關概念 Token 也迎來了一波漲幅,由于很多加密圈的朋友并不是非常了解 AIGC,這可能會導致投資失誤或者錯過潛在的機會.

1900/1/1 0:00:00
ChatGPT爆火至虛擬貨幣市場 AI相關概念幣價格翻8倍_AIN:tichain幣最新消息

記者:藍鯨財經 史玉寧 近日,由于人工智能聊天機器人ChatGPT的爆火A股和美股市場的AI相關公司的股價受影響迅速增長.

1900/1/1 0:00:00
探索加密世界中的四大人工智能寶石_元宇宙:區塊鏈技術通俗講解科普

老人說,2024 年是走離火運,科技將是最有“錢”景的行業。當人們還沉浸在經濟衰退的陣痛時,AI 敘事挺身而出,先有微軟投資 ChatGPT 數十億美元,后有后知后覺的谷歌入局生成式 AI 和推.

1900/1/1 0:00:00
科普:區塊鏈擴容之側鏈 v.s. Rollups_ROLL:TROLLBNB幣

作者:CyberPunkMetalHead區塊鏈的可擴展性是指隨著越來越多的用戶采用該服務,它能夠自如應對不斷增長的用戶數據計算需求.

1900/1/1 0:00:00
BUSD大旗倒下 BNBChain的穩定幣生態將有何變局_穩定幣:幣安binance官網

近期吳說發表了BUSD 遭受監管突擊的全過程綜述,美國證券交易委員會 SEC 以 BUSD 為未注冊證券的切入口狀告 Paxos.

1900/1/1 0:00:00
ads