買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > Pol幣 > Info

CREDI:以Kadena智能合約為例,簡析如何規避重入攻擊和跨函數攻擊-ODAILY_NEO Name Credit

Author:

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

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

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

事件簡介

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

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

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

加密研究員:Curve創始人Michwill累計還款55.95萬美元:金色財經報道,加密研究員0xLoki在社交媒體上稱,CRV債倉今天的進展:

1.Curve創始人Michwill零零碎碎賣了一些LDO,繼續還款Fraxlend,累計還款55.95萬美元。當前借款利率已經上漲到80%,有點危險。關注這件事情看fraxlend就行了,顯然這筆2000w債務是當前最高優先級。

2. curve上了crvUSD/fFRAX池。用戶想挖這個池子得先去fraxlend的CRV/FRAX池子存款,用戶存款就會降低michiwill債倉的使用率,從而降低利息。

3.AAVE上調清算點位提前清算(也就是昨天說的潛在囚徒困境)達到最大法定投票人數,但Gauntlet建議“取消”投票,因此沒有通過。[2023/8/1 16:10:50]

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

Star Atlas CEO:三周內推出Sage的在線瀏覽器新版本:7月27日消息,基于 Solana 的游戲元宇宙 Star Atlas 首席執行官Michael Wagner在社區中概述了公司的新愿景,包括專注于制作成本更低的游戲項目,其中他表示希望在大約三周內推出Sage的在線瀏覽器游戲新版本。

金色財經此前報道,Star Atlas 進行大幅裁員,表示曾在 FTX 爆雷事件中損失1500萬美元,占其流動現金余額的很大一部分。[2023/7/27 16:01:38]

經典重入攻擊

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

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

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

墨西哥參議員:沒有人會阻止Bitcoin:金色財經報道,墨西哥參議員表示,沒有人會阻止Bitcoin。[2022/12/22 22:00:56]

下方是一個簡化的例子。

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

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

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

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

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

去中心化內容發布平臺Mirror宣布支持NFT嵌入:12月10日消息,去中心化內容發布平臺Mirror發推稱,平臺已支持文章內容中嵌入并展示PFP、藝術和音樂類型的NFT,目前支持其主網、Optimism和Polygon鏈上NFT。用戶只需添加NFT合約和Token ID,Mirror就會完成NFT整合。[2022/12/10 21:35:54]

跨函數重入

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

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

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

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

SCB 10X在曼谷開設新Web3協作空間:金色財經報道,SCB 10X在曼谷開設了一個10,000平方英尺的Web3協作空間。SCB 10X表示,這個名為DistrictX的空間由黑客之家和指數中心兩個區域組成。黑客之家包括一個為期六個月的孵化計劃,其中SCB 10X將招募開發人員和企業家來建立Web3初創公司。“exponential hub”是SCB 10X合作伙伴的共同工作空間,其中包括Fireblocks、Nansen、The Sandbox和RakkaR Digital。

SCB 10X首席執行官Mukaya Panich表示,SCB 10X計劃到2023年上半年孵化六家初創公司,并補充說該公司對Web3基礎設施、DeFi和游戲或元宇宙等領域感興趣。[2022/12/1 21:14:28]

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

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:DITCREDITREDICREDIcredit幣價格LBRY CreditsSMARTCREDITNEO Name Credit

Pol幣
區塊鏈:波場TRON賬戶總數突破1.41億-ODAILY_tron幣未來價格預測

區塊鏈瀏覽器TRONSCAN最新數據顯示,截至2023年2月8日,波場TRON賬戶總數達到141,220,235,正式突破1.41億.

1900/1/1 0:00:00
ETH:為什么Lido V2升級對LSD賽道很重要?-ODAILY_Lido DAO Token

這一主題將涵蓋:回顧Lido、Lido的一些關鍵指標、V2做了哪些更新、潛在影響以及如何參與。在我們進入LidoV2之前,讓我們快速回顧一下LidoFinance是什么.

1900/1/1 0:00:00
OIN:HT暴跌穿倉激起千層浪,孫宇晨豪擲1億美元增強流動性-ODAILY_區塊鏈

3月10日,受美國硅谷銀行倒閉影響,再加之此前有消息稱,拜登將提議改變加密貨幣交易的稅收待遇,以籌集240億美元。加密市場全線下跌,比特幣跌破2萬美元創近兩月新低.

1900/1/1 0:00:00
ITG:Bitfinex一周簡報(0327-0402)-ODAILY_BIT

BitfinexAlpha|比特幣因銀行擠兌而走強隨著我們再次加息25個基點,美聯儲上周強化了對抗通貨膨脹的訊息。盡管最近銀行倒閉,但它仍然專注于對抗通貨膨脹.

1900/1/1 0:00:00
TWI:趙長鵬發Twitter要求上幣項目披露與紅杉關系,何一發微博澄清,火幣參與表態_ITT

紅杉資本將幣安訴上法庭的風波尚未平息,昨日,幣安CEO趙長鵬又發Twitter稱:可能很快要求所有申請在幣安上線的項目披露其是否與紅杉有直接或間接關系.

1900/1/1 0:00:00
BIT:火必開啟ARB充值賽,全面支持Arbitrum生態建設-ODAILY_ARBI

發幣預期加持,鏈上生態持續爆發,Arbitrum正逐漸成為Layer2領跑者。加密貨幣交易平臺火必Huobi率先布局Arbitrum,把握Layer2后續發展紅利.

1900/1/1 0:00:00
ads