日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

来自智能合约中的威胁:去中心化应用安全威胁Top10榜单

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 来自智能合约中的威胁:去中心化应用安全威胁Top10榜单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NCC Group 發起了一個名為 2018 年去中心化應用安全 Top10 (?Decentralized Application Security Project)的項目。據悉,該項目會與類似于 OWASP 的方式發布去中心化應用安全領域中,每年的十大安全威脅報。與 OWASP 開放合作透明的運作理念相似,該項目也是以集成合作的方式披露智能合約中存在的安全漏洞。

本文是第一版的 DASP Top10 2018 內容,詳細描述包括遞歸調用漏洞、權限控制漏洞、算數問題、返回值問題、拒絕服務、偽隨機在內的智能合約威脅。因翻譯時間所限,難免出現疏漏,在 FreeBuf 上分享僅為拋磚引玉之用,望對去中心化應用感興趣的同學在此多指正、多交流。

一、遞歸調用漏洞

該漏洞的利用有一個知名的案例,以太坊(Ethereum)漏洞。在首次發現以太坊存在這個問題的時候,很多人都覺的不可思議,在高漏洞造成數千萬美元的損失之后,該漏洞可謂直接導致了以太坊的硬分叉之路。

這個漏洞的觸發在于外部合約對正在起草的合約進行新的調用,而這個調用發生在初次執行完成之前。對于函數而言,這個調用意味著合同狀態發生了改變,調用的合約變得不可信,外部地址卻上使用了低層功能。

該漏洞造成的損失:350萬 ETH 損失(當時價值 5000萬美元)

二、權限控制漏洞

權限控制問題在所有程序中都很常見,而不僅存在于智能合約之中。事實上,在OWASP中該問題也排行第5。我們通常通過公開或者外部函數獲取到合約的內容。但如果合約的可視性沒有進行良好的安全設置,攻擊者也很容易查看并獲取合約的隱私內容和內部邏輯,他們能夠找到繞過限制的方式。這些漏洞通常在合約使用tx.origin 對調用者進行驗證時觸發。

漏洞造成的損失:大約15000ETH(當時約為3000萬美元)

三、算數問題

整數的溢出并不少見,但這類問題在智能合約中尤其危險。合約中無符號整數的應用非常普遍,大多數開發人員習慣于簡化 int 類型(有符號整數)。 如果溢出問題發生,許多良性代碼路徑會成為攻擊者進行信息竊取或拒絕服務的載體。

四、未經核查的返回值問題

這個問題有時也稱為無聲的失敗發送或者未經核實的發送。我們應該盡可能避免在合約中使用低層次的調用,因為返回值如果處理不當會出現很多意外的行為。

Solidity 中有一部分功能是低層函數,如 call() ,callcode(),delegatecall() 和send()。 這些函數在處理錯誤方面的行為與其他 Solidity 函數完全不同,他們不會回到當前執行的狀態,而只會返回布爾值false,程序會繼續執行。?

如果這些返回值沒有得到核查,就會導致一些預想不到的結果。

五、拒絕服務問題

拒絕服務的情況,包括達到到達了程序的容量上限,意外拋出錯誤,意外的進程殺死,或者訪問控制違規問題。

在去中心化應用、以太坊的世界中,拒絕服務問題往往會是致命的:盡管其他類型的應用程序最終總是可以恢復服務的,但智能合約可能會因一次拒絕服務攻擊而永久下線。

有多種原因引發導致拒絕服務,如在合約交易時收到了對方惡意行為的攻擊,人為地提高了執行操作消耗的容量,濫用訪問控制來獲取智能合約的隱私組件,遭到混淆攻擊。

這一系列攻擊都包括了各種變體,并在未來的時間中攻擊方式會繼續變化。

漏洞造成的損失:估計為 514,874 ETH(當時約3億美元)

六、偽隨機問題

該漏洞也被稱為 “沒有什么是秘密的”。

隨機問題很難在以太坊中得到糾正。盡管 Solidity 提供了些難以預測值的函數和變量,但很多情況中還是難以保持隱私性。隨機性在一定程度上是可預測的,所以惡意用戶以此實施攻擊。

漏洞造成的損失:超過400 ETH

七、競爭條件問題

由于礦工總是通過外部地址來獲得報酬,因此用戶可以指定更高的費用來讓自己的交易更快地完成。?

而以太坊區塊鏈是公開的,每個人都可以看到其他人尚未完成的交易內容。

這意味著,如果某個用戶正在處理問題,惡意用戶也可以竊取該解決方案,以較高的費用發起新交易,搶占原始解決方案。?

如果智能合約的開發者不太謹慎,這種情況會導致實際且毀滅性的攻擊。

八、時間處理問題

從鎖定令牌到在特定時間解鎖資金,合約都需要依賴當前時間。 這通常通過?block.timestamp 或其 now 來在 Solidity 中實現。

由于這個時間依賴的是礦工,一筆交易的礦工如果在挖礦時間上會有余地,所以良好的智能合約應該避免時間依賴。而正如在6中探討的,block.timestamp 函數中使用的隨機只是偽隨機。

九、短地址攻擊問題

短地址攻擊是以太坊虛擬機未能接受正確參數的副產物。攻擊者可以通過特定制作的地址利用這個弱點,針對部分編碼錯誤的客戶端進行參數填充。

盡管不同的人對于這個問題看法不同:

這是以太坊虛擬機的問題還是客戶端的問題?這能夠在智能合約中修復嗎?

雖然這個漏洞還沒有被大規模利用,但它很好地證明了客戶和以太坊區塊鏈之間的交互也可能存在問題。?

其他鏈外問題也存在著:以太坊生態系統以來著特定的 JavaScript 前端,瀏覽器插件以及公共節點。

在Coindash ICO 欺詐事件中的黑客也使用了臭名昭著的鏈外漏洞,他們在網頁上修改了 ICO 公司的以太坊地址,誘騙參與者將攻擊者地址發到自己的賬戶。

十、未知

以太坊仍然處于起步階段。 用于開發智能合同的主要語言 Solidity 尚未達到穩定版本,生態系統中的其他工具也仍然處于試驗階段。

每次發現具有破壞性的智能合約讓許多人都感到驚訝,但我們沒有理由相信其他同等性質破壞力的漏洞不會出現。代碼審計和安全檢查仍然會是有效的措施,盡管有很多不成熟的地方,去中心化應用仍然在以飛速的方式發展。

*參考來源:dasp,本文編譯整理Elaine,轉載請注明FreeBuf.COM


與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的来自智能合约中的威胁:去中心化应用安全威胁Top10榜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。