一波不平一波又起!GitHub Copilot四成代碼有漏洞
人們對設計基于人工智能的系統(tǒng)越來越感興趣,從而幫助人類更好地設計計算機系統(tǒng),包括自動生成計算機代碼的工具,最近,第一個自稱為“人工智能配對程序員”的GitHub Copilot,這是一個通過開源GitHub代碼訓練出來的語言模型。
然而,代碼經常包含bug——因此,考慮到Copilot處理過的大量未被驗證的代碼,語言模型肯定會從可利用的、有bug的代碼中學習。因此,有研究人員發(fā)現,GitHub Copilot工具提供的代碼建議中 有接近40%存在bug。為了對Copilot的實際價值做出量化,研究人員創(chuàng)建了89個測試場景以考查其代碼建議質量,編寫出了1600多個程序。經過全面審查,研究人員發(fā)現其中近四成存在安全漏洞。
由于Copilot的學習對象是GitHub代碼庫中公開發(fā)布的可用代碼,因此研究人員推測這些安全漏洞的出現只是系統(tǒng)在模仿現存的代碼 bug。研究人員還指出,除了可能繼承訓練數據當中的bug之外,Copilot還無法分辨訓練數據的新舊程度。
隨著網絡安全的發(fā)展,早期編程時的“最佳實踐”很可能會逐漸變成“糟糕實踐,毫無疑問,像GitHub Copilot 這樣的下一代自動補全工具將大大提高軟件開發(fā)人員的生產力。然而,盡管 Copilot 能快速生成大量代碼,但我們的研究結果表明,開發(fā)者在使用 Copilot 作為輔助手段時應當保持警惕。理想情況下,Copilot 還應在訓練和生成期間匹配適當的安全工具,最大程度減少在代碼中引入安全漏洞的風險。
其實,自GitHub Copilot發(fā)布以來,就一直風波不斷:
Copilot抄襲風波
Copilot發(fā)布一周后,被推上了「侵權」的風口浪尖,Github瞬間罵聲四起,引發(fā)了前所未有的爭議。網友表示:你再訓練都是基于我們的開源代碼,這改一改就想用來賺錢真的好么?原因是GitHub在沒有版權持有者許可的情況下,用托管在GitHub上的開源代碼訓練Copilot
GitHub Copilot生成代碼包含身份證號
接著,有人在推特上曬圖,表示自己在使用GitHub Copilot時,它竟然給補全出了一張身份證信息出來。
輸入B站CEO陳睿的信息后,下方竟然自動補出了身份證號。不過,還好,顯示的身份證號其實是假的,其中出生年份和校驗位明顯都是錯的。