【保存版】Claude Securityがついに公開 — AI時代の防御側エンジニアが今すぐやるべきことを全部書く

2026-05-04 | セキュリティ

Claude Security - AI時代のセキュリティレビュー

Claude Security - AI時代のセキュリティレビュー

はじめに

こんにちは、練馬区旭丘で個人事業主としてAIコンサル兼AWS構築をやっている野口です。

2026年4月30日、Anthropicが Claude Security(旧称:Claude Code Security)をパブリックベータで公開しました。

正直、ニュースを見た瞬間に「来た」と思いました。ここ1年、クライアントワークでセキュリティレビュー(Prowler、Checkov)をやっていて、「攻撃側はAIで瞬時に脆弱性を見つけてくるのに、防御側だけ手作業ってどう考えても割に合わない」と感じていたからです。

このツールは、その非対称性を埋めにきた本気のプロダクトです。

今回はAnthropic公式ドキュメントとGitHubリポジトリ、各種一次情報を読み込んで、「日本のエンジニアが明日から手を動かすために必要な情報」だけを濃縮してまとめます。JSONテンプレートも実運用ベースでガッツリ用意したので、コピペして使ってください。

【保存版】Claude Securityがついに公開 — AI時代の防御側エンジニアが今すぐやるべきことを全部書く

こんにちは、練馬区旭丘で個人事業主としてAIコンサル兼AWS構築をやっている野口です。

2026年4月30日、Anthropicが Claude Security(旧称:Claude Code Security)をパブリックベータで公開しました。

正直、ニュースを見た瞬間に「来た」と思いました。ここ1年、クライアントワークでセキュリティレビュー(Prowler、Checkov)をやっていて、「攻撃側はAIで瞬時に脆弱性を見つけてくるのに、防御側だけ手作業ってどう考えても割に合わない」と感じていたからです。

このツールは、その非対称性を埋めにきた本気のプロダクトです。

今回はAnthropic公式ドキュメントとGitHubリポジトリ、各種一次情報を読み込んで、「日本のエンジニアが明日から手を動かすために必要な情報」だけを濃縮してまとめます。JSONテンプレートも実運用ベースでガッツリ用意したので、コピペして使ってください。


TL;DR — 30秒で全体像

  • Claude Security は Claude Opus 4.7 をベースにしたAIネイティブな脆弱性スキャナ
  • 提供形態は 3層構造:① Web版(Enterprise)/② Claude Code内蔵 /security-review(全プラン)/③ GitHub Action(OSS、無料)
  • 従来のSASTと違い、データフローと文脈を理解してビジネスロジック欠陥や認可バグまで検出
  • Anthropic社内ではOpus 4.6時点で OSSコードベースから500件以上の未発見脆弱性 を実際に発掘済み
  • 開発者は /security-review とGitHub Actionsから即無料で始められる

「とりあえず触ってみたい」人は、この記事の §4 クイックスタート に飛んでください。


なぜ今、防御側AIが必要なのか — 個人事業主視点での問題意識

僕がクライアント向けにAI-OCRシステム(賃貸申込書処理)をAWS Bedrockで構築したり、菓子チェーン向けのシフトSaaS(Next.js 15 + Supabase)を設計したりしていて常に頭を悩ませるのが、「セキュリティレビューのコスト」です。

  • 手動レビューは時間がかかる
  • 既存のSASTツールは誤検知が多くてノイズに埋もれる
  • 専門のセキュリティエンジニアを雇うほどの予算は中小企業にはない
  • でも脆弱性を見逃したら一発アウト

クライアントのコンプライアンス要件(Claude以外のLLMへのデータ送信禁止)にも対応する必要があるなか、Anthropicが純正で出してきたというのが大きい。これは試さない手がない。


1. プロダクト全体像 — 3レイヤーで整理する

混乱しやすいので、最初に構造を整理しておきます。

レイヤーA:Claude Security(Web UI)

  • 対象:セキュリティチーム/アプリケーションセキュリティ担当
  • アクセス:claude.ai サイドバー、または claude.ai/security
  • プラン:Enterpriseでパブリックベータ。Team / Maxにも近日提供予定
  • 特徴:リポジトリ/ディレクトリ/ブランチ単位スキャン、定期スキャン、CSV/Markdownエクスポート

レイヤーB:Claude Code 内蔵 /security-review

  • 対象:Claude Codeを使う開発者全員(全プラン対応)
  • 形態:ターミナル内CLI
  • 使い方:コミット前に /security-review を打つだけ
  • 検出範囲:SQLi、XSS、認証欠陥、安全でないデータ処理、依存関係脆弱性

レイヤーC:GitHub Action(OSS、無料)

  • リポジトリanthropics/claude-code-security-review
  • 対象:PRワークフロー全般
  • 特徴:Diff-aware(変更ファイルのみ解析)、PRコメント自動投稿、誤検知フィルタ内蔵

僕の感覚だと、個人事業主や小規模チームはまずレイヤーB+Cで十分。組織が大きくなってきたらレイヤーAを検討、という順序がコスパ最適です。


2. 検出できる脆弱性カテゴリ

公式ヘルプ(support.claude.com)が明記しているカテゴリは以下のとおり。重大度がカテゴリ自体ではなく「リポジトリ内での悪用可能性」で動的に判定されるのが秀逸です。

カテゴリ 具体例
インジェクション系 SQLi、コマンドインジェクション、XSS、XXE、ReDoS
パス・ネットワーク系 Path Traversal、SSRF(例:169.254.169.254 メタデータ)、Open Redirect
認証・アクセス制御 認証バイパス、権限昇格、IDOR/BOLA、CSRF、Race Condition
メモリ安全性 Buffer/Integer Overflow、UAF(C/C++/Rust unsafe 中心)
暗号 タイミングリーク、alg=none JWT、MD5/SHA-1/DES/ECB の利用
逆シリアル化 Python pickle、Java readObject、YAML load → RCE
プロトコル/エンコーディング キャッシュポイズニング、長さプレフィックスの過信

重大度の判定基準

重大度 基準
High 認証なしのリモート攻撃で悪用可、前提条件なし Public APIエンドポイントの認証なしコマンドインジェクション
Medium 認証背後で悪用可、または1〜2の現実的前提条件 認証背後でテーブルスキーマ知識が必要なSQLi
Low 3つ以上の前提条件、ローカルアクセスのみ ネットワーク近接性が必要なタイミングサイドチャネル

ここが従来SASTとの大きな違い。「eval() を使ってる=即High」みたいな機械判定じゃなくて、そのコードベース全体の文脈で実際に攻撃可能かを見てくれます。


3. 多段階バリデーションパイプライン — なぜノイズが少ないのか

Claude Securityの発見プロセスはこうなっています。

[初回検出]
    
[再検査] Claude が自分の発見を「証明 / 反証」しようと試みる
    
[False Positive フィルタ] 低インパクトな知見を自動除外
    
[Confidence Rating + Severity 付与]
    
[人間レビュー(必須)]
    
[修正提案 → 開発者承認 → 適用]

自動的に除外される(≒ノイズになりやすい)項目:

  • DoS系
  • レートリミット関連
  • メモリ/CPU枯渇
  • インパクトが証明できない汎用的な入力検証
  • Open Redirect

このフィルタは false-positive-filtering-instructions でプロジェクトごとにカスタマイズ可能。後ほどテンプレートを載せます。


4. クイックスタート — 3パターン

🚀 パターン1:/security-review(5分で開始)

Claude Codeをすでに使っているなら最速です。

インストール

# macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

起動と実行

cd /path/to/your/project
claude

Claude Code内で:

/security-review

これだけ。Claudeが変更点を分析し、検出した問題ごとに「説明・重大度・再現手順・推奨修正」を返してくれます。そのまま「修正して」と頼めばパッチを当ててくれます。

個人的な運用Tips

僕は git commit 前のフックに組み込みたかったので、シェルエイリアスで近い動きを再現しています。

# ~/.zshrc または ~/.bashrc に追加
alias precommit-sec='claude -p "/security-review" --no-interaction'

🚀 パターン2:GitHub Actions で全PRに自動レビュー(10分で開始)

これが個人的に一番アツい。.github/workflows/security.yml を作るだけで全PRを自動スキャンできます。

最小構成

name: Security Review

permissions:
  pull-requests: write   # PRコメント投稿用
  contents: read

on:
  pull_request:

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha || github.sha }}
          fetch-depth: 2

      - uses: anthropics/claude-code-security-review@main
        with:
          comment-pr: true
          claude-api-key: ${{ secrets.CLAUDE_API_KEY }}

実運用向けフル装備版

僕がクライアント案件で使っているテンプレートはこちら。

name: Security Review (Production)

permissions:
  pull-requests: write
  contents: read
  issues: write

on:
  pull_request:
    types: [opened, synchronize, reopened]
    paths-ignore:
      - '**.md'
      - 'docs/**'
      - '.github/ISSUE_TEMPLATE/**'

concurrency:
  group: security-${{ github.ref }}
  cancel-in-progress: true

jobs:
  security:
    runs-on: ubuntu-latest
    timeout-minutes: 30

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha || github.sha }}
          fetch-depth: 2

      - name: Run Claude Security Review
        uses: anthropics/claude-code-security-review@main
        with:
          claude-api-key: ${{ secrets.CLAUDE_API_KEY }}
          comment-pr: true
          claude-model: claude-opus-4-7
          claudecode-timeout: 25
          exclude-directories: |
            node_modules,
            dist,
            build,
            .next,
            coverage,
            __tests__,
            test/fixtures,
            terraform/.terraform
          false-positive-filtering-instructions: .github/security/fp-rules.md
          custom-security-scan-instructions: .github/security/custom-rules.md

      - name: Upload Security Report
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: security-report-${{ github.event.pull_request.number }}
          path: |
            security-report.json
            security-report.md
          retention-days: 30

主要オプション

入力 デフォルト 用途
claude-api-key (必須) Claude API + Claude Code両方有効化したキー
comment-pr true PRに脆弱性コメントを投稿
exclude-directories なし スキャン除外ディレクトリをカンマ区切り
claude-model claude-opus-4-1-20250805 使用モデル
claudecode-timeout 20(分) 解析タイムアウト
false-positive-filtering-instructions なし 組織独自のFP除外ルールへのパス
custom-security-scan-instructions なし 追加スキャン指示テキストへのパス

⚠️ Prompt Injection への警告

このActionは Prompt Injection に対してハードニングされていません。fork からのPRに対してそのまま実行するのは危険です。リポジトリ設定で「外部コントリビューターに承認を必須」を必ず有効化してください。

具体的な設定:

Settings  Actions  General  Fork pull request workflows "Require approval for first-time contributors who are new to GitHub" 
  または
→ "Require approval for all outside collaborators"

🚀 パターン3:Claude Security(Web UI)

Enterpriseプラン契約者は claude.ai/security から直接利用可能。

  1. リポジトリ(またはディレクトリ/ブランチ)を選択
  2. スキャン開始
  3. ダッシュボードで「Confidence Rating」「Severity」「再現手順」「推奨パッチ」が表示
  4. そのまま Claude Code on the Web で修正
  5. Scheduled Scans(定期スキャン)も設定可能

「ワンショット監査ではなく継続的カバレッジ」を実現する設計になっています。


5. 実運用のためのJSONテンプレート集 — ここからが本題

ここからが、他の記事ではあまり触れられていない実用部分です。僕が実際に使っている設定ファイルテンプレートを全部公開します。

5-1. managed-settings.json(Claude Code セキュリティ設定)

設定ファイルの場所:

  • macOS/Library/Application Support/ClaudeCode/managed-settings.json
  • Linux/WSL/etc/claude-code/managed-settings.json
  • Windows%ProgramData%\ClaudeCode\managed-settings.json

個人開発者向け(バランス型)

{
  "$schema": "https://claude.ai/schemas/claude-code-settings.json",

  "disableAllHooks": true,
  "cleanupPeriodDays": 14,

  "enabledMcpjsonServers": [
    "github",
    "memory",
    "filesystem-readonly"
  ],
  "disabledMcpjsonServers": [
    "filesystem-write",
    "shell-executor"
  ],

  "permissions": {
    "allow": [
      "Bash(echo:*)",
      "Bash(ls:*)",
      "Bash(pwd)",
      "Bash(cat:*)",
      "Bash(git status)",
      "Bash(git diff:*)",
      "Bash(git log:*)",
      "Bash(npm test)",
      "Bash(pytest:*)",
      "Read(./src/**)",
      "Read(./tests/**)",
      "Read(./docs/**)"
    ],
    "ask": [
      "Bash(git push:*)",
      "Bash(git commit:*)",
      "Bash(npm install:*)",
      "Bash(pip install:*)",
      "Bash(docker:*)",
      "Bash(terraform:*)",
      "Bash(aws:*)",
      "Write(./src/**)",
      "Write(./tests/**)",
      "Edit(./src/**)"
    ],
    "deny": [
      "WebFetch",
      "Bash(curl:*)",
      "Bash(wget:*)",
      "Bash(rm -rf /*)",
      "Bash(sudo:*)",
      "Bash(chmod 777:*)",
      "Read(./.env*)",
      "Read(./secrets/**)",
      "Read(./.aws/credentials)",
      "Read(~/.ssh/**)",
      "Read(~/.aws/**)",
      "Read(~/.kube/config)",
      "Write(./.env*)",
      "Write(./.git/**)"
    ]
  },

  "auditLog": {
    "enabled": true,
    "path": "~/.claude/audit.log",
    "rotateDays": 30
  }
}

受託開発・法人案件向け(厳格型)

クライアントのコンプライアンス要件が厳しい場合(Claude以外のLLMにデータ送信禁止など)はこちら。

{
  "$schema": "https://claude.ai/schemas/claude-code-settings.json",

  "disableAllHooks": true,
  "cleanupPeriodDays": 7,
  "telemetry": {
    "enabled": false,
    "errorReporting": false
  },

  "enabledMcpjsonServers": ["memory"],
  "enableAllProjectMcpServers": false,
  "disabledMcpjsonServers": [
    "filesystem-write",
    "shell-executor",
    "browser",
    "fetch"
  ],

  "permissions": {
    "allow": [
      "Bash(echo:*)",
      "Bash(ls:*)",
      "Bash(cat:*)",
      "Bash(git status)",
      "Bash(git diff:*)",
      "Read(./src/**)",
      "Read(./docs/**)"
    ],
    "ask": [
      "Bash(git:*)",
      "Bash(npm:*)",
      "Bash(pytest:*)",
      "Write(./**)",
      "Edit(./**)"
    ],
    "deny": [
      "WebFetch",
      "WebSearch",
      "Bash(curl:*)",
      "Bash(wget:*)",
      "Bash(nc:*)",
      "Bash(ssh:*)",
      "Bash(scp:*)",
      "Bash(rsync:*)",
      "Bash(sudo:*)",
      "Bash(rm -rf:*)",
      "Read(./.env*)",
      "Read(./.envrc)",
      "Read(./secrets/**)",
      "Read(./config/production*)",
      "Read(./terraform/**.tfstate*)",
      "Read(~/.ssh/**)",
      "Read(~/.aws/**)",
      "Read(~/.gnupg/**)",
      "Read(~/.config/gh/**)",
      "Write(./.env*)",
      "Write(./.git/hooks/**)",
      "Write(./node_modules/**)"
    ]
  },

  "sandboxing": {
    "enabled": true,
    "networkIsolation": true,
    "filesystemIsolation": true,
    "allowedDomains": [
      "registry.npmjs.org",
      "pypi.org",
      "files.pythonhosted.org",
      "github.com",
      "api.github.com"
    ]
  },

  "auditLog": {
    "enabled": true,
    "path": "/var/log/claude-code/audit.log",
    "rotateDays": 90,
    "syslogForwarding": true
  }
}

AWS構築案件向け(IaC寄り)

Terraform / CloudFormation を多用する案件用。

{
  "$schema": "https://claude.ai/schemas/claude-code-settings.json",

  "disableAllHooks": true,
  "cleanupPeriodDays": 14,

  "enabledMcpjsonServers": ["github", "memory", "aws-readonly"],

  "permissions": {
    "allow": [
      "Bash(terraform fmt:*)",
      "Bash(terraform validate)",
      "Bash(terraform plan:*)",
      "Bash(checkov:*)",
      "Bash(tflint:*)",
      "Bash(prowler:*)",
      "Read(./terraform/**)",
      "Read(./modules/**)"
    ],
    "ask": [
      "Bash(terraform apply:*)",
      "Bash(terraform destroy:*)",
      "Bash(aws s3:*)",
      "Bash(aws iam:*)",
      "Bash(aws ecs:*)",
      "Write(./terraform/**)",
      "Edit(./terraform/**)"
    ],
    "deny": [
      "Bash(terraform import:*)",
      "Bash(aws iam create-user:*)",
      "Bash(aws iam create-access-key:*)",
      "Bash(aws sts:*)",
      "Read(./terraform/**.tfstate)",
      "Read(./terraform/**.tfstate.backup)",
      "Read(./terraform/.terraform/**)",
      "Read(~/.aws/credentials)",
      "Write(./terraform/**.tfstate*)"
    ]
  }
}

5-2. False Positive フィルタリングルール

.github/security/fp-rules.md に置くテンプレート。Markdownですが、組織のコンテキストをClaudeに伝える役割なのでJSON的に構造化して書きます。

# False Positive Filtering Rules

## プロジェクトコンテキスト

このリポジトリは以下の特性を持ちます:

- 言語: TypeScript (Next.js 15) + Python (FastAPI)
- インフラ: AWS ECS Fargate + RDS Aurora MySQL
- 認証: AWS Cognito (社内管理画面はSAML SSO)
- 公開範囲: 内部利用のみ(VPN背後、Public Internetからアクセス不可)

## 自動的に除外する検出パターン

### 1. テストコード関連
- `__tests__/`, `tests/`, `*.test.ts`, `*.spec.py` 配下のハードコードされた認証情報
- モックデータ内のダミーAPIキー(`sk_test_`, `dummy_`, `mock_` プレフィックス)

### 2. 環境変数の利用
- `process.env.NODE_ENV === 'development'` 分岐内の緩い設定
- `if __name__ == '__main__':` 内のデバッグ用設定

### 3. 既知の安全な依存関係
- `lodash``_.template`(テンプレート文字列のみ、ユーザー入力を渡さない設計)
- `marked` (DOMPurify併用済み、別レイヤーでサニタイズ)

### 4. インフラ層で対処済み
- レートリミット欠如 → AWS WAF + API Gateway Throttling で対処
- DoS脆弱性 → CloudFront + Shield Standard で対処
- HTTPSリダイレクト欠如 → ALB Listener Rule で強制

## 重大度を下げる条件

- **VPN背後のみアクセス可能なエンドポイント** → High → Medium
- **管理者権限が必要な操作** → Medium → Low
- **読み取り専用APIのSQLi** → 影響範囲を再評価

## 重大度を上げる条件

- **PII(個人情報)を扱うエンドポイント** → +1段階
- **決済処理に関わるコード** → +1段階
- **認証バイパスの可能性** → 即High

5-3. カスタムスキャンルール

.github/security/custom-rules.md のテンプレート。

# Custom Security Scan Instructions

## 重点的にチェックしてほしい項目

### 1. AWS関連
- [ ] IAMポリシーの `Resource: "*"` または `Action: "*"` の組み合わせ
- [ ] S3バケットポリシーの `Principal: "*"` (Public読み書き)
- [ ] RDS/ElastiCacheのSecurityGroupで `0.0.0.0/0` からのアクセス許可
- [ ] Lambda Function URLの `AuthType: NONE` 設定
- [ ] CloudFrontでHTTPS強制が無効

### 2. Next.js / React 特有
- [ ] `dangerouslySetInnerHTML` の使用箇所すべて
- [ ] `getServerSideProps` でユーザー入力を直接DBクエリに渡している箇所
- [ ] API Routes で認証チェック漏れ
- [ ] `<a href={userInput}>` パターン(Open Redirect)

### 3. FastAPI / Python 特有
- [ ] `pickle.loads()` の使用
- [ ] `yaml.load()``yaml.safe_load()` ではない)
- [ ] `subprocess.run(shell=True)` の使用
- [ ] SQLAlchemy の生クエリ + 文字列フォーマット

### 4. 認証・セッション
- [ ] JWTの署名検証スキップ(`verify=False`)
- [ ] セッショントークンのHTTPOnlyフラグ未設定
- [ ] CSRFトークン検証漏れ(POST/PUT/DELETE)
- [ ] パスワードハッシュにbcrypt/argon2以外を使用

### 5. ロギング
- [ ] パスワード・トークン・PIIをログ出力している箇所
- [ ] エラーメッセージにスタックトレースをそのまま返す箇所

## レポート出力形式

各検出項目は以下の構造で出力してください:

\`\`\`
## [SEVERITY] タイトル
- ファイル: path/to/file.ts:42
- カテゴリ: [INJECTION|AUTH|CRYPTO|...]
- 攻撃シナリオ: <具体的な悪用手順>
- 修正案:
  \`\`\`diff
  - 危険なコード
  + 修正後のコード
  \`\`\`
- 参考: <OWASP/CWE番号>
\`\`\`

5-4. CodeRabbit / Claude Security 併用時のPRテンプレート

.github/PULL_REQUEST_TEMPLATE.md

## 変更内容

<!-- 何を、なぜ変更したか -->

## セキュリティチェックリスト

- [ ] ユーザー入力を扱う箇所にバリデーションを追加した
- [ ] DB クエリはパラメータ化した(生 SQL を組み立てていない)
- [ ] 環境変数経由で機密情報を扱っている(ハードコードしていない)
- [ ] 認証・認可が必要なエンドポイントに `requireAuth` ミドルウェアを適用した
- [ ] 外部 API 呼び出しに タイムアウト と リトライ上限 を設定した
- [ ] エラーメッセージに スタックトレース や 内部パス を含めていない

## Claude Security レビュー結果

<!-- このPRに対する自動レビューコメントへの対応状況 -->

- [ ] High 検出はゼロ、または対応済み
- [ ] Medium 検出は対応 or 「FP理由」を fp-rules.md に追記
- [ ] Low 検出はチケット化して継続管理

## デプロイ影響

- [ ] DBマイグレーションあり → ロールバック手順を記載
- [ ] 環境変数追加あり → README.md と Terraform を更新
- [ ] 既存APIの破壊的変更 → API バージョンを上げた

6. Claude Code 自体のセキュリティ — 開発者が守る側として知るべきこと

ここ、意外と見落とされがちですが超重要です。

Claude Code は「ファイル読み書き・コマンド実行・依存追加・APIアクセス」が可能なため、設定を誤ると “ルート権限を持ったインターン” になりかねません

6-1. ビルトインの防御機構

機能 内容
Permission-based Architecture デフォルトはRead-only、ファイル編集・コマンド実行は明示承認制
Sandboxed bash tool /sandbox コマンドでファイルシステムとネットワーク隔離
Write access restriction 起動ディレクトリ配下のみ書き込み可(親ディレクトリ不可)
Command blocklist curl / wget などはデフォルトでブロック
Network request approval ネットワークアクセスを伴うツールは都度承認
Isolated context windows Web fetchは別コンテキストで処理(Prompt Injection緩和)
Trust verification 初回実行や新MCPサーバーは信頼検証ステップ必須
Secure credential storage APIキー・トークンは暗号化保管

6-2. 必読のベストプラクティス8項目

  1. すべてのフック無効化 — 永続化リスクの最大ベクトル
  2. MCPは明示的に許可したものだけenableAllProjectMcpServers: true は絶対避ける
  3. Denyルールを積極活用curl / fetch / .env アクセスはブロック
  4. トランスクリプト保存期間は7〜14日
  5. VMまたはコンテナでサンドボックス化(Docker / Podman / dev container)
  6. 絶対にrootで実行しない
  7. 月次の managed-settings.json ドリフト監査
  8. 本番投入前にテスト環境で設定を検証

6-3. Docker でのサンドボックス実行例

Dockerfile.claude-sandbox

FROM ubuntu:24.04

# 非rootユーザー作成
RUN useradd -m -s /bin/bash claudeuser

# 必要最小限のツール
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl ca-certificates git nodejs npm python3 python3-pip \
    && rm -rf /var/lib/apt/lists/*

# Claude Code インストール
USER claudeuser
WORKDIR /home/claudeuser
RUN curl -fsSL https://claude.ai/install.sh | bash

# 作業ディレクトリ
WORKDIR /workspace

# ネットワーク制限はdocker run時に指定
ENTRYPOINT ["/home/claudeuser/.claude/bin/claude"]

docker-compose.yml

version: '3.9'

services:
  claude-sandbox:
    build:
      context: .
      dockerfile: Dockerfile.claude-sandbox
    container_name: claude-sandbox

    volumes:
      - ./workspace:/workspace:rw
      - ./managed-settings.json:/etc/claude-code/managed-settings.json:ro

    environment:
      - CLAUDE_API_KEY=${CLAUDE_API_KEY}
      - HOME=/home/claudeuser

    networks:
      - claude-restricted

    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE

    security_opt:
      - no-new-privileges:true

    read_only: false
    tmpfs:
      - /tmp:size=512M

    mem_limit: 4g
    cpus: 2.0

networks:
  claude-restricted:
    driver: bridge
    driver_opts:
      com.docker.network.bridge.enable_icc: "false"

7. クラウド実行時の追加セキュリティ(Claude Code on the Web)

ブラウザから使う場合はAnthropic管理の隔離VM上で動作。

制御 内容
Isolated VM セッションごとに独立したVM
Network controls デフォルトでネットワーク制限、ドメイン許可リスト可
Credential proxy スコープ付き短命クレデンシャル経由でGitHubトークンを翻訳
Branch restrictions git push は作業ブランチのみ
Audit logging 全操作を監査ログに記録
Auto cleanup セッション終了でVM自動破棄

8. 競合との位置づけ

観点 従来のSAST(ルールベース) Claude Security
検出方式 パターンマッチ データフロー追跡 + 文脈推論
ビジネスロジック欠陥 ❌ 苦手 ✅ 強い
False Positive 多い 多段階検証で抑制
修正提案 なし/汎用 コード文脈にフィットしたパッチ生成
言語対応 言語ごとにルール必要 言語非依存(Language Agnostic)
運用 スキャナ運用必要 API統合不要・ノーコード起動

OpenAIも同月に Codex Security をリサーチプレビュー公開しており、AIネイティブ脆弱性スキャナ市場は本格的な競争フェーズに入っています。


9. 企業導入事例とエコシステム

テクノロジーパートナー(Opus 4.7を自社プラットフォームに統合)

  • CrowdStrike
  • Microsoft Security
  • Palo Alto Networks
  • SentinelOne
  • TrendAI
  • Wiz

コンサルティング/SIパートナー

  • Accenture / BCG / Deloitte / Infosys / PwC

Project Glasswing

Apple、Google、Microsoft、AWS、Cisco、JPMorgan Chase、Linux Foundation、Nvidia などが参画する「世界の重要ソフトウェアを守るAI版マンハッタン計画」。Mythosモデルは公開されないほど強力で、コードベース間の相関までマクロ分析できるとのこと。


10. 利用上の注意

スキャン対象の範囲制限

Claude Securityは 「自社/自分が所有し、スキャン権を持つコード」 のみが対象。OSSプロジェクトや第三者所有のコードを許可なくスキャンしてはいけません。

OSSメンテナーへの優遇

OSSメンテナーは Free + 優先アクセスを申請可能。

コンプライアンス

Anthropicは SOC 2 Type 2、ISO 27001 取得済み(Anthropic Trust Center)。


11. 推奨ロードマップ — 今週から始めるなら

ステップ アクション 所要時間
Day 1 Claude Code を個人マシンに導入 → 自社リポジトリで /security-review 試行 30分
Day 2 managed-settings.json を上記テンプレで設定 1時間
Day 3 テストリポジトリに GitHub Action を導入、ダミーPRで検証 2時間
Week 1末 False Positive フィルタを自社ルールでカスタマイズ 半日
Week 2 本番リポジトリ(信頼できる内部PRのみ)に展開、Slack/Issue連携 1日
Month 1 Enterpriseプラン検討 → Claude Security(Web)でリポ全体定期スキャン開始
継続 月次で設定ドリフト監査、検出件数とMTTRをKPI化 月1時間

12. 個人事業主・小規模チーム向けの本音アドバイス

僕の現場感覚で言うと、ここまで読んできて「全部やるのは無理…」と感じた人へのアドバイスはこれです。

最低限これだけはやれ

  1. /security-review を週1で全リポジトリに走らせる(タダ)
  2. GitHub Action は最重要案件のリポジトリだけ入れる(API課金が読みやすい)
  3. managed-settings.json の deny ルールだけはコピペで入れておく(事故防止)

やらなくていいこと(個人レベル)

  • いきなり Enterprise プラン契約
  • 全リポジトリへの一斉展開
  • 自前のFPルール作成(最初はデフォルトでOK)

コスパ最大化のコツ

僕は Claude Max($100/month)を Claude Code でフル活用しているので、/security-review は実質追加コストゼロ。GitHub Action だけ別途API課金になりますが、重要なPRだけに絞ればMTRは月数ドルで済みます。

クライアント案件で「セキュリティレビュー込みで請求」する場合、これだけで十分付加価値が出せます。月額数千円のツール代で、月数十万円分のレビュー業務が回せるのは正直バグです。


13. 主要参考文献


一言まとめ

「攻撃者がAIで脆弱性を瞬時に見つける時代に、防御側も同じ速度で見つけて直す」 — それを可能にするのがClaude Securityです。

僕みたいな個人事業主にとっては、「セキュリティレビューを商品化できる武器」 がついに手に入ったという感覚。クライアントに「うちはAIネイティブな脆弱性スキャンを継続的に回しています」と説明できるのは、競合との差別化として強烈です。

まずは無料で使える /security-review と GitHub Action から触ってみて、肌で性能を確かめてみてください。手応えを感じたら、managed-settings.json を整備して本格運用フェーズに入るのが王道です。


質問・相談はTwitter(X)かブログのお問い合わせフォームからどうぞ。自治会・PTA向けDXパッケージや、AWS構築・AIコンサルのご相談も随時受け付けています。

それでは、よいセキュリティライフを。

— 野口

記事フッター

カテゴリ

セキュリティ

公開日

2026-05-04

💬 無料技術相談のご案内

セキュリティとAI技術についての導入や活用のご相談を 30分間無料 で承っております。