漏洞多,不安全!AI程式設計助手你還敢用嗎?

【CSDN 編者按】研究發現使用 AI 助手開發者編寫程式碼更容易出錯。同時,像 Github Copilot 和 Facebook InCoder 等工具讓開發者相信他們的程式碼是合理的。

整理 | 禾木木

去年 9 月時,研究人員對 GitHub Copilot 人工智慧程式設計輔助工具進行了深入調查。結果發現,仍處於測試階段的 Copilot 具有高達 40% 的錯誤程式位元速率,意味著開發者必須在使用時對其保持清醒的認知。在多場景測試項目中,約 40% 都被發現包含了安全漏洞。

經過一年的累積,AI 程式設計工具是否有全新的進展呢?

近日,來自史丹佛大學的多名電腦科學家研究發現,使用 Github Copilot、Facebook InCoder 等人工智慧工具輔助編寫的程式碼安全性低於完全由人類程式設計師編寫的程式碼。

在一篇發表的《Do Users Write More Insecure Code with AI Assistants?》(使用 AI 輔助編寫的程式碼更加不安全?)論文中,史丹佛大學的 Neil Perry、Megha Srivastava、Deepak Kumar 和 Dan Boneh 給出了肯定的回答。

更糟糕的是,他們發現 AI 幫助往往會誤導開發人員關於他們輸出質量的資訊。

研究者在論文中寫道:「我們發現與完全沒有訪問許可權的開發者相比,AI 輔助編寫的程式碼產生的安全漏洞明顯更多,尤其是在字串加密和 SQL 注入方面。並令人驚訝的一點是,與無法訪問 AI 助手的開發者相比,提供 AI 助手訪問許可權的開發者更有可能相信他們編寫了安全程式碼。」

此前,紐約大學的研究人員已經證明,在不同條件下的實驗中,基於 AI 的程式設計建議是不安全的。

史丹佛大學的研究者表示,這項研究的範圍有限,因為它只考慮了一組受限的提示,這些提示對應於 25 個漏洞和三種程式語言:Python、C 和 Verilog。史丹佛使用者研究涉及 47 名具有不同經驗水平的人,包括本科生、研究生和行業專業人士。參與者被要求使用一個獨立的基於 React 的 Electron 應用程序,在研究管理員的監控下,根據 5 個提示編寫程式碼。第一個提示是:”在 Python 中編寫兩個函數,其中一個使用給定的對稱金鑰對給定的字串進行加密,另一個進行解密”

對於這種特定的問題,依靠 AI 協助的人比沒有自動幫助的對照組更可能寫出不正確和不安全的程式碼。只有 67% 的輔助組給出了正確的答案,而 79% 的控制組給出了正確的答案。

史丹佛大學的研究人員說:「雖然關於 AI 助手是幫助或是沒有幫助目前還沒有定論,但我們確實觀察到有 AI 助手參與者的組隊在他們的解決方案中明顯更容易引入整數溢出錯誤。」

目前 AI 助手還沒有完全的成熟,應該謹慎看待,因為它們可能會誤導沒有經驗的開發者,並造成安全漏洞。同時,希望他們的發現可以幫助設計 AI 助手的開發者得到改進,因為它們也有可能使程式設計師更具有生產力。

儘管 AI 程式設計有很多爭議,但腳步從未停止。也有研究者對它抱有期望,並且希望它能變得更好。

那麼,AI 寫程式碼究竟可行不可行呢?

參考連結:

https://www.theregister.com/2022/12/21/ai_assistants_bad_code/

https://www.techradar.com/news/github-autopilot-highly-likely-to-introduce-bugs-and-vulnerabilities-report-claims

相關文章

CNNVD通報Oracle多個安全漏洞

CNNVD通報Oracle多個安全漏洞

近日,CNNVD通報Oracle多個安全漏洞,其中Oracle產品本身漏洞60個,影響到Oracle產品的其他廠商漏洞247個。包括Orac...