
DeFi 安全指南:AI 時代如何有效防禦黑客攻擊?
TechFlow Selected深潮精選

DeFi 安全指南:AI 時代如何有效防禦黑客攻擊?
黑客攻擊不會停止,隨著 AI 變得更聰明,攻擊只會更多。
撰文:sysls
編譯:AididiaoJP,Foresight News
引言
在瞭解大量 DeFi 協議黑客攻擊事件,讓我對「國家行為體」產生了恐懼。他們技術精湛、資源充足,並且玩的是極度長期的遊戲;這些超級反派專注於梳理你協議和基礎設施的每一個角落尋找漏洞,而普通協議團隊的注意力卻被分散在六七個不同的業務方向上。
我並不自稱是安全專家,但我在高風險環境中領導過團隊(包括軍隊和高額資金的金融領域),在思考和規劃應急預案方面經驗豐富。
我真心相信,只有偏執者才能生存。沒有團隊會一開始就想著「我要對安全採取漫不經心、敷衍了事的態度」;然而黑客攻擊還是發生了。我們需要做得更好。
AI 意味著這次真的不同了
(數據來源:https://defillama.com/hacks)
黑客攻擊並不罕見,但頻率明顯在增加。2026 年第一季度是有記錄以來 DeFi 黑客攻擊數量最多的季度,而第二季度才剛剛開始,卻已經有望打破上一季度的紀錄。
我的核心假設是:AI 大幅降低了尋找漏洞的成本,並極大擴展了攻擊面。人類需要好幾周時間才能梳理一百個協議的配置尋找錯誤配置;而最新的基礎模型只需幾個小時就能完成。
這應該徹底改變我們思考和應對黑客攻擊的方式。那些習慣於 AI 變得強大之前安全措施的老協議,正越來越面臨被「秒殺」的風險。
用表面與層級思考
(數據來源:https://defillama.com/hacks)
黑客攻擊的表面面積實際上可以歸結為三個:協議團隊、智能合約與基礎設施、用戶信任邊界(DSN、社交媒體等)。
一旦確定了這些表面,就疊加防禦層:
- 預防:如果嚴格執行,就能最大限度降低被利用概率的流程。
- 緩解:預防失敗時,限制損害程度。
- 暫停:沒有人能在巨大壓力下做出最佳決策。一旦確認攻擊,就立即啟動總殺開關。凍結能阻止進一步損失,並爭取思考空間……
- 奪回:如果你失去了對有毒或被攻破組件的控制,就拋棄並替換它們。
- 恢復:奪回你失去的東西。提前規劃好聯繫能夠凍結資金、撤銷交易並協助調查的機構合作伙伴。
原則
這些原則指導我們實施各層防禦的具體行動。
大量使用前沿 AI
大量使用前沿模型 AI 來掃描你的代碼庫和配置,尋找漏洞,並在大範圍表面上進行紅隊測試:嘗試在前端尋找漏洞,看它們是否能觸達後端。攻擊者會這麼做。你能通過防禦性掃描發現的,他們的進攻性掃描早就發現了。
使用 pashov、nemesis 等技能,以及 Cantina (Apex) 和 Zellic (V12) 等 AI 平臺,在提交完整審計前快速掃描代碼庫。
時間與摩擦是好的防禦
對任何可能造成損害的操作增加多步流程和時間鎖。你需要足夠的時間在發現異常時介入並凍結。
過去反對時間鎖和多步設置的理由是會給協議團隊帶來摩擦。現在你不用太擔心這一點:AI 可以輕鬆在後臺點擊通過這些摩擦。
不變量
智能合約可以通過寫下不可變的「事實」來進行防禦性構建:如果這些事實被打破,整個協議邏輯就會崩潰。
你通常只有少數幾個不變量。要謹慎地將它們提升到代碼層面;在每個函數中強制執行多個不變量會變得難以管理。
權力平衡
許多黑客攻擊源於被攻破的錢包。你需要這樣的配置:即使多籤被攻破,也能迅速遏制損害,並將協議帶回治理可以決策的狀態。
這需要在 治理(決定一切)和 救援(恢復可治理穩定性的能力,但不能替換或推翻治理本身)之間取得平衡。
總會出問題
從一開始就假設:無論你有多聰明,你都會被黑。你的智能合約或依賴項可能會失效。你可能會遭受社會工程攻擊,新升級可能會引入你沒有預料到的漏洞。
一旦你這樣思考,限制損害的速率限制和鎖定協議的斷路器就會成為你最好的朋友。將損害限制在 5-10%,然後凍結,再規劃你的應對方案。沒有人能在槍林彈雨中做出最佳決策。
最好的規劃時間就是現在
在被黑之前就思考你的應對方案。儘可能將流程編碼化,並與團隊一起演練,這樣你就不會在衝擊發生時手忙腳亂。在 AI 時代,這意味著擁有能夠儘可能快地呈現大量信息的技能和算法,並以摘要和長形式分享給你的核心圈子。
你不需要完美,但你必須生存。沒有系統從第一天起就是堅不可摧的;通過多次迭代,你會通過吸取教訓變得反脆弱。
沒有被黑的證據,並不等於你不會被黑。最大舒適點往往就是最大危險點。
預防措施
智能合約設計
一旦確定了不變量,就將它們提升為運行時檢查。仔細思考哪些不變量實際上值得強制執行。
這就是 FREI-PI(Function Requirements, Effects, Interactions, Protocol Invariants)模式:在每個觸及價值的函數結束時,重新驗證該函數承諾要維護的王冠不變量。許多通過 CEI(Checks-Effects-Interactions)的抽乾攻擊(閃電貸三明治、預言機輔助清算 grief、跨函數償付能力抽乾)都能被函數結束時的不變量檢查捕獲。
良好的測試
狀態化模糊測試(Stateful fuzzing)會針對協議的完整公開表面生成隨機調用序列,並在每一步斷言不變量。大多數生產環境中的漏洞都是多筆交易的,狀態化模糊測試幾乎是唯一可靠的在攻擊者之前發現這些路徑的方法。
使用不變量測試來斷言屬性在模糊器能生成的所有調用序列中都成立。輔以形式驗證,它能證明屬性在所有可達狀態下都成立。你的王冠不變量絕對應該接受這種處理。
預言機和依賴項
複雜性是安全的敵人。每一個外部依賴都會擴展攻擊面。如果你在設計原語,就把信任誰和信任什麼的選擇權交給用戶。如果無法移除依賴,就對其進行多元化,讓沒有任何單一故障點能摧毀你的協議。
將審計範圍擴展到模擬預言機和依賴項可能失敗的方式,並對如果它們失敗可能造成的災難程度施加速率限制。
最近的 KelpDAO 漏洞就是一個例子:他們繼承了 LayerZero 默認的 requiredDVNCount=1 配置,而這個配置在他們的審計範圍之外。最終被攻破的是審計範圍之外的鏈下基礎設施。
表面攻擊
DeFi 中的大多數表面攻擊已經被列舉出來。逐一檢查每個類別,問它是否適用於你的協議,然後實施針對該攻擊向量的控制。培養紅隊技能,讓你的 AI 智能體主動在你的協議中尋找漏洞;這在當下已經是基本要求。
擁有原生救援能力
在基於投票的治理中,權力最初集中在團隊的多籤中,需要時間才能擴散。即使代幣分佈廣泛,委託也往往會將權威集中到少數錢包(有時甚至是 n=1)。當這些錢包被攻破時,遊戲就結束了。
部署「守護者錢包」,賦予其嚴格狹窄的授權:它們只能暫停協議,並且在 >=4/7 閾值下,可以在極端情況下將受損委託輪換到預定義的替換錢包。守護者永遠不能執行治理提案。
這樣,你就擁有了一個始終能恢復可治理穩定性的救援層,而不會擁有推翻治理的權力。失去 >=4/7 守護者的最壞情況概率極低(考慮到持有者多樣性),並且一旦治理成熟且分散,這一層可以逐步淘汰。
錢包與密鑰拓撲
多籤錢包是基本要求,最低 4/7。沒有單個人控制所有 7 把密鑰。頻繁輪換籤名者,並且要悄無聲息地進行。
密鑰永遠不應與日常使用的設備交互。如果你用簽名設備瀏覽互聯網、收發郵件或打開 Slack,就當這個簽名者已經被攻破了。
擁有多個多籤,每個有不同的用途。假設至少有一個完整多籤會被攻破,並從那裡開始規劃。沒有任何單個人應該擁有足夠控制權來攻破協議,即使在極端情景下(綁架、酷刑等)也是如此。
考慮賞金
如果你有資源,相對於協議 TVL 設置一個高額漏洞賞金是非常值得的;即使你是相對較小的協議,漏洞賞金也應該儘可能慷慨(例如最低 7-8 位數)。
如果你面對的是國家行為體的攻擊,他們可能不會談判,但你仍然可以參與「白帽安全港」計劃,授權白帽代表你行動以保護資金,並收取漏洞金額的一定百分比作為費用(實際上是由存款人支付的賞金)。
找到好的審計師
我之前寫過,隨著大語言模型變得更聰明,聘請審計師的邊際價值會下降。我仍然堅持這一觀點,但我的看法有所轉變。
首先,好的審計師會走在曲線前面。如果你正在做一些新穎的東西,你的代碼及其漏洞可能不在訓練數據中,單純增加 Token 數量尚未被證明能有效發現新型漏洞。你不希望成為獨特漏洞的第一個樣本點。
其次,一個被低估的好處是:聘請審計師是在用他們的聲譽做擔保。如果他們簽字批准而你被攻擊,他們會受到強烈激勵來幫忙。與那些職業就是做安全的人建立關係,是巨大的優勢。
踐行操作安全
將操作安全視為成功指標。進行釣魚演練;聘請(可信的)紅隊嘗試對團隊進行社會工程攻擊。準備備用硬件錢包和設備,以便在需要時替換整個多籤。你不希望在 D-day 時匆忙去購買這些東西。
緩解措施
你的退出路徑就是損失上限
任何將價值移出協議的路徑的封頂大小,就是該路徑被漏洞濫用時的最大理論損失。簡單來說:沒有每區塊上限的鑄幣函數,就是給任何無限鑄幣漏洞開了一張空白支票。沒有周上限的贖回函數,就是給任何資產餘額損壞開了一張空白支票。
謹慎思考你的退出路徑的明確數值。這個數字需要在你願意承受的最大損害與用戶最極端 UX 需求之間取得平衡。如果出了問題,這就是能讓你免於徹底毀滅的東西。
白名單(和黑名單)
大多數協議都有可以被調用、交易或接收的列表,以及用戶絕對不能做的列表。即使是隱式的,這些也是信任邊界,應該被正式化。
將其正式化讓你可以設置兩階段 setter,製造有意義的摩擦。攻擊者首先需要添加到白名單(和 / 或從黑名單移除),然後才能行動。同時擁有兩者意味著攻擊者偷偷引入新向量時,必須同時攻破兩個流程:市場必須被允許(集成 / 上市),並且該行動不能被禁止(安全審查)。
奪回
算法監控
如果沒有人監控,殺開關就毫無用處。鏈下監控器應該持續監控不變量,一旦出現問題就算法化地升級警報。最終路徑應該到達守護者多籤的人類手中,並提供足夠上下文,讓他們在幾分鐘內做出決策。
停下來重新校準
如果你中槍了,你要先止血,而不是在倒計時中做決策。對於協議來說,這就是殺開關(也要在 UI 上體現):一個按鈕就能在一筆交易中暫停所有價值移動路徑。準備一個「暫停一切」的輔助腳本,枚舉所有可暫停組件並原子化地暫停它們。
只有治理才能解除暫停,因此殺開關不能暫停治理合約本身。如果守護者層可以暫停治理合約,被攻破的守護者層就能永久死鎖恢復流程。
啟動你的戰情室
凍結、止血,然後把你信任的所有人(小圈子,提前約定)拉到一個溝通頻道。你希望表面小一些,以防止信息洩露給攻擊者、公眾或惡意套利者。
為團隊需要的角色進行角色扮演:一個做決策的;一個熟練執行防禦腳本和暫停操作的操作員;一個重構漏洞並識別根本原因的人;一個與關鍵方溝通的人;一個記錄觀察、事件和決策時間線的人。
當每個人都知道自己的角色並進行過演練時,你就能按流程反應,而不是在最壞的時刻手忙腳亂。
考慮連鎖反應
假設你的攻擊者非常老練。第一個漏洞可能是誘餌,或是為後續攻擊埋下的種子。攻擊可能是在誘使你做完全錯誤的事情,從而觸發真正的漏洞。
暫停必須經過充分研究、完全可控,且本身不可被利用。暫停應該是全協議凍結:你不希望被誘導暫停某個組件,反而打開了另一個。一旦你找到根本原因和攻擊向量,就要探索相鄰暴露的表面和連鎖反應,並一次性全部修復。
輪換預先承諾的繼任者
只有提前知道繼任者,輪換才是安全的。我喜歡預先承諾的繼任者註冊表這個想法:它讓攻擊者更難將健康的守護者 / 治理錢包替換為被攻破的。這與緩解措施中的「白名單 / 黑名單」理念一致。
為每個重要角色註冊一個繼任者地址。緊急層唯一能執行的輪換原語是「將角色 X 替換為其繼任者」。這也讓你可以在和平時期評估繼任者:慢慢來,做盡職調查,飛過去和提出請求的人見面。
在升級前謹慎測試
一旦你確定了根本原因和影響範圍,你就需要發佈升級。這可能是你將要部署的最危險的代碼:在壓力下編寫,針對已經證明自己足夠了解你的協議並找到漏洞的攻擊者。
在沒有充分測試的情況下延遲發佈。如果沒有時間進行審計,就依靠白帽關係,或者在部署前設置一個 48 小時競賽,獲得一次新鮮的對抗性審查。
恢復
快速行動
被盜資金有半衰期;一旦漏洞落地,它們會迅速進入洗錢管道。提前準備好 Chainalysis 等鏈上分析提供商,以便實時標記攻擊者的地址集群,並在它們跨鏈跳躍時通知交易所進行標記並追蹤。
提前準備一份集中交易所合規部門、跨鏈橋管理員、託管人管理員以及其他擁有管理權限可以凍結跨鏈消息或特定在途存款的第三方名單。
談判
是的,這很刺痛,但你仍然應該嘗試與攻擊者對話。生活中的很多事情都可以通過談判解決。提供有時限的白帽賞金,並公開聲明如果在截止日期前全額歸還資金,將不採取法律行動。
如果你面對的是國家行為體,你可能運氣不佳,但你可能面對的是不太老練的攻擊者,他們只是找到了利用你的方法,並且想以較低成本脫身。
在這樣做之前,一定要有法律顧問在場。
結論
黑客攻擊不會停止,隨著 AI 變得更聰明,攻擊只會更多。僅僅讓防禦者「變得更敏銳」是不夠的。我們需要使用攻擊者使用的相同工具,對我們的協議進行紅隊測試,持續監控,並對損害設置硬性限制,以便我們能在最壞的情況下生存下來。
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News













