研究人員發(fā)現(xiàn)ChatGPT生成的代碼大部分不安全,但不會(huì)主動(dòng)告知你 |
發(fā)布時(shí)間:2023-04-25 文章來源:本站 瀏覽次數(shù):2154 |
4 月 23 日消息,ChatGPT 談天機(jī)器人能夠依據(jù)用戶的輸入生成各種各樣的文本,包含代碼?墒,加拿大魁北克大學(xué)的四位研究人員發(fā)現(xiàn),ChatGPT 生成的代碼往往存在嚴(yán)重的安全問題,而且它不會(huì)主動(dòng)提醒用戶這些問題,只要在用戶問詢時(shí)才會(huì)承認(rèn)自己的過錯(cuò)。 研究人員在一篇論文中介紹了他們的發(fā)現(xiàn),檢查該論文發(fā)現(xiàn),他們讓 ChatGPT 生成了 21 個(gè)程序和腳本,涉及 C、C++、Python 和 Java 等言語。這些程序和腳本都是為了展現(xiàn)一些特定的安全縫隙,比方內(nèi)存損壞、回絕服務(wù)、反序列化和加密實(shí)現(xiàn)等方面的縫隙。成果顯示,ChatGPT 在第一次測(cè)驗(yàn)時(shí)生成的 21 個(gè)程序中只要 5 個(gè)是安全的。在進(jìn)一步提示糾正其過錯(cuò)步驟后,該大型言語模型設(shè)法生成了 7 個(gè)更安全的應(yīng)用程序,不過這只是與正在評(píng)價(jià)的特定縫隙有關(guān)的“安全”,并不是說終的代碼不存在任何其他可利用的縫隙。 研究人員指出,ChatGPT 的部分問題是由于它沒有考慮敵對(duì)的代碼履行模型。它會(huì)反復(fù)告知用戶,安全問題能夠經(jīng)過“不輸入無效的數(shù)據(jù)”來避免,但這在實(shí)際國(guó)際中是不可行的。但是,它好像能夠意識(shí)到并承認(rèn)自己主張的代碼中存在的關(guān)鍵縫隙。 魁北克大學(xué)計(jì)算機(jī)科學(xué)與工程教授、論文的合著者之一 Raphaël Khoury 告知《The Register》:“明顯,它只是一個(gè)算法。它什么都不知道,但它能夠識(shí)別出不安全的行為。”他說,開始 ChatGPT 對(duì)安全問題的回應(yīng)是主張只運(yùn)用有效的輸入,這明顯是不合理的。只要在之后被要求改進(jìn)問題時(shí),它才供給了有用的指導(dǎo)。 研究人員認(rèn)為,ChatGPT 的這種行為并不理想,由于用戶知道要問什么問題需要對(duì)特定的縫隙和編碼技能有一定的了解。 研究人員還指出,在 ChatGPT 中存在著道德上的不一致性。它會(huì)回絕創(chuàng)立進(jìn)犯代碼,但卻會(huì)創(chuàng)立有縫隙的代碼。他們舉了一個(gè) Java 反序列化縫隙的例子,“談天機(jī)器人生成了有縫隙的代碼,并供給了如何使其更安全的主張,但卻說它無法創(chuàng)立更安全版別的代碼。” Khoury 認(rèn)為,ChatGPT 在現(xiàn)在的形式下是一個(gè)危險(xiǎn),但這并不是說沒有合理運(yùn)用這種不穩(wěn)定、體現(xiàn)欠安的 AI 助手的辦法。“咱們已經(jīng)看到學(xué)生運(yùn)用這個(gè)東西,程序員也會(huì)在實(shí)際中運(yùn)用這個(gè)東西!彼f,“所以擁有一個(gè)生成不安全代碼的東西是非常危險(xiǎn)的。咱們需要讓學(xué)生意識(shí)到,假如代碼是用這種類型的東西生成的,那么它很可能是不安全的。”他還稱,讓他感到驚奇的是,當(dāng)他們讓 ChatGPT 生成相同任務(wù)的不同言語的代碼時(shí),有時(shí)關(guān)于一種言語,它會(huì)生成安全的代碼,而關(guān)于另一種言語,它會(huì)生成有縫隙的代碼,“由于這種言語模型有點(diǎn)像一個(gè)黑盒子,我真的沒有一個(gè)很好的解釋或理論來說明這一點(diǎn)。” |
|