標籤: DevSecOps

  • Claude Code 供應鏈危機:AI 開發者太天真了

    Claude Code 供應鏈危機:AI 開發者太天真了

    📌 本文重點

    • AI coding agent 正在成為新攻擊面
    • 供應鏈攻擊已專門鎖定 AI 開發工具
    • AI 工具必須被當成高風險資安系統管理

    這次 Claude Code 事件真正可怕的地方,不是幾個 npm 套件被下毒,而是 AI coding agent 本身正在變成新的「攻擊面」。如果開發生態繼續只談效率、不談安全,下一個被入侵的,不會只是開發機器,而是整個企業的內部資料與用戶隱私。AI 工具與開發流程,必須被當成高風險資安系統,而不是玩具。


    一場「從 Red Hat 憑證到你的 Claude Code」的蠕蟲式攻擊

    先把時間線拉清楚:

    • 攻擊者先取得一名 Red Hat 員工的 GitHub 憑證,直接往 @redhat-cloud-services 旗下 32 個 npm 套件下手,這些套件週下載量約 11.7 萬次
    • 由於 CI/CD 已與 npm 發布流程自動串接,攻擊者等於「合法地」用 Red Hat 的身份,把惡意程式碼發佈給整個開發者社群——這就是典型的 供應鏈攻擊
    • 惡意程式碼安裝後,並不只藏在 node_modules,而是主動修改你的開發環境
    • 植入 Claude Code 啟動設定
    • 修改 VS Code 專案設定
    • 之後 只要你打開 VS Code 或 Claude Code,惡意程式就會自動執行,
    • 靜默收集機器上的所有憑證(token、SSH key、雲端憑證……)
    • 傳回攻擊者伺服器
    • 更糟的是,就算你卸載 npm 套件,惡意碼仍活在 IDE 設定裡,持續運作
    • 若你試圖「先撤 token 再清 malware」,某些版本還會觸發毀滅性 payload:刪除整個 home 目錄並覆寫,降低復原可能性
    • 幾天後,研究者在 npm 上又發現第二波、更高明的變種,包裝更隱密、具蠕蟲特性,持續透過自動安裝與開發工具擴散。

    💡 關鍵: 一組被盜用的 GitHub 憑證,串起了從 CI/CD 到 IDE、再到 AI 助手設定的整條自動化惡意供應鏈。

    關鍵不是一個 Red Hat 帳號被偷,而是:攻擊鏈一路打穿「憑證 → CI/CD → 套件 → IDE → AI 助手設定」,形成一條完全自動化的惡意供應鏈。

    這條鏈的最後一站,偏偏就是你以為「只是在幫你寫程式」的 Claude Code。


    AI coding agent 追求效率,卻默默放大了供應鏈風險

    這起 Red Hat / Claude Code 事件,和最近 Microsoft 開源套件被植入 credential stealer 的攻擊,實際上指向同一個趨勢:攻擊者已開始專門設計「針對 AI coding agent」的惡意程式。

    在 Microsoft 的案例中:

    • 73 個微軟持有的加簽開源套件被植入進階憑證竊取程式碼。
    • 惡意程式碼會在開發者透過 AI coding agent 開啟這些套件時被觸發——研究者直接點名這是針對 AI agent 的攻擊;AI 會幫你讀檔、跑 script、補依賴,攻擊者只要等 AI「乖乖照做」。
    • 這些套件最初是被 GitHub 自動系統下架,但平台一開始只用「違反服務條款」這種模糊說法,沒有明講「這是惡意攻擊、請假設你已被入侵」,讓不少開發者完全沒有警覺。

    把兩起事件放在一起看,可以看到幾個結構性問題:

    1. AI agent 天然信任依賴與腳本

    AI coding agent 的賣點,是幫你:

    • 自動安裝缺的套件
    • 自動修改設定
    • 自動產生/執行 script

    這看起來是「開發效率神器」,但在攻擊者眼中,這是一台可以遠端操控的自動化執行引擎。惡意套件只要被 AI 讀到、被 agent 視為「為了專案正常運作需要執行的 code」,攻擊就啟動了。

    2. DevSecOps 思維還停留在「人手動操作」時代

    大多數安全流程是為了人設計的:

    • 「請開發者檢查 pull request」
    • 「請手動審視依賴變更」
    • 「請不要執行不明腳本」

    但今天的問題是:AI 會幫你點掉所有這些紅燈。在 Claude Code 事件裡,惡意程式碼躲到 VS Code 與 Claude 設定檔中,只要開啟工作區或啟動 AI 助手,就會自動跑。

    3. 供應鏈攻擊變成「AI 時代的新常態」,不是個案

    • Red Hat / Claude Code:利用 GitHub 憑證 + CI/CD + IDE/AI 設定,形成蠕蟲式擴散。
    • Microsoft 套件:利用 加簽開源套件 + GitHub 生態 + AI coding agent 的自動操作,鎖定開發者憑證。

    它們都不是「某個工程師不小心點錯」這種等級,而是系統性利用 AI 進入開發供應鏈的空窗期

    💡 關鍵: 供應鏈攻擊已從零星事件,演變成專門針對 AI 開發流程設計的「新常態」風險。

    真正的問題是:AI 工具商與生態平台,把自己當成「效率工具提供者」,沒有把自己當成「新一代 DevSecOps 基礎設施」來設計。


    這不是 Prompt Injection 問題,是「Agent 執行權限」問題

    今天的主角已經不是 prompt injection。攻擊者要的,不是讓模型講錯話,而是讓 agent 替他「按下執行鍵」

    MCP(Model Context Protocol)與各種 Agent 框架被廣泛實驗的同時,安全研究者早就示警:

    • 當 AI 代理有「讀檔、寫檔、跑指令、打 API」等多重能力時,它就變成一個新的 高權限執行環境
    • 文章《Red Teaming MCP Servers: 24 Attack Payloads and the Blueprint for Agentic Defense-in-Depth》做了 24 種紅隊測試,證明:
    • 單靠輸入過濾完全不夠
    • 必須從 輸入 → 代理決策 → 執行層 → 系統權限 做多層防禦

    再把這跟機器身份與憑證管理放在一起看:

    • 如《Your Secrets Are Probably Leaking》指出:大多數團隊只強化「使用者登入安全」,卻讓 API key、token、CI 變數、雲端憑證到處亂飛,形成 credential sprawl
    • 在 Claude Code 與 Microsoft 事件中,惡意碼收割的正是這一整片「第二身份平面」:
    • .env 裡的密鑰
    • CI/CD pipeline 的 token
    • Terraform state、K8s manifest 裡的憑證

    當 AI agent 同時掌握「程式碼執行能力」與「存取這些機器身份憑證」,它就成了攻擊者最想控制的跳板。

    現在的主流 AI IDE 插件,多半只談:「我們如何讓你寫程式更快」。
    很少有人認真回答:「這個 agent 在你的機器上,到底能做多可怕的事?誰在監控?誰能審計?誰負責出事時的鑑識?

    💡 關鍵: AI agent 一旦擁有執行權限與憑證存取能力,就等同於新的「高權限使用者」,安全設計必須對齊這個等級。


    開發者與企業現在就該做的事:把 AI 當成高風險資安系統來管理

    這不是「選不選用 Claude Code 或某個特定工具」的問題,而是你要不要承認:AI coding agent 已經是你 DevOps 流程的一級資產,而不是附加小幫手。

    對不同角色,建議也不同——

    1. AI 工具商(OpenAI / Anthropic / 微軟 等)

    • 預設零信任執行模型
    • 插件/Agent 若要寫檔、跑命令、裝套件,應有細粒度權限 prompt,而不是一鍵授權整個專案。
    • 對高風險操作提供 可審計的執行日誌,預設加密留存,方便事後鑑識。
    • 把安全能力產品化,而不是當白皮書宣傳
    • 內建 惡意依賴檢測、憑證泄漏掃描,而不是交給第三方插件救火。
    • 對應 MCP / Agent 生態,提供官方的 安全測試 sandbox(類似 mcp-probe-agent)與紅隊工具。

    2. 生態平台(npm / GitHub / VS Code 市集)

    • 事件揭露要說人話:像這次 GitHub 只說「違反服務條款」是嚴重失職。遭下架的套件,必須清楚標註「已確認惡意,請假設憑證外洩並執行 incident response」。
    • 加強供應鏈風險信號
    • 對於高權限組織(如 Red Hat、Microsoft)發布的套件變更,提供額外的 異常行為檢測與人工審核
    • 在 IDE / CLI 層面,當套件被標記惡意時,主動警示並提供修復腳本,而不是只在網頁上放通知。

    3. 企業開發與安全團隊

    • 把 AI 開發工具納入 DevSecOps 範圍,而不是當個人玩具
    • 使用哪些 AI 插件、可開哪些權限,寫成政策並落地到 IAM / MDM 管理上。
    • 公司內部專案一律使用 企業控管的 AI 開發環境,禁止在個人亂裝的 VS Code 上操作敏感 repo。
    • 整頓「機器身份」與憑證管理
    • .env、CI variables、Terraform state、K8s yaml 裡的 secrets 全面盤點,導入 專業密鑰管理系統(如 Vault、Secrets Manager 等)
    • 對應這次事件,預設所有受影響開發機器的 token 與 key 都已外洩,執行 rotate + log 監控
    • 訓練團隊用「AI 安全威脅模型」思考
    • 每導入一個新 AI 工具,都問三個問題:
      1. 它可以看到哪些 code / 資料?
      2. 它可以對我的環境做什麼?(讀/寫檔、跑指令、改 CI?)
      3. 一旦被接管,最大爆炸半徑是什麼?

    Claude Code 這次暴露的,不是單一產品的缺陷,而是整個產業對「AI 時代的 DevSecOps」普遍缺位。未來幾年,攻擊者會持續把 AI agent、CI/CD、開源套件、機器憑證串成一條條自動化攻擊鏈——而我們能做的,不是祈禱自己不要被點名,而是現在就把 AI 工具當成高風險系統,納入完整的安全設計、監控與治理。
    否則,AI 幫你省下的開發時間,很可能會全部補課在 incident response 上,而且還不一定補得回來。

    🚀 你現在可以做的事

    • 盤點並審視團隊現用的所有 AI 開發工具與 IDE 插件,標記其可存取的程式碼與憑證範圍
    • 在組織內導入或強化密鑰管理系統,將 .env、CI 變數等敏感資訊集中管控並定期輪替
    • 為團隊安排一場「AI + DevSecOps」安全工作坊,針對 AI agent 權限與供應鏈風險建立共同威脅模型
  • Claude Security 把 AI 變成你的駐場資安顧問

    Claude Security 把 AI 變成你的駐場資安顧問

    📌 本文重點

    • Claude Security 能掃整個 Git repo 並理解跨檔案資料流
    • 透過自我對抗驗證大幅降低誤報
    • 發現漏洞可直接產生 patch、開 Jira 並推送到 Slack

    一句話定位:Claude Security 是一個接上 Git repo 就能跑的 AI 白箱資安顧問,負責掃整個程式碼庫、自己驗證結果、再幫你開 ticket 與產生修補。

    工具網址(企業公測):https://www.anthropic.com/news/claude-security
    Reddit 討論:https://www.reddit.com/r/ClaudeAI/comments/1t12l3t/anthropic_just_launched_claude_security_in_public/


    核心功能 1:掃「整個 repo」而不是只看單檔

    傳統 SAST 常見問題:

    • 只能做規則 / 字串匹配(例如 eval(exec(
    • 很難理解「資料怎麼在多支檔案間流動」
    • 幾乎不看 Git 歷史與商業邏輯

    Claude Security 的做法:

    1. 接 GitHub / GitLab Repo
    2. 直接連到你的程式碼庫,讀取:

      • 主幹分支(例如 main / master
      • 重要 feature branch
      • Commit history(看某段敏感程式碼是怎麼演進的)
    3. 跨檔案資料流分析
      AI 會像資安研究員那樣追蹤「一個輸入是怎麼一路走到危險函式」:

    4. 例如:

      • 使用者輸入 → Controller → Service → Repository → SQL 查詢
      • 使用者上傳檔案 → S3 → 後續背景 Job 處理
    5. 可以找出:

      • SQL Injection(多層 function call 之後才被拼接)
      • 反序列化漏洞
      • 跨檔案間的權限檢查缺失
    6. 看 Commit History 找風險變更
      Claude 會用 Git 歷史當線索:

    7. 最近誰改了認證、授權、檔案上傳相關的程式

    8. 有沒有「暫時先放過」的 TODO / FIXME 被留在敏感路徑

    💡 關鍵: 透過整個 repo 與 commit history 視角,Claude 能找出傳統只看單檔規則匹配時容易漏掉的跨檔案風險。

    你可以立刻做的事:

    • 先挑一個 repo,把以下幾類關鍵目錄標記為「高優先級」讓 Claude 重點掃描:
    • auth/security/config/payments/billing/
    • 涉及外部 API 呼叫(支付 / 身份驗證 / 儲存)的模組

    核心功能 2:用「自我對抗驗證」降低誤報,不再被假警報淹沒

    多數掃描器的痛點是:誤報太多,最後大家乾脆全部略過。

    Claude Security 的差異點,在 Reddit 的描述裡很清楚:

    「Most security scanners use rule-based pattern matching… Claude Security takes a different approach: it reasons through the code like a security researcher would… The part that stood out to me: every finding goes through an adversarial verification step.」

    簡單說:

    1. 第一層:像資安研究員一樣找洞
    2. AI 先「提出指控」:

      • 例如:「這個 API 可能允許未授權使用者修改他人資料。」
    3. 第二層:自我對抗驗證(adversarial verification)

    4. 系統再啟動另一個「反方 AI」,專門負責駁斥剛剛的發現:
      • 嘗試從程式碼找證據證明「其實沒問題」
      • 或提出「可行攻擊路徑」來強化原本的發現
    5. 結果是:

      • 沒有完整攻擊路徑、缺乏證據的 finding 會被降權或標註為低優先
    6. 輸出是「情境完整」的漏洞敘述
      每個 finding 通常包含:

    7. 風險描述(具體攻擊路徑)

    8. 涉及的檔案與 function
    9. 可能的影響(帳號竊取、資料外洩、本地權限提升…)

    💡 關鍵: 透過「主張 AI」與「反方 AI」對抗式驗證,每個漏洞都需經過完整攻擊路徑推演,能大幅降低傳統 SAST 的誤報噪音。

    你可以立刻做的事:

    • 把一個現有的 SAST / SonarQube 報告交給 Claude Security,比較它:
    • 會自動排除哪些「假陽性」
    • 會把哪幾個風險排到最前面
    • 把團隊一直懷疑但沒時間查的「灰色區域」(例如某個老舊模組)設定為掃描目標,看看 Claude 是否能給出完整攻擊路徑。

    核心功能 3:發現問題直接產生 Patch、開 Jira、推 Slack

    光知道有洞不夠,誰修?何時修?怎麼跟開發流程接在一起?

    Claude Security 提供三個實用的動作:

    1. 自動產生 Patch
    2. 基於整個 repo 的上下文生成修補:
      • 修改危險 API 呼叫方式
      • 補上輸入驗證 / 權限檢查
      • 調整錯誤訊息避免資訊外洩
    3. 以 PR diff 形式呈現,工程師可以:

      • 手動 review + merge
      • 或先在測試分支試跑
    4. 整合 Jira:自動開 ticket

    5. 發現高風險漏洞時:
      • 建立 Jira ticket(含完整描述、檔案路徑、建議修補)
      • 指派給對應 team / owner
    6. 你可以設規則,例如:

      • critical → 必須在 24 小時內回應
      • high → 必須在下個 sprint 內解決
    7. 整合 Slack:即時通知

    8. 把重要 finding 推到指定 Slack channel:
      • #security-alerts / #devsecops
    9. 讓開發、DevOps、產品都看得到同一份風險脈絡

    💡 關鍵: 從發現漏洞到開 Jira ticket、推 Slack 再加上自動產生 patch,讓安全掃描真正嵌進現有開發與排程流程,而不是變成額外負擔。

    你可以立刻做的事:

    • 選一個現成的「安全債務」項目,讓 Claude Security:
    • 找出相關程式碼
    • 產生具體 patch
    • 自動開 Jira ticket,讓它直接進到你的 sprint backlog

    適合誰用?三類團隊的實際場景

    1. 中小團隊,沒有專職 AppSec

    典型狀況:

    • 只有 3–10 人開發,沒有專職資安工程師
    • 安全檢查通常只剩「上線前掃一次」

    Claude Security 的用法:

    • 把它當成「第一次安全評估」的替代方案:
    • 每次重大 release 之前跑一次全 repo 掃描
    • 對照結果決定要不要延後上線

    可行動:

    • 選一個核心產品 repo:
    • 設定 每週一 自動跑一次掃描
    • critical / high 的 finding 直接映射到 Jira Sprint board

    2. DevSecOps 團隊,人手不足的企業

    典型狀況:

    • 有基本安全流程,但 SAST 報告看不完
    • 每次新漏洞(例如像近期 Linux CopyFail CVE-2026-31431 這種)出來,都要人工盤點受影響範圍

    Claude Security 的用法:

    • 作為 現有工具上層的 AI 分析層
    • 接收 SAST / DAST 的結果
    • 用 AI 重新分級、補上攻擊路徑說明
    • 新 CVE 出來時:
    • 用 Claude 搜索 repo 中相關 code path,快速列出受影響服務

    可行動:

    • 針對某個關鍵系統,設定:
    • PR 時跑輕量掃描
    • 每晚跑全 repo 深度掃描
    • 把最常被忽略的中風險漏洞交給 Claude 重新評估,重排優先順序。

    3. 大量使用 AI 生成程式碼的團隊

    典型狀況:

    • 團隊已經在用 Cursor、GitHub Copilot、Claude 編程
    • 產出速度變快,但「AI 生出來的程式碼到底安不安全」沒人有空仔細看

    Claude Security 的用法:

    • 把它當作「AI 生成程式碼的第二道保險」:
    • 對含有大量 AI commit 的 branch 開啟加強掃描
    • 特別檢查:
      • 序列化 / 反序列化
      • 檔案上傳 / 下載
      • 第三方套件版本

    可行動:

    • 在 PR template 裡加一條:
    • 「勾選:已通過 Claude Security 掃描」
    • 把掃描報告連結附在 PR 描述

    怎麼開始:最小可行流程(MVP)

    以下是一個 從 0 開始接上一個 GitHub repo 的最小流程

    步驟 1:申請 Claude Security 公測與連接 Repo

    1. 到官方頁面填申請表:https://www.anthropic.com/news/claude-security
    2. 取得企業帳號後:
    3. 在 Claude Security 後台新增一個 Project
    4. 授權存取你的 GitHub / GitLab 組織
    5. 選擇要掃描的 repo(先從一個開始)

    步驟 2:設定掃描範圍與頻率

    建議初始設定:

    • 掃描範圍
    • 先只勾:main / master + 1–2 個關鍵 branch
    • 排除:自動產生的檔案、第三方庫(/vendor/node_modules
    • 掃描頻率
    • 每日一次:整個 repo 深度掃描
    • PR event:輕量掃描(只看這次 diff + 相關檔案)

    步驟 3:插到 CI Pipeline 裡

    以 GitHub Actions 為例,可用類似這種結構(實際 YAML 依官方範本為準):

    name: security-scan
    
    on:
      pull_request:
        branches: [ main ]
    
    jobs:
      claude-security-scan:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - name: Run Claude Security
            uses: anthropic/claude-security-action@v1
            with:
              api_key: ${{ secrets.CLAUDE_SECURITY_API_KEY }}
              repo_path: '.'
              fail_on: 'critical'
    

    做法:

    • CLAUDE_SECURITY_API_KEY 放在 repo secret
    • 設定 fail_on
    • 例如遇到 critical 漏洞就直接讓 CI fail,阻止 merge

    步驟 4:簡單實作範例——針對 SQL Injection 跑一輪掃描與修補

    假設你有一個典型的 Node.js/Express API:

    // userController.js
    router.get('/user', async (req, res) => {
      const id = req.query.id; // 直接用 query
      const sql = `SELECT * FROM users WHERE id = ${id}`; // 直接拼字串
      const result = await db.query(sql);
      res.json(result.rows[0]);
    });
    

    你可以這樣用 Claude Security:

    1. 在已接上的 repo 中,觸發一次手動掃描(或 push 一個小改動觸發 CI)
    2. 觀察 Claude 的輸出:
    3. 它應該會指出:
      • 未經處理的 req.query.id 被直接拼接進 SQL
      • 可能導致 SQL Injection
    4. 並提供 patch 建議,例如改成參數化查詢:
    const id = parseInt(req.query.id, 10);
    const sql = 'SELECT * FROM users WHERE id = $1';
    const result = await db.query(sql, [id]);
    
    1. 接受 patch:
    2. 由 Claude 產生 PR,或直接貼出 diff
    3. 你的工程師只要 review + merge

    4. 確認 CI:

    5. 再跑一次安全掃描,確認同路徑不再出現相同風險

    這樣你就完成了一次「發現 → 驗證 → 修補 → 再驗證」的完整迴圈,整個過程大部分由 AI 代勞,人力只在決策點與 code review 出現。


    小結:先把它當成你團隊的「安全第二意見」

    不需要一開始就把所有 repo 都接給 Claude Security。更實際的做法是:

    • 先挑一個產品線
    • 只掃最敏感的模組
    • 讓它幫你建立「安全風險清單 + patch 建議」

    當你發現:

    • 誤報比傳統掃描器少
    • 產生的 patch 不需要重寫太多

    就可以逐步擴大到更多 repo,讓這個「駐場白箱資安顧問」真的融入你現有的 DevSecOps 流程。

    🚀 你現在可以做的事

    • 到官方頁面申請 Claude Security 公測帳號並連接一個測試用 Git repo
    • 選定一個含敏感模組的產品線,設定每日與 PR 事件掃描流程
    • 把一次完整的掃描結果導入 Jira 與 Slack,測試從發現到修補的端到端流程