讓ChatGPT當(dāng)程序員不靠譜:所寫代碼大部分不安全,還不告訴你

來(lái)源:太平洋電腦網(wǎng)


(相關(guān)資料圖)

4月23日消息,加拿大魁北克大學(xué)研究人員發(fā)現(xiàn),ChatGPT生成的代碼大部分都有著嚴(yán)重漏洞,并且它不會(huì)主動(dòng)告知。

在ChatGPT上線之初,人們便讓這一AI聊天模型進(jìn)行代碼撰寫。事實(shí)上,ChatGPT的確能夠生成可用的代碼,其能力范圍還涵蓋多種程序語(yǔ)言,包括C、C++、Python和Java等。

這些研究人員制定了一個(gè)有針對(duì)性的實(shí)驗(yàn)計(jì)劃,讓ChatGPT生成了共21個(gè)程序和腳本,這些程序和腳本包含了一些特定的安全漏洞,比如內(nèi)存損壞、拒絕服務(wù)、反序列化和加密實(shí)現(xiàn)等方面的漏洞。最后的研究結(jié)果顯示,ChatGPT成功將所有程序生成出來(lái),但是只有5個(gè)是可用的。進(jìn)一步提示以糾正其錯(cuò)誤步驟后,它最終生成了7個(gè)更安全的應(yīng)用程序,但這里的“安全”還只是相對(duì)于針對(duì)性的漏洞而言,并不是代表著最終的“安全”代碼不存在任何其他未發(fā)現(xiàn)的漏洞。

研究人員指出,這可能是由于ChatGPT沒有考慮到敵對(duì)的代碼執(zhí)行模型。在實(shí)驗(yàn)過(guò)程中,它會(huì)反復(fù)告訴用戶:安全問題可以通過(guò)“不輸入無(wú)效的數(shù)據(jù)”來(lái)避免。但這一做法在現(xiàn)實(shí)世界中是不可行的。同時(shí),這是否也意味著,它似乎能夠意識(shí)到并承認(rèn)自己建議的代碼中存在的關(guān)鍵漏洞。

魁北克大學(xué)計(jì)算機(jī)科學(xué)與工程教授Rapha?l Khoury稱,“顯然,它只是一個(gè)算法。它什么都不知道,但它可以識(shí)別出不安全的行為。”他說(shuō),最初ChatGPT對(duì)安全問題的回應(yīng)是建議只使用有效的輸入,這顯然是不合理的。只有在之后被要求改進(jìn)問題時(shí),它才提供了有用的指導(dǎo)。

研究人員還指出,ChatGPT還存在著“雙標(biāo)行為”。當(dāng)你要求他創(chuàng)建一組攻擊代碼,它會(huì)拒絕,但卻會(huì)創(chuàng)建有漏洞的代碼。 “聊天機(jī)器人生成了有漏洞的代碼,并提供了如何使其更安全的建議,但卻說(shuō)它無(wú)法創(chuàng)建更安全版本的代碼。”他們稱。

編輯點(diǎn)評(píng):當(dāng)ChatGPT這一功能被曝光時(shí),許多程序員都擔(dān)心自己的工作崗位“將要被取代”,但就目前的發(fā)展來(lái)看,程序員的飯碗在一段時(shí)間內(nèi)還是能夠保住。ChatGPT終究還是一個(gè)通過(guò)攝取大量語(yǔ)言數(shù)據(jù)進(jìn)行模仿的一個(gè)算法,說(shuō)不定它所生成的有漏洞的代碼都是來(lái)源于一些技術(shù)不好的程序員。想要ChatGPT真正解放人類的雙手,可能還需要很多很多的數(shù)據(jù),還有很多很多的時(shí)間。

標(biāo)簽:

推薦

財(cái)富更多》

動(dòng)態(tài)更多》

熱點(diǎn)