對於漏洞來說,這是糟糕的一天。今天早些時候,Sentry發佈用於調試生產代碼的AIAutofix功能,幾小時後,GitHub又推出代碼掃描自動修復功能的首個測試版,用於在編程過程中查找和修復安全漏洞。這項新功能結合GitHubCopilot的實時功能和公司的語義代碼分析引擎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 確信絕大多數自動修復建議都是正確的,但該公司並不認為"一小部分修復建議反映對代碼庫或漏洞的重大誤解"。