跳到正文
IFAI

AI工具

Google DeepMind 推出 CodeMender:用 AI 自動定位並修復程式碼漏洞

首次發布 傳播指數 52

Google DeepMind 公佈程式碼安全智慧體 CodeMender 的早期成果。它基於 Gemini Deep Think 模型,能定位漏洞根因、重寫程式碼並自動驗證。過去 6 個月內,它已向開源專案提交了 72 個安全補丁,目前生成的補丁仍由人工稽核後提交。

Google DeepMind 推出 CodeMender:用 AI 自動定位並修復程式碼漏洞
圖:blog.google

以前駭客和安全專家比的是誰眼力好,後來變成了比誰手裡的自動化工具跑得快。在 Google 搬出 Big Sleep 和 OSS-Fuzz 這類 AI 挖洞工具後,找到零日漏洞的速度連人類維護者自己都快接不住了。

既然找漏洞的矛換成了 AI,修漏洞的盾也只能交給 AI。Google DeepMind 近日公佈了他們正在研發的安全智慧體 CodeMender,專門用來自動化修復關鍵軟體漏洞。

在過去半年的測試裡,CodeMender 已經給各類開源專案提交併合入了 72 個安全補丁,其中有些專案本身的規模就超過 450 萬行程式碼。

先當偵探查根因,再拉個「AI 評審員」反覆挑刺

修過 Bug 的人都知道,很多時候報錯位置和真正出錯的程式碼根本不在一個地方。比如崩潰報告寫的是堆緩衝區溢位,根源卻可能是 XML 解析時棧管理出了紕漏。

CodeMender 底層呼叫了 Gemini Deep Think 模型的推理能力,不僅能翻看崩潰日誌,還會自己呼叫偵錯程式、靜態分析和模糊測試工具去順藤摸瓜,定位程式碼深處的邏輯漏洞。

更關鍵的是它不會亂改一氣。Google 給它配了一套多智慧體評審機制,專門由一個 Critique 審查智慧體負責對比修改前後的差異,反覆確認新程式碼有沒有破壞原有功能、有沒有引入新的編譯錯誤。

一旦測試掛了或者編譯報錯,CodeMender 還會根據審查反饋自己調整程式碼,直到完全符合要求,再交由人類研究員複核後提交合並。

不只被動打補丁,還能順手把老程式碼重寫了

除了出了漏洞趕緊堵上,CodeMender 還幹了一件更激進的事:主動重寫陳舊程式碼,直接從根源上消滅整類漏洞。

比如在著名的影像壓縮庫 libwebp 裡,幾年前曾爆出過一個嚴重的堆緩衝區溢位漏洞 CVE-2023-4863,當時甚至被駭客用來做 iOS 的零點選利用攻擊。

CodeMender 會主動掃描這類老專案,自動給程式碼加上 bounds-safety 安全邊界註解。這樣編譯器在打包時就會強制加入邊界檢查,直接讓整類緩衝區溢位攻擊徹底失效。

目前 Google 還是採取了比較剋制的做法,所有生成的補丁在提交給開源社群前,都會經過內部人類專家嚴格把關。Google 表示接下來會逐步擴大合作範圍,未來計劃把它開放給所有開發者使用。

為什麼重要

維護開源專案是件苦差事。很多支撐全球數字基礎設施的核心基礎庫,日常往往只有兩三個志願者在靠愛發電,面對堆積如山的安全警報根本修不過來。如果 CodeMender 這樣能自己查因、自己寫補丁、自己跑回歸測試的工具普及開來,開源維護者的精力就能從打地鼠般的補漏洞中解放出來。

我們認為 Google 這一步走得相當清醒。AI 挖漏洞的門檻正在被急劇拉低,如果不把修復和防禦的效率同步拉上去,整個軟體生態的安全天平很快就會失衡。比起讓 AI 寫點增刪改查的前端元件,讓它在底層系統裡排查深層記憶體洩漏和邊界檢查,更能體現大模型複雜推理的真正價值。

不過隱患也不是沒有。程式碼安全容不得哪怕一次僥倖,一旦自動生成的補丁引入了極其隱蔽的邏輯後門,後果可能比原先的漏洞更嚴重。Google 現在堅持讓人類專家最後點一下頭是明智的,但未來如果要完全放開跑自動化,各家團隊對自動合入補丁的信任門檻依然非常高。

來源 (2)

  1. [1]
    deepmind.google(在新分頁開啟)原文deepmind.google
  2. [2]
    blog.google(在新分頁開啟)報導blog.google

每日 AI 內容精選