研究:AI編碼助手可能導致代碼不安全,開發人員應該謹慎采用
研究人員表示,開發人員在編寫代碼時依賴AI(人工智能)助手會讓對自己的開發工作過于自信,導致代碼不太安全。
斯坦福大學最近進行的一項研究發現,基于AI的編碼助手(例如GitHub的Copilot)會讓開發人員對他們的工作質量感到迷惑,導致軟件可能存在漏洞,并且更不安全。一位AI專家表示,在使用AI助手完成這類任務時,開發人員管理自己的預期很重要。
AI編碼引入的安全漏洞更多
這項研究通過47名開發人員進行了一項試驗,其中33人在編寫代碼時使用AI助手,而對照組中有14人獨自編寫代碼。他們必須完成五項與安全相關的編程任務,包括使用對稱密鑰加密或解密字符串。他們都可以使用網絡瀏覽器獲得幫助。
用于編碼和其他任務的AI助手工具正變得越來越受歡迎,微軟旗下的GitHub將在2021年推出Copilot作為技術預覽版,以提高開發人員的生產力。
微軟在今年9月發布的一份研究報告中指出,GitHub讓開發人員的工作效率更高。88%的受訪者表示采用Copilot在編碼時效率更高,59%的受訪者表示,其主要的好處是可以更快地完成重復任務和更快地完成編碼。
斯坦福大學的研究人員想了解用戶是否用AI助手編寫了更不安全的代碼,并發現事實確實如此。他們說,那些使用AI助手的開發人員對代碼的質量仍然抱有幻想。
該團隊在論文中寫道:“我們觀察到,與對照組的開發人員相比,獲得AI助手幫助的開發人員更有可能在大多數編程任務中引入安全漏洞,但也更有可能將不安全的答案評為安全。此外研究還發現,在向AI助手創建查詢方面投入更多的開發人員(例如采用AI助手功能或調整參數),最終更有可能提供安全的解決方案。”
該研究項目只使用了三種編程語言:Python、C和Verilog。它涉及到相對較少的參與者,這些開發人員開發經驗各有不同,其中包括畢業不久的大學生和經驗豐富的專業人員,他們使用的是由管理員監控的專門開發的應用程序。
第一個試驗采用Python編寫,而那些在AI助手的幫助下編寫的代碼更有可能不安全或不正確。在沒有AI助手幫助的對照組中, 79%的開發人員編寫的代碼沒有質量問題;而有AI助手幫助的對照組中,只有67%的開發人員編寫的代碼沒有質量問題。
謹慎使用AI編碼助手
在創建代碼的安全性方面,情況變得更糟,因為采用AI助手的開發人員更有可能提供不安全的解決方案,或者使用簡單的密碼來加密和解密字符串。他們也不太可能對最終值進行真實性檢查,以確保流程按預期工作。
斯坦福大學的研究人員表示,研究結果表明,經驗不足的開發人員可能傾向于相信AI助手,但有可能面臨引入新的安全漏洞的風險。因此,這項研究將有助于改進和指導未來AI代碼助手的設計。
軟件供應商Pegasystems公司AI實驗室主任Peter van der Putten表示,盡管規模很小,但這項研究非常有趣,得出的結果可以激發人們進一步研究AI助手在代碼和其他領域的使用。他說:“這也與我們對AI助手依賴程度的一些更廣泛的研究得出的結論相一致。”
他警告說,采用AI助手的開發人員應該以漸進的方式獲得對該工具的信任,不要過度依賴它,并了解它的局限性。他說,“對一項技術的接受程度不僅取決于對質量和性能的期望,還取決于它是否能節省時間和精力。總的來說,人們對AI助手的使用持積極態度,只要他們的期望得到管理。這意味著需要定義如何使用這些工具的最佳實踐,以及采用潛在的額外功能來測試代碼質量。”