讓ChatGPT當程序員不靠譜:所寫代碼大部分不安全 還不告訴你
4月23日消息,加拿大魁北克大學研究人員發現,ChatGPT生成的代碼大部分都有著嚴重漏洞,并且它不會主動告知。
在ChatGPT上線之初,人們便讓這一AI聊天模型進行代碼撰寫。事實上,ChatGPT的確能夠生成可用的代碼,其能力范圍還涵蓋多種程序語言,包括C、C++、Python和Java等。
這些研究人員制定了一個有針對性的實驗計劃,讓ChatGPT生成了共21個程序和腳本,這些程序和腳本包含了一些特定的安全漏洞,比如內存損壞、拒絕服務、反序列化和加密實現等方面的漏洞。最后的研究結果顯示,ChatGPT成功將所有程序生成出來,但是只有5個是可用的。進一步提示以糾正其錯誤步驟后,它最終生成了7個更安全的應用程序,但這里的“安全”還只是相對于針對性的漏洞而言,并不是代表著最終的“安全”代碼不存在任何其他未發現的漏洞。
研究人員指出,這可能是由于ChatGPT沒有考慮到敵對的代碼執行模型。在實驗過程中,它會反復告訴用戶:安全問題可以通過“不輸入無效的數據”來避免。但這一做法在現實世界中是不可行的。同時,這是否也意味著,它似乎能夠意識到并承認自己建議的代碼中存在的關鍵漏洞。
魁北克大學計算機科學與工程教授Rapha?l Khoury稱,“顯然,它只是一個算法。它什么都不知道,但它可以識別出不安全的行為。”他說,最初ChatGPT對安全問題的回應是建議只使用有效的輸入,這顯然是不合理的。只有在之后被要求改進問題時,它才提供了有用的指導。
研究人員還指出,ChatGPT還存在著“雙標行為”。當你要求他創建一組攻擊代碼,它會拒絕,但卻會創建有漏洞的代碼。 “聊天機器人生成了有漏洞的代碼,并提供了如何使其更安全的建議,但卻說它無法創建更安全版本的代碼。”他們稱。
編輯點評:當ChatGPT這一功能被曝光時,許多程序員都擔心自己的工作崗位“將要被取代”,但就目前的發展來看,程序員的飯碗在一段時間內還是能夠保住。ChatGPT終究還是一個通過攝取大量語言數據進行模仿的一個算法,說不定它所生成的有漏洞的代碼都是來源于一些技術不好的程序員。想要ChatGPT真正解放人類的雙手,可能還需要很多很多的數據,還有很多很多的時間。
【來源:太平洋電腦網】