比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > 幣安幣 > Info

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

Author:

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

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

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

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

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

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

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

BNB Chain交易量在4月至5月間增長65%:金色財經報道,在過去的兩個月中,BNB Chain的交易量在去中心化交易所中出現了顯著增長。根據The Block Research的數據,4月份BNB Chain交易量為117.9億美元,5月份為195.2億美元,增長65.3%,價值77.3億美元。[2023/6/15 21:37:39]

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

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

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

下方是一個簡化的例子。

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

Brownstone Institute創始人:比特幣正在實現交換功能和資產的避風港的功能:金色財經報道,Brownstone Institute創始人兼總裁Jeffrey Tucker在接受采訪時表示,美聯儲將在今年夏天之前將美國經濟推入衰退,而比特幣在去年12月的低點是一個明顯的買入機會。低點在哪里非常明顯。我和任何對這項技術有信心的人都認為,這是一個非常明顯的買入機會。比特幣的基本理由幾乎從一開始就被確定下來了。在我看來,比特幣的概念證明是在它與美元平價的時候實現的,奇跡結束了。我們終于為互聯網時代發明了相當于黃金的東西。數字黃金一直都是這樣。

在當前環境下,比特幣正在實現其兩個主要功能,一個是成為一種交換手段,這很好,但同時,它也能起到黃金的作用,在金融貨幣和經濟困難時期,它是資產的避風港,而我們肯定正處于這種困境之中。[2023/4/19 14:13:17]

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

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

彭博社:灰度與美國SEC將“SEC拒絕BTC現貨ETF”展開爭論:金色財經報道,灰度投資公司(Grayscale Investments)在華盛頓對美國證券交易委員會(SEC)提起訴訟,雙方將展開爭論。美國證券交易委員會在6月拒絕了Grayscale將產品轉化為ETF的申請,理由是比特幣欺詐和操縱問題。Grayscale在美國哥倫比亞特區巡回上訴法院拒絕后的幾個小時內起訴了監管機構,認為鑒于存在以期貨為支撐的比特幣ETF,該機構 \"未能對類似的投資工具適用一致的待遇\"。(彭博社)[2023/3/7 12:46:15]

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

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

Instagram推出家長控制元宇宙監督功能:金色財經報道,據《華爾街日報》消息,Meta Platforms已宣布擴展Instagram的家長控制功能,并推出了其第一個虛擬現實監督工具,這是該公司致力于使其服務對青少年更為安全的部分舉措。Meta在其虛擬現實產品中也引入了類似的功能,讓父母對他們的孩子在Quest頭盔中可以做什么有一些發言權。新的Instagram工具目前正在美國推出,本月晚些時候將進入英國、日本和澳洲等其他國家,Meta表示應該在今年年底前在全球范圍內上線。[2022/6/17 4:34:14]

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

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

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

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

波場TRON成為DefiLlama上TVL全球排名前三的公鏈:據官方消息,波場TRON成為DefiLlama上TVL全球排名前三的公鏈,當前TVL高達51.5億美元。

DefiLlama 是最大的 DeFi(去中心化金融)TVL 聚合器。DefiLlama 的數據是完全開源的,由來自數百個協議貢獻者組成的團隊維護。DefiLlama 旨在用準確的數據和透明的方法跟蹤來自 80 多個不同區塊鏈的 800 多個 DeFi 協議。

波場致力于通過區塊鏈技術和分布式應用(DApp)加速互聯網的去中心化。2018 年 7 月,波場生態完成與 BitTorrent 的整合,后者是一家提供去中心化 Web 3.0 服務的先驅企業,擁有超過一億月活用戶。截至 2022 年 5月,公鏈用戶總數突破9400 萬,交易筆數超 32 億,總鎖倉量(TVL)超 103億美元。[2022/5/23 3:35:26]

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

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:DITCREDICredREDRADDIT價格Nolian CreditsgamecreditsBOREDM價格

幣安幣
比特幣:BigIdeas 2023報告速覽:貨幣、金融和互聯網革命正處于轉折點_數字錢包編號在哪里看

因對新興技術和資產的投資,ARK Investment及其創始人Catherine Wood的觀點和投資行為在市場上一向引人矚目.

1900/1/1 0:00:00
APT:Aptos一個月暴漲6倍 只是一場扎空游戲?_BUMBA價格

撰文:Ben GioveAptos生態并無出色的Dapp、TVL也跟不上市值,為何APT能在一個月內上漲600%?APT 經歷了一次很好的老式賣空擠壓。并非每個 Pumb 都有規律或原因.

1900/1/1 0:00:00
DAM:最火的Web3社交平臺Damus 一周就變成了「互聯網廁所」_OST

一切都發生的太快了。 2 月 1 日,Twitter 聯合創始人及前 CEO Jack Dorsey 發布推文表示,基于分布式社交媒體協議 Nostr 的社交產品 Damus 和 Amethys.

1900/1/1 0:00:00
WEB:Web3與AI時代 如何創造“不可被替代”的價值?_NFTdot

原文:The Most ‘Humane’ Values: How to Create irreplaceable Value in the Age of Web 3.

1900/1/1 0:00:00
WEB:Web3與AI時代 如何創造“不可被替代”的價值?_BGAN Vault (NFTX)

原文:The Most ‘Humane’ Values: How to Create irreplaceable Value in the Age of Web 3.

1900/1/1 0:00:00
ETH:以太坊數據分析:上海升級將成為重頭戲_以太坊

ETH當前的年通貨膨脹率為-0.02%,自合并以來總供應量減少了9500多枚根據Ultrasound Money的數據,ETH年通貨膨脹率在1月15日降至0以下.

1900/1/1 0:00:00
ads