以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > KuCoin > Info

智能合約安全分析工具商業化的機會來了么?_ING:區塊鏈最直白的解釋

Author:

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

作者:Ray, Sally, IOSG Ventures

智能合約安全分析工具商業化的機會來了么?

在9月底Paradigm官宣完成了區塊鏈安全項目Blowfish的領投又一次引起了大家對智能合約安全分析領域的廣泛關注。但其實Paradigm團隊在此之前就已經在智能合約安全測試方向做了很多實踐,在今年3月Paradigm CTO Georgios公布了他們開發的Foundry智能合約測試套件(Runtime Verification團隊也是重要的貢獻者),如今區塊鏈安全分析也再朝著更細致的分工方向發展。

從最近幾個月融資趨勢和市場反應來看,一級市場資本目前對注重安全信息時效性、風險覆蓋度、技術偏輕量級的安全監測、防火墻領域有濃厚的興趣(這和以往大部分資本投入在審計領域大有不同)。

根據CertiK和SlowMist的相關報告,僅2022年第一季度和第二季度因安全攻擊問題crypto資產損失就高達20億美元。在第二季度單閃電貸攻擊就到導致了總計3億美元的資產損失。而本月更是成為了有史以來黑客活動最大的一個月,兩周內僅針對DeFi協議的攻擊已超過12次,被盜金額超7億美元。

如果我們把鏈上智能合約從開發>>部署至區塊鏈網絡>>運行看成是一個完整生命周期的話,針對智能合約的安全分析分為:針對合約部署前(在區塊鏈網絡正式上線運行前)的分析、合約部署后的分析,這大致涵蓋了:測試、審計、監測三大類目,每個類目下面又有各種類型的分析方式和相應的工具(如下圖)。

PS:智能合約的審計覆蓋面會從合約部署前到部署后(合約升級審計),

智能合約部署前的安全分析:測試+審計

1.1 測試(Testing)

Cardano將在Alonzo升級后利用本地Plutus語言編寫智能合約:Cardano發布了關于Plutus的更多細節,Plutus是一種本地編程語言,將在其下一次重大升級Alonzo之后用于編寫智能合約。Cardano背后公司IOHK在一篇博文中解釋稱,Plutus合約由鏈上運行的部件和鏈下在用戶設備上運行的部件組成。這兩部分實際上都是用Haskell語言編寫的,但都是由Plutus編譯(compile)的,后者為Cardano上的智能合約提供了框架。Plutus Core將用于定義EUTXO交易的參數,并編譯為智能合約開發的代碼。一個Plutus應用程序框架(PAF)將提供對運行在網絡上的服務和應用程序的便捷訪問,同時具有完整的web瀏覽器互操作性。Cardano在2月份的“Mary”升級中推出了原生代幣,允許用戶創建唯一定義的自定義代幣,并進行交易。Plutus將擴展當前代幣的能力,極大地改善鑄幣策略,這將有利于可能需要時間鎖的NFT。(Crypto Potato)[2021/4/15 20:22:21]

合約測試是開發者和審計者需要花費最多精力的工作,這與傳統開發者不同。因為區塊鏈不可篡改的特性,一旦智能合約部署到EVM虛擬機上就難以變更,因此安全分析、彌補安全漏洞的工作大部分花費在“事前分析”——對智能合約部署前的安全測試。

在接受正式審計前,合約開發者/審計者需要對合約的代碼進行一些基礎性的測試,初期測試的覆蓋率越高越能避免一些簡單的bug進入正式審計階段(一般一份智能合約達到85%-90%的代碼被測試覆蓋是合理水平;針對核心模塊的覆蓋率需要在95%以上)。

常見的基礎性的測試有單元測試(聚焦于單個函數的測試)和集成測試(確保各部分代碼組合起來也能正常運行)。這個階段常用的工具有Hardhat、Truffle test framework等,常見的測試內容包括:狀態檢查、事件觸發、交易重置、函數計算、完全功能測試。

1.2 審計 Auditing

The Sandbox ASSET 智能合約出現重復漏洞,已部署新合約:官方消息,去中心化虛擬游戲平臺沙盒游戲 The Sandbox 表示,The Sandbox ASSET 智能合約很容易出現重復問題,目前還沒有惡意用戶利用該漏洞進行攻擊,其他所有智能合約均不受影響,SAND 和 LAND 智能合約也沒有風險。另外,The Sandbox 已于 1 月 13 日告知交易 The Sandbox ASSET 的所有主要交易平臺(包括 OpenSea、Arkane Marketplace、Lootex、Playdapp 和 iNFT),這些交易平臺已于 2021 年 1 月 16 日 UTC 00:01 暫停了 ASSET 的交易。The Sandbox 表示,「該漏洞由 Optimism 安全研究員 Maurelian 于 1 月 4 日提出,允許用戶在使用 batchTransfer 函數時將向自己發送代幣。之后我們進行了內部上測試確認了該問題,1 月 5 日至 14 日之間進行了修復,并提交給 Solidified 安全審計員再次審計,1 月 15 日部署了新的智能合約,并于 1 月 16 日 12:00PM UTC 進行了快照,目前已開始將 ASSET 副本重新分配給持有者,將在 UTC1 月 18 日 00:00 之前完成所有用戶的 ASSET 恢復。」The Sandbox 表示,The Sandbox 此前通過了 Certik 和 Solidified 的審計,ASSET 智能合約最初于 2019 年 9 月 4 日由 Solidified 審計,當時三名審計員進行了為期 2 周的審計。The Sandbox 平臺的關鍵功能之一是可以從零開始創造素材資產 (ASSET),將其上傳到市場,然后通過區塊鏈貨幣化。[2021/1/16 16:20:46]

“測試可以有效的發現程序存在的缺陷,但是它卻無法證明程序不存在缺陷。”—— Edsger Wybe Dijkstra(計算機科學家、1972年圖靈獎獲得者)

根據Ethereum官方文檔的定義,審計是對智能合約每一行源代碼的細節評估,攻擊者的思維方式來繪制智能合約中可能的攻擊向量,以發現可能的故障點、安全漏洞和不良的開發實踐。審計階段大致包含:靜態分析、動態分析(模糊測試Fuzzing test、符號執行symbolic execution)、人工分析、形式化驗證。正如上圖所說的Dijkstra,單靠測試無法完全相信程序沒有故障,審計、形式化驗證更多的是想更加靠近程序不存在缺陷這一目標。

Waves智能合約開發主管:區塊鏈技術人員經常為項目的缺點找借口:Waves智能合約開發主管Ilya Smagin在一篇博客文章中指出,區塊鏈領域經常為自己的缺點找借口。Smagin寫道:“區塊鏈技術人員最擅長的事情之一就是解釋為什么用戶的限制和不便是無關緊要的,它們實際上是解決辦法,而不是問題。”(Cointelegraph)[2020/6/6]

金錢成本

根據智能合約安全公司Hacken的數據,智能合約審計服務的行業的平均成本在 5000 美元到 30000 美元之間(中小型項目)。對于大型項目,成本有時可以達到 50 萬美元甚至更高。智能合約審計的成本直接取決于代碼復雜性和商定的工作范圍。影響價格的其他因素包括緊急程度、智能合約的大小(有多少行代碼)、完成流程所需的工程小時數、與項目相關的文檔的可用性等因素。

時間成本

初始審計平均需要 2 到 14 天,這也具體取決于項目的復雜性、智能合約規模和緊迫性。對于大型項目或協議,初始審核可能需要長達 1 個月的時間。初始審核完成后,客戶會收到有關要引入哪些修改的建議。

人力成本

根據IOSG在區塊鏈形式化驗證領域的領投項目Runtime Verification的反饋,審計的人力成本取決于協議的復雜性。對于大部分擁有資深行業經驗和學術經驗的頭部安全審計公司來說,理解crypto客戶項目的商業邏輯和token economics基本沒有太大難度,一般兩個專業的工程師大概花費1~2個星期就可以完成初始步驟。

但是接下來的部分會取決于客戶的具體需求。有的客戶只需要對被審計項目的基本業務邏輯進行人工審計(查看他們的代碼并手動審查它是否符合所需的業務邏輯),這是最便宜的服務。有的客戶希望對業務邏輯和token economics進行建模然后手工進行數學證明以確保某些重要結果成立,例如安全性、活性、一致性等。有些大客戶像MakerDAO、以太坊基金會等則希望更進一步,對代碼進行形式化驗證(Formal Verification)。

動態 | 智能合同審計公司Quantstamp推出新的區塊鏈安全協議:據The Innovation Enterprise 9月3日消息,Quantstamp已經發布了它的betanet協議,現在可以通過Ethereum net進行實時訪問。Quantstamp將為Ethereum用戶提供可公開驗證的智能合同審計服務。以前,用戶必須相信智能合約開發人員事先已采取必要的安全預防措施,并且無法自行驗證。Quantstamp betanet協議現在允許用戶使用QSP令牌來驗證其代碼可靠性,從而為他們提供可驗證的合同記錄,任何人都可以公開訪問該記錄。[2018/9/3]

這里關于形式化驗證再多說一句,形式化驗證是用數學方法去驗證程序的正確性——程序的實現與程序員的意圖相符,最終證明項目的系統是Bug Free的。或者換句話說,形式化驗證像是一種更全面的“testing”,它理論上會包含所有可能的輸入和狀態,這是testing無法做到的(如下圖例子所示轉賬合約中有overflow bug,如果用testing需要測試者輸入一個極大的值才能找出,但是形式化驗證者會通過“total amount of the token = sum of the balance of all addresses”的數學邏輯來找出overflow bug)

從實際規模化運用來說,形式化驗證相對傳統的測試方案在規模化運用上相對較慢。大部分的crypto項目來說,完成智能合約審計之后就已經足夠,從成本投入和潛在效益來說對小型項目來說還不是必需品 (或者說證明程序是bug-free的代價還比較高),核心原因是形式化驗證需要專業的形式化人才參與,因為對項目代碼創建形式化規范(formal specification) 是非常復雜的事情,需要涵蓋合約代碼的屬性,并定義合約在不同情況下的行為方式,這些需要專業的人才參與。(感興趣的讀者詳見我們之前寫的《為什么我們領投Runtime Verification》https://mp.weixin.qq.com/s/VWVgn4k9k0XqbM-O7-TVXg)

動態 | DragonEx:REP已完成智能合約遷移并恢復充提功能。:據DragonEx交易所:Augur(REP)已經完成了智能合約的遷移,并同時恢復REP充提功能。[2018/8/3]

常見的工具

智能合約審計當下仍然是一個labour intensive的行業,并且對人才的技術要求較高。目前雖然市面上有十幾款比較流行的審計工具(大多由主流安全審計公司或者學術研究人員開發),但是這些審計工具開發的目的是發現比較普遍的漏洞比如:transaction order dependency, random number, timestamp, callstack depth, Reentrancy, dangerous delegate call等等)。因此,僅僅依賴這些工具去完成審計工作比較困難,可能會錯過許多和業務邏輯相關的漏洞。通常審核智能合約需要使用自動化工具+手動代碼審查相結合的方式,并且根據客戶的智能合約業務邏輯、代幣模型的不同需要case by case的人工審查。

智能合約安全分析和審計往往是在驗證程序的正確性,也就是程序的實現與程序員的意圖相符。因為程序的bug,其實都是由程序的實現與程序員的意圖之間有區別導致的。我們之前在分享我們投資Runtime Verification一文中提及的形式語義學的其實就是能讓開發者的開發意圖(即“語義”)和實現(即編程語言的“語法”)精確相符的語言框架,從而減少bug的出現。

在智能合約安全審計領域目前雖然市面上工具也不少,且大多開源,但是拿來真正做到成功商業化的寥寥無幾,這其中根本原因我們后面也會分析,總之目前還是依賴于安全服務提供商自己的自動化工具+人工閱讀每一行代碼或建模,基本無法通過直接賣自動化審計工具拿到規模化商業收入。

根據我們最近領投的Hexens反饋,初期對于一些靜態分析的測試Slither和MythX是他們常用的開源工具,雖然結果并不能讓他們非常滿意。對于更高級別的測試,他們主要用fuzzers如Echidna、Forge+built in fuzzer

智能合約部署后的安全分析——監測(Monitoring)

目前10種最常見的區塊鏈網絡安全攻擊里Scam出現頻率最高,且給用戶直接造成資產損失最高。根據Peckshield的數據,在2021年crypto因為各類scams造成的鏈上經濟損失達120億美金,比黑客直接攻擊造成的損失要高6.7倍。

常見的scam攻擊:

網絡釣魚(常見的網絡釣魚技巧是發送電子郵件/網站要求用戶重置密碼/恢復他們的帳戶。一旦用戶登錄這些虛假網站,他們就會竊取私鑰)

案例:Alice登錄某交易所后鏈接MetaMask錢包,收到彈窗提示錢包故障,需要助記詞恢復,恢復后錢包內資產被全部盜走。

冒名/冒充(自稱是某些 dapps/機構的員工或代表的人可能會通過電子郵件、電話或社交媒體聯系用戶。他們將通過發送虛假的免費鑄幣/空投網站從用戶那里竊取資金。或者通過冒充行為來操縱受害者以提取資金或敏感數據)

案例:烏克蘭政府接受加密貨幣捐贈并宣布空投NFT,冒名者偽裝成烏克蘭政府發出假token空投進行詐騙。

BGP劫持(通過謊稱擁有實際上并不能控制的IP前綴,并將之添加到互聯網BGP路由器中的路由表進行,攻擊者可以實現對該IP地址流量的劫持,在這種情況下用戶一旦嘗試登錄就會被重新導向至攻擊者設好的陷阱地址)

案例:Celer遭受BGP劫持攻擊,波及32名用戶和23.5萬美元的損失(2022.08)

代碼后門&陷阱(攻擊者通過隱藏在正常程序中的一段具有特殊功能的惡意代碼,如具備破壞和刪除文件、發送密碼、記錄鍵盤和DDoS 攻擊等特殊功能的后門程序以竊取用戶個人信息)

案例:Bob在某網站mint了一個NFT,兩天后發現不翼而飛。因為攻擊者在NFT代碼植入了某些特征,可以授權他人進行 NFT交易或可以破壞他人的 NFT,無法掛單等。

前端惡意代碼 (攻擊者會將惡意代碼植入交易所等網站的前端,如用戶瀏覽器的標簽管理系統,從而通過這串惡意代碼生成錯誤的批準,允許用戶資產被轉移至攻擊者的地址)

案例:KyberSwap因為黑客安插的前端惡意損失256萬美金(2022.09)

常見的工具:

相比于智能合約安全審計,提供monitor&firewall服務涉及的業務內容更為龐雜和細密。

Focus在合約部署前以及合約部署后升級的智能合約代碼安全審計,往往通過各類型的測試(靜態分析、動態分析)輸入一系列的值來看合約的輸出值及狀態是否正常運行。比如針對一個常見的鏈上轉賬邏輯(如下圖),常見的測試人員會做:transfer zero ether, transfer all the ether, transfer slightly more than all the ether, transfer the largest possible amount of ether, transfer an account's value to itself 等事情來看合約是否可以如能做到程序員預期該做的事情和實現的結果。

Focus在事中安全分析的monitor/firewall服務,要處理的問題更繁雜。并且目前看下來這類項目提供的安全服務更注重廣度(涵蓋盡可能多的有問題的鏈上資產合約、最新的涉嫌詐騙行為的地址合約釣魚網址等等),它們相對比合約審計的安全服務更輕量級。涉及許多跟檢查代碼正確性之外的安全風險,比如各類詐騙、釣魚相關的攻擊。而監測這些漏洞除了需要依賴合約解析能力之外,還需要不斷更新可疑地址、可疑合約邏輯、可疑資產清單等數據的風險數據庫。

通過我們和最近行業內從業人員的交流,發現不同的Monitor服務定位其實也各有不同,比如GoPlus更加注重提供數據API服務給項目方甚至是一些注重前端的防火墻;Harpie、Blowfish更注重提供前端服務,當用戶執行一個交易行為、或者完成一次授權之前模擬這個交易以發現問題阻止用戶有安全風險的交易;Tenderly則更注重開發者的需求,為智能合約開發者提供運行監測等服務。當然目前這個領域還比較新,盡管像Opensea這樣的大型交易平臺已經和一些項目進行實質的商業合作,但是我們認為未來商業化的路徑還是不太明晰同時會遇到的同業競爭會不小(因為相較于代碼審計技術上的門檻會低一些)。

智能合約安全分析工具的商業發展機遇和挑戰

1)目前來看行業內的許多人認為monitoring&firewall跟security auditing之間的商業邊界還較為模糊(現在看都屬于2B的服務,客戶大部分是各類crypto項目方),理論上來說由在區塊鏈安全領域深耕多年的專業安全審計公司直接提供monitoring service,甚至開拓B2C, 2C化的終端用戶直接收益的產品更符合商業發展邏輯。但是由于monitoring賽道剛剛起步,收費模式和盈利模型尚不明確(目前看到是2B抽取服務費或者項目的交易手續費分成),如果市場回暖安全審計市場會仍然處于供>需,訂單做不完的狀態可能無暇顧及這個新興市場,這個時間窗口會是給新出現的專門做monitor/firewall的公司一個很好的機會。

2)智能合約審計的自動化工具目前市面上已經由很多,常見的有十幾種大多開源。這個方向通過賣工具來收費的商業模式尚未跑通,核心原因是:1)黑客和安全防御者的博弈關系是an arms race and the attack is always a moving target,魔高一尺 道高一丈。安全工具一旦推出,黑客就會嘗試繞過它,開發出新的攻擊形式。所以安全工具只能不斷迭代更新將攻擊門檻提高;2) 大部分工具使用門檻不低,會使用專業安全分析工具產品的人少,因此限制了市場規模 (雖然Runtime Verification有在推給普通開發者使用的Firefly, ConsenSys Dilligence也有MythX); 3)安全分析工具只能覆蓋主流的漏洞,而跟據協議業務邏輯的經濟模型的不同客戶主觀更希望審計團隊人工提供定制化的服務。

團隊主觀也希望一個受市場authorized的審計公司提供較深度定制化審計服務并且蓋戳。因此,提供monitoring service會是專業安全團隊切入可規模化產品的一個很好的機會點。

3)為defi項目方,DAO或個人服務的insurance業務可能會成為下一片藍海。考慮到目前市場對于黑客直接盜取私鑰等攻擊方法并沒有良好的防范或解決方案,以風險規避和資產保障為目的的保險業務很可能在未來會受到更多的青睞。當然考慮到加密資產本身的復雜性和合規方面的多重不確定性,underwriter往往會承受更大的風險,因而在解決這一問題之前,insurance產業的發展可預見地,仍然將面臨一定的瓶頸。期待隨著整體加密資產體量的上升和更多傳統機構用戶的進入,insurance業務能在下一個周期來臨之前能夠實現更多制度性的完善。

IOSGVentures

企業專欄

閱讀更多

金色早8點

1435Crypto

區塊律動BlockBeats

吳說區塊鏈

金色財經

比推 Bitpush News

blockin

Block unicorn

Foresight News

Odaily星球日報

Bankless

DeFi之道

Tags:THE區塊鏈ANDING邇爾ethereal區塊鏈最直白的解釋CANDLE幣ChainGPT

KuCoin
解讀:北美最大比特幣礦商 Core Scientific 為何瀕臨破產?_比特幣:CORE幣總量有銷毀

Core Scientific 是美國最大的上市加密礦業公司之一,據稱擁有 457 MW 的運營規模,它在上周向美國證券交易委員會提交了一份聲明,稱其未來有破產的可能性,該公司還透露.

1900/1/1 0:00:00
zkSync 2.0 主網上線:我們都應該知道些什么_ZKS:Synth iADA

zk-Rollup 一直被視為解決以太坊擴容問題的終極方案,但受限于 zk 技術的開發難度,導致目前市場上 zk-Rollup 產品一直沒能推出通用且 EVM 兼容的擴展方案.

1900/1/1 0:00:00
香港有哪些值得關注的 Web3 企業_KEN:NFT

10 月 31 日,香港財政司(財經事務及庫務局)正式發布《有關香港虛擬資產發展的政策宣言》(以下簡稱《宣言》),就在香港發展蓬勃的虛擬資產行業和生態圈.

1900/1/1 0:00:00
三分鐘讀懂Solana上的DeFi/NFT收益聚合器Dappio_DAPP:APP

Dappio試圖通過組合創新的方式打造一個Solana上最好的一站式DeFi /NFT 收益聚合器.

1900/1/1 0:00:00
阿里淺嘗元宇宙_數字人:數字人民幣是不是涼了

還記得去年9月,身處元宇宙熱潮中的阿里申請的「阿里元宇宙」、「淘寶元宇宙」商標嗎?今年5月,這些元宇宙商標均被國家知識產權局駁回,實際上,被駁回的不只是阿里.

1900/1/1 0:00:00
FTX事件 給加密市場帶來了什么影響?_ALA:最新比特幣價格美元

原文標題:《透視 FTX 事件,加密市場現在有多脆弱》原文作者:Asher Zhang,比推核心觀點:FTX 會不會是下一個三箭資本,其可能性或許相對較小,但在糟糕的市場環境下.

1900/1/1 0:00:00
ads