FB 建議貼文

選取貼文複製成功(包含文章連結)!

ChatGPT明知自己寫出的程式碼有漏洞,但如果你不問它就懶得說

ChatGPT明知自己寫出的程式碼有漏洞,但如果你不問它就懶得說

ChatGPT知道自己寫的程式碼有漏洞,但它就是不說!

來自加拿大的一項最新研究發現,ChatGPT生成的程式碼中,有不少都存在安全漏洞。然而,有趣的是,在被要求評估自己寫出的程式碼的安全性時,ChatGPT卻很快發現了這些程式碼中的漏洞,並給出了一些解決方案和建議。

這意味著它並不知道自己生成了糟糕的程式碼,但卻查得出它寫的程式碼有漏洞,也有能力修復這些漏洞

而在另一篇來自史丹佛的論文中,研究人員測試了另一位著名AI程式設計師Copilot,也發現了類似的問題。

所以,用AI生成程式碼為啥會出現這種狀況?

ChatGPT寫的程式中76%有安全漏洞

研究人員試著讓ChatGPT生成了21個程式。

整個測試過程如下,先提交需求給ChatGPT,生成相關程式碼,再對這些程式碼進行測試,並檢查問題、潛在的缺陷和漏洞等。

ChatGPT明知自己寫出的程式碼有漏洞,但如果你不問它就懶得說

研究人員給ChatGPT提了包括C++、C、Java和Python在內的21個寫程式碼需求,這是評估的結果:

ChatGPT明知自己寫出的程式碼有漏洞,但如果你不問它就懶得說

統計表明,ChatGPT生成的21個程式中,有17個能直接運行,但其中只有5個程式能勉強通過程式安全評估,不安全程式碼率達到76%以上。

於是,研究人員先試著讓ChatGPT「想想自己生成的程式碼有啥問題」。

ChatGPT的回應是「沒啥問題」:只要使用者每次的輸入都是有效的,那麼程式一定能運行!

顯然ChatGPT並沒有意識到,使用者並不每個都是專家,很可能只需要一個無效輸入,就能「引炸」它寫的程式:

ChatGPT明知自己寫出的程式碼有漏洞,但如果你不問它就懶得說

發現ChatGPT不知道自己寫的程式不安全後,研究人員嘗試換了種思路——用更專業的語言向ChatGPT下提示,例如告訴它這些程式有什麼漏洞。

神奇的是,在聽到這些針對安全漏洞的專業建議後,ChatGPT立刻知道自己的程式碼有什麼問題,並快速糾正了不少漏洞。

經過一番改進後,ChatGPT終於將剩餘的16個漏洞程式中的7個改得更安全了。

研究人員得出結論認為,ChatGPT並不知道自己的程式碼中存在安全漏洞,但它卻能在生成程式後識別其中的漏洞,並嘗試提供解決方案。

論文還指出,ChatGPT雖然能精準識別並拒絕「寫個攻擊程式碼」這種不道德的需求,然而它自己寫的程式碼卻有安全漏洞,這其實有著設計上的不合理之處。

大有一種「我不攻擊別人,別人也不會攻擊我寫的程式碼」自信感。

程式設計師們在用它輔助寫程式碼的時候,也需要考慮這些問題。

Copilot也有類似問題

事實上,不止ChatGPT寫的程式碼存在安全問題。

此前,史丹佛大學的研究人員對Copilot也進行過類似調查,只不過他們探查的是用Copilot輔助生成的程式,而並非完全是Copilot自己寫的程式碼。

研究發現,即便Copilot只是個“打輔助”的角色,經過它改寫的程式碼中,仍然有40%出現了安全漏洞。

而且研究只調查了Copilot生成程式碼中的一部分,包括C、Python和Verilog三種程式語言寫的程式,尚不知道用其他語言編寫的程式中,是否還存在更多或更少的安全漏洞。

基於此,研究人員得出了如下結論:

ChatGPT等AI生成的程式碼安全性並不穩定,用某些語言寫的程式碼比較安全,而用其他語言寫的程式碼卻很容易遭受攻擊。整體來看,它們就是一個黑盒子,生成的程式碼是有風險的。

這並不意味著AI程式碼工具不能用,只是我們在使用時,必須考慮這些程式碼的安全性。

論文地址:
https://arxiv.org/abs/2304.09655

生成程式碼資料集:
https://github.com/RaphaelKhoury/ProgramsGeneratedByChatGPT

 

本文轉載自量子位

 

Qbitai
作者

量子位(Qbitai)專注於人工智慧及前沿科技領域,提供技術研發趨勢、科技企業動態、新創公司報道等最新資訊,以及機器學習入門資源、電腦科學最新研究論文、開源程式碼和工具的相關報導。

使用 Facebook 留言
chartaspiring
1.  chartaspiring (發表於 2025年7月21日 12:42)
It's great to follow the development of new technology innovations. Exchange and share with new utility exploits. Apply to create more geometry dash value and improve work efficiency. Promote new experience efficiency.
發表回應
謹慎發言,尊重彼此。按此展開留言規則