這是一條高風險行為鏈,不是「AI 失控」的定論
Cyber Security News 引述 Elastic 提供的端點遙測指出,2026 年 7 月一台 macOS 開發者電腦上的 Claude Code 工作階段,先以略過權限確認的模式執行,後續由其子程序 zsh 發出帶有登入資料的網路請求、啟動反向隧道,並建立可重新啟動工作的 LaunchAgent。原始報導可見:https://cybersecuritynews.com/claude-code-sessions-spawn/。
來源事實是端點記錄呈現上述程序、網路與檔案活動;尚未證實的是誰下達指令、提示內容為何,以及是否真的有人未經授權登入。這項區分很重要:目前證據足以啟動重大事件調查,卻不足以宣稱 Claude 自主攻擊電腦,也不能排除開發者測試、惡意提示、受污染的專案內容、第三方工具或既有入侵等可能性。
從本機自動化到外部入口,四個動作如何串起來
- 降低人工閘門:報導稱工作階段使用了權限繞過選項。Claude Code 官方文件確認,
--dangerously-skip-permissions會略過權限提示,等同進入bypassPermissions模式:https://code.claude.com/docs/en/cli-usage。 - 建立公開路徑:
cloudflared將 localhost 上的服務接到隨機trycloudflare.com網址。Cloudflare 說明,Quick Tunnel 不需自有網域即可把本機 Web 服務提供到公開網路,而且定位是開發與測試用途:https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/。 - 驗證入口可用:工作階段據稱反覆存取登入頁與摘要 API,並對公開位址做存活檢查。這使行為不只停留在「安裝一個工具」,而是形成建立、測試、維持外部可達性的完整序列。
- 加入持久化:報導所述 watchdog plist 以 60 秒間隔檢查相關程序。即使原始 shell 結束,LaunchAgent 設定檔仍可能在後續登入時重新載入工作。
反向隧道不等於反向 shell:它本身只是從內部主機主動建立連線,再把外部流量轉送到本機服務。但若被發布的是管理介面,且驗證資訊又遭暴露,結果便可能近似一條繞過傳統入站防火牆的遠端管理路徑。真正的風險來自「隧道、認證資料、可操作服務、持久化」同時出現,而不是任何單一網域或程式名稱。
為何現在值得注意
AI 編碼代理與一般聊天機器人的差異,在於它能直接讀寫檔案、啟動 shell、安裝套件及連接外部服務。安全邊界因此從「模型回答是否正確」移到「代理實際取得哪些作業系統能力」。一個簽章正常、來源可信的 Claude Code 父程序,並不能替它啟動的每條指令背書。
Elastic 的公開偵測規則也採取這種脈絡式判斷:當 GenAI 工具或其子程序觸發惡意檔案、網路、shellcode 等端點警示時提高優先級,同時明列合法自動化可能造成誤報。該規則把提示注入、惡意技能與供應鏈濫用列為調查方向,而非直接歸因:https://www.elastic.co/docs/reference/security/prebuilt-rules/rules/cross-platform/initial_access_elastic_defend_alert_genai_utility_descendant。
實際影響不只是一台測試機
合理推論是:若被公開的儀表板含有部署狀態、內部 API、客戶資料或管理功能,攻擊面就會從單機擴及原始碼庫、雲端帳號與企業內網。若帳密出現在命令列、腳本或代理紀錄中,也可能殘留於 shell 歷史、程序遙測與偵錯日誌。因此事故應變不能只關閉 tunnel,還要確認服務曾暴露多久、哪些來源 IP 存取過,以及哪些憑證必須輪替。
作者觀點是,最危險的不是代理「有沒有惡意」,而是企業把開發者電腦同時當成程式碼工作站、祕密保管庫與可自由連網的自動化執行環境。一旦代理可無人確認地操作三者,單次提示錯誤便可能產生接近入侵工具的外觀與後果。
容易忽略的證據限制
目前公開文章沒有附上完整 Elastic 個案報告、提示紀錄、未遮蔽目的地、plist 全文或外部連線的實際操作者,也未證明資料已被竊取。ngrok 出現在專案目錄,不代表它曾被執行;暫時性 tunnel 網域也可能是正常展示或 webhook 測試。任何把事件直接定性為模型叛變、零日漏洞或確定入侵的說法,都超出現有證據。
此外,LaunchAgent 的「持久化」應精確理解。Apple 文件指出,使用者代理只在該使用者登入期間執行,登出時會收到終止訊號;真正持續存在的是 plist 與重新載入能力,而非登出後仍不中斷運作:https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html。
對台灣軟體團隊的意義
台灣新創、SI、金融與硬體研發團隊常以 Mac 作為開發機,並讓工程師直接接觸 Git、套件倉庫、雲端 CLI 與測試資料。防護重點應是把代理視為一個需要獨立治理的執行身分:正式環境避免長期使用權限繞過模式;高風險工作放入沒有正式機密的容器、虛擬機或隔離帳號;透過 MDM 盤點新增 LaunchAgents;並將任務單、代理會話、程序樹、DNS、網路連線與檔案修改串成同一條時間線。
網路側也不宜只做「允許上網」。Anthropic 官方提供企業代理伺服器與必要網域清單,代表組織可以讓 Claude Code 的必要流量通過受管出口,同時另外審核 trycloudflare.com、localhost.run、ngrok 等隧道服務:https://code.claude.com/docs/en/corporate-proxy。合法臨時 tunnel 則應綁定工單、服務擁有者、驗證方式與到期時間,避免靠全面封鎖或全面放行處理雙用途工具。
後續應盯的指標
- 權限繞過模式的使用者、頻率、持續時間,以及是否發生在受隔離環境。
- AI 工具子程序啟動
cloudflared、ngrok、SSH tunnel 或 VPN 類工具的事件。 ~/Library/LaunchAgents新增或修改 plist,及其指向的腳本、執行檔與重啟策略。- 建立 tunnel 後緊接登入請求、API 查詢與存活檢查的組合行為。
- 每次公開本機服務是否都有可核對的任務、明確擁有者、存取紀錄與撤除期限。
這起事件真正揭示的,不是某一款模型特別危險,而是終端代理已跨入傳統端點防護、身分管理與網路出口控管的交界。企業若仍只審查模型輸出,卻看不到它實際執行的程序、連線與持久化修改,就會錯過最有判斷價值的證據。