(魁北克23日訊)ChatGPT聊天機器人可以根據用戶的輸入生成各種各樣的文本,包括代碼。但是,加拿大魁北克大學的4位研究人員發現,ChatGPT生成的代碼往往存在嚴重的安全問題,而且不會主動提醒用戶這些問題,只有在用戶詢問時才會承認自己的錯誤。
研究人員在一篇論文中介紹了他們的發現,《IT之家》查看有關論文後發現,他們讓ChatGPT 生成了 21個程序和腳本,涉及C、C++、Python和Java語言。這些程序和腳本都是為了展示一些特定的安全漏洞,比如內存損壞、拒絕服務、反序列化和加密實現等方面的漏洞。
ADVERTISEMENT
結果顯示,ChatGPT在首次嘗試時生成的21個程序中只有5個是安全的。在進一步提示糾正錯誤步驟後,這個大型語言模型設法生成了7個更安全的應用程序,不過這只是與在評估的特定漏洞有關的“安全”,並不是說最終的代碼不存在任何其他可利用的漏洞。
研究人員指出,ChatGPT的部分問題是由於它沒有考慮敵對的代碼執行模型,反而會反覆告訴用戶,安全問題可以通過“不輸入無效的數據”來避免,這在現實世界中是不可行的。然而,它似乎能夠意識到並承認自己建議的代碼中存在的關鍵漏洞。
魁北克大學計算機科學與工程教授、論文的合著者之一拉斐爾庫裡告訴《The Register》:“顯然,它只是一個算法,什麼都不知道,唱頌能識別出不安全的行為。”
他說,最初ChatGPT對安全問題的回應是建議只使用有效的輸入,顯然是不合理的。只有在之後被要求改進問題時,它才提供了有用的指導。
研究人員認為,ChatGPT的這種行為並不理想,因為用戶知道要問什麼問題需要對特定的漏洞和編碼技術有一定的瞭解。研究人員還指出,在ChatGPT中存在著道德上的不一致性。它會拒絕創建攻擊代碼,但卻會創建有漏洞的代碼。他們舉了一個Java反序列化漏洞的例子,“聊天機器人生成了有漏洞的代碼,並提供瞭如何使其更安全的建議,卻說它無法創建更安全版本的代碼。”
庫裡認為,ChatGPT在目前的形式下是一個風險,不是說沒有合理使用這種不穩定、表現不佳的AI助手的方法。“我們已經看到學生使用這個工具,程序員也會在現實中使用這個工具。”他說,“所以擁有一個生成不安全代碼的工具是非常危險的。我們需要讓學生意識到,如果代碼是用這種類型的工具生成的,那麼它很可能是不安全的。”
他還說,讓他感到驚訝的是,當他們讓ChatGPT生成相同任務的不同語言的代碼時,有時對於一種語言,會生成安全的代碼,對於另一種語言,它會生成有漏洞的代碼,“因為這種語言模型有點像一個黑盒子,我真的沒有一個很好的解釋或理論來說明這一點。”
ADVERTISEMENT
热门新闻
百格视频
ADVERTISEMENT