BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

大門安全課 03|Gate & GoPlus:如何讀懂審計報告,排查合約漏洞

大门安全课
特邀专栏作者
本文約6534字,閱讀全文需要約10分鐘
Gate 特別策劃《大門安全課》欄目,針對不同類型的加密安全問題進行專期解答。我們從發生在用戶身邊最真實的案例出發,聯合安全領域的專業機構,由平台方與安全方兩個視角進行雙重分享,由淺入深地梳理安全規則,在科普用戶安全教育的同時,幫助用戶從自身開始建立起真正有效的防線。
AI總結
展開
  • 核心觀點:安全是動態持續的過程而非一次性審計認證,審計報告僅反映特定時間點的合約狀態,無法覆蓋後續升級、權限變更及外部依賴風險,行業需轉向全生命週期持續安全。
  • 關鍵要素:
    1. 傳統審計存在四大結構性失效:快照式檢查、無法預判新攻擊手法、外部依賴失控、舊合約集中暴雷,Balancer、Yearn等上線數年合約仍被批量挖出深層漏洞。
    2. 權限濫用多發生於運營階段,Owner權限過大、私鑰洩露、多簽管理不當等代碼層面合法的操作,審計報告無法約束項目方意圖。
    3. 自動化工具使攻擊從專家手工研究變為流水線,挖洞門檻大幅降低,防禦方需用同等高效工具對抗,並具備先手、成本、知識複利三大優勢。
    4. 鏈上自託管安全等於私鑰安全加合約安全,用戶為唯一責任人;交易所託管安全等於平台安全加賬戶安全,技術安全外包但需保障賬戶習慣。
    5. Gate實施上幣審核、不作惡聲明、定期審計與鏈上監控,保險箱採用MPC加2-of-3簽名及48小時轉賬延遲緩衝。
    6. 完整審計報告應含安全評分、關鍵發現、問題詳情、修復建議四要素,並明確審計目標與範圍限制,避免讀者誤判覆蓋邊界。
    7. 普通用戶可執行交易前Token核查、定期清理授權、賬戶2FA加固、防釣魚、資產分層存放、關注項目安全態度六項加固動作。

安全是一種動態的狀態,而非一紙證明。今年被盜的專案方,有不少都是審計過的,其中一些還審計過多次。這並不說明審計沒有價值,只說明審計能回答的問題,比大多數人以為的要窄得多。

一份審計報告描述的是某一天、某個團隊看過的某個版本。而合約會升級,權限會變更,專案依賴的預言機和跨鏈橋會變,新的攻擊手法每週都在出現。報告交付的那一刻,它就開始過期了。更麻煩的是那些幾年前部署、當年順利通過審計的舊合約,正在被重新批次掃描,一個上線多年的合約,深層漏洞可能在十幾分鐘內就被找出來。

這是 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 的安全漏洞賞金計畫一直開著,全球的安全研究人員發現問題都可以提交給我們,管道有三個:sec@gate.com、工單,以及 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

安全
Gate.io
歡迎加入Odaily官方社群