跳到主要內容
maxstudioNews
商業DEV Community (Codex)約 8 分鐘

資訊竊取軟體鎖定 AI 程式碼助理憑證,用戶應立即檢查檔案安全

Symantec 報告指出,Aoki 資訊竊取軟體現已鎖定 AI 程式碼助理的憑證檔案,包括 Claude、OpenAI Codex 等。這些被竊取的憑證可能導致攻擊者冒用身份、濫用 API 配額,甚至存取連結的儲存庫和雲端服務。文章建議用戶檢查相關設定,並在必要時撤銷 API 金鑰以保護帳戶安全。

資訊竊取軟體鎖定 AI 程式碼助理憑證,用戶應立即檢查檔案安全
圖片來源:DEV Community (Codex)

資訊竊取軟體過去主要針對瀏覽器 cookie、儲存的密碼和加密貨幣錢包。然而,Symantec 的威脅獵人團隊在 10 月 15 日發布報告,揭示其中一種名為 Aoki 的惡意軟體已擴展其目標範圍。最新樣本開始竊取 AI 程式碼助理在用戶家目錄中儲存的檔案。

報告指出,Aoki 現在會竊取 AI 程式碼助理的憑證和會話檔案,包括 Claude、OpenAI 的 Codex、Cursor、Codeium 和 Gemini 等。具體點名了 .claude.json、Claude 桌面版 cookie、ChatGPT cookie,以及 Codex 的 config.toml 和 .env 檔案。

此外,它還鎖定 GitHub Copilot、Cursor、Google Gemini、JetBrains AI Assistant 和 Kiro 的權杖,以及 AWS 憑證。如果您使用這些工具,關鍵問題是這些檔案目前在您的機器上儲存了什麼。

這項新功能是近期才加入的。報告表示:「該惡意軟體的早期版本並未針對 AI 相關檔案,這表明此功能是最近新增的。」同一個樣本仍然會竊取常見的目標,例如數十種瀏覽器、加密貨幣錢包、密碼管理器、通訊應用程式,以及 VPN 和 FTP 用戶端。

竊賊為何會想要您的程式碼助理權杖?Symantec 解釋道,被竊取的權杖「可讓攻擊者以合法用戶的身份和 API 配額執行活動」,並能存取與其連結的儲存庫、雲端服務和 CI/CD 管道。報告還指出,「被竊取的 AI 金鑰可以直接變現,無論是透過轉售還是耗盡受害者的帳戶使用量。」《Infosecurity Magazine》將此與所謂的 LLMjacking 行為聯繫起來。

然而,該報告遺漏了幾件事。它沒有說明 Aoki 如何進入機器,也沒有點名幕後的組織,Symantec 也未發現它與任何現有惡意軟體家族有關聯。《Infosecurity Magazine》提到,報告中沒有提供受害者數量,也沒有描述 Claude Code、Codex 或任何其他助理的缺陷。Aoki 只是在以您的身份運行後,讀取已經存在於磁碟上的檔案。

每個助理儲存登入狀態的方式都不同,相關文件會說明儲存位置。對於 Claude Code,根據 Anthropic 的身份驗證文件,在 macOS 上您的登入資訊儲存在加密的 macOS 鑰匙圈中。在 Linux 上則儲存在 ~/.claude/.credentials.json,檔案權限為 0600;在 Windows 上則儲存在 %USERPROFILE%\.claude\.credentials.json。

同一頁面指出,當鑰匙圈拒絕寫入(例如在 SSH 會話中被鎖定)時,macOS 會退而使用該檔案。Symantec 點名的 ~/.claude.json 檔案,是 Claude Code 儲存您在本地或用戶範圍內新增的 MCP 伺服器的地方。

文件建議對「不希望納入版本控制的憑證伺服器」使用本地範圍,這可避免權杖被納入 Git,但無法阻止它出現在您的家目錄中。

對於 Codex,OpenAI 的文件指出,Codex 會「將登入詳細資訊快取在本地的純文字檔案 ~/.codex/auth.json 或您的作業系統特定憑證儲存區中」,並補充說:「請像對待密碼一樣對待 ~/.codex/auth.json:它包含存取權杖。」

Symantec 的清單點名了 Codex 的 config.toml,而非 auth.json。在 config.toml 中,stdio MCP 伺服器的 env 表格會為該伺服器進程設定變數,因此以字面值形式輸入的金鑰會以純文字形式儲存在檔案中。

您無需猜測,可以透過以下兩個指令進行檢查。這些指令只會讀取和列印檔案,它們會列出哪些憑證檔案存在,然後在 Symantec 點名的兩個設定檔中尋找權杖形狀的字串:

ls -l ~/.claude/.credentials.json \ ~/.codex/auth.json 2>/dev/null

grep -nE 'Bearer |sk-|ghp_|github_pat_|_KEY|_TOKEN' \ ~/.claude.json ~/.codex/config.toml 2>/dev/null

在 Linux 上,ls 命令顯示的 .credentials.json 是 Claude Code 登入資訊的預期位置。在 macOS 上,這表示鑰匙圈寫入失敗,登入資訊退而儲存在檔案中。auth.json 則表示 Codex 將您的登入資訊快取在檔案中;下一節將說明如何移動它。

grep 命令故意設計為會產生較多輸出。像 GITHUB_TOKEN 這樣沒有值的變數名稱是沒問題的,但旁邊有長字面值才是需要修正的問題。由於 Symantec 也列出了 .env 檔案,請在您的專案中對任何 .env 檔案執行相同的 grep 命令。

將您發現的內容視為清理清單。發現匹配項並不代表您已被感染,這些檔案可供您的用戶讀取是正常的。風險只存在於當有惡意程式以您的身份運行時,這正是報告所描述的情況。

將權杖從純文字檔案中移出。對於 Codex,解決方法是一個設定。cli_auth_credentials_store 控制 CLI 快取憑證的位置:file、keyring、auto 或 ephemeral。keyring 使用您的作業系統憑證儲存區,「如果不可用則會失敗」。

~/.codex/config.toml

cli_auth_credentials_store = "keyring"

然後執行 codex logout 並再次使用 codex login 登入,這樣下一個權杖就會儲存在鑰匙圈中,而不是 auth.json。對於 MCP 伺服器,請停止貼上字面權杖。Codex 的 bearer_token_env_var 接受環境變數的名稱,而不是權杖本身。

對於 Claude Code,如果遠端伺服器使用 OAuth 並預先配置客戶端憑證,客戶端密鑰會儲存在「您的系統鑰匙圈 (macOS) 或憑證檔案中,而不是您的設定檔中」。

然而,環境變數並非保險庫。如果您從 ~/.zshrc 匯出金鑰,您只是將純文字移動到另一個檔案。對於 Claude Code 自己的 API 金鑰,apiKeyHelper 設定會執行一個腳本來返回金鑰,因此金鑰可以來自鑰匙圈而不是您的 shell 設定檔。

如果您認為機器已被感染,輪換金鑰比清理檔案更重要。一旦權杖離開機器,刪除檔案就毫無意義。登出也有其限制:它只清除本機上的副本,且兩家供應商的文件都沒有說明它會終止已被竊取的副本。從源頭撤銷 API 金鑰才是關鍵步驟。

Anthropic:在 Claude Console 中撤銷並重新發行 API 金鑰。在 Claude Code 中,執行 /logout 並重新登入,以便本機獲得新的登入資訊。如果您使用 Pro 或 Max 方案登入並懷疑被竊取,請諮詢 Anthropic 客戶支援如何終止其他會話。

Codex:codex logout 會清除本機上儲存的憑證。在 platform.openai.com 輪換任何 OpenAI API 金鑰,並諮詢 OpenAI 客戶支援關於您認為已被複製的 ChatGPT 登入資訊。

GitHub:在您的權杖設定中撤銷個人存取權杖,並在您的應用程式設定中審查您已授權的 OAuth 應用程式和 GitHub Apps。Symantec 列出了 Copilot 權杖。

AWS:Symantec 也列出了 AWS 憑證。請同時輪換這些存取金鑰。

Symantec 清單上的所有其他項目(Cursor、Gemini、JetBrains AI Assistant、Kiro,以及 Claude 桌面版和 ChatGPT 瀏覽器會話):從每個帳戶的設定中登出所有會話,然後重新登入。

對於網路追蹤,Symantec 發布了 17 個檔案雜湊值和這些命令與控制網域,您可以對 DNS 日誌進行檢查:dobeqnesmot[.]cc、hjazfioe[.]surf 和 neihite[.]cc。

我開發了 Hermes IDE,因此請在考量此點的情況下權衡這篇文章。Hermes 透過其 README 說明,每個代理都使用自己的 CLI 登入,並且「從不要求權杖」。因此,您不會將您的 Claude 或 Codex 權杖交給它,它也不會保護它們:上述檔案是每個代理自己的,Codex 設定和權杖清理仍需由您自行完成。

自 2.3.2 版本以來,Hermes 的終端機建議從不提供設定 API 金鑰或傳遞身份驗證標頭的命令。您的 shell 自己的歷史記錄保持不變,因此這仍然值得單獨檢查。Hermes 不隸屬於 Anthropic、OpenAI、Symantec 或此處提及的任何代理供應商。

程式碼助理的權杖是一種身份:持有它的人可以以您的身份運行助理,使用您的配額和您的儲存庫。AI Agents Pocket Guide 涵蓋了圍繞此點的防護措施,從工具權限到代理在人類檢查之前獲得多少自主權。如果您同時運行多個代理,Hermes IDE 是免費且開源的,適用於 macOS、Windows 和 Linux,它使每個代理都保持自己的登入狀態。它可在 GitHub 上取得。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Codex) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。