GitHub的最新人工智慧工具可自動修復程式碼漏洞
對於漏洞來說,這是糟糕的一天。今天早些時候,Sentry 發布了用於調試生產程式碼的AI Autofix 功能,幾小時後,GitHub 又推出了程式碼掃描自動修復功能的首個測試版,用於在程式設計過程中尋找和修復安全漏洞。這項新功能結合了GitHub Copilot 的即時功能和公司的語意程式碼分析引擎CodeQL。該公司於去年11 月首次預覽了這項功能。
GitHub 承諾,這個新系統可以修復其發現的三分之二以上的漏洞–通常開發人員無需親自編輯任何程式碼。該公司還承諾,程式碼掃描自動修復功能將涵蓋其支援語言(目前包括JavaScript、Typescript、Java 和Python)中90% 以上的警報類型。
現在,所有GitHub 高級安全(GHAS)客戶都可以使用這項新功能。
GitHub Copilot 中的程式碼掃描自動修復功能
GitHub 在今天的公告中寫道:”正如GitHub Copilot 為開發人員減輕了繁瑣的重複性工作一樣,程式碼掃描自動修復將幫助開發團隊收回以前用於修復的時間。安全團隊也將受益於日常漏洞數量的減少,這樣他們就可以專注於保護業務的策略,同時跟上加快的開發步伐。”
在後台,這項新功能使用了GitHub 的語意分析引擎CodeQL 引擎,甚至在程式碼執行之前就能發現程式碼中的漏洞。該公司在收購程式碼分析新創公司Semmle 後,於2019 年底向公眾提供了第一代CodeQL,CodeQL 就是在該公司孵化的。多年來,該公司對CodeQL 進行了一系列改進,但有一點從未改變,那就是CodeQL 只免費提供給研究人員和開源開發人員使用。
現在,CodeQL 成為了這款新工具的核心,不過GitHub 也指出,它使用了”啟發式和GitHub Copilot API 的組合”來提出修復建議。為了產生修復及其解釋,GitHub 使用了OpenAI 的GPT-4 模型。雖然GitHub 確信絕大多數自動修復建議都是正確的,但該公司並不認為”一小部分修復建議反映了對程式碼庫或漏洞的重大誤解”。