Claude Agent SDKによる脆弱性調査

1.3K Views

May 12, 26

スライド概要

Claude Code Meetup Japan #5用

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2026/05/12 #Claude Code Meetup Japan #5 Claude Agent SDKを活⽤した脆弱性調査⾃動化 株式会社ラクス 開発推進部 AIエージェント課 © RAKUS Co., Ltd. ⽵⽥ 舜 1

2.

⾃⼰紹介 ⽒名:⽵⽥ 舜 所属:株式会社ラクス 仕事:AIエージェント開発(アプリ〜インフラ、LLMOps) Xのアカウント:https://x.com/TKDDDDDS 2

3.

さっそくLTへ #Claude Code Meetup Japan #5 © RAKUS Co., Ltd. 3

4.

先に今⽇の結論 全⾃動じゃなくても⼗分役に⽴つ ● AIに全部任せなくても良い ● ⾯倒で曖昧な調査だけ任せる ● 管理ツールへの最終記⼊は⼈間側に残す(APIの制約&安全性) 4

5.

⽬次 ● ⾃動化した処理 ● 判断ポイント ● 細かいTips 5

6.

⼿作業での脆弱性棚卸し ⾊々なツールや画⾯を⾏き来して⾯倒... 1. yamoryからSlackに脆弱性通知 2. yamoryをブラウザで開いて未対応の項⽬の詳細を確認 3. エディタとClaude Codeで対象コードベースで使っているか調べる 4. 影響と対応⽅針を考える 5. GitHub Discussionsに脆弱性詳細‧影響調査内容‧対象サービスラベル付け 6. yamoryに調査内容‧対応期限‧対応⽅針を書いてステータス変更 6

7.

作業フロー yamoryからSlackに脆弱性通知 影響と対応⽅針を考える yamoryで詳細の確認 GitHub Discussionsに脆弱性詳 細‧影響調査内容‧ 対象サービスラベル付け 対象コードベースで 関連する機能を使ってるか 調べる yamoryに調査内容‧対応期限‧ 対応⽅針を書いて ステータス変更 7

8.

作業フロー yamoryからSlackに脆弱性通知 調査‧ 影響と対応⽅針を考える 調査レポート作成 の⾃動化 yamoryで詳細の確認 GitHub Discussionsに脆弱性詳 細‧影響調査内容‧ 対象サービスラベル付け 対象コードベースで 関連する機能を使ってるか 調べる yamoryに調査内容‧対応期限‧ 対応⽅針を書いて ステータス変更 8

9.

なぜ検知→投稿まで全部⾃動化しないのか 脆弱性⾃体の危険度はyamoryのSlack通知で確認可能 なるべく費⽤は安くしたい APIの制約 ● 緊急 or 定常業務内での対応に⼀⽬で振り分けられるため 検知⾃動化のうまみが薄い ● yamoryのAPIがReadのみでWriteに対応してない ● 担当者のローカル実⾏でClaudeのサブスクプランを使えるほうが メリットが⼤きい →簡単に実⾏可能なCLIレベルでOK 9

10.

そこで、Claude Agent SDKを利⽤したCLIを開発 体感1件あたり5分~10分→約2分(+バックグラウンド処理) #Claude Code Meetup Japan #5 © RAKUS Co., Ltd. 10

11.

CLIの⼤枠 yamory API 期間・ステータスで絞り込み 既存Discussionタイトルを確認 対象外 新規 CREATE 処理判定 SKIP 既存 COMMENT Claude Agent SDKで調査・草案作成・ ラベル付 任意 調査結果・ yamory記入例投稿 推奨対応方針記入 Slack通知 11

12.

半⾃動設計のポイント 決定論的な処理とLLMが必要な処理で使い分け、最終判断は⼈間へ ● ● コードで記述してやってる部分 ○ yamory からの⼀覧取得‧検索‧詳細取得 ○ 既存 Discussion 検索による CREATE / COMMENT / SKIP 判定 ○ 安全性ガードレール ○ 投稿 LLM がやっている部分(コードベース探索、⽅針決定、⽂章⽣成) ○ CVE / PoC / 修正済みバージョンなどの外部情報、現環境での悪⽤可能性や影響評価 ○ 推奨対応⽅針 ○ Discussionへのラベル付け 他のLLMを必要とする業務への影響を抑えつつ、⼈間をラクにする 12

13.

半⾃動にするための線引き ● 判断材料を集めるところはAIに寄せる ● 判断は⼈間に残す コード LLM ⼈間 ロジック化 可能な作業 判断が必要 間違え られない (危険ではない) 判断を間違えると危険な部分は⼈間によるチェックをする 13

14.

細かいTips #Claude Code Meetup Japan #5 © RAKUS Co., Ltd. 14

15.

1. お得で安全にLLMを扱う LLMに渡す範囲を狭くする コードで固定する領域 ● ● ● ● 期間・状態の絞り込み 重複判定 冪等性 共有ON/OFF AIに渡す領域 ● ● ● ● 利用状況の調査 影響評価の下書き 推奨対応方針の下書き 調査内容・期限/方針の記入例 15

16.
[beta]
2. 読み取りを⾃作ツールで⾏う
安全性確保
●

read only

●

ツール内で危険アクセスを弾く(ファイルサイズ、拡張⼦、ファイルパスを解析的に検査)

●

Claude Agent SDKの@toolアノテーションでツール化が簡単に可能

@tool(
"read_target_repo_file" ,
"対象リポジトリ内のファイルを repo ルート相対パスで読み込み、本文を返す ",
{"relative_path" : str},
annotations =ToolAnnotations (readOnlyHint =True, openWorldHint =False),
)
async def read_target_repo_file (args: dict[str, str]) -> dict[str, object]:
...
16

17.

Claude Agent 自作読み取り専用ツールのみ渡して repo 検索 secret拒否 巨大拒否 repo外拒否 バイナリ拒否 調査結果だけ返す 17

18.

3. ツールを絞る 読み取りを⾃作ツール以外からできないようにする return ClaudeAgentTask ( name="VulnResearcher" , system_prompt =_build_instructions (target_repo_name ), model=self._model, cwd=self._cwd, use_claude_code_preset =True, tools=("WebSearch" ,), allowed_tools =( "WebSearch" , "mcp__repo__search_target_repo" , "mcp__repo__read_target_repo_file" , ), mcp_servers ={"repo": repo_server }, runtime_options =self._runtime_options , ) 18

19.

4.Claude Code標準プロンプトは必要な場所だけ使う コード調査→Claude Codeを使う。ラベル選択→最⼩プロンプトで使う 広い調査と⼩さい判定でAgentを分ける 脆弱性調査 GitHubのラベル付 = Claude Code標準プロンプト = 小さな構造化タスク + 脆弱性調査用の追加指示 + 候補ラベルから選ぶ + 読み取り専用repo検索 + 適切なラベルがなければ作る + WebSearch 19

20.

use_claude_code_preset=True Claude Codeの組み込みプロンプトと指⽰プロンプトがセットで渡る コード探索などのClaude Codeのハーネスとしての強みがほしい時だけ return ClaudeAgentTask ( name="VulnResearcher" , system_prompt =_build_instructions (target_repo_name ), model=self._model, cwd=self._cwd, use_claude_code_preset =True, tools=("WebSearch" ,), allowed_tools =( "WebSearch" , "mcp__repo__search_target_repo" , "mcp__repo__read_target_repo_file" , ), mcp_servers ={"repo": repo_server }, runtime_options =self._runtime_options , ) 20

21.

まとめ #Claude Code Meetup Japan #5 © RAKUS Co., Ltd. 21

22.

Claude Agent SDKによる⾃動化の型 今⽇紹介した流れは脆弱性調査じゃなくても使える 入力を集める 既存状態と 照合する AIに調査・要約 させる 草案を生成する 人間が確認して 使う 22

23.

例えば... ● 依存ライブラリ更新の調査 ● 問い合わせ⼀次調査 ● 障害レポート下書き ● リリースノート下書き ● 競合情報の調査 23

24.

明⽇から使える3つ ● 無理にE2Eの全⾃動にせず、半⾃動を狙う ● LLMが得意とする情報集め‧例⽂作成をメインに使う ● 最終記⼊、冪等性、確認導線は⼈間とコードで設計すると安全&お得 ※Claude Agent SDKの情報は2026年4⽉末までの情報です 24