security-case-management について
security-case-managementは、SOCチームがElastic Securityのケースを検索・作成・更新し、調査記録を追加するスキルです。対象はsecuritySolutionに限定され、アラートの関連付けやコネクター経由の外部インシデント管理システムへの連携に対応します。
主な機能
- 01ケースの作成・検索・一覧表示
- 02ステータス・重大度・タグの更新
- 03調査コメントの追加
- 04ケースへのアラート関連付け
- 05アラートの一括追加
活用シーン
- 01アラートのトリアージ後にケースを作成
- 02ホストや攻撃に関連するケースを検索
- 03調査結果をケースに追加
- 041件以上のアラートをケースに添付
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ elastic/ agent-skills --skill security-case-managementインストール後、Claude Code で/security-case-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/kibana-cases-api.mdscripts/case-manager.jskibana-client.js詳細
ケース管理
Kibana Cases API を使用して SOC ケースを管理します。すべてのケースのスコープは securitySolution です。このスキルは Elastic Security 内でのみ動作します。ケースは Kibana Security に表示され、アナリストへの割り当て、アラートとのリンク、コネクターを介した外部インシデント管理システムへの送信が可能です。
前提条件
初回使用前に、skills/security ディレクトリから依存関係をインストールします。
cd skills/security && npm install
必要な環境変数を設定します(またはワークスペースのルートにある .env ファイルに追加します)。
export KIBANA_URL="https://your-cluster.kb.cloud.example.com:443"
export KIBANA_API_KEY="your-kibana-api-key"
使用する場合
- アラートのトリアージ後にケースを作成する場合(分類、IOC、調査結果)
- 関連するアラートを相関させるために既存のケースを検索する場合
- 調査コメントを追加する場合、または既存のケースにアラートを添付する場合
- ケースのステータスまたは重大度を更新する場合
- 確認用に最近のケースを一覧表示する場合
使用しない場合
- Observability または Elasticsearch のケースにはこのスキルを使用しないでください。
owner: securitySolutionがハードコードされています - Security ソリューションの領域外にあるケースには使用しないでください
実行ルール
- すぐにツールの実行を開始してください。最初に SKILL.md を読んだり、ワークスペースを調べたり、ファイルを一覧表示したりしないでください。
- ツールの出力を忠実に報告してください。API が返したケース ID、タイトル、タグ、重大度、件数を正確に転記してください。ケース ID を省略したり、タイトルを切り詰めたり、詳細を捏造したり、数値を丸めたりしないでください。
- API が結果を 0 件返した場合は、その旨を明示してください。結果を推測しないでください。
- ケースを一覧表示または検索する場合は、API レスポンスの正確な合計件数を報告し、各ケースのタイトル、重大度、ステータスを一字一句そのまま提示してください。
クイックスタート
すべてのコマンドはワークスペースのルートから実行します。出力はすべて JSON です。ツールを直接呼び出してください。最初にスキルファイルを読んだり、ワークスペースを調べたりしないでください。attach-alert/attach-alerts では、Kibana API により --rule-id と --rule-name が必須です。不明な場合は --rule-id unknown --rule-name unknown を使用してください。一括処理では attach-alerts を使用します。自動のレート制限リトライが行われ、API 呼び出しの間隔は 2 秒です。
よくある複数ステップのワークフロー
| タスク | 呼び出すツール(順序どおり) |
|---|---|
| ケースを作成する | case_manager create(title、description、tags、severity) |
| ホストのケースを検索する | case_manager find --tags "agent_id:<id>" または find --search "<hostname>" |
| ケースにアラートを添付する | case_manager attach-alert(case-id、alert-id、alert-index、rule-id/name) |
| 調査メモを追加する | case_manager add-comment(case-id、comment text) |
| 最近のオープンケースを一覧表示する | case_manager list --status open --per-page <n> |
| ケースを更新する | case_manager update(case-id、status/severity/tags の変更) |
ホストのケースを検索する場合: find --search "<hostname>" を使用すると、タイトル、説明、コメントからホスト名を検索できます。あるいは、エージェント ID がわかっている場合は find --tags "agent_id:<agent_id>" を使用します。アクティブなケースのみに絞り込むには、必ず --status open を追加してください。正確な total 件数と、API レスポンスにある各ケースのタイトルを一字一句そのまま報告してください。
# Create (syncAlerts enabled by default; disable with --sync-alerts false)
node skills/security/case-management/scripts/case-manager.js create --title "Malicious DLL sideloading on host1" --description "Crypto clipper malware detected via DLL sideloading..." --tags "classification:malicious" "confidence:88" "mitre:T1574.002" --severity critical --yes
# Find, list, get
node skills/security/case-management/scripts/case-manager.js find --tags "agent_id:550888e5-357d-4bc1-a154-486eb7b4e076"
node skills/security/case-management/scripts/case-manager.js find --search "DLL sideloading" --status open
node skills/security/case-management/scripts/case-manager.js list --status open --per-page 10
node skills/security/case-management/scripts/case-manager.js get --case-id <case_id>
# Attach single alert
node skills/security/case-management/scripts/case-manager.js attach-alert --case-id <case_id> --alert-id <alert_doc_id> --alert-index .ds-.alerts-security.alerts-default-2025.12.01-000013 --rule-id <rule_uuid> --rule-name "Malware Detection Alert"
# Attach multiple alerts (batch)
node skills/security/case-management/scripts/case-manager.js attach-alerts --case-id <case_id> --alert-ids <id1> <id2> <id3> --alert-index .ds-.alerts-security.alerts-default-2026.02.16-000016 --rule-id <rule_uuid> --rule-name "Malware Detection Alert"
# Add comment, update (--tags merges with existing tags, does not replace)
node skills/security/case-management/scripts/case-manager.js add-comment --case-id <case_id> --comment "Process tree analysis shows..."
node skills/security/case-management/scripts/case-manager.js update --case-id <case_id> --status closed --severity low --yes
書き込み操作(create、update)では、デフォルトで確認を求めるプロンプトが表示されます。プロンプトを省略するには --yes を渡してください(エージェントから呼び出す場合は必須です)。
一覧および検索結果の報告
list または find の結果を報告する場合:
- JSON レスポンスの
total件数を正確に伝えます(例:「オープン中のケースは合計12件です」)。 - 各ケースを、簡潔な1行のエントリーとして提示します:
<title> | <severity> | <case_id_short> | <created_at>。titleフィールドの正確なタイトルをそのまま転記してください。言い換えたり、省略したり、要約したりしないでください。 - ユーザーが N 件を求めた場合は、ちょうど N 件(存在する件数がそれより少ない場合はその件数)のエントリーを提示します。ユーザーから特に求められない限り、追加の列(アラート数、説明、ステータス)は含めないでください。
- API が返した情報以外は追加しないでください。フィールドが null または欠落している場合は省略してください。
- 結果を提示したら、そこで終了してください。ケースに関する分析、コメント、所見は追加しないでください。
タグの規則
機械検索可能なメタデータには、構造化タグを使用します:
| タグパターン | 例 | 用途 |
|---|---|---|
classification:<value> | classification:malicious | トリアージ分類(benign/unknown/malicious) |
confidence:<score> | confidence:85 | 信頼度スコア 0-100 |
mitre:<technique> | mitre:T1574.002 | MITRE ATT&CK のテクニック ID |
agent_id:<id> | agent_id:550888e5-... | 相関分析用の Elastic エージェント ID |
rule:<name> | rule:Malicious Behavior Detection | 検出ルール名 |
ケースの重大度マッピング
| 分類 | Kibana の重大度 |
|---|---|
| benign(スコア 0-19) | low |
| unknown(スコア 20-60) | medium |
| malicious(スコア 61-80) | high |
| malicious(スコア 81-100) | critical |
既知の制限事項
syncAlerts はセキュリティ専用です
syncAlerts 設定(デフォルトで有効)は、ケースのステータスを関連付けられたアラートのステータスと同期します。この機能は Security Solution のケースでのみ利用できます。アラート同期が不要な場合は、ケースの作成時に --sync-alerts false を指定してください。
レート制限
Kibana API にはレート制限があります。複数のアラートを添付する際、attach-alerts バッチコマンドは 429 レスポンスへの再試行を自動的に処理します。attach-alert を1件ずつ使用する場合は、各呼び出しの間隔を約10秒空けてください。
Serverless での find --search
find --search パラメーターは、Kibana Serverless のデプロイ環境で 500 エラーを返す場合があります。代わりに find --tags で絞り込むか、list で最近のケースを参照してください。
find --tags では完全一致が必要です
タグ検索では完全一致のみが対象です。find --tags "agent_id:abc123" は機能しますが、部分一致には対応していません。
Kibana Cases API リファレンス
API エンドポイント、リクエスト/レスポンス形式、例の詳細については、 references/kibana-cases-api.md を参照してください。
例
- 「重大度 high でトリアージしたフィッシングアラートのケースを作成して」
- 「ブルートフォース攻撃に関連するオープン中のケースを検索して」
- 「調査結果をケース ID abc-123 のコメントとして追加して」
ガイドライン
- ツールの出力のみを報告してください。ツールのレスポンスにない ID、ホスト名、IP アドレス、詳細を捏造しないでください。
- リクエストに含まれる識別子を保持してください。ツール呼び出しとレスポンスでは、ユーザーが指定した値を正確に使用してください。
- ツールの戻り値を使って、操作結果を簡潔に確認してください。
- 事実と推論を区別してください。ツールの出力を超える結論には、評価であることを明記してください。
- ケース一覧や検索結果を提示する際は、各ケースの正確なタイトルをそのまま転記してください。タイトルを言い換えたり、省略したり、要約したりしないでください。API の
totalフィールドの件数を含めてください。 - 直ちにツールの実行を開始してください。操作を始める前に SKILL.md を読んだり、ディレクトリを参照したり、ファイルを一覧表示したりしないでください。
本番環境での使用
- 書き込み操作(
create、update)では確認を求めます。エージェントから呼び出す際に確認を省略するには、--yesまたは-yを渡してください。 - コマンドを実行する前に、
KIBANA_URLとKIBANA_API_KEYが意図したクラスターを参照していることを確認してください。 - ケースは
securitySolutionに限定されます。このスキルは、Observability やその他の Kibana ケースオーナーには影響しません。
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
KIBANA_URL | はい | Kibana のベース URL(例:https://my-kibana.kb.cloud.example.com) |
KIBANA_API_KEY | はい | 認証用の Kibana API キー |