安全是一個動態的狀態,而非一紙證明。今年被盜的項目方,有不少都是審計過的,其中一些還審計過多次。這並不說明審計沒有價值,只說明審計能回答的問題,比大多數人以為的要窄得多。
一份審計報告描述的是某一天、某個團隊看過的某個版本。而合約會升級,權限會變更,項目依賴的預言機和跨鏈橋會變,新的攻擊手法每週都在出現。報告交付的那一刻,它就開始過期了。更麻煩的是那些幾年前部署、當年順利通過審計的舊合約,正在被重新批量掃描,一個上線多年的合約,深層漏洞可能在十幾分鐘內就被找出來。
這是 Gate 特別策劃《大門安全課》的第三期。我們邀請 Web3 安全服務商 GoPlus Security 與 Gate 安全團隊,從安全服務商和交易平台兩個視角,聊一聊審計和漏洞排查這件事:為什麼審計過的項目還會出事,一份報告該怎麼讀,平台在上幣前後分別做哪些檢查,以及普通用戶可以怎樣在簽名之前做一輪自查。
嘉賓簡介
GoPlus 合夥人 Adam:Adam 是 GoPlus 合夥人、安全研究院負責人。
GoPlus Security 正在構建 Web3 和 AI 的首個去中心化安全層,通過利用區塊鏈和前沿的人工智能安全解決方案,為用戶提供智能、高效和去中心化的安全產品與服務。自 2022 年以來,GoPlus 實現了指數級增長,日 API 調用量達到 3000 萬次,為用戶防止了近千億美元的潛在損失。
Gate 安全團隊:Gate 安全部門負責平台賬戶、交易與資產安全體系的建設,同時也長期處理用戶的異常賬戶申訴與協查請求。
Gate 成立於 2013 年,是行業內首家推出 100% 儲備金證明的交易平台,目前服務全球超過 6000 萬用戶。安全是這門生意能夠成立的前提,我們希望通過《大門安全課》,把這些真實風險背後的共同機制講清楚。
Q1. 為什麼很多項目通過了審計之後仍然被盜、仍然出現權限濫用?
GoPlus 合夥人 Adam:「一次審計」不等於「一直安全」,傳統合約審計服務如今存在四個結構性失效:
1)快照式檢查。審計本質上是審計工程師在某個時間點的半人工檢查,效果依賴工具質量、個人水平、工作狀態。但合約代碼會升級、管理權限會變更、參數配置會調整,一次性審計報告交付的那一刻起,它就在「過期」。
2)無法預判未來。新漏洞類型、新攻擊手法層出不窮,歷史審計覆蓋不了未來風險。
3)外部依賴失控。項目普遍依賴預言機、跨鏈橋、第三方協議,這些依賴項的風險變化不在傳統審計範圍內。
4)舊合約集中暴雷。數年前部署、當年「審計過」的合約,正被自動化工具批量重新挖出漏洞,例如 Balancer、Yearn 這類正式上線數年都沒被發現的深層漏洞。
至於權限濫用,它更多發生在運營階段而非合約代碼本身,原因包括:Owner 權限過大(可隨意增發、拉黑名單、暫停交易)、管理員私鑰洩露、多簽管理不當、惡意提案和治理攻擊……這些都是運營階段容易出現的安全問題。審計報告裡即使標註了權限風險,之後誰來盯?操作是否安全、合理都無法解答。
合約審計後上線只是安全工作的起點,而非終點。項目需要的是覆蓋合約全生命週期的持續安全,而不是一份一次性的審計報告。
Gate 安全團隊:審計能告訴用戶代碼能做什麼,但告訴不了用戶項目方打算做什麼。
這是我們做上幣審核這些年體會最深的一點。很多事故的根源在項目方的意圖上。一個合約可以在技術上完全合規,所有者權限的設計也在正常範圍內,但項目方照樣可以挑一個時間點把這些權限用起來:改交易規則、開黑名單、增發代幣。這些動作在代碼層面全是合法的,審計報告也不會標成漏洞,因為它們本來就是設計的一部分。
所以技術審計之外還得有一層約束。Gate 的做法是在上幣環節做嚴格的項目篩選和審核,同時和項目方簽署不作惡聲明,再對履約情況做監督。這一層要解決的就是審計解決不了的那部分:代碼沒有漏洞,不代表這個團隊不會做出損害用戶的選擇。
已上架的項目我們會做定期安全審計,同時用鏈上事件監控跟蹤合約狀態,用戶也可以隨時查某個合約當前的風險項。
Q2. 既然一次審計不等於一直安全,項目方和整個行業應該怎麼調整?
Gate 安全團隊:加密行業有一個結構特徵:很大一部分業務,尤其是 DeFi,運作模式接近模塊化金融。各類平台由共享組件搭建而成,合約、軟件庫、錢包、價格預言機、跨鏈橋、連接服務商、網頁界面,以及用於推送更新的系統。
所以除了自己的合約安不安全,更要問的是依賴的每一個環節是否依然可靠。上游某一個組件出現故障,損失會沿著鏈條向下傳導。回頭看那些重大攻擊,問題往往出在比協議邏輯更早的環節:供應商、開發工具、軟件觸達用戶的方式,或者用戶批准轉賬的流程。
GoPlus 合夥人 Adam:黑客利用自動化工具高效挖掘漏洞的攻擊範式已然成型並快速蔓延,攻擊從「專家手工研究」變成了「流水線」。如果行業的思維還停留在「上線前找審計公司出一份報告」,或者發現了風險再找安全公司「亡羊補牢」,就像用弓箭對抗機關槍。用同樣高效的工具去對抗攻擊,才是唯一有效的路徑。
行業層面的調整方向,是從「一次性審計」或「出問題後找專家」升級為「全生命週期持續安全」。以 GoPlus DeepScan 的「合約安全三件套」為例,這是一個可落地的閉環:
上線前,Token 安全自查:幾分鐘快速自檢貔貅盤/蜜罐、惡意增發(Mint)、黑名單、異常交易稅、Owner 權限等後門風險;
上線時,AI 合約審計:深度分析源碼、權限管理與業務邏輯,掃描語法層和業務邏輯層漏洞,交付結構化審計報告;
上線後,持續安全監控與定期體檢:實時跟蹤新增漏洞情報、攻擊事件與外部依賴(預言機、跨鏈橋、第三方協議)風險,持續判斷項目是否受影響,常態化預警。定期對合約進行安全體檢,持續審計。
Q3. 這兩年漏洞挖掘的方式發生了哪些變化?同樣一筆資產,放在鏈上和放在交易所,安全模型有什麼不同?
GoPlus 合夥人 Adam:坦率地說,短期看目前攻擊方挖漏洞的方式更多樣化了。原因有三:
1)自動化工具大幅降低了挖洞門檻,過去需要頂級安全研究員數週的工作,現在攻擊流水線幾分鐘就能跑完;
2)鏈上沉澱了海量「當年審計過」的舊合約,對攻擊者來說是一個儲量巨大的「金礦」;
3)攻擊是單向變現,找到「一個」漏洞就夠了,防禦者卻要守住「所有」漏洞。
黑客挖走這些錢用了幾分鐘,防禦方找出同樣的漏洞其實也只用了幾分鐘。區別只在於,項目方有沒有在黑客之前把工具正確地用上。
更關鍵的是,防禦方擁有攻擊方沒有的三個結構性優勢:
1)先手優勢:防禦者可以在上線前、運營中無限次複查,攻擊者只能賭防禦者沒做過複查;
2)成本優勢:AI 審計按次或包年收費,成本低到可以常態化、全量化;
3)知識複利:安全知識庫隨每一起新攻擊事件持續進化,防禦系統越用越強。
在鏈上、鏈下兩種模式中,「誰在保護你的資產」和「你面對的風險類型」完全不同。
鏈上自託管:安全 = 私鑰安全 + 合約安全。 你是唯一安全責任人——私鑰丟失/被盜沒有」客服」可申訴;每次互動都承擔鏈上風險(授權漏洞、釣魚簽名、貔貅盤);優勢是資產不依賴任何平台信用。
交易所託管:安全 = 平台安全 + 帳戶安全。 私鑰由平台管理(冷熱錢包分離、多簽、風控),相當於你把「技術安全」外包給了交易所;但也需妥善保護好自己的交易所帳號安全(密碼、2FA、釣魚、API Key 等),同時一定要注意選擇平台信用有保障的交易所。
總的來說,鏈上是「私鑰保護 + 自我操作風險」,交易所是「平台信用 + 安全基建風險」,前者考驗你的 Web3 安全意識,後者考驗交易所平台基建和你的帳戶安全習慣。
Q4. 作為交易平台,Gate 在安全性上有哪些提升?
Gate 安全團隊:首先我們會對已上架項目做定期安全審計,同時通過鏈上事件監控持續跟蹤合約狀態。合約有沒有升級、權限有沒有變更、是否出現異常的大額操作,這些都是需要持續看的,因為一份上幣時的檢查結論,和 Adam 講的審計報告一樣,也有保質期。用戶也可以隨時查詢某個合約當前的風險項。
再說平台自己這一塊。Gate 的安全漏洞賞金計劃一直開著,全球的安全研究人員發現問題都可以提交給我們,渠道有三個:[email protected]、工單,以及 HackenProof 平台。我們要求項目方接受檢查,自己這邊也得接受檢查,這件事不應該只有單向的要求。
說完幣和平台,再說帳戶。
我們的建議是別去找那個「最安全的地方」,按使用頻率把錢分開放更實際:要經常交易的留在現貨帳戶裡,隨用隨取;半年一年都不會動的,放進 Gate 保險箱。
保險箱用的是 MPC 加 2-of-3 簽名。私鑰被拆成三片,用戶設備、Gate 和一家獨立第三方各拿一片,完整的私鑰在任何環節都不會被拼出來,Gate 和那個第三方誰都沒辦法單獨發起一筆交易。所有轉出還要再等 48 小時才到帳,這 48 小時是留給用戶的安全緩衝期,期間隨時可以把這筆轉出凍掉。大部分被盜案例裡,用戶察覺到不對勁都比攻擊者晚一步,而鏈上轉帳一旦出去就撤不回來,但在 Gate 保險箱的這 48 個小時裡,用戶隨時可以把它凍掉。退一步說,就算真出了意外,48 小時的延遲也給你留出了發現和凍結的時間。
再說第二個,Gate 的帳戶安全保障計劃。
Gate 帳戶安全保障計劃基於安全分。帳戶的安全設置原本散在各個頁面裡,登入驗證、身份驗證器、雙重驗證、通行密鑰、交易限額、提現限額,用戶很難說清自己到底做到了哪一步。安全分把這些項折成一個 0 到 100 的分數,開了哪些、還差哪些,打開就能看到;分數有變化的時候,系統也會提醒用戶去補。
安全分到 80 分、帳戶狀態正常,就能開通保障計劃。開通之後意味著用戶自己把防護做到位之後,又多了一層兜底:保障生效期間,帳戶裡的資產如果被人未經授權轉走,符合規則的話可以申請補償,單次事件額度目前最高是 20 萬美元。這個額度接下來會有所增加,根據 VIP 等級分檔最高為 100 萬美元。申請要在事件發生後 45 天內,通過「我的保障」聯繫安全客服提交,材料包括警方報案記錄、資產轉出記錄這些。
Q5. 一份完整的審計報告應該包含哪些內容?安全評分、關鍵發現、修復建議分別該怎麼用?
GoPlus 合夥人 Adam:一份能指導行動(而不是只能存檔)的審計報告,至少應該包含四個要素:
1)安全評分(可量化等級),用來做「快速篩選」,不是用來做「最終結論」。項目方可以把評分作為內部安全評估的量化錨點,每次迭代後對比變化;交易所適合用於上幣初篩,把明顯不達標的項目擋在第一道門外;普通用戶則把評分當作「入口」,低分直接避雷,高分再看關鍵 findings。
2)關鍵發現(高風險問題與核心結論),用來做「決策」。這是報告的「執行摘要」:哪些問題是 blocking 級別、必須先修才能上線。對非技術背景的管理者和上幣評審團隊來說,讀懂關鍵 findings 就夠了。
3)問題詳情(漏洞證據與影響說明),用來「定位問題」。這是給技術團隊的部分,包括漏洞位置(精確到合約、函數、代碼行)、漏洞類型、嚴重性等級、攻擊路徑描述與根因分析。好的問題詳情要給出可復現的執行路徑與觸發條件,而不只是一份問題清單。
4)修復建議(可執行整改方案),用來「閉環」。修復建議必須具體到代碼層面、可執行,並且修復後要重新掃描回歸驗證,形成「評分、關鍵發現、問題詳情、修復、復掃」的完整閉環。
Gate 安全團隊:我們從做合約審計功能的實踐補充三點。
第一,最容易被省略的,恰恰是最前面的兩項:審計目標與限制,還有範圍說明。我們給報告定了八個維度,審計目標與限制、範圍說明、嚴重性矩陣、優先級判斷、漏洞詳情、風險路徑、威脅模型、關鍵函數分析和修復建議,而決定讀者會不會把整份報告讀歪的,就是前兩項。限制沒寫清楚,讀者會默認它什麼都覆蓋了;範圍沒寫清楚,讀者分不出它審的只是主合約,還是連資金池、策略合約、預言機和外部依賴都一起審了。很多宣傳只寫一句「已通過審計」,不說審了什麼,這種說法基本沒有信息量。
第二,看關鍵發現時,要把那些單獨拎出來都不算漏洞的風險放在一起看。舉一個報告裡常見的組合:合約所有者可以把地址拉進黑名單凍結資產,交易對可以被重置、導致普通用戶轉不了帳,最低持倉要求會讓用戶沒法完整賣出,單一所有者還能隨時改動多項關鍵規則。這四條分開看都屬於正常設計,合起來就意味著這個合約的控制權高度集中在一個人手裡。
第三,要知道報告是怎麼生成的,因為這決定了它的可靠性邊界。我們的合約審計分三步走:先做靜態分析,查權限控制、重入、價格操縱、閃電貸和邏輯一致性這些基礎風險;再做業務場景建模,把合約的核心互動場景提取出來,驗證業務路徑和邊界條件,找出規則掃描覆蓋不到的問題;最後是語義化驗證,對關鍵業務路徑逐項核查,確認前兩步識別出來的風險是不是真的成立。第三步主要是為了壓低誤報率。一份滿是誤報的報告,用戶很快會失去耐心,最後乾脆跳過整個檢查環節,所以誤報率直接決定了這個工具會不會真的被用起來。
Q6. 對普通用戶來說,現在就能做的加固動作有哪些?
GoPlus 合夥人 Adam:
1)交易前核查 Token 安全。買新幣前核查 Token 自身的安全性,注意識別貔貅盤/蜜罐、惡意增發、黑名單、異常交易稅、Owner 權限過大等後門風險。
2)定期清理合約授權。撤銷不再使用的 DApp 的 Approve,尤其是無限額授權,很多被盜源於「你曾經授權過的合約」出問題。
3)帳戶層加固。使用強密碼並開啟 2FA;API Key 最小權限管理,絕不給不可信工具開放提幣權限。
4)防釣魚成為肌肉記憶。核對域名再簽名、不點私信連結、對「空投/客服/質押高收益」默認不相信;釣魚內容越來越以假亂真,需時刻注意保持理性。
5)資產按用途分層存放。熱錢包只放少量需使用資金,大額資產推薦使用硬體錢包,雞蛋不放在一個籃子裡。
6)關注項目的「安全態度」而非「審計報告」。有沒有持續審計、安全監控機制,比多年前的審計報告更重要,優先選擇重視安全、願意公開自己安全建設機制的項目。
Gate 安全團隊:Adam 這六條已經很完整,我們結合 Gate 的工具,把其中幾條變成可以馬上動手的操作。
1)交易前核查 Token,這裡可以直接用 Gate AI 的合約審計功能。提交合約地址,幾分鐘拿到報告,重點看四項:所有者權限、黑名單與交易限制、鑄造權限、轉帳稅。這四項裡只要有一項標紅,就該停下來了,別的不用再看。
2)帳戶加固,先把安全分做到 80 分以上。資金密碼、身份驗證器、雙重驗證、防釣魚碼、通行密鑰、提現日限額、出金方式管理,這些防護項都在清單裡,按提示一項項點完就行。安全分最大的用處是把散在各處的設置變成一份排好順序的清單,不用自己判斷先做哪一項。做到 80 分以上還可以開通帳戶安全保障計劃,等於在自己加固到位之後,再多一層兜底。
3)防釣魚有兩個現成的工具。收到自稱來自 Gate 的消息,先去官方驗證渠道查一下這個域名或者郵箱是不是我們的;Gate 發出的所有郵件都會帶上你自己設的那串防釣魚碼,沒有這串碼的一律是假的。
4)簽名之前看清楚授權額度。合約本身沒問題,不代表頁面讓你簽的那筆東西沒問題。正常的 DApp 完全可以只申請這一筆交易需要的額度,上來就要無限額度,這件事本身就值得停一下。如果彈窗裡只有一串看不懂的字符,拒絕總比先簽了再說安全。
最後,我們想說安全是動態的,而不是靜態的。
審計之後上線只是安全工作的起點。對項目方來說,這意味著上線之後的持續監控比那份報告本身更重要;對交易平台來說,意味著上架只是審核的開始;而對普通用戶來說,簽名之前那幾分鐘的自查,是成本最低、也最容易被跳過的一步。
安全從來沒有一勞永逸的認證。各方都多走一步,攻防兩端的天平就會傾斜向我們這些「守門員」。
讓我們一起第四期《大門安全課》見!





