前言
慢霧安全團隊開源--?Web3項目安全實踐要求,提供了詳細的實踐要求和建議來幫助Web3項目研發團隊識別和防范這些潛在的安全風險。Web3項目方可以參考本文提供的安全實踐要求,掌握相應的安全技能,提高Web3項目的安全性,以便更好地保護項目和用戶的資產安全。
Web3項目安全實踐要求包含如下的內容:
0x00背景概述
現今針對Web3項目的攻擊手法層出不窮,且項目之間的交互也越發復雜,在各個項目之間的交互經常會引入新的安全問題,而大部分Web3項目研發團隊普遍缺少的一線的安全攻防經驗,并且在進行Web3項目研發的時候重點關注的是項目整體的商業論證以及業務功能的實現,而沒有更多的精力完成安全體系的建設,因此在缺失安全體系的情況下很難保證Web3項目在整個生命周期的安全性。
通常項目方團隊為了確保Web3項目的安全會聘請優秀的區塊鏈安全團隊對其代碼進行安全審計,在進行安全審計的時候,才能夠更好地實現各種安全實踐要求,但是區塊鏈安全團隊的審計僅僅是短期的引導,并不能讓項目方團隊建立屬于自己的安全體系。
因此慢霧安全團隊開源了Web3項目安全實踐要求來持續性幫助區塊鏈生態中的項目方團隊掌握相應的Web3項目的安全技能,希望項目方團隊能夠基于Web3項目安全實踐要求建立和完善屬于自己的安全體系,在審計之后也能具備一定的安全能力。
0x01開發準備
需求分析文檔要求
1.?確保包含項目的詳盡描述
2.?確保包含項目解決的問題
3.?確保包含安全/隱私風險評估
香港生產力局:已將NFT、Web3.0等納入“未來技能框架”:金色財經報道,據香港生產力局新世代企業及技能發展部總經理馮嘉寶透露,生產力局轄下的生產力學院最新已將包括ESG、NFT、Web3.0等元素包括在“未來技能框架”,并將協助政府部門、公營機構及各大小企業設計培訓計劃。(香港經濟日報)[2023/8/2 16:14:08]
開發設計文檔要求
1.?確保包含項目的架構設計圖
2.?確保包含代碼中函數的功能描述
3.?確保包含代碼中合約之間的關聯關系描述
4.確保安全/隱私的要求被正確實施
業務流程文檔要求
1.?確保包含項目中每個業務流程的描述
2.?確保包含詳盡的業務流程圖
3.?確保包含詳盡的資金鏈路圖
0x02開發過程
智能合約安全編碼要求
1.確保包含盡可能基于OpenZeppelin等知名library進行開發
2.確保包含使用SafeMath或0.8.x的編譯器來避免絕大部分溢出問題
3.確保遵循函數命名規范,參考:soliditystyleguide
(https://docs.soliditylang.org/en/v0.8.14/style-guide.html)
4.確保函數和變量可見性采用顯性聲明
5.確保函數返回值被顯性賦值
6.確保函數功能和參數注釋完備
7.確保外部調用正確檢查返回值,包含:transfer,transferFrom,send,call,delegatecall等
8.確保interface的參數類型返回值等實現是正確的
9.確保設置合約關鍵參數時有進行鑒權并使用事件進行記錄
HyperPay公布后續路線圖規劃并發售Web5數字銀行通證HW5:據官方消息,HyperPay錢包完成了之前的白皮書規劃,并制訂了新的發展路線圖,HyperPay希望建立超級金融支付網絡,融合Web2和Web3的優勢,成為基于Web5的數字銀行。在此節點,HyperPay也向市場推出首個Web5數字銀行通證HW5。
HW5是HyperPay生態系統的支柱,HW5采用PoP(Proof of Participation)挖礦模式,即用戶通過參與HyperPay錢包業務進行挖礦。包括HyperCard消費、充值、用戶理財、借貸、交易等諸多用戶行為。[2022/11/30 21:11:25]
10.確保可升級模型的新的實現合約的數據結構與舊的實現合約的數據結構是兼容的
11.確保代碼中涉及算數運算的邏輯充分考慮到精度問題,避免先除后乘導致可能的精度丟失的問題
12.確保call等lowlevel調用的目標地址和函數是預期內的
13.使用call等lowlevel調用的時候要根據業務需要限制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合約或多簽合約進行管理
Nebula Capital發起規模1億美元的第一期Web3.0基金,重點關注文化內容產業:10月24日消息,Nebula Innovation Limited旗下Nebula Capital發起的第一期1億美元Web3.0基金,該基金將重點關注文化內容產業的web3.0轉型和原生web3.0的IP品牌化建設,以及web3.0賽道的基礎設施建設。
Nebula Capital由Maggie Yip女士聯合宋歌先生和許英龍先生共同發起。該基金將文化和藝術領域的優質資源,與區塊鏈的先進技術有機結合,在Web3.0領域進行積極探索。
該基金預計募資額1億美元,據悉已在家族基金、文娛行業、區塊鏈行業等頭部機構簽署超過3000萬美元的投資承諾書,將于年底前完成募資。[2022/10/24 16:37:06]
19.合約的繼承關系要保持線性繼承,并確保繼承的合約業務上確實需要
20.避免使用鏈上的區塊數據作為隨機數的種子來源
21.確保隨機數的獲取和使用充分考慮回滾攻擊的可能
22.盡量使用Chainlink的VRF來獲取可靠的隨機數,參考:ChainlinkVRF
(https://docs.chain.link/vrf/v2/introduction)
23.避免使用第三方合約的token數量直接計算LPToken價格,參考:如何正確獲取LP的價
(https://blog.alphaventuredao.io/fair-lp-token-pricing/)
24.通過第三方合約獲取價格的時候避免單一的價格來源,建議采用至少3個價格來源
25.盡可能在關鍵的業務流程中使用事件記錄執行的狀態用于對項目運行時的數據分析
26.預留全局與核心業務緊急暫停的開關,便于發生黑天鵝事件的時候及時止損
測試用例代碼要求
1.?確保包含業務流程/函數功能可用性測試
Shima Capital推出首支2億美元基金,以支持早期Web3初創公司:金色財經報道,Shima Capital為其第一只風險投資基金Shima Capital Fund I籌集2億美元,以支持早期的Web3初創公司。 Shima Capital Fund I將專注于種子前和種子階段的投資。Shima Capital創始人Yida Gao表示,Shima團隊有一半以上的人致力于投資后的運營支持服務,如工程師招聘、社區營銷和代幣設計。
新基金的投資者包括風險投資公司Dragonfly、對沖基金億萬富翁Bill Ackman、區塊鏈游戲制造商和投資公司Animoca、加密貨幣錢包OKX、Mirana Ventures、Republic Capital、CoinDesk母公司Digital Currency Group以及企業家和前美國總統候選人Andrew Yang等。(CoinDesk)[2022/8/18 12:32:28]
2.確保包含單元測試覆蓋率95%以上,核心代碼覆蓋率要達到100%
基礎安全配置要求
1.?確保官方郵箱使用知名服務商,如Gmail
2.確保官方郵箱賬號強制開啟MFA功能
3.確保使用知名域名服務商,如GoDaddy
4.確保域名服務商平臺的賬號開啟MFA安全配置
5.確保使用優秀的CDN服務提供商,如Akamai、Cloudflare
6.確保DNS配置開啟了DNSSec,在域名服務管理平臺上為管理賬號設置強口令并開啟MFA認證
7.確保全員的手機和電腦設備使用殺軟件,如卡巴斯基、AVG等
Web前端安全配置要求
1.?確保全站的HTTP通訊采用HTTPS
2.確保配置了HSTS,以防止中間人攻擊,如:DNShijacking,BGPhijacking,參考:HSTS配置介紹
靈境藏品負責人陳昌:數字藏品是web3.0的探索實踐:金色財經現場報道,2022年4?8?,由新一代人工智能產業技術創新戰略聯盟(AITISA)、紅洞數藏、洞壹元典、靈境藏品等發起單位牽頭主辦的《2022中國數字藏品?律公約》發布會在北京昆侖飯店舉?。紙貴科技執行總裁、靈境藏品負責人陳昌以《靈境藏品的實踐與思考》為題進行分享。他指出,靈境藏品是基于國家區塊鏈新型基礎設施“星火鏈網”構建的數字藏品服務平臺,能夠實現數字藏品互聯互通與流轉。靈境藏品在嚴格審核內容的前提下,打造精品店模式,給予IP充分的賦能和包裝工具,構建合規的數字藏品開放生態。
陳昌介紹,靈境藏品目前的品類包括國風藝術、大國重器、數字潮玩、社會責任等四大品類。目前上線一個月的時間,發布兩款藏品共3000份10秒售罄。未來會開通優先購買、轉贈等功能。
陳昌表示,數字藏品遵循了數據資產化的大趨勢,讓資產回歸到創作者手中,促進更大范圍的價值交換。數字藏品作為一種消費載體,承載了足夠分量的價值如使用價值、符號價值等,就是一種成功。數字藏品將是保護人們創造力和想象力的一種有效方式,是web3.0的探索實踐。[2022/4/8 14:12:32]
(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配置介紹
(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,采用SSHKey進行登錄,設置SSH登錄alert,設置SSH登錄google-auth等
4.確保使用專業軟件監控服務、服務器可用性,如APM、Zabbix
5.確保使用專業的機構定期測試項目安全性,如SlowMist、TrailofBits等
0x03發布過程
需要有完備的安全上線發布流程,可以參考如下的內容進行細化:
代碼凍結要求
在預計的上線時間倒推2天,即上線2天前必須凍結代碼不再做任何代碼改動
單元測試要求
1.?確保單元測試覆蓋率95%以上,核心代碼覆蓋率100%
2.確保輸出單元測試的覆蓋率報告
回歸測試要求
在上線1天前執行單元測試并進行回歸測試
測試報告要求
上線前0.5天由開發及測試共同完成測試報告,如果不通過,則推遲上線時間,開發完成修改后重新進入代碼凍結階段
安全審計要求
1.?安全審計人員在代碼凍結后進入整體安全回歸,如發現任一漏洞或安全隱患,則推遲上線時間,開發完成修改后重新進入代碼凍結
2.安全審計需要至少三個團隊進行獨立的審計,可以采用1個內部團隊+?2個外部團隊
0x04運行期間
運行時安全監控
盡可能的通過關鍵業務流程中觸發的事件來發現項目運行時的安全問題,如:
1.合約關鍵權限/參數變更:監控管理角色發生變更的事件,管理角色修改合約關鍵參數的事件,及時發現私鑰可能被盜的情況
2.合約資金變化:監控價格變動及合約資金變動的情況,及時發現可能的閃電貸等攻擊
3.周期性對賬:周期性對鏈上的事件與交易進行對賬,及時發現可能的業務邏輯上的問題
運行環境安全加固
1.確保實施前端代碼所在服務器的安全加固,如:安裝HIDS(https://www.aliyun.com/product/aegis),采用SSHKey?進行登錄,設置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配置開啟了DNSSec,在域名服務管理平臺上為管理賬號設置強口令并開啟2次認證
3.確保項目使用到的云平臺管理賬號使用了強口令并開啟了2次認證
發布漏洞賞金計劃
發布漏洞賞金計劃或入駐知名的漏洞賞金平臺,?吸引社區白帽子為項目保駕護航;可以選擇?BugRap?(https://bugrap.io/),?code4rena?(https://code4rena.com/),?immunefi?(https://immunefi.com/)
成立名義應急小組
成立名義應急小組并對外提供聯系方式,由應急小組負責處理白帽子發現的問題或在黑天鵝事件爆發時主導團隊成員進行應急處置
0x05應急處置
完備的應急處置流程
盡可能地制定完備地應急處置流程,有條不紊地根據應急處置流程來處置黑天鵝事件
止損處置要求
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版本,并且還在持續的完善,如果你有更好的建議,歡迎提交反饋。
Tags:WEBHTTWEB3TPSweb3域名有什么用htt幣騙局Web3Goldhttps://etherscan.io
原文作者:Louround2022年7月,PolygonLabs、zkSync和Scroll開始了爭奪最佳zkEVM的競賽,PolygonzkEVM?主網將于3月27日啟動.
1900/1/1 0:00:00作者:ian@ForesightVentures Overview 通過這篇文章你可以了解:什么是on-chainAI? 為什么還沒有鏈上AI? AI上鏈的動力; 技術路徑; 我理解的on-ch.
1900/1/1 0:00:00Arbitrum代幣空投不到一個星期,ArbitrumDAO社區就經歷了一次失敗的治理事件。因為Arbitrum基金會未經投票處理就轉移大量代幣.
1900/1/1 0:00:00原文:《3月發生較典型安全事件超21起,各類攻擊事件損失總金額約2.18億美元!》 作者:Beosin 本月損失的主要金額來自于3月13日EulerFinance遭受攻擊損失的1.97億美元.
1900/1/1 0:00:003月30日消息,一家名為“ProDigitalFutureFund”的香港基金計劃今年籌集1億美元用于投資數字資產初創公司,現已獲得至少3000萬美元的資金承諾.
1900/1/1 0:00:00ChatGPT帶來的熱度不消,從ChatGPT可以用來做哪些事替代哪些工作,到如何培養“喂養”ChatGPT成為私人助手,到AIGC話題的再次爆火.
1900/1/1 0:00:00