來源:a16z
編譯:Katie辜,星球日報
通常,黑客會發現并利用軟件開發整個流程鏈條中的缺陷,從而打破區塊鏈項目的安全屏障。如果能夠提前了解到相關經驗,我相信安全事故會少很多。
本文概述了Web3開發人員和安全團隊在設計、開發并維護智能合約時必須考慮的安全要素,覆蓋了從威脅建模到應急響應準備的整個周期。
開發一款安全的軟件包括以下五個階段:
設計:開發人員描述系統所需的功能和操作,包括重要的基準和固定屬性;
開發:開發人員編寫系統代碼;
測試和評審:開發人員將所有模塊聚集在一個測試環境中,并評估它們的正確性、規模和其他因素;
部署:開發人員將系統投入生產;
維護:開發人員評估和修改系統,確保其執行預期功能。
下圖將需要考慮的安全因素與上述階段對應起來。
a16z合伙人Chris Dixon:因投資Coinbase而未投資FTX,離岸交易所不受監管本身就是隱患:12月19日消息,a16z 合伙人 Chris Dixon 近日在 The Block 的播客 The Scoop 中談到為什么 a16z 從未投資過 FTX等話題。主持人問 Chris Dixon躲過 FTX 是技巧還是運氣,對此,Chris Dixon 表示,自己只和 SBF 在線上會議上有過對談,并無深交。之所以沒有投資 FTX 主要是因為投資了 Coinbase,而和 Coinbase 合作的經驗告訴他,合規、安全要比靈魂和創新更重要,所以,FTX 這種離岸加密交易所不受監管本身就是一種隱患。
為什么 FTX、Phoenix 等交易所會選擇將總部設立在巴哈馬群島?誰來審計他們?Chris Dixon 說道,沒有投資 FTX 并非完全出于運氣,a16z 在投資領域積累了十多年的經驗,會在投資前做大量的工作,并且認真思考什么是真正的技術創新。[2022/12/19 21:54:14]
需要注意的是,軟件開發的生命周期并不一定總是遵循線性的路徑:各類別可能重疊或擴展到其他階段。對于每個版本,步驟可能會重復。有些安全任務可能需要貫徹執行。
Web3電商平臺Rye完成1400萬美元融資,a16z Crypto領投:10月11日消息,Web3電商平臺Rye完成1400萬美元新一輪融資,a16z Crypto領投。
據悉,Rye由Twitch聯合創始人Justin Kan創立,旨在打造“Web3領域里的Spotify”。Rye將尋求使用加密Token降低電子商務成本,通過向參與者提供加密貨幣“Rye”(可用于支付交易費用),Rye將提供一鍵式應用程序編程接口(API),供商家在Rye自己的市場上展示他們的部分或全部產品。(福布斯)[2022/10/11 10:31:20]
上面描述的軟件生命周期步驟和相應的安全考慮為促進智能合約安全性提供了基礎。下面將從三個問題出發,進行更詳細的研究。
1.設計階段的智能合約安全考慮——考慮威脅建模和安全設計
內容:從項目開發生命周期初期就明確識別系統的潛在威脅,并確定其優先級是關鍵。智能合約開發人員應該識別在開發中要實現的所有安全控制,以及在測試、審計和監控中應該檢查的威脅。所有安全假設,包括攻擊者預期的復雜程度和經濟手段,都應該在設計階段明確定義和闡明。
體育元宇宙初創公司Gym Class完成800萬美元種子輪融資,a16z領投:金色財經報道,體育元宇宙初創公司Gym Class宣布完成800萬美元種子輪融資,由 Andreessen Horowitz(a16z) 領投,Y Combinator 參投。Gym Class允許使用虛擬頭顯與來自世界各地的玩家一起打籃球(8人),玩家通過自己的身體動作控制全身化身,并手持 Quest 控制器在用戶可以自行設計的可定制數字球場上進行投籃、傳球、運球和扣籃。據悉,目前這款應用在 Meta Quest App Lab 的下載量已經接近一百萬,并計劃于今年秋季在 Meta Quest Store 上推出。(sporttechie)[2022/8/3 2:55:04]
原因:雖然對開發人員來說,只關注智能合約或協議的預期用途非常吸引人,但這唯一的焦點可能會給他們留下“盲點”,會被攻擊者利用。
方法:遵循已知的威脅建模實踐。如果一個開發團隊沒有內部的安全專家,那么它應該在設計階段的早期就與安全顧問接觸。在設計系統時要有“攻擊者”的心態,并預先假定任何個人、機器或服務都有可能受到攻擊的情況。
數字身份認證公司Spruce完成3400萬美元A輪融資,a16z領投:4月20日消息,數字身份認證公司Spruce宣布完成3400萬美元A輪融資,Andreessen Horowitz(a16z)領投,Ethereal Ventures、Electric Capital、Y Combinator、Okta Ventures、SCB 10X、Robot Ventures、OrangeDAO等參投。
據此前報道,2021年11月,Spruce完成750萬美元融資, Ethereal Ventures和Electric Capital領投。(Techcrunch)[2022/4/20 14:36:57]
2.發展階段的保安考慮——管理考慮和訪問控制
內容:實施訪問控制,限制對特權帳戶和智能合約調用執行管理任務的特殊功能的能力。遵循“最小特權原則”——每個參與者應該只擁有所需的最小訪問量。
原因:通過升級和治理流程維護協議,開發人員可以通過添加新功能、修補安全問題和解決不斷變化的條件來改進協議。如果升級能力沒有得到適當的控制,這可能會構成嚴重的安全漏洞。
Web3初創公司Loop完成400萬美元種子輪融資,a16z領投:金色財經消息,專注于加密定期支付服務的Web3初創公司Loop宣布完成400萬美元種子輪融資,本輪融資由a16z領投,A_capital、Alchemy Ventures、CoinList等參投,天使投資人包括Pantera Capital的合伙人Paul Veradittakit、Nansen首席執行官Alex Svanevik等。
Loop是一家專注于為開發員工(或DAO成員)定期支付薪水和其他定期支付服務解決方案的Web3初創公司,該公司旨在解決這一痛點,并推動Web3的普及和發展。(CoinDesk)[2022/4/14 14:23:13]
方法:建立多重簽名錢包或?DAO?合約,以透明的方式代表社區管理變更。變更應該經過徹底的審查過程,并設置一個時間鎖定,以確保在治理攻擊的情況下可以驗證其正確性并回滾。確保在自行保管錢包或安全保管服務中可安全存儲和訪問特權密鑰。
3.?考慮可重復使用的、經過實戰測試的模板和集成
內容:盡可能利用現有的智能合約標準,并評估可能需要與現有協議進行的協議集成的安全性假設。
原因:使用現有的經過實戰檢驗、社區審計的標準和實施降低安全風險方面的措施會有很大的幫助。評估協議集成的風險有助于開發安全檢查,以防止對外部組件的攻擊。
方法:導入經過安全審計的受信任合約庫和接口。Web3的重點是開源使用、重用性和可組合性。確保在代碼庫中記錄合約依賴項及其版本,盡可能減少代碼占用。例如,導入大型項目的特定子模塊,而不是導入所有內容。了解你的風險敞口,監控供應鏈攻擊。使用官方接口調用外部協議,并確保考慮到潛在的集成風險。監控重復使用的合約的更新和安全披露。
4.測試和評審階段的安全性考慮——考慮測試和文檔
內容:創建清晰、全面的代碼文檔,并建立一個快速、徹底、易于運行的測試套件。在允許的情況下,在測試網或通過主網模擬建立測試環境,進行更深入的實驗。
原因:寫出對代碼庫預期行為的假設有助于確保威脅模型中的風險得到解決,并且用戶和外部審計員可理解開發團隊的意圖。為代碼創建測試套件有助于證明開發假設,并鼓勵對威脅模型進行更深入的思考。這個測試套件應該包括在極端市場場景下檢查項目代幣經濟的機制設計測試,以及單元測試和集成測試。
方法:實施已知的測試框架和安全檢查器,如Hardhat、Mythril、Slither、Truffle等,它們提供不同的測試技術,如模糊化、屬性檢查,甚至正式驗證。使用NatSpeccomments大范圍記錄代碼,從而指定預期的副作用、參數和返回值。使用文檔生成工具以及高級設計說明生成實時文檔。
5.?考慮內部審查和安全審計
內容:花時間通過內部和外部代碼檢查來發現漏洞。
原因:從特性開發轉向關注安全問題給了開發人員時間來發現潛在的模糊問題。外部審計在這方面尤其發揮作用,因為它們可以帶來開發團隊不具備的外部視角和專業知識。
方法:在項目開發的適當節點,凍結某功能,從而有時間進行內部審查,然后進行外部審計。這應該在任何實際部署和升級之前進行。
請查看?ConsenSys、Nassent、OpenZeppelin和TrailofBits的指南,這些指南為開發人員提供了考慮事項清單,包括時間安排,供任何準備審計的人參考。還要確保檢查部署交易,確保它們使用經審核的代碼版本并具有適當的參數,特別是在升級軟件時。
6.?部署和維護階段的安全考慮——激勵白帽社區參與
內容:創建鼓勵社區參與開源代碼庫安全改進的程序。一種方法便是創造漏洞獎勵。另一種方法是鼓勵社區開發協議監控檢測機器人。
原因:開發團隊可以從大范圍的知識和經驗中獲益。這樣的程序可以幫助激發對一個項目的熱情,從本質上把社區和白帽黑客變成布道者。通過為黑客提供成為防御者的途徑,它們還可以幫助將潛在的攻擊者轉變為安全資產。
方法:使用漏洞賞金平臺激勵熟練的黑客安全地披露漏洞。
注:文中的一些作者在Forta公司工作,該公司擁有一個網絡,為去中心化創建高質量安全監控機器人提供了一個代幣化激勵結構。開發團隊可以鼓勵他們的協議社區利用傳統和Web3原生的兩種方法來激勵漏洞獎勵,并通過增強安全性來讓參與者潛在地獲利,實現雙贏。
7.實時監控安全考慮
內容:實施監控智能合約和關鍵操作組件的系統,并根據已知的威脅模型向開發團隊和社區報告可疑活動。
原因:問題的早期檢測使團隊能夠快速響應漏洞,潛在地阻止或減輕任何損失。
方法:使用監控平臺或分布式節點運行機器人,實時監控智能合約事件。根據需要為開發團隊和更廣泛的社區插入數據儀表板和警報通知。
8.意外和緊急情況響應操作的安全考慮
內容:使用能夠在發生任何安全問題時立即做出響應的工具和流程。
原因:即使有最好的部署前保障措施,智能合約和關鍵組件仍有可能出現實時問題。配備專門的人員、清晰的流程和適當的自動化設備,確保可以快速調查事件,并盡快解決。
方法:為最壞的情況做準備,計劃如何應對事件或緊急情況,并在最大程度上自動化響應能力。包括分配調查和響應的責任,這些人員可以通過分布式安全郵件列表、代碼存儲庫中的指示或智能合約注冊表就安全問題公開聯系。根據協議的威脅模型,開發一組流程,其中可以包括場景演練和采取緊急行動所需的預期響應時間,可以考慮將自動化集成到緊急事件響應中。
安全考慮應該是成功開發的一個組成部分,而不只是事后考慮或補充。雖然這個框架分享了一些構建Web3協議和應用程序的快速指南,從而促進整個開發過程中的安全性,但沒有任何簡短的概述可以全方面討論智能合約安全。缺乏內部安全專業知識的團隊應該聯系合格的Web3安全專家,他們可以指導并幫助應用于他們的特定情況。
請記住,安全性不是一個簡單的問題。安全性將永遠是一套永無止境、持續不斷的最佳實踐。我們仍然處于建立這些實踐的初期階段,現在是時候為所有開發人員協作創建和共享它們了。
原文:《InsidetheMindofanApe:Fiskantes》編輯:Claire,Carole,Maxwell,Diamond.
1900/1/1 0:00:00作者:Leonardo 原文標題:《Designingforweb3:thoughtsfromfirstprinciples》 編譯:老雅痞 在推特上每天都有很多關于這個建立在所有權和去中心化前.
1900/1/1 0:00:00作者:Twitter:@26x14eth一:一個經濟系統是否穩定,本質上是在看token產出和token消耗的動態關系.
1900/1/1 0:00:00Web2.0以效率優先,使用AI、大數據等工具分析用戶行為,進行精準營銷,通過用戶行為模式引導用戶消費,用戶則可以從海量的數據中找到適合自己需求的數據或服務.
1900/1/1 0:00:00鏈捕手消息,數字資產安全托管錢包架構公司Liminal宣布完成470萬美元種子輪融資,ElevationCapital領投.
1900/1/1 0:00:00鏈捕手消息,今日有網友在社交媒體上請?DoKwon針對此前新聞爆料的關于“LUNA完全崩盤前的5月4日和6日曾試圖逃離該國并清算公司”和逃稅等消息進行回應,DoKwon表示,這兩個時間純屬巧合.
1900/1/1 0:00:00