作者:Ray?Xiao,?Sally?Gu,?IOSGVentures
前言:
在9月底Paradigm官宣完成了區塊鏈安全項目Blowfish的領投又一次引起了大家對智能合約安全分析領域的廣泛關注。但其實Paradigm團隊在此之前就已經在智能合約安全測試方向做了很多實踐,在今年3月ParadigmCTOGeorgios公布了他們開發的Foundry智能合約測試套件,如今區塊鏈安全分析也在朝著更細致的分工方向發展。
從最近幾個月融資趨勢和市場反應來看,一級市場資本目前對注重安全信息時效性、風險覆蓋度、技術偏輕量級的安全監測、防火墻領域有濃厚的興趣。
根據CertiK和SlowMist的相關報告,僅2022年第一季度和第二季度因安全攻擊問題crypto資產損失就高達20億美元。在第二季度單閃電貸攻擊就導致了總計3億美元的資產損失。而本月更是成為了有史以來黑客活動最大的一個月,兩周內僅針對DeFi協議的攻擊已超過12次,被盜金額超7億美元。
來源:?https://twitter.com/chainalysis/status/1580312145451180032?s=20&t=QfqOMqMKjHd3EtX_0O-QjA
如果我們把鏈上智能合約從開發>>部署至區塊鏈網絡>>運行看成是一個完整生命周期的話,針對智能合約的安全分析分為:針對合約部署前的分析、合約部署后的分析,這大致涵蓋了:測試、審計、監測三大類目,每個類目下面又有各種類型的分析方式和相應的工具。PS:智能合約的審計覆蓋面會從合約部署前到部署后
1.智能合約部署前的安全分析:測試+審計
1.1測試
合約測試是開發者和審計者需要花費最多精力的工作,這與傳統開發者不同。因為區塊鏈不可篡改的特性,一旦智能合約部署到EVM虛擬機上就難以變更,因此安全分析、彌補安全漏洞的工作大部分花費在“事前分析”——對智能合約部署前的安全測試。
歐盟數據法規定智能合約需包含終止開關:金色財經報道,根據歐盟成員國周一公布的歐盟數據法修訂版,智能合約必須包含一個終止開關。代表各國政府的歐盟理事會于周五就文本達成一致,其提議似乎與歐洲議會立法者已經贊成的提議相呼應。法律的最終措辭現在必須在歐盟委員會的調解下由議會和理事會協商確定。
要求智能合約能夠中斷或終止其活動的擬議立法引起了區塊鏈社區的擔憂,擔心破壞本應是自動化和不可更改的程序。[2023/3/27 13:29:05]
在接受正式審計前,合約開發者/審計者需要對合約的代碼進行一些基礎性的測試,初期測試的覆蓋率越高越能避免一些簡單的bug進入正式審計階段。
常見的基礎性的測試有單元測試和集成測試。這個階段常用的工具有Hardhat、Truffletestframework等,常見的測試內容包括:狀態檢查、事件觸發、交易重置、函數計算、完全功能測試。
來源:https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d
1.2審計Auditing
“測試可以有效地發現程序存在的缺陷,但是它卻無法證明程序不存在缺陷。”——EdsgerWybeDijkstra
根據Ethereum官方文檔的定義,審計是對智能合約每一行源代碼的細節評估,攻擊者的思維方式來繪制智能合約中可能的攻擊向量,以發現可能的故障點、安全漏洞和不良的開發實踐。審計階段大致包含:靜態分析、動態分析、人工分析、形式化驗證。正如上圖所說的Dijkstra,單靠測試無法完全相信程序沒有故障,審計、形式化驗證更多的是想更加靠近程序不存在缺陷這一目標。
金錢成本
側鏈項目Milkomeda將允許與EVM兼容的智能合約在Cardano主網上執行:8月26日消息,IOHK(負責Cardano協議的研發)首席執行官Charles Hoskinson表示,他很高興區塊鏈初創公司dcSpark的新側鏈項目“Milkomeda”將允許與EVM兼容的智能合約在Cardano主網上執行。此外,Milkomeda項目承諾在未來提供Cardano和其他L1區塊鏈之間的互操作性,如Solana。(Crypto Globe)[2021/8/26 22:39:26]
根據智能合約安全公司Hacken的數據,智能合約審計服務的行業的平均成本在5000美元到30000美元之間。對于大型項目,成本有時可以達到50萬美元甚至更高。智能合約審計的成本直接取決于代碼復雜性和商定的工作范圍。影響價格的其他因素包括緊急程度、智能合約的大小、完成流程所需的工程小時數、與項目相關的文檔的可用性等因素。
時間成本
初始審計平均需要2到14天,這也具體取決于項目的復雜性、智能合約規模和緊迫性。對于大型項目或協議,初始審核可能需要長達1個月的時間。初始審核完成后,客戶會收到有關要引入哪些修改的建議。
人力成本
根據IOSG在區塊鏈形式化驗證領域的領投項目RuntimeVerification的反饋,審計的人力成本取決于協議的復雜性。對于大部分擁有資深行業經驗和學術經驗的頭部安全審計公司來說,理解crypto客戶項目的商業邏輯和tokeneconomics基本沒有太大難度,一般兩個專業的工程師大概花費1~2個星期就可以完成初始步驟。
但是接下來的部分會取決于客戶的具體需求。有的客戶只需要對被審計項目的基本業務邏輯進行人工審計,這是最便宜的服務。有的客戶希望對業務邏輯和tokeneconomics進行建模然后手工進行數學證明以確保某些重要結果成立,例如安全性、活性、一致性等。有些大客戶像MakerDAO、以太坊基金會等則希望更進一步,對代碼進行形式化驗證(FormalVerification)。
Qtum提出基于智能合約的離線Staking機制:據官方消息,量子鏈Qtum發布新共識機制白皮書,把智能合約引入到PoS共識過程,提出了一種基于智能合約的離線Staking機制,使用戶可以在離線狀態參與Staking。在Qtum離線Staking機制中,成為SuperStaker可以代替普通節點進行Staking,并獲取收益,網絡中SuperStaker的數量沒有上限。同時,由于智能合約的引入,Qtum離線Staking機制的規則是可編程、可升級的,增加了Staking本身的靈活性。[2020/9/23]
這里關于形式化驗證再多說一句,形式化驗證是用數學方法去驗證程序的正確性——程序的實現與程序員的意圖相符,最終證明項目的系統是BugFree的。或者換句話說,形式化驗證像是一種更全面的“testing”,它理論上會包含所有可能的輸入和狀態,這是testing無法做到的
從實際規模化運用來說,形式化驗證相對傳統的測試方案在規模化運用上相對較慢。大部分的crypto項目來說,完成智能合約審計之后就已經足夠,從成本投入和潛在效益來說對小型項目來說還不是必需品(或者說證明程序是bug-free的代價還比較高),核心原因是形式化驗證需要專業的形式化人才參與,因為對項目代碼創建形式化規范
智能合約審計當下仍然是一個labourintensive的行業,并且對人才的技術要求較高。目前雖然市面上有十幾款比較流行的審計工具。因此,僅僅依賴這些工具去完成審計工作比較困難,可能會錯過許多和業務邏輯相關的漏洞。通常審核智能合約需要使用自動化工具+手動代碼審查相結合的方式,并且根據客戶的智能合約業務邏輯、Token模型的不同需要casebycase的人工審查。
智能合約安全分析和審計往往是在驗證程序的正確性,也就是程序的實現與程序員的意圖相符。因為程序的bug,其實都是由程序的實現與程序員的意圖之間有區別導致的。我們之前在分享我們投資RuntimeVerification一文中提及的形式語義學的其實就是能讓開發者的開發意圖和實現精確相符的語言框架,從而減少bug的出現。
動態 | Blockmason宣布LINK支持EOS平臺和智能合約:據MEET.ONE消息,Blockmason 昨日宣布對其官方Link開發路線圖增加 EOSIO(“EOS”)公鏈支持。在EOS區塊鏈上和智能合約交互的Web、移動端和其它去中心化應用(DApps)的開發者將可以使用 Blockmason 的Link加快開發速度,減少系統開銷和成本。 Blockmason的Link是一個新的區塊鏈基礎架構服務,這個服務讓應用、Web和其它軟件開發者可以在他們的應用中使用智能合約和 EOS 這樣的編程式區塊鏈,而不需要開發者有任何區塊鏈經驗。 Blockmason 的CEO Michael Chin 表示:在短短的一段時間內,EOSIO 就成為最受歡迎的編程式區塊鏈之一,為DApp 開發者和用戶二者的需求提供服務,我們有信心,Link 將會大幅度減少開發時間,提高 EOSIO DApp 的應用。[2019/6/18]
在智能合約安全審計領域目前雖然市面上工具也不少,且大多開源,但是拿來真正做到成功商業化的寥寥無幾,這其中根本原因我們后面也會分析,總之目前還是依賴于安全服務提供商自己的自動化工具+人工閱讀每一行代碼或建模,基本無法通過直接賣自動化審計工具拿到規模化商業收入。
PS:根據我們最近領投的Hexens反饋,初期對于一些靜態分析的測試Slither和MythX是他們常用的開源工具,雖然結果并不能讓他們非常滿意。對于更高級別的測試,他們主要用fuzzers如Echidna、Forge+builtinfuzzer
2.智能合約部署后的安全分析——監測
目前10種最常見的區塊鏈網絡安全攻擊里Scam出現頻率最高,且給用戶直接造成資產損失最高。根據Peckshield的數據,在2021年crypto因為各類scams造成的鏈上經濟損失達120億美金,比黑客直接攻擊造成的損失要高6.7倍。
獨家 | 區塊鏈項目10%-20%的智能合約業務存在邏輯漏洞:多家交易所為了保護各平臺投資者及自身的資產安全,委托獨立第三方智能合約審計機構降維安全實驗室對所有即將在交易所上線的項目方智能合約進行安全審計。在審計過的數百份智能合約中,降維安全實驗室(Johnwick.io)發現超過70%的智能合約代碼優質、業務邏輯嚴謹,但也有極少數項目方合約代碼存在嚴重的業務邏輯風險,上線后可能會給交易平臺及投資者造成巨大的資產損失。主要問題表現為合約Owner(合約所有者、創始團隊)權限設置過大,可以無限增發代幣,更為嚴重的是溢出可以隨意增加和銷毀任意地址的代幣,甚至包含交易所自身的錢包地址。在這種情況下如果Owner自身作惡或者被盜取賬號,在上線交易拉高幣價后進行大量增發再砸盤至價格歸0,可在短期內獲得巨大收益,而蒙受巨大損失的只有交易所及廣大投資者。降維安全實驗室作為合約審計的受委托方,在審計合約時以最大程度的保護廣大區塊鏈投資者及交易平臺的資產為唯一目標,對合約有極高的要求所以可能會出現審計不通過的情況,對于沒有經過嚴格評估過的合約資產,可能在未來的某段時間內爆發資產風險,希望廣大用戶注意。[2018/7/12]
常見的scam攻擊:
網絡釣魚
案例:Alice登錄某交易所后鏈接MetaMask錢包,收到彈窗提示錢包故障,需要助記詞恢復,恢復后錢包內資產被全部盜走。
冒名/冒充
案例:烏克蘭政府接受加密貨幣捐贈并宣布空投NFT,冒名者偽裝成烏克蘭政府發出假token空投進行詐騙。
Discord管理身份劫持
案例:黑客通過控制藍籌NFT如BoredApeYachtClub等discord官方服務器,批量對成員發送錯誤鏈接,用戶點擊后資產會被不可逆地盜取
BGP劫持
案例:Celer遭受BGP劫持攻擊,波及32名用戶和23.5萬美元的損失
代碼后門&陷阱
案例:Bob在某網站mint了一個NFT,兩天后發現不翼而飛。因為攻擊者在NFT代碼植入了某些特征,可以授權他人進行NFT交易或可以破壞他人的NFT,無法掛單等。
前端惡意代碼(攻擊者會將惡意代碼植入交易所等網站的前端,如用戶瀏覽器的標簽管理系統,從而通過這串惡意代碼生成錯誤的批準,允許用戶資產被轉移至攻擊者的地址)
案例:KyberSwap因為黑客安插的前端惡意損失256萬美金
常見的工具:
相比于智能合約安全審計,提供monitor&firewall服務涉及的業務內容更為龐雜和細密。
Focus在合約部署前以及合約部署后升級的智能合約代碼安全審計,往往通過各類型的測試輸入一系列的值來看合約的輸出值及狀態是否正常運行。比如針對一個常見的鏈上轉賬邏輯,常見的測試人員會做:transferzeroether,transferalltheether,transferslightlymorethanalltheether,transferthelargestpossibleamountofether,transferanaccount'svaluetoitself等事情來看合約是否可以如能做到程序員預期該做的事情和實現的結果。
Focus在事中安全分析的monitor/firewall服務,要處理的問題更繁雜。并且目前看下來這類項目提供的安全服務更注重廣度,它們相對比合約審計的安全服務更輕量級。涉及許多跟檢查代碼正確性之外的安全風險,比如各類詐騙、釣魚相關的攻擊。而監測這些漏洞除了需要依賴合約解析能力之外,還需要不斷更新可疑地址、可疑合約邏輯、可疑資產清單等數據的風險數據庫。
通過我們和最近行業內從業人員的交流,發現不同的Monitor服務定位其實也各有不同,比如GoPlus更加注重提供數據API服務給項目方甚至是一些注重前端的防火墻;Harpie、Blowfish更注重提供前端服務,當用戶執行一個交易行為、或者完成一次授權之前模擬這個交易以發現問題阻止用戶有安全風險的交易;Tenderly則更注重開發者的需求,為智能合約開發者提供運行監測等服務。當然目前這個領域還比較新,盡管像Opensea這樣的大型交易平臺已經和一些項目進行實質的商業合作,但是我們認為未來商業化的路徑還是不太明晰同時會遇到的同業競爭會不小。
3.智能合約安全分析工具的商業發展機遇和挑戰
1)目前來看行業內的許多人認為monitoring&firewall跟securityauditing之間的商業邊界還較為模糊,理論上來說由在區塊鏈安全領域深耕多年的專業安全審計公司直接提供monitoringservice,甚至開拓B2C,2C化的終端用戶直接收益的產品更符合商業發展邏輯。但是由于monitoring賽道剛剛起步,收費模式和盈利模型尚不明確,如果市場回暖安全審計市場會仍然處于供>需,訂單做不完的狀態可能無暇顧及這個新興市場,這個時間窗口會是給新出現的專門做monitor/firewall的公司一個很好的機會。
2)智能合約審計的自動化工具目前市面上已經有很多,常見的有十幾種大多開源。這個方向通過賣工具來收費的商業模式尚未跑通,核心原因是:
黑客和安全防御者的博弈關系是anarmsraceandtheattackisalwaysamovingtarget,魔高一尺道高一丈。安全工具一旦推出,黑客就會嘗試繞過它,開發出新的攻擊形式。所以安全工具只能不斷迭代更新將攻擊門檻提高;
大部分工具使用門檻不低,會使用專業安全分析工具產品的人少,因此限制了市場規模(雖然RuntimeVerification有在推給普通開發者使用的Firefly,ConsenSysDilligence也有MythX;
安全分析工具只能覆蓋主流的漏洞,而根據協議業務邏輯的經濟模型的不同客戶主觀更希望審計團隊人工提供定制化的服務。
團隊主觀也希望一個受市場authorized的審計公司提供較深度定制化審計服務并且蓋戳。因此,提供monitoringservice會是專業安全團隊切入可規模化產品的一個很好的機會點。??
3)為defi項目方,DAO或個人服務的insurance業務可能會成為下一片藍海。考慮到目前市場對于黑客直接盜取私鑰等攻擊方法并沒有良好的防范或解決方案,以風險規避和資產保障為目的的保險業務很可能在未來會受到更多的青睞。
當然考慮到加密資產本身的復雜性和合規方面的多重不確定性,underwriter往往會承受更大的風險,因而在解決這一問題之前,insurance產業的發展可預見的,仍然將面臨一定的瓶頸。期待隨著整體加密資產體量的上升和更多傳統機構用戶的進入,insurance業務能在下一個周期來臨之前能夠實現更多制度性的完善。
Reference:
https://www.paradigm.xyz/2022/03/foundry-02
https://www.coindesk.com/business/2022/09/30/paradigm-leads-118m-funding-round-into-web3-firewall-blowfish/
https://ethereum.org/en/developers/docs/smart-contracts/testing/
https://docs.openzeppelin.com/learn/writing-automated-tests
https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-2e41b2770297
https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d
Tags:ING區塊鏈THETRAaladdingalaxy區塊鏈技術通俗講解中山大學3X Long Tether Gold Tokeneternalcontract
作者:flowie,ChainCatcher“WETH怎么脫錨了?V神挪用ETH了?”今天中午,孫宇晨推特上的一句玩笑話被不少人當了真.
1900/1/1 0:00:00據慢霧區情報,受MinaJavaScriptclient-sdkv1.0.1之前版本的弱熵問題影響,目前社區已有多人反饋錢包私鑰被竊取.
1900/1/1 0:00:00據TheInformation援引消息人士報道,對沖基金TigerGlobalManagement的領導層曾于去年年初承諾以個人出資形式,向數十家風投基金投資10億美元.
1900/1/1 0:00:00原文標題:《祛魅做市商》作者:Yaoyao,DODOResearchFTX爆雷,帝國坍塌,?系列頭部平臺遭受重創,做市商和借貸成為重災區:Alameda作為加密貨幣?業最?的做市商之?.
1900/1/1 0:00:00整理:西昻翔,ChainCatcher“過去24小時都發生了哪些重要事件”?1、Sui發布SUI代幣分配細節,早期貢獻者占20%Sui基金會發布SUI代幣經濟學分配細節.
1900/1/1 0:00:00DeFi保險平臺NexusMutual今日披露,因加密對沖基金和信貸的公司OrthogonalTrading違約損失2461ETH,占總資產的1.6%,不影響日常運營或支付索賠的能力.
1900/1/1 0:00:00