最近,AI 編程助手火得一塌糊塗,號稱能幫程序員寫代碼、提高效率。不少程序員甚至把它當成了“救星”,恨不得天天抱着它寫代碼。但是,斯坦福大學的一項研究卻給這些“狂熱粉”潑了盆冷水:AI 編程助手可能是個“安全噩夢”!

斯坦福大學的研究人員找來了47個程序員,讓他們完成五項與安全相關的編程任務,涵蓋了 Python、JavaScript 和 C 三種語言。結果發現,那些用 AI 助手寫代碼的程序員,寫的代碼安全性明顯更差!

image.png

這可不是危言聳聽。AI 編程助手就像個“不靠譜的實習生”,雖然能寫出一些看似正確的代碼,但對安全問題卻是一竅不通。比如,在加密解密任務中,AI 助手生成的代碼雖然能正確加密信息,但卻沒有返回必要的身份驗證標籤,這就相當於給保險櫃裝了個鎖,卻沒給鑰匙,安全性大打折扣。

更要命的是,用了 AI 助手的程序員,反而更容易覺得自己寫的代碼很安全,這就好像吃了“迷魂藥”一樣,對代碼中的安全漏洞視而不見。這可不是什麼好事,過度自信往往會導致更嚴重的安全問題。

研究人員還發現,程序員給 AI 助手的提示,會直接影響到代碼的安全性。如果程序員能把任務描述清楚,並提供一些輔助函數,AI 助手寫出的代碼安全性會更高。但如果程序員一味地依賴 AI 助手,甚至把 AI 助手生成的代碼直接拿來用,那就相當於把“安全漏洞”複製粘貼到自己的代碼裏,結果可想而知。

所以,AI 編程助手到底能不能用?

答案是:能用,但要謹慎!程序員不能把它當作“萬能藥”,更不能盲目信任它。在使用 AI 助手的時候,程序員要時刻保持警惕,仔細檢查代碼,避免安全漏洞。

論文地址:https://arxiv.org/pdf/2211.03622