比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > XRP > Info

Web3 項目安全實踐要求_BSP

Author:

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

前言

慢霧安全團隊開源 -- Web3 項目安全實踐要求,提供了詳細的實踐要求和建議來幫助 Web3 項目研發團隊識別和防范這些潛在的安全風險。Web3 項目方可以參考本文提供的安全實踐要求,掌握相應的安全技能,提高 Web3 項目的安全性,以便更好地保護項目和用戶的資產安全。

Web3 項目安全實踐要求包含如下的內容:

現今針對 Web3 項目的攻擊手法層出不窮,且項目之間的交互也越發復雜,在各個項目之間的交互經常會引入新的安全問題,而大部分 Web3 項目研發團隊普遍缺少的一線的安全攻防經驗,并且在進行 Web3 項目研發的時候重點關注的是項目整體的商業論證以及業務功能的實現,而沒有更多的精力完成安全體系的建設,因此在缺失安全體系的情況下很難保證 Web3 項目在整個生命周期的安全性。

通常項目方團隊為了確保 Web3 項目的安全會聘請優秀的區塊鏈安全團隊對其代碼進行安全審計,在進行安全審計的時候,才能夠更好地實現各種安全實踐要求,但是區塊鏈安全團隊的審計僅僅是短期的引導,并不能讓項目方團隊建立屬于自己的安全體系。

因此慢霧安全團隊開源了 Web3 項目安全實踐要求來持續性幫助區塊鏈生態中的項目方團隊掌握相應的 Web3 項目的安全技能,希望項目方團隊能夠基于 Web3 項目安全實踐要求建立和完善屬于自己的安全體系,在審計之后也能具備一定的安全能力。

0x01 開發準備

需求分析文檔要求

1. 確保包含項目的詳盡描述

2. 確保包含項目解決的問題

3. 確保包含安全/隱私風險評估

開發設計文檔要求

1. 確保包含項目的架構設計圖

Consensys發布ETHCC和ETHGlobal Paris關于Web3未來的5大要點:金色財經報道,Consensys團隊總結了從ETHCC和 ETHGlobal Paris收集到的關于web3未來的5個最關鍵的要點:1. Layer 2 繼續擴展以太坊作為關鍵基礎設施;2. web3 中的社交媒體正在成熟并獲得關注;3. 賬戶抽象將通過改善用戶體驗吸引大量用戶;4. 早該將重點從基礎設施轉向應用程序開發;5. 互操作性至關重要,協議必須相互支持且兼容。

該團隊表示,以太坊的未來是光明的,ETHCC 和 ETHGlobal的活動和公告凸顯了幾個重要的增長領域,包括通過 Layer 2 解決方案持續擴展以太坊。以 Lens V2 公告??為例,去中心化社交網絡的成熟和吸引力也表明了網絡開放和去中心化社交層的進展,以及其他值得注意的技術發展。[2023/7/28 16:03:10]

2. 確保包含代碼中函數的功能描述

3. 確保包含代碼中合約之間的關聯關系描述

4. 確保安全/隱私的要求被正確實施

業務流程文檔要求

1. 確保包含項目中每個業務流程的描述

2. 確保包含詳盡的業務流程圖

3. 確保包含詳盡的資金鏈路圖

智能合約安全編碼要求

1. 確保包含盡可能基于 OpenZeppelin 等知名 library 進行開發

2. 確保包含使用 SafeMath 或 0.8.x 的編譯器來避免絕大部分溢出問題

3. 確保遵循函數命名規范,參考:solidity style guide

(https://docs.soliditylang.org/en/v0.8.14/style-guide.html)

4. 確保函數和變量可見性采用顯性聲明

5. 確保函數返回值被顯性賦值

6. 確保函數功能和參數注釋完備

7. 確保外部調用正確檢查返回值,包含:transfer,transferFrom,send,call,delegatecall 等

OKX Web3錢包現已正式開放BRC-20代幣質押:7月19日消息,OKX Web3錢包現已正式開放BRC-20代幣質押功能,當前質押池已超過100+。用戶可以通過DeFi板塊質押BRC-20代幣。

另據歐易OKX提示,BRC20-S為開放標準,任何項目均可進行質押池部署,歐易OKX不會對部署池進行審核,也不會對任何項目進行背書,用戶須自行判斷參與。[2023/7/19 11:04:41]

8. 確保 interface 的參數類型返回值等實現是正確的

9. 確保設置合約關鍵參數時有進行鑒權并使用事件進行記錄

10. 確保可升級模型的新的實現合約的數據結構與舊的實現合約的數據結構是兼容的

11. 確保代碼中涉及算數運算的邏輯充分考慮到精度問題,避免先除后乘導致可能的精度丟失的問題

12. 確保 call 等 low level 調用的目標地址和函數是預期內的

13. 使用 call 等 low level 調用的時候要根據業務需要限制 Gas

14. 編碼規范進行約束,遵循:先判斷,后寫入變量,再進行外部調用 (Checks-Effects-Interactions)

15. 確保業務上交互的外部合約是互相兼容的,如:通縮/通脹型代幣, ERC-777, ERC-677, ERC-721 等可重入的代幣,參考:重入漏洞案例

(https://medium.com/amber-group/preventing-re-entrancy-attacks-lessons-from-history-c2d96480fac3)

16. 確保外部調用充分考慮了重入的風險

17. 避免使用大量循環對合約的 storage 變量進行賦值/讀取

18. 盡可能避免權限過度集中的問題,特別是修改合約關鍵參數部分的權限,要做權限分離,并盡可能采用治理,timelock 合約或多簽合約進行管理

19. 合約的繼承關系要保持線性繼承,并確保繼承的合約業務上確實需要

HashKey Capital與萬向區塊鏈實驗室發起Web3.0創新孵化平臺Future3 Campus:5月30日消息,HashKey Capital與萬向區塊鏈實驗室宣布聯合發起Web3.0創新孵化平臺Future3 Campus,重點聚焦Web3.0 Massive Adoption、DePIN、AI三大賽道,以上海、粵港澳大灣區、新加坡為主要孵化基地,輻射全球Web3.0生態。Future3 Campus將推出首期5000萬美元的種子基金用于Web3.0項目孵化。[2023/5/30 11:47:45]

20. 避免使用鏈上的區塊數據作為隨機數的種子來源

21. 確保隨機數的獲取和使用充分考慮回滾攻擊的可能

22. 盡量使用 Chainlink 的 VRF 來獲取可靠的隨機數,參考:Chainlink VRF

(https://docs.chain.link/vrf/v2/introduction)

23. 避免使用第三方合約的 token 數量直接計算 LP Token 價格,參考:如何正確獲取 LP 的價

(https://blog.alphaventuredao.io/fair-lp-token-pricing/)

24. 通過第三方合約獲取價格的時候避免單一的價格來源,建議采用至少 3 個價格來源

25. 盡可能在關鍵的業務流程中使用事件記錄執行的狀態用于對項目運行時的數據分析

26. 預留全局與核心業務緊急暫停的開關,便于發生黑天鵝事件的時候及時止損

測試用例代碼要求

1. 確保包含業務流程/函數功能可用性測試

2. 確保包含單元測試覆蓋率 95% 以上,核心代碼覆蓋率要達到 100%

基礎安全配置要求

1. 確保官方郵箱使用知名服務商,如 Gmail

2. 確保官方郵箱賬號強制開啟 MFA 功能

3. 確保使用知名域名服務商,如 GoDaddy

OKX Web3 Wallet即將支持硬件錢包連接:12月9日晚,在歐易OKX中文官方Twitter“錢包安全”主題Space中,OKX Web3 Wallet負責人表示,OKX致力于為用戶提供多樣、便捷的資產管理方式。用戶既能使用OKX的Cefi和Wallet快捷轉賬功能來同時管理Cefi和Defi資產,也將能夠使用OKX Web3 Wallet來直接管理硬件錢包。

據介紹,OKX Web3 Wallet插件端已支持硬件錢包的連接,APP端將于12月中旬上線。OKX Web3 Wallet支持用戶通過藍牙或USB連接Ledger硬件錢包,用戶可以在OKX APP內發起鏈上交易、簽名等操作,并使用硬件錢包確認,實現用戶對冷熱錢包的同時管理。[2022/12/9 21:34:11]

4. 確保域名服務商平臺的賬號開啟 MFA 安全配置

5. 確保使用優秀的 CDN 服務提供商,如 Akamai、Cloudflare

6. 確保 DNS 配置開啟了 DNSSec,在域名服務管理平臺上為管理賬號設置強口令并開啟 MFA 認證

7. 確保全員的手機和電腦設備使用殺軟件,如卡巴斯基、AVG 等

Web 前端安全配置要求

1. 確保全站的 HTTP 通訊采用 HTTPS

2. 確保配置了 HSTS,以防止中間人攻擊,如:DNS hijacking,BGP hijacking,參考:HSTS 配置介紹

(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security)

3. 確保配置了 X-FRAME-OPTIONS,以防止 Clickjacking 攻擊,參考:X-FRAME-OPTIONS 配置介紹

(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options)

4. 確保配置了 X-Content-Type-Options,以對抗瀏覽器 sniff ?為導致的?險,參考:X-Content-Type-Options 配置介紹

CABO CAPITAL將推出800萬美元的Web3投資基金:12月27日消息,CABO CAPITAL宣布將推出800萬美元的Web3投資基金,為早期區塊鏈技術初創公司投資股權和數字資產。CABO目前已投資9D NFT、ASPO World、Defihorse、Mytheria等項目。 (globenewswire)[2021/12/27 8:06:57]

(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options)

5. 確保配置了 CSP 策略,以防止 XSS 攻擊,參考:CSP 內容安全策略介紹

(https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)

6. 確保與權限和用戶憑證相關的 Cookie 配置了 HttpOnly, Secure, Expires, SameSite 標志,參考:Cookie 配置介紹

(https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)

7. 確保不同業務的子域嚴格劃分開,避免子域的 XSS 問題互相影響

8. 確保引用的第三方資源使用了 integrity 屬性進行限制,避免第三方被黑導致項目方的站點受到影響,參考:SRI 配置介紹

(https://developer.mozilla.org/zh-CN/docs/Web/Security/Subresource_Integrity)

9. 確保正確配置 CORS,僅允許指定 origin 域,協議和端口訪問項目的資源,參考:CORS 配置介紹

(https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS)

10. 確保業務中實現的 addEventListener/postMessage 有檢查消息的 origin 和 target,參考:postMessage 安全介紹 

(https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage)

后端環境安全配置要求

1. 確保選用優秀的云服務器提供商,如:AWS、Google 云等

2. 確保項目使用到的云平臺管理賬號使用強口令并開啟 MFA 認證

3. 確保項目代碼部署到服務器前對服務器進行安全加固,如:安裝 HIDS,采用 SSH Key 進行登錄,設置 SSH 登錄 alert,設置 SSH 登錄 google-auth 等

4. 確保使用專業軟件監控服務、服務器可用性,如 APM、Zabbix

5. 確保使用專業的機構定期測試項目安全性,如 SlowMist、Trail of Bits 等

0x03 發布過程

需要有完備的安全上線發布流程,可以參考如下的內容進行細化:

代碼凍結要求

在預計的上線時間倒推 2 天,即上線 2 天前必須凍結代碼不再做任何代碼改動

單元測試要求

1. 確保單元測試覆蓋率 95% 以上,核心代碼覆蓋率 100%

2. 確保輸出單元測試的覆蓋率報告

回歸測試要求

在上線 1 天前執行單元測試并進行回歸測試

測試報告要求

上線前 0.5 天由開發及測試共同完成測試報告,如果不通過(含單元測試、回歸測試),則推遲上線時間,開發完成修改后重新進入代碼凍結階段(即推遲至少 2 天)

安全審計要求

1. 安全審計人員在代碼凍結后進入整體安全回歸,如發現任一漏洞或安全隱患(嚴重、高危、中危),則推遲上線時間,開發完成修改后重新進入代碼凍結(即推遲至少 2 天)

2. 安全審計需要至少三個團隊進行獨立的審計,可以采用 1 個內部團隊 + 2 個外部團隊

運行時安全監控

盡可能的通過關鍵業務流程中觸發的事件來發現項目運行時的安全問題,如:

1. 合約關鍵權限/參數變更:監控管理角色發生變更的事件,管理角色修改合約關鍵參數的事件,及時發現私鑰可能被盜的情況

2. 合約資金變化:監控價格變動及合約資金變動的情況,及時發現可能的閃電貸等攻擊

3. 周期性對賬:周期性對鏈上的事件與交易進行對賬,及時發現可能的業務邏輯上的問題

運行環境安全加固

1. 確保實施前端代碼所在服務器的安全加固,如:安裝 HIDS (https://www.aliyun.com/product/aegis),采用 SSH Key 進行登錄,設置 SSH 登錄 alert (https://medium.com/@alessandrocuda/ssh-login-alerts-with-sendmail-and-pam-3ef53aca1381),設置 SSH 登錄 google-auth (https://goteleport.com/blog/ssh-2fa-tutorial/) 等

2. 確保 DNS 配置開啟了 DNS Sec,在域名服務管理平臺上為管理賬號設置強口令并開啟 2 次認證

3. 確保項目使用到的云平臺管理賬號使用了強口令并開啟了 2 次認證

發布漏洞賞金計劃

發布漏洞賞金計劃或入駐知名的漏洞賞金平臺, 吸引社區白帽子為項目保駕護航;可以選擇 BugRap (https://bugrap.io/), code4rena (https://code4rena.com/), immunefi (https://immunefi.com/)

成立名義應急小組

成立名義應急小組并對外提供聯系方式,由應急小組負責處理白帽子發現的問題或在黑天鵝事件爆發時主導團隊成員進行應急處置

完備的應急處置流程

盡可能地制定完備地應急處置流程,有條不紊地根據應急處置流程來處置黑天鵝事件

止損處置要求

1. 根據問題影響的范圍和危害程度,及時通過緊急暫停開關進行止損

2. 通知社區成員發生黑天鵝事件,避免用戶繼續與項目進行交互導致虧損

黑客追蹤要求

1. 迅速分析黑客的獲利地址,并留存 PC/Web/服務器的訪問日志(如果有木馬請留存木馬文件)

2. 對服務器進行快照,及時保留被黑現場

3. 聯系專業的安全團隊協助進行追蹤,如: MistTrack 追蹤分析平臺 (https://misttrack.io/), Chainalysis (https://www.chainalysis.com/)

修復問題要求

1. 與專業安全團隊討論問題的最佳修復方案

2. 正確實施修復方案并請專業的安全團隊進行驗證

安全發布要求

執行發布過程要求,確保一切代碼的變更均有經過測試和安全審計

復盤分析要求

1. 披露驗尸報告并與社區成員同步修復方案及補救措施

2. 驗尸報告需要同步問題的本質原因,問題的影響范圍,具體的損失,問題的修復情況,黑客的追蹤等相關進展

總結

安全是動態管理的過程,僅依賴于第三方安全團隊的短期審計并不能真正保障項目長期安全穩定地運行。因此,建立和完善 Web3 項目的安全體系是至關重要的,項目方團隊自身具備一定的安全能力才能更好的保障 Web3 項目安全穩定地運行。

除此之外,我們建議項目方團隊還應該積極參與安全社區,學習最新的安全攻防技術和經驗,與其他項目方團隊和安全專家進行交流和合作,共同提高整個生態的安全性。同時,加強內部安全培訓和知識普及,提高全員的安全意識和能力,也是建立和完善安全體系的重要步驟。

最后,Web3 項目安全實踐要求目前屬于 v0.1 版本,并且還在持續的完善,如果你有更好的建議,歡迎提交反饋。

慢霧科技

個人專欄

閱讀更多

金色財經 善歐巴

金色早8點

白話區塊鏈

Odaily星球日報

Arcane Labs

歐科云鏈

MarsBit

深潮TechFlow

BTCStudy

鏈得得

Tags:WEBWEB3BSPNBSweb3幣圈web3游戲公司BSPTnbs幣發行量

XRP
金色觀察 | 全鏈互操作性協議LayerZero及空投機會_ZER

作者:HC Capital;翻譯:金色財經xiaozou LayerZero是一個全鏈互操作性協議.

1900/1/1 0:00:00
FASB 提出新的加密貨幣會計準則 這意味著什么?_FAS

摘要 過去一周加密貨幣領域非常忙碌:財務會計準則委員會(FASB)提出了有關加密資產的新標準,而美國證券交易委員會(SEC)則發布了警告,敦促投資者對 “加密資產證券” 保持謹慎.

1900/1/1 0:00:00
金融圈注意了 BloombergGPT來了_BER

ChatGPT引爆的AI熱潮也“燒到了”金融圈,彭博社重磅發布為金融界打造的大型語言模型(LLM)——BloombergGPT.

1900/1/1 0:00:00
減半敘事再起 分析師一致看好比特幣后市_比特幣

擁有超過 28 萬粉絲的加密貨幣分析師 Loma 表示,他相信比特幣最終會突破 28,800 美元左右的阻力位。然而,要注意的是,突破可能需要時間,而 BTC 可能會考驗比特幣多頭的耐心.

1900/1/1 0:00:00
零知識機器學習 (ZKML) :ZK與AI將會碰撞出怎樣的火花?_ISC

原文標題:《AN INTRODUCTION TO ZERO-KNOWLEDGE MACHINE LEARNING (ZKML)》原文來源:Worldcoin原文編譯:深潮 TechFlowZer.

1900/1/1 0:00:00
CFTC起訴幣安:起訴背后的數據_binance

文章作者:Riyad CareyBinance以巨大的優勢成為世界上最大的加密貨幣交易所。自2017年成立以來,它取得了持續的增長,但自2020年以來,其日益增長的主導地位令人矚目,當時它占據了.

1900/1/1 0:00:00
ads