標籤: DevSecOps

  • 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,測試從發現到修補的端到端流程