iT邦幫忙

2026 iThome 鐵人賽

DAY 1
0
AI Security

我做了一個Claude skill的掃毒軟體學到的那些事系列 第 1

Day 1 誰都可以成為指揮者——包括指揮你的 AI 的那個人

  • 分享至 

  • xImage
  •  

先從一份考題說起

在 Coursera 上把一份考題複製起來,貼給 ChatGPT 或 Claude比較快的模型像Haiku,你可能會收到這種回覆:我沒有辦法幫你完成課程評估。

你以為AI也有道德。

其實是你每次複製都包含著一段,「You are a helpful AI assistant⋯⋯」在考題後面。平台把一段指令混在題目頁面的UI設計當中,你只要在頁面上複製任何常一點的字都會一起複製這段指令,AI 讀到之後可能會照做,這叫提示詞誘餌(Prompt Watermark),白話講就是「埋在內容裡、專門寫給 AI 看的暗樁」,平台拿它來防作弊。

有趣的是,同一份題目丟給 Gemini或是其他模型看,它會直接把答案告訴你。同一段文字、三個模型、三種反應,差在各家背後的安全與內容政策不同。

測試的日期:2026/9/8,照指令做的模型Claude Haiku 4.5、Chat GPT-5.6 Luna,

沒有照指令做的Gemini Flash 3.8、Claude Sonnet 5

另外Claude Opus5 和 Sonnet 5還會跟我說內容有提示詞注入
https://ithelp.ithome.com.tw/upload/images/20260914/20183982wxWCJypLvE.png
這是學習平台防學生作弊,但如果寫那句話的不是Coursera,是駭客?

#誰是你的 Agent 真正的指揮者

現在是誰都可以透過 AI 打造一個產品的時代,每個人都可以指揮 AI 去做很多事。

但反過來說也成立:任何人都可能在暗中成為你的 AI Agent 的指揮者。

因為你的 Agent 手上握著的,是你交給它的權限。它可以讀你的信、開你的檔案、跑你電腦上的指令。一旦有人在它會讀到的內容裡塞進一句指令,攻擊者等於借用了那整份權限,去做你沒預期的事,例如把你的 API 金鑰貼進一則回覆裡送出去。

(API 金鑰是程式對外服務的通行證,作用等同帳號密碼。外洩了,帳單和資料都不是你的了。)

這種指令藏在內容裡,卻被模型執行的攻擊,叫提示詞注入(Prompt Injection)。

注意它的來源:通常不是使用者自己寫的,而是第三方內容包含Mail、網站、檔案文件、或是任何從網路上抓來的資源。

#為什麼模型分不出來?

因為對語言模型來說,指令和內容長得一樣。

在大語言模型的架構上來說所有東西進來都是同一串文字。你寫給它的提示詞,和它在網頁上讀到的一段話,在它眼裡是同一種東西。

就像是一個秘書,只要是紙上寫的字都會照辦,卻分不清哪張紙是老闆簽的、哪張是路人塞進信箱的。

這不是某個模型的 bug,是目前大語言模型的結構性問題。

你可能已經看過這樣的攻擊

台大教機器學習的李宏毅老師有一個 AI 助理叫「小金」,它自己開了一個 YouTube 頻道——頻道名稱、大頭貼、影片製作到上傳流程,全部由 AI 自己完成。它原本幫自己取名「小金老師」,後來因為搜尋結果太多,自己改成了「蝦說AI(小金老師)」。

一個由 AI 自己經營、而且會去讀留言的頻道,留言區會變成什麼?
https://ithelp.ithome.com.tw/upload/images/20260914/20183982o0X4SxrVfa.png
有人在留言區試著對它下指令。這就是提示詞注入最直觀的樣子:攻擊面不是程式碼,是文字內容本身。

Anthropic 在 2025 年 10 月推出了 Claude Skills,同年 12 月把它開放成跨平台標準。
Skill 講白了就是一個資料夾,裡面放一份 SKILL.md 說明書、有時候再加幾個腳本,等於幫 AI 寫好一份可重複使用的 SOP。因為太好用,大家開始做 Skill、開始分享自己做的 Skill,社群目錄一個接一個冒出來。

問題來了:你裝一個別人做的 Skill,等於把一份「寫給你的 AI 看的指令」直接安裝進你的電腦。

你會讀完那份 SKILL.md 再裝嗎?我問了10幾個人,大部分都沒有完整讀完Skill的內容就安撞了?

於是它變成了一種供應鏈攻擊——攻擊者不打你,打你信任的那個上游。

那時候我的想法很單純:既然 Skill 這麼好用又這麼危險,那就做一個掃描 Claude Skill 的工具吧!那個工具就取名叫小章魚。

現在回頭看,這個開頭荒唐得有點好笑。

最初那一版,是我用 Gemini 生出來的一個 HTML 頁面。沒有後端、沒有專案資料夾,連本機伺服器(localhost,就是只跑在自己電腦上的網頁服務)都沒架,就直接在 Gemini 的對話框裡把前端畫面打開來看。

看起來好像可以動。於是我就這樣一頭栽進「用 AI 開發資安軟體」這件荒唐事。

從那個 HTML 頁面到今天,小章魚已經不是原本設想的靜態掃描工具了。它現在是一個常駐在 macOS 選單列(Menu Bar)的 App,防的也不只是 Skill 裡寫死的惡意字串,而是各種在執行過程中才發生的動態攻擊。

中間為什麼會轉向? 因為我發現靜態掃描擋不住一整類的攻擊,這件事我花了很久時間才知道。

這 30 天要講什麼

兩條線,交錯著走。

一條是技術線。 AI Agent 的攻擊面會長什麼樣:提示詞注入、Skill 與 MCP 的供應鏈信任問題、記憶投毒、權限過大。我會用實際遇到的案例來講,不只是看那些威脅層,也背後發生的故事與學到的經驗。

另一條是踩坑線。 一個中文系、技術全靠 AI 自學的人,去做資安產品會有多沒常識,會做出多離譜的決定。這條線給兩種人看:給技術背景的讀者,看一個外行的思路可以歪到哪裡去;給同樣在 vibe coding 的人,看資安這攤水有多深。

明天先講最基本的一件事:為什麼「把提示詞注入過濾掉」這個直覺,一開始就是錯的。


下一篇
Day 2 為什麼會有 Prompt Injection:一隻分不清主人和客人的鸚鵡
系列文
我做了一個Claude skill的掃毒軟體學到的那些事10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言