在這篇文章中,我們將簡要地解釋重入和跨函數重入之間的區別,以及圖靈不完備性如何能夠防止一些這樣的攻擊。
其中我們將提供一個跨函數重入利用的案例,該案例中Kadena區塊鏈使用的是編程語言Pact,但圖靈不完備性并未防止該惡意利用的發生。
事件簡介
Kadena區塊鏈旨在實現比其他L1鏈更高的可擴展性、安全性和可用性。其開發了一種新的語言用以編寫智能合約:Pact。
這種語言是人類可讀的,且易于形式化驗證,并具備可提高安全性的圖靈不完備性。
這里提到的圖靈不完備性意味著Pact無法做到圖靈完備編程語言所能做到的那些事——看起來好像是個劣勢,但其實智能合約編程,哪怕是最復雜的DeFi協議也很少會需要用到圖靈完備性。
圖靈不完備性最重要的一點是沒有無界遞歸。雖然這確實大大減少了攻擊面,但一些「經典」攻擊是無法被100%避免的,接下來我們就會講述跨函數重入的問題。
美聯儲主席:年內預計還會加息一次:3月30日消息,據共和黨眾議員凱文·赫恩(Kevin Hern)稱,美聯儲主席鮑威爾在與美國議員的一次私人會議上被問及美聯儲今年還會加息多少時,他指出,政策制定者的最新預測顯示,他們預計還會加息一次。
赫恩是共和黨研究委員會主席,鮑威爾周三會見了該委員會的保守派人士。該組織的一位女發言人表示,與鮑威爾的會面在硅谷銀行倒閉之前就已經安排好。
鮑威爾基本上是在重申政策制定者上周在 FOMC 為期兩天的會議后發布的新的利率預測,即美聯儲的點陣圖。他們最近承認的一點是,他們預計今年還會加息一次,來自俄克拉荷馬州的赫恩在與鮑威爾會晤后對記者說。[2023/3/30 13:34:27]
經典重入攻擊
重入攻擊是非常常見的安全問題。這個問題不僅很難被開發者發現,也很難被審計師審查出其會導致的所有潛在后果。
重入攻擊取決于函數在進行外部調用之前和之后執行的特定任務的順序。
DeFi協議Elixir完成210萬美元種子輪融資:1月17日消息,DeFi 協議 Elixir 完成 210 萬美元的種子輪融資,FalconX、Commonwealth、OP Crypto、ChapterOne 和 Bitmex 創始人 Arthur Hayes 等參投。Elixir 旨在讓任何人都可以通過 DeFi 協議參與 CEX 和 DEX 的做市,并希望通過一項協議來解決做市商面臨的審查問題。該初創公司預計將在今年晚些時候推出其公共主網。[2023/1/17 11:17:17]
如果一個合約調用了一個不受信任的外部合約,攻擊者可以讓它一次又一次地重復這個函數調用,形成一個遞歸調用。而如果重新輸入的函數執行重要的任務,那這可能就會導致災難性的后果。
下方是一個簡化的例子。
我們把易受攻擊的合約稱為unsafe合約,把惡意的合約稱為Attack合約。
SEC已于數月前開始調查FTX US及其加密借貸活動:11月10日消息,據彭博社援引消息人士報道,美國證券交易委員會(SEC)與美國商品期貨交易委員會(CFTC)正在調查 FTX 是否妥善處理了用戶資金,以及其與 FTX.US 和 Alameda Research 的關系。知情人士稱,SEC 的調查始于幾個月前,旨在調查 FTX.US 及其加密貨幣借貸活動。[2022/11/10 12:40:30]
1.攻擊者調用unsafe合約,以將資金轉移到Attack合約中。
2.收到調用之后,unsafe合約首先檢查攻擊者是否有資金,然后將資金轉移到Attack合約。
3.收到資金后,Attack合約執行回退函數,在它能夠更新余額之前回調到不安全的合約,從而重新啟動該過程。
報告:以太坊有更多DApp的主要原因在于文化因素:金色財經消息,BitMEX Research最近發布了一份報告,詳細描述了為什么是以太坊成為了DApp以及加密貨幣領域開發者活動的中心而不是比特幣。雖然存在技術上的差異,但該團隊聲稱,在以太坊推出之前,比特幣的開發者文化使替代用例遠離了其生態系統。
該報告探討了2014年3月比特幣核心開發人員關于比特幣應用層的在線討論。他們在當年年初推出了交易對手協議(Counterparty Protocol),這是一個用于創建新代幣并在分布式交易所中交易的Layer 2解決方案。
Counterparty使用OP_Return存儲數據。BitMEX解釋說:“該功能可用于銷毀比特幣或在比特幣區塊鏈中存儲任意數據。”有人認為,這些類型的交易有助于比特幣擴容,因為它們不需要pruned比特幣節點來存儲數據。這使得普通人運行一個節點的存儲密度更低,有助于比特幣保持其去中心化。(Crypto Potato)[2022/7/16 2:17:54]
因為這種攻擊是通過無界遞歸調用進行的,所以如果語言不是圖靈完備的,攻擊就不可能進行。
巴拉圭參議院批準一項加密貨幣法案,或利好當地加密礦企:7月15日消息,巴拉圭參議院通過了一項加密貨幣法案,目前仍需總統批準。該法案將允許加密礦工以有競爭力的價格使用產生的多余能源,并且在巴拉圭運營的加密公司將免除增值稅。(Portal do Bitcoin)[2022/7/15 2:16:29]
跨函數重入
跨函數重入類似于經典的重入攻擊,除了重入的函數與進行外部調用的函數功能不同。這種重入攻擊通常更難被發現——因為在復雜的協議中,組合的可能性太多,無法手動測試每個可能的結果。
這就引出了我們的概念證明:使用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:DITREDICredCREDIwesendit幣gateRipio Credit Networkdecred幣創始合伙人StarCredits
7:00-12:00關鍵詞:AmberGroup、Damus、Uniswap、韓國STO1.OKX錢包地址過去24小時流入約5996枚ETH;2.AmberGroup地址近十日內從幣安轉出11.
1900/1/1 0:00:00在本周平靜的開始之后,加密市場喜迎反彈。年初至今加密貨幣總市值上漲了21.6%,重回1萬億美元大關,這主要得益于BTC和ETH分別上漲了36%和39%.
1900/1/1 0:00:00原文:《Accountabstraction,thenewshinyobjectincrypto》作者:DanaJ.WrightAccountAbstraction,簡稱AA.
1900/1/1 0:00:00近年來,隨著虛擬貨幣的迅速發展,全球各地區相繼出臺了不同的監管政策,郭律師團隊為大家收集了相關新聞簡訊,整理了“全球對虛擬貨幣的政策”系列文章,帶大家了解全球各地區對虛擬貨幣的監管態度.
1900/1/1 0:00:00文/Shervin,A&TCapital投資經理;譯/金色財經xiaozou Rollup技術概況 rollup通過垂直執行交易來增強可擴展性,從而減輕了L1帶來的瓶頸.
1900/1/1 0:00:00兩大科技巨頭谷歌和微軟已展開正面交鋒,爭奪人工智能的未來,然而谷歌在這場斗爭中出師不利。該公司賣力宣傳的新AI聊天機器人工具Bard尚未向公眾發布,但在周三的發布會演示環節出現了一個尷尬的錯誤,
1900/1/1 0:00:00