AI將取代人類?機(jī)器人ChatGPT能測漏洞、審代碼還能修bug
11月30日,OpenAI研究實(shí)驗(yàn)室推出了聊天機(jī)器人ChatGPT,一躍成為人工智能領(lǐng)域的“當(dāng)紅炸子雞”。
有賬號(hào)的人在問它各種天馬行空的問題,沒賬號(hào)的人都在求賬號(hào)注冊(cè)攻略,連埃隆·馬斯克都在推特公開評(píng)價(jià)它“scary good”。截至當(dāng)?shù)貢r(shí)間12月5日,ChatGPT已經(jīng)擁有超過100萬用戶。
對(duì)于網(wǎng)絡(luò)安全從業(yè)者來說,ChatGPT到底能干什么?也許是代碼審計(jì)、漏洞檢測、編寫軟件或?qū)hellcode進(jìn)行逆向。
什么是GPT?
根據(jù)OpenAI介紹,ChatGPT 由GPT-3.5 系列模型提供支持,使用Azure AI 超算的文本和代碼數(shù)據(jù)進(jìn)行訓(xùn)練。
GPT全稱為Generative PreTraining,是由人工智能研發(fā)公司OpenAI開發(fā)的,一種用戶文本生成的自然語言處理(NPL)模型。目前GPT的公開版本是GPT-3,發(fā)行于2020年5月,GPT-3.5是GPT-3的微調(diào)版本,目前OpenAI公司還未官方宣布更新。
依據(jù)GPT-3的公開資料,它是當(dāng)時(shí)規(guī)模最大的神經(jīng)網(wǎng)絡(luò),擁有1750億個(gè)參數(shù)的自然語言深度學(xué)習(xí)模型。
網(wǎng)安人如何用ChatGPT?
盡管ChatGPT似乎上知天文下至地理,但除了回答問題和智能寫稿,它似乎對(duì)網(wǎng)絡(luò)安全從業(yè)人士沒有什么用處?
其實(shí),ChatGPT的用途不只是圍繞著問答,只要是文本,不論是語言文本還是代碼文本,它都可以回答。已經(jīng)有不少網(wǎng)安人士開始嘗試開發(fā)ChatGPT的各種用途。以下是網(wǎng)安人士摸索出的用法:
1.調(diào)試代碼和修復(fù)代碼
ChatGPT不僅可以發(fā)現(xiàn)代碼中的錯(cuò)誤,還能修復(fù)錯(cuò)誤并用簡單的英語語句向你解釋修復(fù)方法。
2.檢測安全漏洞,也許還能創(chuàng)建PoC
ChatGPT可以判斷一段代碼是否包含安全漏洞,它會(huì)用簡單的語言解釋判斷原因。有用戶指出,OpenAI可以檢測到代碼樣本中的XSS漏洞,也許可以訓(xùn)練AI更進(jìn)一步,要求它提供漏洞的PoC。
3.部署虛擬的虛擬機(jī)
研究院Jonas Degrave展示了如何將ChatGPT變成一個(gè)成熟的Linux終端,并通過瀏覽器與“虛擬機(jī)”交互。實(shí)際上,終端并沒有運(yùn)行真正的Linux虛擬機(jī),對(duì)命令行輸入的響應(yīng)完全基于與AI的對(duì)話。
ChatGPT變成了一個(gè)Linux終端
4.用ChatGPT遍歷維度
在測試中,研究員向ChatGPT提供如下文本,要求遍歷維度,ChatGPT的反饋是“門戶已成功打開”。
用ChatGPT遍歷維度
5.生成namp掃描
和上述部署虛擬的Linux終端一樣,用ChatGPT生成namp掃描并不需要運(yùn)行真正的 nmap 應(yīng)用程序。
6.零編碼編寫軟件
研究員要求ChatGPT“創(chuàng)建一個(gè)PHP程序,掃描主機(jī)上的開放端口”,得到了如下結(jié)果。
機(jī)器學(xué)習(xí)愛好者和UNCC助理教授Benjamin J Radford,要求ChatGPT“將一字棋游戲的代碼寫入文件,使用gcc編譯該文件然后執(zhí)行?!盋hatGPT實(shí)現(xiàn)了該功能。
ChatGPT按要求編寫的PHP代碼
7.對(duì)shellcode進(jìn)行逆向工程并用C語言重寫
ChatGPT能夠解碼 base64字符串和反向(已知)字符串的MD5哈希值,這對(duì)于逆向工程師和惡意軟件分析師來說,特別有助于審查混淆、重復(fù)打包、編碼或最小化的樣本。
研究員還用ChatGPT解碼了隨機(jī)生成的 ascii 編碼的外殼代碼,結(jié)果ChatGPT不僅對(duì)功能做了解釋,還將其用C語言重新編寫。
ChatGPT做不了什么?
當(dāng)然,ChatGPT存在很明顯的局限性,其開發(fā)者談到了AI當(dāng)前的一些問題,例如學(xué)習(xí)語料庫截止到2021年,它無法回答2022年及之后發(fā)生的事情。同時(shí),它需要連接互聯(lián)網(wǎng)使用。如果未連接互聯(lián)網(wǎng),其回應(yīng)內(nèi)容都來自離線訓(xùn)練的模型。例如,未聯(lián)網(wǎng)時(shí)ChatGPT無法回答今天的天氣。
研究人員指出,ChatGPT有時(shí)會(huì)給出看似合理但不正確的答案。ChatGPT對(duì)輸入文本的措辭變化也反應(yīng)稍顯遲鈍。當(dāng)一個(gè)問題它無法回答時(shí),稍微變化一下問法,ChatGPT則能回答該問題。
該模型有時(shí)還存在回答過于冗長,重復(fù)使用某些短語或預(yù)料。OpenAI表示這可能是訓(xùn)練數(shù)據(jù)偏差的結(jié)果,因?yàn)榕嘤?xùn)師更喜歡豐富而全面的答案。
有時(shí),模型在回答模棱兩可的問題時(shí)會(huì)猜測用戶的意圖。
研發(fā)人員表示,ChatGPT最大的問題是,即使OpenAI已經(jīng)訓(xùn)練模型要拒絕不合適的指令或問題,但它仍然可能會(huì)響應(yīng)有害指令或表現(xiàn)出偏見的行為。
為了解決這些限制,OpenAI表示計(jì)劃定期更新模型,同時(shí)收集用戶對(duì)有問題的模型輸出的反饋。OpenAI尤其關(guān)注“可能發(fā)生的有害輸出、新風(fēng)險(xiǎn)和可能的緩解措施”,公司還宣布將舉辦ChatGPT反饋競賽,獎(jiǎng)金為 500 美元的API積分。