GitHub Copilot代碼安全性研究:開發者需對四成錯誤率保持清醒認知
在近日發表的一篇學術論文中,研究人員對 GitHub Copilot 人工智慧程式設計輔助工具展開了深入調查。 結果發現,仍處於測試預覽階段的 Copilot 具有高達 40% 的錯誤代碼率,意味著開發者必須在使用時對其保持清醒的認知。 此外在多場景測試專案中,約 40% 都被發現包含了安全漏洞。
(圖自: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 語言。
一種 Copilot 評估方法
然而 Copilot 很快引發了多方爭議,尤其涉及代碼品質、法律與道德考量、替換人類開發者的可能性、以及引入安全漏洞的可能性。
在一項題為《GitHub Copilot 輔助程式設計的網路安全實證評估》的學術研究論文中,研究團隊就對 Copilot 的安全性展開了重點考量。
這項研究旨在描述 Copilot 生成不安全代碼的趨勢,為使用者防範安全問題所需的審查量提供了必要的衡量標準。
通過嚴謹且詳實的科學分析,最終得出的結論是 —— 在測試了89個不同的代碼生成場景中產出的1692款程式後,其發現40%的程度都存在安全漏洞。
這些場景與前 25 個高風險常見弱點枚舉(CWE)子集相關,這是一個基於社區提交的軟硬體缺陷類型清單,並由非營利性安全組織 MITRE 負責管理。
文字-代碼轉換
具體說來是,這項研究從三個維度展開了考量,分別是缺陷的多樣性、prompt的多樣性、以及領域的多樣性。
總體而言,頭部 39.33% 和總體 40.48% 的專案易受攻擊。 從安全角度來看,Copilot 在測試場景中的表現也有好有壞。
對於新手來說,Copilot 借鑒的高品質代碼還是相當值得推薦的。 但若開源存儲庫中的某些錯誤相當明顯,Copilot 也會更加頻繁地重現。