14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code を社内で使うための「AIエージェントセキュリティ」実践編

14
Last updated at Posted at 2026-05-15

この記事は誰向けか

  • 社内で Claude Code / Cursor / Codex / ChatGPT などの AI コーディング支援を 本気で業務利用したい エンジニア
  • 「リスクが…」で却下され続けて、情シスに見せられる具体的な技術対策が欲しい チームリーダー
  • 情シス側で AI ツールの技術統制を最短で組みたい 担当者

前回記事では、なんでも操作できちゃうAIエージェントを制御するAIGISを紹介しました。
https://qiita.com/sharu389no/items/ede7d1c0be4a14024857

今回は、AIGISを入れた後どういった設定をあなたの環境に合わせて作っていくかの実践編です!


0. 実践にあたって前提課題 — 情シスの困りごと

エンジニア「Claude Code 導入したいです」
情シス  「AI が社内コードを勝手に外部に送ったりしない?」
エンジニア「…たぶん大丈夫です」
情シス  「たぶんじゃダメです。却下。」

情シスが理不尽なわけではなく、彼らが必要としているのは次の 4 点です。

  1. 可視化 — AI エージェントが何をしているか観測できる
  2. 制御 — 危険操作を技術的にブロックできる
  3. 監査 — いつ誰が何をしたかが残る
  4. 規制対応の証拠 — AI 事業者ガイドライン v1.2 / AI 推進法(2025-09 施行)に対応していることが言える

「AI の操作を全部丸裸にして、制御して、記録する」基盤が 1 つあれば、4 点同時に満たせます。


1. Aigis をインストールする(30 秒)

PyPI 上のパッケージ名は pyaigis(CLI は aigis)です。

pip install pyaigis
aigis init --agent claude-code

これだけで、Claude Code のプロジェクト直下に以下が自動配置されます。

  • aigis-policy.yaml — 既定セキュリティルール(即適用)
  • .claude/hooks/aigis-guard.py — Claude Code の pre-tool-use フック。全ツール呼び出しを横取りする
  • .aigis/logs/ — JSON Lines のローカル操作ログ

.claude/hooks/ は Claude Code 公式のフック機構なので、特別なラッパは挟みません。Claude Code 側の挙動を変えずに監視層だけ足せます。


2. インターセプトの実際 — Bash の rm -rf / を例に

フック導入後の動きはこうです。

Claude Code   「Bash で rm -rf / を実行します」
   ↓ (pre-tool-use フック)
Aigis Guard   「policy: dangerous_commands に該当 → deny」
   ↓
Claude Code   「ブロックされました。別のアプローチを検討します」

ローカルログに残るのは次のような JSON Lines です。

{
  "timestamp": "2026-05-15T15:30:00Z",
  "user_id": "tanaka",
  "agent_type": "claude_code",
  "action": "shell:exec",
  "target": "rm -rf /",
  "risk_score": 90,
  "risk_level": "CRITICAL",
  "policy_decision": "deny",
  "policy_rule_id": "dangerous_commands",
  "reasons": ["Recursive root deletion"]
}

決定が「deny / review / allow」のどれに落ちたか、なぜ落ちたかが構造化されています。Excel に貼っても grep してもよし。


3. 既定でブロックされる代表例

aigis init --agent claude-code 直後の aigis-policy.yaml で発動するルールの抜粋:

操作 既定判定 検出されている攻撃面
rm -rf * block 再帰削除
.env への書き込み block シークレット保護
.ssh/ へのアクセス block SSH 鍵保護
git push --force block 履歴破壊防止
curl ... | bash block リモートコード実行
sudo review 特権昇格は人間承認
git push review push は人間承認
サブエージェント生成 review エージェント委任は人間承認
ハードコード API key の生成 block dev_hardcode_secret
マルウェアコード生成 block dev_malware_gen

全部 aigis-policy.yaml 上で読める正規表現/DSL ルールなので、ブラックボックスは無いです。

カスタムを足したいときは YAML を直接書きます。

rules:
  - id: protect_production
    action: "shell:exec"
    target: "*production*"
    decision: deny
    reason: "本番環境への操作は禁止"

  - id: protect_customer_data
    action: "file:read"
    target: "*customer*"
    decision: review
    reason: "顧客データへのアクセスはレビュー必要"

この辺の編集どうするとかは、Claude codeに聞いてね♡ 「AIGISのポリシーを変更したい」


4. 情シスに見せる 3 コマンド

導入後、社内承認用に見せる成果物は次の 3 つで足ります。

# (a) ガバナンス状態のスナップショット
aigis status

# (b) 操作ログ(アラートのみ)
aigis logs --alerts

# (c) コンプライアンスレポート(30 日)
aigis report --days 30

aigis status の出力例:

Aigis - Governance Status
==================================================
  Policy:  developer_tools.yaml (v1.0.21)
  Rules:   {N} (deny={D}, review={R})

  Activity (last 7 days):
    Total events: 342
    Blocked:       8
    Review queued: 3

  Compliance (JP):  39/39 requirements mapped
  OpenSSF Scorecard: passing

※ ルール件数 N は適用ポリシー(developer_tools.yaml / internal_tools.yaml / finance.yaml など 9 雛形から選択可)と自社カスタム追加分に依存します。

aigis monitor --owasp で OWASP LLM Top 10 のスコアカードも出ます。

OWASP LLM Top 10 Scorecard
LLM01  Prompt Injection           ACTIVE    118 detections
LLM02  Insecure Output Handling   ACTIVE     36 detections
LLM05  Supply-Chain               ACTIVE     17 detections
LLM06  Sensitive Info Disclosure  ACTIVE     45 detections
LLM07  Insecure Plugin Design     ACTIVE     12 detections
...

実測値を持って情シスに行ける」のが本記事の主張です。「対策しています」ではなく「直近 7 日で 8 件ブロックしました」と数字で答えられる。


5. 日本の AI 規制対応の「証拠」を出す

Aigis は 44 のコンプライアンス雛形 / 国別合計 39 件の日本規制要件マッピング を同梱しています。日本側の内訳は次のとおりです(aigis/compliance.py の実装値)。

規制 要件マッピング数
AI 事業者ガイドライン v1.2(2026-03 改訂) 25
総務省 AI セキュリティ技術ガイドライン 6
AI 推進法(2025-09 施行) 3
個人情報保護法 / マイナンバー法 3
不正競争防止法 1
著作権法 1
合計 39
aigis report --days 30
# → Compliance: 39/39 JP requirements covered

ここで重要なのは「100% カバーしている」ことではなく、雛形が読める YAML として手元にあって、足りないものを自社で書き足せる ことです。情シスから「うちは独自規程 XX があるんだけど」と言われても、policy_templates/ を出発点にカスタム雛形を 1 ファイル足すだけで対応できます。
カスタムひな形の作り方は、この記事が公表でしたら作ってみます!


6. もう一段下の防御 — AI 特有の攻撃に効くのは別の層

ここまで紹介したのは「コマンド実行レベル」の制御です。Aigis の本体はもう一段下、プロンプト / 出力 / メモリ / MCP ツール定義 の層にあります。代表的な攻撃面は次の通り:

  • プロンプトインジェクションIgnore all previous instructions... 系の指示乗っ取り
  • MCP rug-pull / shadowing — 一度承認した MCP ツールが、後から定義を変えて悪意ある動作に化ける
  • メモリポイズニング — 長期メモリにシステムの声を模した偽記憶を植え込み、後続セッションで誘導する
  • LLM-as-Judge 攻撃 — 評価器を騙して合格判定を強制する(AdvJudge-Zero / Palo Alto Unit 42, 2026)

Aigis はこれらを 2025–2026 年の論文 7 本(Mirror / StruQ / MI9 / MemoryGraft / MSB / DataFilter / AdvJudge-Zero) に基づく検出器でカバーしています。詳細は GitHub の README にマッピング表があります。

1,002 件のテストが全通過、検出率 98.9%、誤検知率 0% を CI で常時測定 しています。OpenSSF Scorecard / OpenSSF Best Practices にも登録済み。

この辺は細かいので、情シスへの説得感の1つくらいで認識していただければいいと思います!


まとめ — 最短経路

やること コマンド
インストール pip install pyaigis
初期化 aigis init --agent claude-code
状態確認 aigis status
アラートログ aigis logs --alerts
規制レポート aigis report --days 30
体験ゲーム Gandalf Challenge

「AI ツールを業務に入れたい、けど却下が続く」状況は、技術対策の 可視化・制御・監査・規制対応 の 4 点を 1 つの基盤で揃えれば突破できます。商用ツールに数百万かける前に、まず 30 秒で動かせる OSS で「うちの現場で何件何がブロックされるか」の実測値を手に入れてください。

質問・誤り指摘は GitHub Issues か、この記事のコメントで歓迎します。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?