GitHub Copilot程式碼安全性研究:開發者需對四成錯

在近日發表的一篇學術論文中,研究人員對 GitHub Copilot 人工智慧程式設計輔助工具展開了深入調查。

結果發現,仍處於測試預覽階段的 Copilot 具有高達 40% 的錯誤程式碼率,意味著開發者必須在使用時對其保持清醒的認知。

此外在多場景測試專案中,約 40% 都被發現包含了安全漏洞。

GitHub Copilot程式碼安全性研究:開發者需對四成錯

(圖自:GitHub)

據悉,GitHub 為這款 AI 程式設計輔助工具採用了來自 OpenAI 的 Codex 高階 AI 系統。特點是經過了 GPT-3 機器語言模型的生成式預訓練,能夠藉助深度學習來生成類人文字。

基於 GitHub 平臺上高質量程式碼展開的訓練,結合上下文和其它因素,它能夠為開發者提供良好的單行程式碼建議、甚至幫助補全整個功能模組。

對於Visual Studio開發者來說,你也可以將它視作一個超級增強版本的 IntelliCode 程式設計輔助工具。GitHub 執行長在 6 月 29 日的一篇部落格文章中稱:

OpenAI Codex 對人們如何使用程式碼有著廣泛的瞭解,且在程式碼生成方面較 GPT-3 強大得多,部分原因是其在包含大量公共原始碼的資料集上展開了訓練。

GitHub Copilot 適用於多種語言框架,但現階段的技術預覽版本更側重於 Python、JavaScript、TypeScript、Ruby 和 Go 語言。

GitHub Copilot程式碼安全性研究:開發者需對四成錯

一種 Copilot 評估方法

然而 Copilot 很快引發了多方爭議,尤其涉及程式碼質量、法律與道德考量、替換人類開發者的可能性、以及引入安全漏洞的可能性。

在一項題為《GitHub Copilot 輔助程式設計的網路安全實證評估》的學術研究論文中,研究團隊就對 Copilot 的安全性展開了重點考量。

這項研究旨在描述 Copilot 生成不安全程式碼的趨勢,為使用者防範安全問題所需的審查量提供了必要的衡量標準。

透過嚴謹且詳實的科學分析,最終得出的結論是 —— 在測試了 89 個不同的程式碼生成場景中產出的 1692 款程式後,其發現 40% 的程度都存在安全漏洞。

這些場景與前 25 個高風險常見弱點列舉(CWE)子集相關,這是一個基於社群提交的軟硬體缺陷型別列表,並由非營利性安全組織 MITRE 負責管理。

GitHub Copilot程式碼安全性研究:開發者需對四成錯

文字-程式碼轉換

具體說來是,這項研究從三個維度展開了考量,分別是缺陷的多樣性、prompt 的多樣性、以及領域的多樣性。

總體而言,頭部 39。33% 和總體 40。48% 的專案易受攻擊。從安全形度來看,Copilot 在測試場景中的表現也有好有壞。

對於新手來說,Copilot 借鑑的高質量程式碼還是相當值得推薦的。但若開源儲存庫中的某些錯誤相當明顯,Copilot 也會更加頻繁地重現。

TAG: Copilotgithub程式碼開發者程式設計