研究人員:由 GitHub Copilot 生成的程序中,40% 存在漏洞
近日一組研究人員發(fā)現(xiàn),GitHub Copilot 語(yǔ)言模型生成的程序中,大約 40% 存在漏洞,因此很容易受到不法分子的攻擊。
這個(gè)人工智能模型目前可以在 Visual Studio Code 中使用,它能依據(jù)上下文在編輯器中直接推薦代碼,其目的是被設(shè)計(jì)用來(lái)幫助程序員更快速地完成他們的工作。為了達(dá)成這個(gè)目標(biāo),Copilot 此前已在公開(kāi)可用的開(kāi)源代碼上進(jìn)行了訓(xùn)練,目前已支持了幾十種編程語(yǔ)言,其中包括 Go、JavaScript、Python、Ruby 和 TypeScript 等。
一個(gè)由五名研究人員組成的研究小組為 Copilot 創(chuàng)建了 89 個(gè)不同的場(chǎng)景,并生成了 1692 個(gè)程序。通過(guò)嚴(yán)格而詳細(xì)的科學(xué)分析,研究人員最終得出「大約 40% 的程序包含可以被攻擊者利用的錯(cuò)誤或設(shè)計(jì)缺陷」。
研究人員表示:
由于 Copilot 是利用 GitHub 上提供的開(kāi)源代碼進(jìn)行訓(xùn)練的,我們推斷,代碼安全質(zhì)量的變化取決于社區(qū)提供的代碼。也就是說(shuō),如果某些錯(cuò)誤在開(kāi)源代碼庫(kù)中更常見(jiàn)更顯著,這些錯(cuò)誤也將更容易地被 Copilot 所生成。 |
換句話說(shuō),之所以會(huì)有這個(gè)高的比例,是因?yàn)槿斯ぶ悄鼙旧砭褪窃诰哂新┒吹拇a上進(jìn)行訓(xùn)練的。用大家更容易理解話來(lái)表達(dá),就有點(diǎn)“種瓜得瓜,種豆得豆”的意思。
通過(guò)此次研究發(fā)現(xiàn),Copilot 最常遇到的錯(cuò)誤包括越界寫(xiě)入和讀取、跨站腳本、操作系統(tǒng)命令注入、不適當(dāng)?shù)妮斎腧?yàn)證、SQL 注入、UAF、路徑遍歷、不受限制的文件上傳、缺少認(rèn)證等等。
此次研究表明,雖然 Copilot 能在一定程度上幫助開(kāi)發(fā)者更快地構(gòu)建代碼,但很明顯,開(kāi)發(fā)者在使用該工具時(shí)應(yīng)該保持警惕。因此建議開(kāi)發(fā)者在使用過(guò)程中引入其他安全工具來(lái)降低產(chǎn)生安全漏洞的可能。