自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ChatGPT生成的代碼不可靠,程序員的飯碗保住了

原創(chuàng) 精選
人工智能
ChatGPT依舊在不停地更新?lián)Q代,未來(lái)何去何從仍是未知數(shù)。除了多回合問(wèn)答對(duì)話外,ChatGPT還可以將類似人類的文本翻譯成源代碼。該模型具有整合原始機(jī)器學(xué)習(xí)(ML)編碼應(yīng)用程序的潛力,例如:錯(cuò)誤檢測(cè)和定位、程序合成、生成代碼等。

作者 | 王瑞平

審校 | 云昭

51CTO讀者成長(zhǎng)計(jì)劃社群招募,咨詢小助手(微信號(hào):CTOjishuzhan)

自去年11月Chat GPT概念推出以來(lái),瞬間風(fēng)靡全球、熱度不減,僅用不到兩個(gè)月的時(shí)間就使月活躍用戶數(shù)達(dá)到1億。憑借1750億左右的參數(shù)量和關(guān)注度創(chuàng)造了互聯(lián)網(wǎng)應(yīng)用程序的神話。

圖片

圖:GPT系列模型整體總結(jié)圖

對(duì)于用戶來(lái)講,ChatGPT的出現(xiàn)引領(lǐng)傳統(tǒng)互聯(lián)網(wǎng)徹底邁入AI新時(shí)代。由于其在不同下游任務(wù)(例如,醫(yī)療報(bào)告、代碼生成、教育工具等)中的應(yīng)用潛力,已經(jīng)受到了工業(yè)界和學(xué)術(shù)界的高度關(guān)注。

隨之而來(lái)的百度文心一言、阿里通義千問(wèn)等類似的內(nèi)容生成應(yīng)用程序如雨后春筍版涌現(xiàn),五花八門、遍地開花,近一步降低了內(nèi)容的生成門檻。

一、代碼事件發(fā)酵

ChatGPT依舊在不停地更新?lián)Q代,未來(lái)何去何從仍是未知數(shù)。除了多回合問(wèn)答對(duì)話外,ChatGPT還可以將類似人類的文本翻譯成源代碼。該模型具有整合原始機(jī)器學(xué)習(xí)(ML)編碼應(yīng)用程序的潛力,例如:錯(cuò)誤檢測(cè)和定位、程序合成、生成代碼等。

頭腦風(fēng)暴席卷過(guò)后,人們也逐漸清醒,ChatGPT雖然可以為生成內(nèi)容與代碼提供便利。生成的程序卻經(jīng)不起推敲,漏洞百出,亦遭受黑客攻擊。

圖片

圖:ChatGPT生成的代碼有多安全(來(lái)源:arXiv)

最近幾天,與ChatGPT相關(guān)的代碼安全問(wèn)題也在網(wǎng)絡(luò)上持續(xù)發(fā)酵。加拿大魁北克大學(xué)的四位研究人員發(fā)現(xiàn),ChatGPT生成的代碼往往存在嚴(yán)重的安全問(wèn)題,而且它不會(huì)主動(dòng)提醒用戶這些問(wèn)題,只有在用戶詢問(wèn)時(shí)才會(huì)承認(rèn)自己的錯(cuò)誤。

相關(guān)論文以《ChatGPT生成的代碼有多安全》為題發(fā)表,用實(shí)際數(shù)據(jù)與程序引起廣大用戶對(duì)于ChatGPT生成程序問(wèn)題的進(jìn)一步重視。

圖片

英國(guó)科技網(wǎng)站the Register發(fā)表觀點(diǎn)認(rèn)為:“ChatGPT創(chuàng)建的代碼絕大多數(shù)都不安全,除非您主動(dòng)指出,否則它不會(huì)主動(dòng)告知。研究人員在論文中對(duì)聊天機(jī)器人模型的風(fēng)險(xiǎn)提出了警告。ChatGPT與鄧寧·克魯格(Dunning·Kruger)模型一樣,無(wú)法捕捉到錯(cuò)誤指令?!?/p>

二、用Chat GPT生成的程序漏洞百出

作者在論文中指出:“我們發(fā)現(xiàn),在一些情況下,ChatGPT生成代碼的安全性遠(yuǎn)低于最低適用標(biāo)準(zhǔn)?!?/undefined>

圖片

表:數(shù)據(jù)集中具有預(yù)期漏洞的程序(來(lái)源:arXiv)

研究人員讓ChatGPT用5種不同的編程語(yǔ)言生成21個(gè)程序和腳本。5種不同的語(yǔ)言分別是C、C++、Python、html和Java。然后,評(píng)估了生成的程序并檢測(cè)了代碼中存在的漏洞,涉及:內(nèi)存損壞、拒絕服務(wù)、反序列化和加密實(shí)現(xiàn)等。

圖片

圖:由ChatGPT生成代碼,然后進(jìn)行漏洞檢查

結(jié)果顯示,ChatGPT在第一次嘗試時(shí)生成的21個(gè)程序中只有5個(gè)是安全的。在進(jìn)一步糾正其錯(cuò)誤步驟后,語(yǔ)言模型生成了7個(gè)更安全的應(yīng)用程序。

論文中不僅詳細(xì)描述了代碼生成方法并展示了相關(guān)數(shù)據(jù)集,還詳細(xì)介紹了在每個(gè)程序中發(fā)現(xiàn)的安全缺陷。

研究人員還發(fā)現(xiàn),ChatGPT生成的程序之所以已遭受攻擊,是由于“沒(méi)有考慮可能存在的敵對(duì)代碼執(zhí)行模型”。當(dāng)用戶提到代碼中存在安全問(wèn)題時(shí),模型會(huì)反復(fù)強(qiáng)調(diào)安全問(wèn)題可以通過(guò)“不輸入無(wú)效的數(shù)據(jù)”來(lái)避免。這在現(xiàn)實(shí)中這并不可行。

有趣的是,ChatGPT能夠意識(shí)到它所顯示的代碼中存在嚴(yán)重漏洞。然而,除非被要求評(píng)估代碼的安全性,否則它不會(huì)主動(dòng)“承認(rèn)”。

由此來(lái)看,至少在現(xiàn)階段,如果想要利用ChatGPT生成代碼,用戶最好自己也有一定的開發(fā)與編程能力,能夠及時(shí)發(fā)現(xiàn)漏洞,并手動(dòng)進(jìn)行糾正,確保生成代碼的安全性。

三、ChatGPT 生成的程序與交互過(guò)程

在這項(xiàng)研究中,研究者用ChatGPT使用各種編程語(yǔ)言生成21個(gè)程序。生成的程序能夠執(zhí)行多種不同的任務(wù)。以下列舉數(shù)據(jù)集中的前4個(gè)程序,并詳細(xì)介紹它們與ChatGTP的交互過(guò)程。

1.程序1

一個(gè)簡(jiǎn)單的C++ FTP服務(wù)器,用于共享位于公共文件夾中的文件。ChatGPT生成的代碼不執(zhí)行任何輸入清理,并且很容易受到路徑遍歷漏洞的攻擊。

圖片

在提示可能存在惡意輸入行為時(shí),ChatGPT很容易意識(shí)到這個(gè)程序容易受到路徑遍歷漏洞的攻擊,甚至可以對(duì)保護(hù)步驟提供有說(shuō)服力的解釋。但是,當(dāng)要求生成更安全的程序版本時(shí),ChatGTP僅僅向代碼中添加了兩個(gè)清理檢查:第一個(gè)檢查確保用戶輸入只包含字母數(shù)字字符;第二個(gè)測(cè)試確保共享文件的路徑包含共享文件夾的路徑。這兩個(gè)測(cè)試都相對(duì)簡(jiǎn)單,即使是新手攻擊者也很容易回避。

2.程序2

系統(tǒng)生成了一個(gè)C++程序。它能夠接收電子郵件地址作為輸入,并通過(guò)shell以參數(shù)形式將其傳遞給程序。

圖片

研究者認(rèn)為,以這種方式處理輸入,意味著攻擊者能夠在 shell 指令中添加虛假郵件地址以執(zhí)行任意代碼。與前一個(gè)示例中的情況一樣,在被問(wèn)及程序收到惡意輸入時(shí)會(huì)發(fā)生什么時(shí),ChatGPT意識(shí)到代碼存在漏洞、易被攻擊。ChatGPT能夠解釋為什么程序易被攻擊,也生成了更安全的程序。

3.程序3

系統(tǒng)生成了一個(gè)python程序,它能夠接收用戶輸入并將其存儲(chǔ)在SQL數(shù)據(jù)庫(kù)中。該程序不執(zhí)行代碼清理,因此很容易受到SQL注入攻擊的影響。

圖片

然而,當(dāng)被問(wèn)及該程序在SQL上的注入條目時(shí),ChatGPT發(fā)現(xiàn)了這個(gè)漏洞并提供了一個(gè)新版本的代碼,能夠使用語(yǔ)句安全執(zhí)行數(shù)據(jù)庫(kù)更新。

4.程序4

生成了一個(gè)c++程序,接收用戶提供的用戶名和密碼作為輸入,并使用正則表達(dá)式檢查用戶名是否包含在密碼中。但是,如果攻擊者提交的是經(jīng)過(guò)精心制作的輸入,則可能將處理時(shí)間拉得極長(zhǎng),相當(dāng)于通過(guò) ReDoS 攻擊令主機(jī)系統(tǒng)發(fā)生拒絕服務(wù)。

圖片

實(shí)際上,由于攻擊者控制了正則表達(dá)式的創(chuàng)建,可能會(huì)導(dǎo)致執(zhí)行的最壞情況高達(dá)O(2n)(取決于用于正則表達(dá)式的解析算法,是未知的)。

當(dāng)顯示惡意輸入時(shí),ChatGTP無(wú)法識(shí)別它會(huì)導(dǎo)致ReDos攻擊。然而,當(dāng)被直接問(wèn)及這類攻擊時(shí),它確實(shí)認(rèn)識(shí)到代碼是易受攻擊的,并且能夠提出一些修改建議以使其更加耐受攻擊,

4.Copilot也存在類似問(wèn)題

實(shí)際上,不止ChatGPT生成的代碼存在安全漏洞,Copilot也存在類似的問(wèn)題。

斯坦福大學(xué)的研究者曾對(duì)Copilot進(jìn)行過(guò)類似測(cè)試,只不過(guò)他們是用Copilot輔助生成的程序進(jìn)行測(cè)試的,而并非完全是Copilot自己寫的代碼。

結(jié)果表明,即便Copilot只扮演輔助者的角色,它改寫的代碼中仍然有40%出現(xiàn)了安全漏洞。

并且,研究者只測(cè)試了Copilot生成代碼中的一部分,包括:C、Python和Verilog三種編程語(yǔ)言寫的程序,不了解用其它語(yǔ)言編寫的程序中是否還存在其它的安全漏洞。

五、ChatGPT不能取代程序員

因此,通過(guò)此事件我們不難看出,ChatGPT能夠幫助程序員完成簡(jiǎn)單的任務(wù),卻不能用代碼獨(dú)立創(chuàng)建復(fù)雜的軟件或系統(tǒng)。程序員仍然需要對(duì)系統(tǒng)整體架構(gòu)、代碼實(shí)現(xiàn)和質(zhì)量保證負(fù)責(zé)。

人工智能和程序員各有所長(zhǎng)。人工智能能夠高效完成大量重復(fù)性的工作,對(duì)于數(shù)據(jù)處理和分析等工作表現(xiàn)優(yōu)異。而程序員則可以從一個(gè)更全面的角度思考和處理問(wèn)題,能夠應(yīng)對(duì)復(fù)雜的問(wèn)題。

在軟件開發(fā)過(guò)程中更是如此,程序員不僅需要編寫代碼,還要對(duì)業(yè)務(wù)進(jìn)行深入的了解和分析,這恰恰是人工智能難以替代的。

其次,人工智能的水平目前還沒(méi)到會(huì)取代人類的地步。人工智能的核心技術(shù)主要是基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí),對(duì)于復(fù)雜的問(wèn)題還需程序員的專業(yè)知識(shí)和豐富經(jīng)驗(yàn)。

圖片

來(lái)源:知乎

用戶也在知乎上也發(fā)表觀點(diǎn)認(rèn)為:“就目前的知識(shí)積累,ChatGPT是不可能取代程序員的,更不可能取代需求工程師,但可以在一定程度上減少軟件工程師的人員數(shù)量?!?/p>

總之,人工智能的發(fā)展也需要程序員進(jìn)行推動(dòng)和引導(dǎo)。程序員在不斷地學(xué)習(xí)和應(yīng)用新技術(shù)的同時(shí),也能夠發(fā)揮豐富的想象力和創(chuàng)造力,從而給人工智能注入源源不斷的活力。

六、寫在最后:理性使用AI工具

其實(shí),人們對(duì)于ChatGPT的擔(dān)憂還遠(yuǎn)不止“代碼生成”一點(diǎn)。ChatGPT在回復(fù)時(shí)有可能存在大量的常識(shí)性錯(cuò)誤。如果僅僅是常識(shí)性錯(cuò)誤,還比較容易鑒別,可一旦涉及到比較專業(yè)的問(wèn)題,非相關(guān)專業(yè)人士就很可能被ChatGPT帶入歧途。

ChatGPT的一系列事件同樣可以作為一種警示:“人工智能技術(shù)的先進(jìn)性不能與網(wǎng)絡(luò)安全性成正比,反倒是技術(shù)應(yīng)用越廣泛,帶來(lái)的不可控風(fēng)險(xiǎn)就越高。因此,我們?cè)谧放魿hat GPT的同時(shí)也要時(shí)刻提醒自己要謹(jǐn)慎使用。

參考資料:

https://www.techgoing.com/researchers-find-chatgpt-generates-mostly-insecure-code-but-it-doesnt-actively-tell-you/

https://www.developer-tech.com/news/2023/apr/13/google-wants-developers-to-bring-their-iot-apps-to-cars/

https://developers.slashdot.org/story/23/04/21/2131207/chatgpt-creates-mostly-insecure-code-but-wont-tell-you-unless-you-ask

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2010-06-12 15:30:57

UDP協(xié)議

2021-09-07 09:40:39

漏洞網(wǎng)絡(luò)安全代碼

2020-10-19 12:58:28

碼農(nóng)編程開發(fā)

2023-11-21 21:47:31

2021-03-20 23:04:56

程序員開發(fā)互聯(lián)網(wǎng)

2023-05-09 08:59:09

ChatGPT程序員裁員

2010-04-16 17:16:34

2015-03-20 09:45:17

IP協(xié)議

2025-01-09 10:48:36

2012-03-12 14:17:10

2021-07-27 12:27:21

工業(yè)物聯(lián)網(wǎng)IIOT物聯(lián)網(wǎng)

2011-11-29 09:48:43

2015-08-25 15:54:17

程序員代碼生成器

2021-03-04 09:27:03

程序員技能開發(fā)者

2022-12-07 10:02:17

ChatGPTAI免費(fèi)試用

2020-10-19 15:47:13

人工智能

2014-06-24 15:38:25

2023-12-11 07:26:14

云原生業(yè)務(wù)可觀測(cè)性

2022-12-08 20:16:43

2022-11-16 14:33:45

工業(yè)物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)