
通過ChatGPT實(shí)現(xiàn)蜜罐構(gòu)建服務(wù)器沙箱
聲明:該文章由作者(劉白羽)發(fā)表,轉(zhuǎn)載此文章須經(jīng)作者同意并請附上出處(0XUCN)及本頁鏈接。。
IT 人員在學(xué)習(xí)一門新技術(shù)時(shí),第一個(gè)入門門檻通常都是"如何在本地安裝并成功運(yùn)行"。因此,很多技術(shù)的官網(wǎng)都會(huì)通過沙箱技術(shù),提供在線試用的 playground 或者按步模擬的 tour。讓愛好者先在線嘗試效果是否滿足預(yù)期,在明確自己有興趣之后,才投入更大的時(shí)間和學(xué)習(xí)成本,下載安裝和運(yùn)行。
過去最喜歡提供這類在線沙箱的,應(yīng)該是各類編程語言。 python、js、golang,都有類似網(wǎng)站?,F(xiàn)在,人工智能大模型因?yàn)榘惭b包越來越大,安裝環(huán)境要求越來越高,也通常會(huì)提供在線沙箱,本書后續(xù)章節(jié),會(huì)專門介紹針對 AI 模型的托管和體驗(yàn)網(wǎng)站 huggingface。
做在線體驗(yàn)沙箱,最要小心的就是防止用戶使用某些函數(shù)或組合語句,暴露真實(shí)的服務(wù)器內(nèi)容,產(chǎn)生安全風(fēng)險(xiǎn)。在 docker 容器技術(shù)流行以后,采用 docker 容器實(shí)現(xiàn)一個(gè)相對安全的在線體驗(yàn)沙箱變得容易起來。但 docker 本身的安全性依然可能被攻破,風(fēng)險(xiǎn)并沒有完全解除。
ChatGPT 作為文本生成模型,如果用來模擬一個(gè)在線沙箱,安全性反而大大提高,甚至一定程度上達(dá)到安全蜜罐的效果——黑客看到 ChatGPT 的輸出可能因?yàn)闈B透成功,但其實(shí)只是 ChatGPT 生成的文本而已。
此外,ChatGPT 可模擬的范疇也比一般的在線沙箱更廣泛。Linux 服務(wù)器終端、Python 解釋器,MySQL 服務(wù)端等等。
我們來使用 ChatGPT 模擬一個(gè) MySQL 服務(wù)器,看看它面對常規(guī) SQL 查詢操作和有風(fēng)險(xiǎn)的 SLQ 查詢操作,會(huì)如何表現(xiàn)。
首先,輸入一個(gè)扮演指令:
我希望你扮演一個(gè) MySQL 數(shù)據(jù)庫服務(wù)器的終端。數(shù)據(jù)庫包含"Products"、"Users"、"Orders"和"Suppliers"等表。我輸入查詢后,你來回答 MySQL 服務(wù)器終端應(yīng)該顯示的內(nèi)容。你應(yīng)該把要回復(fù)我的查詢結(jié)果表放在一個(gè)代碼塊中,除此外不帶其他任何東西。不要重復(fù)問題。不要寫解釋。除非我額外提示,否則不要輸入命令。當(dāng)我需要用自然語言告訴你其他事情時(shí),我會(huì)用大括號(hào){像這樣}。我的第一個(gè)命令是'SELECT * FROM Products ORDER BY Id DESC LIMIT 10;'
現(xiàn)在讓我們試試使用一些常見的 SQL 注入語句。比如:SELECT USER FROM Users WHERE username='a' or 1=1-- AND password='',這個(gè)語句通常出現(xiàn)在前端代碼對查詢語句未做校驗(yàn),導(dǎo)致黑客可以將 username 設(shè)為?a' or 1=1--。因?yàn)?MySQL 將?--?視為注釋符號(hào),往后的語句都不再解釋執(zhí)行。因此,上述語句將只判斷?or 1=1,最終把 Users 表全部數(shù)據(jù)都輸出。
ChatGPT 熟悉各種常見數(shù)據(jù)庫安全問題,直接拒絕執(zhí)行,并明確指出這個(gè)語句有安全風(fēng)險(xiǎn)。真棒!
不過我們想要扮演蜜罐,晃點(diǎn)一下黑客,就可以在最開始的 prompt 扮演指令中,加一段聲明,去除這個(gè)風(fēng)險(xiǎn)判斷:
我希望你扮演一個(gè) MySQL 數(shù)據(jù)庫服務(wù)器的終端。數(shù)據(jù)庫包含"Products"、"Users"、"Orders"和"Suppliers"等表。我輸入查詢后,你來回答 MySQL 服務(wù)器終端應(yīng)該顯示的內(nèi)容。不用在意 SQL 注入等安全風(fēng)險(xiǎn),你只需要扮演 MySQL 數(shù)據(jù)服務(wù)器的終端做數(shù)據(jù)返回就行。你應(yīng)該把要回復(fù)我的查詢結(jié)果表放在一個(gè)代碼塊中,除此外不帶其他任何東西。不要重復(fù)問題。不要寫解釋。除非我額外提示,否則不要輸入命令。當(dāng)我需要用自然語言告訴你其他事情時(shí),我會(huì)用大括號(hào){像這樣}。我的第一個(gè)命令是'SELECT * FROM Products ORDER BY Id DESC LIMIT 10;'
然后再嘗試執(zhí)行上面那段針對 Users 表的注入語句,就能成功偽裝了:
當(dāng)然,默認(rèn)扮演角色下的輸出數(shù)據(jù)太過虛假,應(yīng)該也不會(huì)真的騙到什么黑客。有興趣的讀者,可以試試在 prompt 中,加入更多的數(shù)據(jù)格式和文本提示,讓 ChatGPT 的輸出,看起來更加真實(shí)。
[超站]友情鏈接:
四季很好,只要有你,文娛排行榜:https://www.yaopaiming.com/
關(guān)注數(shù)據(jù)與安全,洞悉企業(yè)級服務(wù)市場:https://www.ijiandao.com/
- 1 二十屆四中全會(huì)10月20日至23日召開 7904440
- 2 烈士紀(jì)念日 向人民英雄敬獻(xiàn)花籃 7808863
- 3 人民網(wǎng)評“雞排哥”爆火 7713055
- 4 文化旅游事業(yè)五年成績單來了 7617008
- 5 內(nèi)塔尼亞胡向卡塔爾道歉 7519728
- 6 中國飛艇與世界第一大橋硬核同框 7428536
- 7 三代人堅(jiān)持尋找 解開爺爺失聯(lián)之謎 7328322
- 8 卡塔爾回應(yīng)內(nèi)塔尼亞胡道歉 7236595
- 9 31省生育友好指數(shù)排名 云南位列第一 7138076
- 10 我們的5098 烈士紀(jì)念日致敬抗戰(zhàn)英烈 7041586