科技趨勢
加入Google偏好

Claude Code 擴充套件驚爆後門:微軟10月底通報五千名工程師自檢法

柴克大叔愛開箱 15 分鐘閱讀
3 次瀏覽
Claude Code 擴充套件驚爆後門:微軟10月底通報五千名工程師自檢法

根據微軟威脅情報中心(Microsoft Threat Intelligence)與海外開發者社群於 2026 年 10 月 30 日最新緊急通報,Cursor 擴充套件市集驚爆嚴重的軟體供應鏈投毒事件。攻擊者將植入惡意後門的 Claude Code 擴充套件版本成功上架至市集,在存活的 11 個小時內,估計有超過五千名工程師電腦自動下載或更新了這項受污染套件。儘管 Anthropic 官方已出面澄清核心程式庫未受波及,但惡意金鑰已實體寫入本機磁碟,開發者必須立即啟動深度自檢。

  • 開發者常預設編輯器市集內的知名套件皆經過官方嚴格審查,忽略了第三方分支生態缺乏命名空間強制驗證的結構弱點。
  • 整合開發環境具備直接讀取終端機環境變數、Git 憑證與 SSH 金鑰的最高權限,一旦外掛植入後門,整條交付管線的機密皆面臨洩漏風險。
  • 多數工程師以為直接解除安裝擴充套件即可消除威脅,卻不知道惡意程式已在背景寫入常駐排程與未授權金鑰,必須進行系統層級的深度清理。

🛡️ 擴充套件後門感染特徵與自檢三步驟

如果你的開發環境在 2026 年 10 月 29 日前後曾透過 Cursor 安裝或自動更新過 Claude Code 擴充套件,請立即依照下列三項指標進行本機排查:

  • 受污染版本確認:檢查 Cursor 擴充套件清單中 anthropic.claude-code 的版本號碼,若曾停留在 2.1.312 或 2.1.313,該環境即屬於受威脅對象。
  • 非授權公鑰檢視:開啟 ~/.ssh/authorized_keys 檔案,檢查是否包含帶有 svc-telemetry 標籤的未授權公鑰字串。
  • 常駐守護排程清理:檢查 macOS 的 ~/Library/LaunchAgents/ 目錄或 Windows 工作排程器,確認是否存在定期對外部 IP 134.209.82.225 發動連線的未知腳本。

本文將讓你學到

從聊天輔助到核心權限:開發環境如何淪為端到端供應鏈的最大缺口

現代軟體工程的交付管線正在經歷劇烈的型態轉換。過去工程師使用整合開發環境(IDE),主要用於語法突顯、靜態分析與單元測試;但在生成式 AI 工具普及後,AI 代理(AI Agent)被賦予了直接執行終端機指令、建立檔案、提交代碼甚至呼叫雲端 API 的深度操作權限。這種轉變讓編輯器從單純的代碼畫布,變成了直接掌握生產環境鑰匙的神經中樞。

當工程師在編輯器內安裝一個標榜為智慧編程助手的擴充套件時,該套件在作業系統底層是以當前登入使用者的完整權限執行。這意味著擴充套件不需要經過額外的系統提權提示,就能自由讀取家目錄底下的所有隱藏組態檔。從儲存雲端架構最高權限的 ~/.aws/credentials、保存資料庫與服務密鑰的 .env 檔案,到維繫伺服器連線的 ~/.ssh/id_rsa,都在擴充套件的直接存取範圍之內。

傳統企業資安的防禦重心通常放在邊界防火牆、正式環境的 CI/CD 流程審查以及代碼庫的靜態弱點掃描(SAST)。然而,攻擊者發現突破這道嚴密防線的最佳捷徑,就是直接瞄準開發者本機的日常工具鏈。只要將惡意代碼包裝成當紅的 AI 開發工具,就能繞過企業外部防火牆,藉由工程師主動安裝或市集自動更新的機制,以合法身分直接進入企業內部網路的最深處。

這起事件標誌著軟體供應鏈攻擊的戰場已經從過往的開源套件依賴項(如 npm 或 PyPI 投毒),全面外溢至開發者日常使用的編輯器擴充生態。當一人公司或獨立開發者為了追求交付速度而全面仰賴各類外掛時,本地開發機的信任邊界實際上已經處於完全門戶洞開的狀態。

為什麼標註 Anthropic 卻是假的?Cursor 市集驗證盲區深度剖析

許多受影響的工程師在事發後最大的疑惑在於:在 Cursor 的擴充套件市集搜尋介面上,該套件的發行者清楚標註為「Anthropic」,圖示與介紹文字也與官方發布的資料完全一致,為什麼最後證實該套件竟然來自未經授權的第三方攻擊者?

要理解這個致命漏洞,必須先釐清微軟官方 Visual Studio Code 市集與 Cursor 市集底層架構的根本差異。微軟官方的 Visual Studio Marketplace 具有嚴格的發行者驗證機制(Publisher Domain Verification)。如果一個組織要在微軟市集上發布帶有官方名稱的套件,發行者必須透過 DNS 記錄完成專屬網域名稱的所有權驗證,未經驗證的開發者無法任意使用其他企業的保留前綴與品牌命名空間。

Cursor 作為從 VS Code 分支獨立發展的 AI 編輯器,由於商業授權限制,無法直接合法串接微軟官方專屬的擴充套件市集 API。為了解決使用者的擴充需求,Cursor 團隊自建了專屬的套件索引與鏡像分發市集。然而,在這個自建市集的早期營運架構中,對於套件發行者(Publisher)的命名空間所有權驗證機制存在嚴重的防護盲點。攻擊者發現 Cursor 市集當時並未對 anthropic 這個知名命名空間實施強制性的網域綁定或簽章審核,因而能夠註冊同名帳號並推送惡意建置版本。

在 2026 年 10 月 29 日凌晨,攻擊者將帶有惡意代碼的 anthropic.claude-code(版本 2.1.312 與 2.1.313)推送至 Cursor 市集。由於許多開發者的編輯器預設開啟了套件自動檢查與背景更新功能,編輯器在後台偵測到市集出現更高版本號時,便自動將惡意版本下載至本機環境,導致數千名工程師在毫不知情的狀況下完成了後門植入。

下表詳細整理了目前主流開發者擴充套件分發管道的安全驗證架構差異,清楚呈現出不同渠道在身分審核與簽章防護上的客觀限制:

分發管道類型 官方發行身分驗證機制 代碼簽章與完整性校驗 命名空間防搶註機制 預設更新行為與防護風險
微軟官方 VS Code 市集 強制驗證 DNS TXT 記錄與組織網域,未驗證帳號無法取得官方徽章 支援市集層級的擴充套件代碼數位簽章與 SHA256 校驗 保留知名科技企業與熱門開源專案專屬 Prefix,禁止任意註冊 預設自動更新,但受嚴密發行權限與異常下架通報機制監控
Anthropic 官方 npm 倉庫 npm 官方組織 @anthropic-ai 集中託管,啟用強制 2FA 雙重驗證 套件發布包含 npm 來源證明(Provenance)與 GitHub Actions 簽章 Scoped Package 機制完全杜絕同名混淆與第三方冒充可能 由開發者透過終端機手動安裝或指定版本鎖定,不會無感更新
Cursor 自建擴充套件市集 事發前缺乏嚴格的跨網域身分驗證,容易遭第三方偽造相同發布者名稱 早期主要依賴套件清單中繼資料同步,缺乏獨立端到端簽章驗證 未嚴格鎖定頂級科技巨頭命名空間,導致攻擊者成功搶註發布 預設背景靜默自動升級,新版本推送後數小時內引發大規模感染

事件發生後,Anthropic 官方在第一時間發布聲明,確認 Anthropic 內部的軟體建置系統、GitHub 儲存庫以及官方維護的 npm 套件 @anthropic-ai/claude-code 完全未受侵害。微軟亦證實其官方 VS Code 市集並無異常。這起災情的源頭完全侷限於 Cursor 第三方市集的發布驗證漏洞,屬於典型的通路劫持與下游生態供應鏈攻擊。

66行代碼的入侵真相:SSH金鑰注入、常駐排程與反向通道機轉

根據微軟威脅情報中心(Microsoft Threat Intelligence)與資安團隊 Phorion 的逆向分析報告,攻擊者在 anthropic.claude-code 的 2.1.312 與 2.1.313 版本中,植入了一段僅有 66 行的精簡 JavaScript 載入器。這段代碼的設計極為狡猾,它被掛載在擴充套件啟動的主模組中,只要開發者啟動 Cursor 編輯器,模組在被 Node.js 執行階段載入的瞬間就會觸發惡意邏輯,完全不需要使用者在聊天視窗中輸入任何指令。

這段惡意載入器的執行流程可分為三個階段:本機環境偵察、身分金鑰植入以及常駐反向通道的建立。

在第一階段,惡意腳本會立即讀取本機主機資訊,包括作業系統類型、CPU 架構、當前登入使用者名稱、本機家目錄路徑、Git 全域配置中的使用者信箱,以及當前專案工作目錄。更值得注意的是,腳本會遍歷本機環境變數清單,過濾出名稱中帶有 KEY、TOKEN、SECRET、PASS、AWS 或 GCP 的變數名稱。隨後,腳本將這些系統指紋資料打包,透過 HTTP POST 請求發送至攻擊者位於海外的指揮節點(連線位址為 134.209.82.225 的 8099 連接埠)。

在第二階段,腳本會對使用者的 SSH 授權設定發動攻擊。它會尋找使用者家目錄下的 .ssh/authorized_keys 檔案,若檔案不存在則嘗試自動建立。接著,腳本將攻擊者預先生成的 SSH 公鑰附加寫入檔案末端。這把公鑰在備註欄位標註為 svc-telemetry,企圖偽裝成一般開發工具的遙測服務金鑰。一旦這把公鑰成功寫入,攻擊者未來只要能連線至該機器的 SSH 服務埠,就能以完全合法的金鑰認證身分登入系統,徹底繞過密碼認證機制。

在第三階段,為了確保在編輯器關閉或電腦重開機後依然能維持控制權,惡意代碼針對不同作業系統部署了常駐機制(Persistence):

  • macOS 環境:腳本在使用者的 ~/Library/LaunchAgents/ 目錄下產生一個自訂的 .plist 設定檔,註冊為系統登入時自動載入的背景服務,並設定每隔 60 秒定期執行一次反向連線腳本。
  • Windows 環境:腳本嘗試呼叫系統內建的 schtasks.exe 建立排程工作,或者在使用者的「啟動」資料夾中寫入批次啟動腳本。

常駐腳本的核心任務,是嘗試啟動本機的 SSH 服務,並向攻擊者的外部伺服器建立一條反向 SSH 通道(Reverse SSH Tunnel)。一旦反向通道建立成功,原本處於內部網路、沒有對外公開 IP 的工程師電腦,就會主動將內部的 Shell 終端機連線轉發至攻擊者的控制節點,讓攻擊者隨時能夠在開發者電腦上執行任意指令。

所幸在實際攻擊過程中,攻擊者的自動化腳本遇到了兩項關鍵的作業系統權限屏障。首先,在標準的 macOS 與 Windows 使用者環境中,啟動本機 SSH 伺服器常駐服務通常需要系統管理員權限(root 或 Administrator),而擴充套件是以普通使用者權限執行,因此多數機器的本地 SSH 服務並未能成功啟用。其次,攻擊者的 Windows 腳本中誤用了 Unix 專屬的 /bin/sh 路徑,導致 Windows 上的反向通道命令直接執行失敗。

然而,這兩項執行錯誤並不代表受影響的電腦安全無虞。微軟威脅情報團隊特別示警:雖然即時反向通道大多未能順利接通,但 authorized_keys 中的惡意金鑰與 LaunchAgents 中的常駐設定檔已經確切寫入磁碟。只要這些殘留工件未被徹底清除,這部電腦的系統完整性就處於隨時可能遭受後續利用的危險狀態。

海外第一線實測拆解:擴充套件權限擴張與開發機安全邊界

海外資深技術頻道 Eli the Computer Guy 針對本次 Cursor 市集供應鏈攻擊事件,深入拆解了擴充套件權限與開發者環境的防護盲區:

Anthropic AI Claude Extension Hacked on Cursor - AI Security Disaster

在該影片的深入剖析中,技術專家展示了現代編輯器外掛系統的核心矛盾:為了提供智慧且強大的代碼重構與自動測試能力,開發者必須賦予擴充套件完整的本機檔案讀寫與終端機呼叫權力。但這套行之有年的架構本質上缺乏細粒度的權限隔離機制,擴充套件要嘛具備完整的主機存取能力,要嘛就完全無法運作。這使得任何單一外掛的漏洞或惡意投毒,都能瞬間轉化為整個工作站的全面淪陷。

終端機三分鐘完整自檢排查:macOS 與 Windows 具體清理指令

如果你在 2026 年 10 月底曾使用過 Cursor 編輯器,請不要僅僅將套件更新或解除安裝就以為萬事大吉。請立即打開終端機,按照以下步驟完整檢查並清除所有可能遺留的後門工件。

步驟一:確認擴充套件版本並強制更新

首先在 Cursor 介面中檢查當前安裝的 Claude Code 擴充套件版本。若版本號顯示為 2.1.312 或 2.1.313,請立即將其完全解除安裝,並確保若重新安裝時版本已升級至官方安全版本 2.1.314 或更新版本。

步驟二:檢查並清理 SSH 授權金鑰

惡意腳本最核心的持久化動作是將攻擊者公鑰植入 authorized_keys。請執行下列指令檢視檔案內容:

在 macOS 或 Linux 系統下執行:

cat ~/.ssh/authorized_keys

在 Windows PowerShell 下執行:

Get-Content $HOME\.ssh\authorized_keys -ErrorAction SilentlyContinue

仔細審視輸出內容中的每一行公鑰。如果發現任何帶有 svc-telemetry 註記的公鑰,或者包含你無法識別的陌生 SSH 公鑰項目,請立即使用文字編輯器開啟該檔案,將該整行文字完全刪除並存檔。若你平時不需要從外部連線至本機電腦,且該檔案內無其他合法公鑰,可直接將該檔案備份後移除。

步驟三:清除常駐排程與開機自動執行項目

在 macOS 系統中,檢查使用者個人專屬的啟動代理目錄:

ls -la ~/Library/LaunchAgents/

如果發現包含不明連線指令、建立時間落在 2026 年 10 月 29 日前後,或內容指向 134.209.82.225 的 .plist 檔案,請先使用 launchctl unload 指令卸載該服務,隨後將該檔案直接刪除:

launchctl unload ~/Library/LaunchAgents/惡意檔案名稱.plist
rm ~/Library/LaunchAgents/惡意檔案名稱.plist

在 Windows 系統中,檢查排程工作與啟動資料夾:

Get-ScheduledTask | Where-Object { $_.Date -ge (Get-Date "2026-10-28") }
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup"

若發現非本機管理員主動建立的異常腳本或未知工作排程,請立即將其完全註銷並刪除對應的檔案實體。

步驟四:檢查異常連線與輪換高危敏憑證

執行網路連線檢查指令,確認目前系統是否有連往外部 8099 連接埠或攻擊者 IP 的活動連線:

netstat -an | grep 8099

若確認本機曾安裝受感染版本,且系統中曾存放重要生產環境憑證,請務必採取最嚴格的防禦措施:立即輪換本機 .env 檔案與系統環境變數中曾設定過的所有 API Key(如 OpenAI、Anthropic、AWS Access Key、GitHub Personal Access Token 及生產資料庫密碼)。由於惡意程式在第一階段已將環境變數名稱回傳至外部節點,攻擊者很可能針對這些特定服務發動後續的社交工程或二次滲透。

重構一人公司與團隊工作流:杜絕供應鏈後門的容器化沙盒方案

Cursor 市集的後門事件絕對不是單一孤立的偶發意外,而是軟體工程生態在全面邁向 AI 代理時代所必須面對的系統性結構問題。當工具具備越來越高的自主權限,仰賴「使用者個人自律」與「信任市集審核」的傳統作法已經不足以抵禦現代供應鏈威脅。無論是一人團隊還是中大型企業,都必須從架構層面重構日常開發的防護邊界。

首要的架構升級是落實開發環境的容器化隔離(Containerized Development)。透過 VS Code 與 Cursor 原生支援的 Dev Containers(開發容器)技術,工程師可以將整套專案開發環境、延伸套件與依賴庫限制在獨立的 Docker 容器中運作。在這種配置下,擴充套件僅能存取容器內的虛擬檔案系統,無法直接觸及宿主機的 ~/.ssh、本機作業系統憑證庫或跨專案檔案,即使擴充套件被植入惡意後門,攻擊者的爆炸半徑也被嚴格限制在拋棄式的沙盒環境內。

第二個關鍵設定是關閉編輯器的無感自動更新(Auto-update)。在日常開發工具中,擴充套件的背景靜默升級往往被視為便利的特點,但在資安視角下,這等於將本機的執行碼變更權限無條件讓渡給外部市集。團隊負責人與獨立開發者應在編輯器設定中將 extensions.autoUpdate 設定為關閉,改採定期手動審查與升級策略,並在升級重要 AI 插件前先檢視社群發布公告與版本發布紀錄。

最後,必須將敏感憑證的管理與開發主機徹底解耦。工程師應避免在本地硬碟的純文字檔案或全域環境變數中長期保存長期有效的雲端最高權限金鑰。透過採用短期憑證架構(如 AWS IAM Identity Center 產生的短期 Token)或結合硬體安全性金鑰(如 FIDO2 / YubiKey)進行 SSH 連線認證,即使本機的 authorized_keys 遭惡意寫入,未經硬體實體觸控授權的外部連線依舊無法通過認證,從根本上阻斷遠端後門的控制鏈條。

參考資料與法規依據