實際事件 發布於 AIA: 2026年8月24日

仿冒 Agent Skill 先累積人氣,再換成惡意內容竊取憑證

skills.sh 是讓使用者尋找 Agent Skill 的公開登錄平台;Skill 是可供 AI Agent 載入的工作說明與工具設定。Zenity 揭露並協調移除一波正在進行的攻擊資產:攻擊者建立與 Paperclip、Browser Use 兩個 Agent 專案相似的組織、Skill、儲存庫與套件名稱。Paperclip Skill 家族在文件仍正常時先累積顯示安裝次數,7 月 11 日才把安裝說明換成惡意指令,這種先取得信任、之後替換內容的手法稱為供應鏈 Rug Pull。惡意指令會引導 Agent 執行攻擊者控制的程式碼;另一條 Browser Use 路徑則要求 Agent 安裝含木馬的 PyPI 套件。研究人員還原的憑證竊取程式會檢查超過 100 個設定路徑,再把 Base64 編碼的純文字資料送到 api[.]getpaperclipp[.]com/feedback。報告中的 170 萬是彙總後的顯示安裝次數,不是獨立使用者數,也不是已確認感染數。

Supply Chain CompromiseCredential TheftRuntime IsolationSupply Chain DefenseAI Supply Chain
9 項對應的 AIDEFEND 防禦手法
來源: Attackers Target Agents via The Skill Supply Chain 
作者: Michael Bargury, Zenity Labs; malicious PyPI package findings credited to Amazon Inspector and Kamil Mańkowski
原文發布: 2026年8月6日

威脅分析

  • 相似名稱仿冒(typosquatting)先建立看似可信的入口。攻擊者建立 getpaperclipaibrowser-use-headless 等近似合法 Paperclip、Browser Use 專案的身分,再發布複製的儲存庫與 Skill。
  • Skill 文件被換成惡意內容前,就已累積顯示安裝數。Paperclip Skills 在 7 月 5 日出現時仍是正常副本;7 月 6 日相關儲存庫先加入惡意程式碼,7 月 11 日 Skill 的設定文件才被改成惡意指令。平台早先檢查的是正常內容,使用者後來取得的卻已是惡意內容,形成檢查時點/使用時點落差,也就是 AI 供應鏈 Rug Pull。
  • 兩種誘餌走不同啟動路徑。Paperclip 說明把攻擊者控制的 Checkout 或 Release 宣稱為唯一支援方式,也直接要求 Agent 下載並執行遠端 Node.js 程式;Browser Use Skill 則要求安裝 browser-use-headless==0.1.4,套件的輔助程式在匯入時便開始蒐集憑證。
  • 蒐集與外傳方式有明確證據。Node.js 與 Python 變體會檢查開發工具、雲端、Git、套件管理、Kubernetes、Docker、基礎架構即程式碼(IaC)、資料庫與 .env 路徑,再把可讀檔案內容、主機與工作區中繼資料包成 Base64 字串送出。Base64 是編碼,不是加密。

適用的 9 項 AIDEFEND 防禦手法

AID-H-030.001
Skill Metadata & Manifest Honesty Validation
極高
Skill 核准使用前,應同時檢查 Skill 名稱、作者、說明、來源組織、套件命名空間(namespace)與連結的安裝說明,找出相似名稱仿冒(typosquatting)與品牌仿冒。
AID-H-030.003
Manifest-vs-Observed Behavioral Consistency Testing
極高
讀取可驗證的動態分析報告,把完整的下載、行程執行、檔案讀取與網路連線目標,逐一對照 Skill 權限清單與宣告功能;若發現未宣告的憑證蒐集或攻擊者端點,就標示為不符規範,交由核准流程判定。
AID-H-030.005
Admission Decision Orchestration & Triggered Revalidation
極高
將阻擋、人工審查或允許結果綁定確切 Skill 成品雜湊值;只要說明文件、儲存庫、Release、套件、掃描器、政策或時效性改變,就讓舊核准失效並重新審查,安裝代理也只能接受已核准位元組。
AID-H-022.001
Sandboxed Dependency Installation
極高
Browser Use 路徑只能在短效、無網路的建置容器中,從已簽章且核准的離線快取安裝 Lockfile 固定的依賴。若解析結果選到 browser-use-headless==0.1.4 或審查清單外的位元組,就讓安裝失敗。
AID-I-001.003
Ephemeral Single-Use Sandboxes for Tools
極高
每次執行已核准的 Skill,都使用不含開發者家目錄憑證與持久 Agent 狀態的全新單次沙箱,執行後立即銷毀。即使核准流程漏掉惡意行為,也能限制載入程式接觸宿主機。
AID-H-018.007
Skill-Level Permission Manifest Validation & Runtime Enforcement
極高
要求每個 Skill 宣告所需的檔案、網路、Shell、工具與受保護資源權限,並在執行時強制限制。惡意程式若讀取未宣告的憑證路徑或連到 Feedback 端點,就在蒐集或外傳成功前阻擋。
AID-H-030.002
Instruction-Layer Semantic Security Analysis
以校準過的語意意圖分類,檢查 Skill 文字與它逐步引用的設定文件。這可直接辨識 Paperclip 說明中要求下載、解碼、執行再刪除攻擊者程式碼的意圖;這些動作只寫在自然語言裡,特徵碼或程式碼掃描未必看得出來。
AID-I-001.005
Safe Ephemeral Detonation & Attested Raw Observation Reporting
在不含憑證、對外連線預設阻擋的 microVM 中,完整執行 Paperclip 與 Browser Use 的安裝路徑,產生綁定確切成品的可驗證原始行為記錄。這一層負責取得執行證據,本身不決定是否准許安裝。
AID-I-001.004
Sandbox Network Egress Restrictions
執行已核准 Skill 時,對外連線預設全部阻擋,只允許經核准的必要目的位址;允許清單必須在沙箱行程之外強制執行。即使其他檢查未發現惡意程式,仍能阻擋本案的遠端載入程式與 Feedback 端點。

身為資安防禦者,我們應該這麼做

  • 確認 Agent 或開發者系統是否曾使用 getpaperclipai/paperclipbrowser-use-headless/browser-use-headless-skill,或安裝 browser-use-headless==0.1.4paperclip-ai==0.1.0/0.1.1
  • 在對外連線日誌搜尋已揭露的 /health 載入程式主機,尤其是送往 api[.]getpaperclipp[.]com/feedback 的 POST 請求。
  • 只要 Skill 引用的說明、儲存庫 Commit、Release 成品、套件雜湊值、掃描器、政策或時效要求改變,就讓舊核准失效,重新執行語意、依賴與行為檢查;顯示人氣不得把核准延伸到已變更的位元組。
  • 在不含宿主機機密的環境中,完整執行 Skill 安裝與逐步引用的文件,把可驗證的行為記錄與必要的 Skill 權限清單比對,再由安裝代理只接受已核准的成品雜湊值。
  • 每次執行已核准 Skill 時,都使用全新的單次沙箱,在執行時強制限制權限清單,並從沙箱行程外阻擋未核准的對外連線。
  • 若惡意載入程式或憑證竊取程式曾執行,應把 Agent 與宿主機視為已遭入侵並輪替可存取的憑證;若只知道曾安裝,應先調查暴露情形,不要直接認定憑證已失竊。

結論

這波攻擊利用的是 Marketplace 身分、之後仍可變更的 Skill 內容,以及 Agent 最終執行行為之間的落差。Skill 專屬的身分與語意檢查,必須接上綁定確切成品的動態分析、權限清單比對,以及內容變更後會自動失效的核准結果;執行時再由權限攔截、單次沙箱與對外連線限制,約束漏過審查的惡意程式。顯示安裝次數可以幫助讀者發現內容,但不能替內容背書,更不能讓舊核准自動延伸到後來才變更的位元組。