Google 運用 Gemini AI 轉譯程式碼至 Rust,成功防堵零日漏洞

Google 團隊近期展示大型語言模型(LLM)在系統維護上的實務範例,透過 Gemini AI 將傳統 C 語言程式碼轉譯為兼具記憶體安全的 Rust 語言。在嚴謹的驗證過程中,團隊意外揭露了原 C 語言函式庫中未發現的零日漏洞(Zero-day vulnerability),成功在資安問題公開前完成防堵。

3,000 行程式碼轉譯,結合 AI 生成與人工接管

資安維護歷來是軟體開發的重頭戲,尤其傳統 C 語言缺乏強制的記憶體安全機制,常導致記憶體損毀問題。Google 工程師團隊針對廣為使用的影像處理函式庫 GIFLIB,啟動了一項三階段的自動化程式碼移植計畫,試圖將約 3,000 行的 C 語言程式碼改寫為 Rust 語言。

在移植流程中,Gemini AI 負責初步產生對應的 Rust 程式碼。為確保與現有架構相容,轉換過程保留了原始的符號定義。儘管 AI 產生的程式碼在處理複雜的指標所有權、變數生命週期以及外部函式介面(FFI)時仍需工程師進行修正,但整體轉譯速度已較傳統人工重寫大幅提升。

2 億次自動化模糊測試,精準定位潛在安全弱點

為確保轉換後的 Rust 版本運作一致,工程團隊建立了嚴謹的驗證機制,除了運用 Gemini AI 進行程式碼修補,更進行差異測試(Differential Testing)。團隊解碼超過 3,000 萬個 GIF 檔案,確保影像渲染結果完全吻合。隨後在歷時 6 天、執行高達 2 億次的自動模糊測試(Fuzzing)中,系統意外抓出原始 C 語言程式碼的兩大瑕疵,其中一項更是先前修補所引入的記憶體越界寫入漏洞。

這項越界寫入漏洞隨後經資安界編號為 CVE-2026-26740。由於 Google 早已將生產環境節點替換為全新編譯的 Rust 版本(並開源為 giflib-rs),因此系統未遭受影響。Rust 語言提供的記憶體安全保護,不僅維持原有的執行效能,更讓 Google 得以移除過往用來隔離影像解碼任務的作業系統沙盒(Sandbox),進一步減少尾部延遲。

這代表什麼

這項成果對企業資訊長與軟體開發團隊具有深刻啟示。過去傳統系統轉型(Legacy Modernization)往往成本高昂且風險極大,舊有 C/C++ 程式庫儘管隱藏許多記憶體管理漏洞,企業卻因人力與時間成本考量不敢輕易重構。Google 的實驗證明,結合 Gemini AI 的輔助轉譯與嚴密測試,能大幅降低技術債清理的門檻。

對於台灣眾多擁有大量嵌入式系統、硬體韌體或舊版內部系統的企業而言,AI 輔助程式碼移植可成為軟體供應鏈安全防禦的新防線。過去需要數月甚至數年重寫的元件,現在能在幾天內進行語法轉換與邊界測試,並在潛在零日漏洞遭駭客利用前主動消滅,達成結構性的安全升級。

背景補充

C 語言與 Rust 語言的差異:C 語言誕生於 1970 年代,以高效能與貼近硬體著稱,但記憶體管理需由開發者手動維護,據統計全球約有七成的嚴重資安漏洞皆源自記憶體處理不當。相對地,Rust 語言在編譯階段即透過嚴格的語法規則與檢查機制強制保障記憶體安全,能在不犧牲執行效能的前提下排除記憶體損毀風險。

零日漏洞與模糊測試:「零日漏洞」指尚未被原廠發現或釋出修補程式的安全缺陷,駭客可利用此時差發動攻擊。「模糊測試」則是一種自動化軟體測試技術,透過向程式注入大量隨機、異常的輸入資料,觀察系統是否崩潰,藉此主動挖出藏在邊角狀況中的程式碼缺陷。

常見問題

為何要將 C 語言程式碼轉譯為 Rust 語言?

C 語言缺乏強制的記憶體管理機制,容易引發記憶體損毀漏洞;透過轉譯為 Rust 語言,可以在維持高效能的前提下,獲得編譯階段的記憶體安全保障。

Gemini AI 在這次程式碼移植中扮演什麼角色?

Gemini AI 負責自動生成初始的 Rust 程式碼並進行迭代修補,大幅縮短人工重寫時間,但複雜的介面與指標邏輯仍需工程師人工校正。

這次發現的 CVE-2026-26740 漏洞有造成傷害嗎?

沒有。Google 在漏洞被外部公開前,就已利用轉譯好的 Rust 版本替換線上生產環境,因此其系統未受該漏洞影響。