GitHub Copilot Autofix 聲稱可識別並解決程式碼中的安全問題
GitHub本週在其GitHub 高級安全(GHAS)中推出了其Copilot 自動修復高級AI程式碼掃描和修復產品。 Copilot 會自動修復使用AI 來尋找程式碼中的漏洞,解釋其重要性並提供程式碼建議來修復它們,GitHub 首席安全官兼高級副總裁Mike Hanley在公司部落格上的文章中寫道。
「程式碼掃描工具檢測漏洞,但它們沒有解決根本問題:修復需要安全專業知識和時間,這兩種資源都非常寶貴且供應不足,」Hanley 在文章中寫道。 “換句話說,發現漏洞不是問題。修復它們是。”
Copilot 自動修復使用能夠即時做出決策、規劃和適應新資訊的AI 代理。事實上,Hanley 寫道,在3 月推出的該產品的公開測試版期間,GitHub 了解到開發人員修復程式碼漏洞的速度比手動修復快三倍以上。
克服長期困擾
開發人員長期以來一直在努力使用應用程式安全測試(AST)工具來尋找應用程式原始碼中的安全漏洞,企業策略集團分析師David Vance告訴The New Stack。傳統的AST 工具以速度慢且容易出現誤報而聞名。他說,憑藉GitHub 龐大的開發者社區,將應用程式安全功能引入其平台是順理成章的事情。
GitHub 的Copilot 自動修復是下一波應用程式安全創新的最新例子,它還有助於減少開發人員對安全工具的摩擦。
在測試版期間,開發人員在他們的拉取請求中使用Copilot 自動修復來快速修復新程式碼中的漏洞,以防止它們合併到生產環境中,從而影響客戶。
「透過允許開發人員儘早識別其原始程式碼中的安全漏洞,它極大地減少了在編碼完成後修復漏洞所需的時間和精力,」Vance 說。
Hanley 在他的部落格文章中寫道,開發人員使用Copilot 自動修復自動提交拉取請求時間警報修復的平均時間為28 分鐘,而手動解決相同警報則需要1.5 小時。
「可以為數十種程式碼漏洞類別產生修復,例如SQL 注入和跨站點腳本,開發人員可以在他們的拉取請求中忽略、編輯或提交這些修復,」他寫道。
事實上,Copilot 自動修復在尋找和修復跨站點腳本漏洞方面快了七倍——22 分鐘,而手動修復則需要近三個小時。該公司表示,它在查找和修復SQL 注入漏洞方面快了12 倍——18 分鐘,而手動修復則需要3.7 小時。
「自從實施Copilot 自動修復以來,我們觀察到與安全相關的程式碼審查時間減少了60%,整體開發效率提高了25%,」Optum 首席工程師Kevin Cooper 在一份聲明中說。
此外,「在安全至關重要的醫療保健領域,它幫助我們快速採取經過驗證的行業解決方案。這種主動的安全方法有助於我們預防潛在問題,每月節省數千小時,否則這些時間將用於修復,」Cooper 補充道。
“有趣的分裂”
「保護程式碼一直存在一個有趣的分裂:負責修復安全漏洞的個人——軟體開發人員——通常既缺乏時間,也缺乏完成此任務所需的培訓,」Forrester Research 分析師Janet Worthington告訴The New Stack。
靜態應用程式安全測試(SAST)工具掃描程式碼庫,並根據安全缺陷和程式語言向開發人員提供修復指南。然而,Worthington 說,這些建議可能過於籠統,或更適合已經熟悉安全術語的安全專業人員。
Hanley 表示,Copilot Autofix 背後利用了CodeQL引擎、GPT-4o以及啟發式演算法和GitHub Copilot API 的組合來產生程式碼建議。
「像GitHub 的CodeQL 這樣的安全工具正在利用生成式AI來減輕軟體開發人員修復安全缺陷的負擔,同時降低風險,」Worthington 說。
借助GitHub Copilot Autofix 等創新,開發人員會看到安全缺陷以及針對其程式碼的自動產生的修復,開發人員可以審查並根據需要接受或修改修復。這不僅提高了開發人員的生產力,也提高了有效解決問題的可能性。
「雖然這一進步標誌著程式碼安全方面的重大進展,但重要的是要認識到生成式AI 並非完美無缺,」Worthington 說。 “任何由自動化工具提供的修復都必須像其他任何代碼更改一樣經過嚴格審查,在集成到主分支之前,要進行SAST、軟體成分分析和同行代碼審查。”
Copilot Autofix 的工作原理
Hanley 表示,要為現有程式碼中的漏洞啟動Copilot Autofix,只需在GHAS 程式碼掃描警報中的警報上按下「產生修復」按鈕。 Copilot Autofix 會評估程式碼和漏洞,並傳回解釋和程式碼建議以供審查。然後,開發人員可以按下「使用修復建立PR」按鈕來建立新的拉取請求,其中包含修復警報的程式碼變更。
「Copilot Autofix 負責繁瑣的安全任務,確保我們現有的和新的程式碼始終盡可能安全,」Otto (GmbH & Co KG) 安全社群經理Mario Landgraf在一份聲明中說。 “漏洞會立即被標記,並會自動推薦程式碼更改。它可以幫助我們的團隊騰出時間,以便他們專注於更具戰略意義的舉措。”
同時,從9 月開始,GitHub 將在拉取請求中新增Copilot Autofix,將其新增至為所有開源專案提供的工具清單。這份清單已經包括GitHub 的程式碼掃描、秘密掃描、依賴項管理和私有漏洞報告工具,這些工具都是免費提供的。