performing-alert-triage-with-elastic-siem について
Elastic Security を使うアナリスト向けに、アラートの分類と優先順位付けを支援するセキュリティスキルです。ES|QL による調査、脅威インテリジェンスの付加、AI 分析、記録とエスカレーションを扱います。
主な機能
- 01重大度とホスト情報の確認
- 02ES|QL による関連イベント検索
- 03脅威インテリジェンスによる指標の補強
- 04アラートの分類と優先順位付け
- 05証拠の記録とインシデントのエスカレーション
- 06AI Assistant と Attack Discovery による分析
活用シーン
- 01不審なホストやユーザーに関連する活動の調査
- 02アラートを真陽性、誤検知、未解決に分類
- 03複数のアラートを関連付けて攻撃チェーンを特定
- 04調査結果を記録しインシデント対応を進める
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-alert-triage-with-elastic-siemインストール後、Claude Code で/performing-alert-triage-with-elastic-siemを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Elastic SIEM でのアラートトリアージの実施
概要
Elastic Security におけるアラートトリアージとは、セキュリティアラートを体系的にレビュー、分類、優先順位付けし、どれが実際の脅威であるかを判断するプロセスです。Elastic の AI 駆動型機能である Attack Discovery は、数百件のアラートを個別の攻撃チェーンにまとめることができますが、熟練したアナリストによるトリアージは依然として不可欠です。構造化されたトリアージワークフローは、Elastic の組み込みツールを使用する場合、通常アラートクラスターごとに 5~10 分かかります。
使用するタイミング
- Elastic SIEM でのアラートトリアージを伴うセキュリティ評価を実施する場合
- 関連するセキュリティイベントに対するインシデント対応手順に従う場合
- 定期的なセキュリティテストまたは監査活動を実施する場合
- 実地テストを通じてセキュリティ管理策を検証する場合
前提条件
- Elastic Security がデプロイされていること(バージョン 8.x 以降)
- エンドポイントおよびネットワークデータの収集用に Elastic Agent または Beats が設定されていること
- 検出ルールが有効化され、アラートが生成されていること
- データソース全体で Elastic Common Schema (ECS) に準拠していること
- 適切な権限で Kibana Security アプリにアナリストがアクセスできること
アラートトリアージのワークフロー
ステップ 1: 初期アラート評価(2 分)
Elastic Security でアラートを表示したら、アラートの詳細パネルを確認します:
Alert Details Panel:
- Rule Name and Description
- Severity and Risk Score
- MITRE ATT&CK Mapping
- Host and User Context
- Process Tree (for endpoint alerts)
- Timeline of related events
最初に確認すべき主要フィールド
| フィールド | 目的 | ECS フィールド |
|---|---|---|
| ルールの重大度 | 初期優先度の評価 | kibana.alert.severity |
| リスクスコア | 定量化された脅威レベル | kibana.alert.risk_score |
| ホスト名 | 影響を受けたシステム | host.name |
| ユーザー名 | 影響を受けたアイデンティティ | user.name |
| プロセス名 | 実行中のプロセス | process.name |
| 送信元 IP | アクティビティの発生元 | source.ip |
| 宛先 IP | アクティビティの対象 | destination.ip |
| MITRE 戦術 | 攻撃の段階 | threat.tactic.name |
ステップ 2: コンテキストの収集(3 分)
ES|QL で関連イベントを照会する
FROM logs-endpoint.events.*
| WHERE host.name == "affected-host" AND @timestamp > NOW() - 1 HOUR
| STATS count = COUNT(*) BY event.category, event.action
| SORT count DESC
不審なユーザーのすべてのアクティビティを検索する
FROM logs-*
| WHERE user.name == "suspicious-user" AND @timestamp > NOW() - 24 HOURS
| STATS count = COUNT(*), unique_hosts = COUNT_DISTINCT(host.name) BY event.category
| SORT count DESC
同じ送信元からの関連アラートを確認する
FROM .alerts-security.alerts-default
| WHERE source.ip == "10.0.0.50" AND @timestamp > NOW() - 24 HOURS
| STATS alert_count = COUNT(*) BY kibana.alert.rule.name, kibana.alert.severity
| SORT alert_count DESC
同じ IP からの横方向移動を調査する
FROM logs-system.auth-*
| WHERE source.ip == "10.0.0.50" AND event.outcome == "success"
| STATS login_count = COUNT(*), hosts = COUNT_DISTINCT(host.name) BY user.name
| WHERE hosts > 3
ステップ 3: 脅威インテリジェンスによる情報付加(2 分)
指標を脅威インテリジェンスと照合します:
FROM logs-ti_*
| WHERE threat.indicator.ip == "203.0.113.50"
| KEEP threat.indicator.type, threat.indicator.provider, threat.indicator.confidence, threat.feed.name
ファイルハッシュを既知の脅威と照合する
FROM logs-endpoint.events.file-*
| WHERE file.hash.sha256 == "abc123..."
| STATS occurrences = COUNT(*) BY host.name, file.path, user.name
ステップ 4: 分類の判断(2 分)
| 分類 | 基準 | 対応 |
|---|---|---|
| 真陽性 (True Positive) | 悪意のあるアクティビティが確認された | インシデントにエスカレーションし、封じ込めを開始する |
| 良性の真陽性 (Benign True Positive) | ルールに一致する想定内の動作 | アラートのメモに記録し、確認済みとする |
| 偽陽性 (False Positive) | 良性のアクティビティにルールが反応した | 偽陽性としてマークし、チューニングタスクを作成する |
| 追加調査が必要 (Needs Investigation) | 判断に必要なデータが不足している | より詳細な調査に割り当てる |
ステップ 5: 文書化とエスカレーション(1 分)
トリアージしたアラートごとに、以下を文書化します:
- 根拠を含む分類の判断
- 検査した証跡アーティファクト
- 関連するアラートまたは調査
- 推奨される次のステップ
トリアージ用の検出ルール
事前構築済みの検出ルール
Elastic Security には、以下の観点で整理された 1000 件以上の事前構築済み検出ルールが含まれています:
- MITRE ATT&CK 戦術: 初期アクセス、実行、永続化など
- プラットフォーム: Windows、Linux、macOS、クラウド
- データソース: エンドポイント、ネットワーク、クラウド、アイデンティティ
カスタムアラート相関ルール
{
"name": "Multiple Failed Logins Followed by Success",
"type": "threshold",
"query": "event.category:authentication AND event.outcome:failure",
"threshold": {
"field": ["source.ip", "user.name"],
"value": 5,
"cardinality": [
{
"field": "user.name",
"value": 3
}
]
},
"severity": "high",
"risk_score": 73,
"threat": [
{
"framework": "MITRE ATT&CK",
"tactic": {
"id": "TA0006",
"name": "Credential Access"
},
"technique": [
{
"id": "T1110",
"name": "Brute Force"
}
]
}
]
}
AI 支援によるトリアージ
Elastic AI Assistant との統合
- Elastic Security でアラートを開く
- AI Assistant パネルをクリックする
- クイックプロンプトを使用する:
- 「このアラートを要約して」 - 初期評価を取得
- 「関連アクティビティを検索する ES|QL クエリを生成して」 - 調査を拡張
- 「推奨される対応アクションは何ですか?」 - プレイブックのガイダンスを取得
- 「これは偽陽性の可能性が高いですか?」 - AI による信頼度評価を取得
Attack Discovery
Elastic の Attack Discovery は次のことを自動的に行います:
- 関連するアラートを攻撃チェーンにグループ化する
- アラートを MITRE ATT&CK のキルチェーンの各ステージにマッピングする
- ML モデルを使用して誤検知をフィルタリングする
- ビジネスへの影響に基づいて優先順位を付ける
- 攻撃の概要をナラティブ形式で提供する
トリアージ優先順位マトリックス
| リスクスコア | 重大度 | 資産の重要度 | 対応 SLA |
|---|---|---|---|
| 90-100 | 重大 (Critical) | 高 | 15 分 |
| 70-89 | 高 (High) | 高 | 30 分 |
| 70-89 | 高 (High) | 中 | 1 時間 |
| 50-69 | 中 (Medium) | 任意 | 4 時間 |
| 21-49 | 低 (Low) | 任意 | 8 時間 |
| 1-20 | 情報 (Informational) | 任意 | 24 時間 |
トリアージの指標と KPI
| 指標 | 目標 | 測定方法 |
|---|---|---|
| 平均トリアージ時間 (MTTT) | < 10 分 | アラート作成から分類までの時間 |
| 誤検知率 | < 30% | 誤検知数 / アラート総数 |
| エスカレーション率 | 10-20% | エスカレーションされたアラート数 / アラート総数 |
| アラートのカバレッジ | > 80% | シフトごとにトリアージされたアラート数 / 生成されたアラート数 |
| 再分類率 | < 5% | 変更された分類数 / 分類されたアラート総数 |
参考資料
コメント
Markdown 対応