GitHub Copilot代碼安全性研究:開發者需對四成錯誤率保持清醒認知

在近日發表的一篇學術論文中,研究人員對 GitHub Copilot 人工智能編程輔助工具展開了深入調查。結果發現,仍處於測試預覽階段的 Copilot 具有高達 40% 的錯誤代碼率,意味着開發者必須在使用時對其保持清醒的認知。此外在多場景測試項目中,約 40% 都被發現包含了安全漏洞。

1.png

(圖自: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 語言。

2.PNG

一種 Copilot 評估方法

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

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

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

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

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

3.PNG

文本-代碼轉換

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

總體而言,頭部 39.33% 和總體 40.48% 的項目易受攻擊。從安全角度來看,Copilot 在測試場景中的表現也有好有壞。

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

(0)
上一篇 2021-09-02 11:48
下一篇 2021-09-02 11:48

相关推荐