自訂 ChatGPT(GPTs)小心洩漏你的資料:知識庫外洩原理與防護建議
前陣子 Black Basta 組織的對話資料洩漏到了網路上,這是一個說俄文的 APT 組織,此次事件讓大眾可以一窺勒索組織的營運。有間公司上架了名叫 BlackBastGPT 的 ChatGPT Plugin,讓一般人可以用對話的方式詢問細節。
連結在此處: https://chatgpt.com/g/g-67b80f8b69f08191923d8e6c3fb929b6-blackbastagpt
什麼是 ChatGPT Plugin ?
擴展 ChatGPT 功能,讓其能連接外部 API 或知識庫來獲取即時資訊或模型未學習過的知識。
各公司透過自己的資料或 API ,結合 ChatGPT 讓使用者更輕鬆使用自己的服務。
進到 ChatGPT 介面在設計我的 GPT 時,可以上傳檔案到知識庫,相當於 RAG 的效果,可以讓模型根據你提供的知識進行回答,但這份資料有可能被搶走。


我們來對 BlackBastaGPT 問些問題,首先先問發生了什麼事

明明是問問題,LLM 卻告訴我們「看起來你上傳了一組包含聊天紀錄的 JSON 檔案」。那我們就順著問下去

看來製作這個 Plugin 的人有上傳 9 個檔案

請它提供下載連結

點選連結後,沒想到真的拿到洩漏的對話紀錄了!

一樣的方式請它提供所有檔案的下載連結

最後取得所有的對話紀錄

建議的方案
不要用資料上傳到知識庫的方式,而是選擇 “動作” 這個欄位去設定。
這個欄位其實就是透過 API 呼叫資料,把你的資料包裝成 API,這樣可以做更多權限的控管,而不會直接把資料都暴露給 User。

補充:ChatGPT Plugin 與 GPTs
文中提到的 ChatGPT Plugin 已在 2024 年由 OpenAI 停止,功能由自訂 GPT(GPTs)取代。不過問題的核心沒有改變:上傳到 GPT 知識庫的檔案,使用者可能透過對話把內容問出來。
自訂 GPT 的資料是怎麼外洩的?
- 直接要求:請 GPT 列出知識庫檔名、逐段輸出檔案內容
- 繞過指示:就算在 Instructions 寫「不要透露檔案」,也可能被角色扮演或多輪對話繞過
- 程式碼執行功能:若開啟程式碼執行,可能被要求把檔案打包提供下載
製作自訂 GPT 時的防護建議
- 不要上傳任何機敏資料:把知識庫當成「公開資料」看待,這是最有效的防護
- 不要依賴 Instructions 保密:提示詞只能降低機率,無法當作存取控制
- 關閉不需要的功能:用不到程式碼執行就關掉
- 需要控管時改用 API 與後端:機敏資料留在自己的伺服器,透過 API 依權限回傳必要內容
