dt-sec-contextualization について
セキュリティシグナルや IoC を実行時の Smartscape エンティティに対応付ける Dynatrace のセキュリティスキルです。エンティティ階層をまたぐ関連付けや、リスクおよび脅威レポートの情報補完に対応し、セキュリティ分析に使えます。
主な機能
- 01識別フィールドを Smartscape エンティティに対応付け
- 02コンテナイメージを実行時エンティティに接続
- 03階層をまたいで検出結果を関連付け
- 04Pod からノードへのトポロジー解決
- 05エンティティリスクと IoC の脅威情報を補完
活用シーン
- 01検出結果や IoC をワークロードまたはホストに対応付け
- 02検出結果と CVE が同じ実行時エンティティに関係するか確認
- 03Pod の実行先ノードに脆弱性があるか評価
- 04一致した IoC の脅威レポート情報を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dynatrace/ dynatrace-for-ai --skill dt-sec-contextualizationインストール後、Claude Code で/dt-sec-contextualizationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/correlation-and-coverage.mdentity-enrichment.mdidentity-mapping.mdioc-enrichment.md詳細
セキュリティコンテキスト化スキル
セキュリティシグナルとエンティティ属性セットを実行時の Dynatrace Smartscape エンティティに解決し、エンティティレベル全体の調査結果を要約します。また、異なるレベルに紐づくシグナル(例:K8S_POD での検知と KUBERNETES_NODE の CVE)を、共有する実行時エンティティを介して関連付けます。
このスキルの対象範囲
- ID → Smartscape マッピング —
dt.smartscape_source.id、container_image.digest、container_image.id、host.ip、dt.entity.*、k8s.*フィールドのいずれかを含む行が与えられた場合、指定された任意のレベル(CONTAINER / K8S_POD / workload / K8S_NODE / HOST / cloud /GENAI_SERVICE— AI/GenAI ワークロード)の Smartscape エンティティに解決します。 - アーティファクト → 実行環境ブリッジ —
container_image.digest→smartscapeNodes CONTAINER→is_part_of.*→ 親ワークロード、またはruns_on.host→ HOST。dt.smartscape_source.idによる事前エンリッチメントがなくても機能します。 - レベルをまたいだ相関付け — 段階的なエンティティマッチングにより、2つの調査結果(例:異なる経路の検知と CVE)が共有する実行時エンティティを介して関連しているかを判定します。Tier 1:エンティティ ID の完全一致。Tier 2:ワークロード/ポッド/ホスト名の一致。Tier 3:同一の名前空間/クラスター(コンテキストのみ — スコアリングには寄与しません)。
- ポッド → ノードのトポロジー —
k8s.node.name(同時にプロジェクションされたフィールド)または Smartscape エッジのトラバーサルを介して、K8S_PODをそのK8S_NODEに解決します。「ポッド X で検知が発生した — そのポッドは脆弱なノード上で動作しているか?」を確認できます。 - カバレッジ照合レシピ — dt-sec-insights のカバレッジ集計クエリで共有される、コンテナー→ワークロードの2方向および3方向のマッチパターンです。
- エンティティのエンリッチメント — 調査結果、IoC の一致、または未加工の Smartscape ノードが与えられた場合、エンティティごとのリスクレベル内訳と、後続のスコアリング用のエンティティキーのセットを生成します。
- IoC のエンリッチメント — すでに一致している IoC(IP / ドメイン / URL / メール / CVE / ハッシュ / MITRE TTP)に敵対者のコンテキスト(攻撃者、マルウェアファミリー、MITRE テクニック、標的、プロバイダー)を付与します。IoC を含む可観測値の配列を持つ、取り込まれた
THREAT_REPORTイベントを逆引きします。
このスキルを使用するタイミング
| インテント/トリガー | リファレンス |
|---|---|
| 調査結果/IoC の一致をワークロード、ホスト、またはクラウドエンティティにマッピングする | identity-mapping.md -> entity-enrichment.md |
| このコンテナーイメージ/ダイジェストは、どの Smartscape エンティティとして実行されているか? | identity-mapping.md § マッピングの基本(Path 2 - container digest) |
| この検知とこの CVE は、共有エンティティを介して関連しているか? | correlation-and-coverage.md § 相関付け |
| ポッド X で検知が発生した — そのポッドは脆弱なノード上で動作しているか? | correlation-and-coverage.md § 相関付け(Pod->Node Topology) |
| エンティティごとのリスク概要(Critical/High/Medium/Low) | entity-enrichment.md |
| カバレッジ照合レシピ — 製品 Y がカバーするワークロードはどれか? | correlation-and-coverage.md § カバレッジ |
| どのエンティティ識別フィールドが、ある調査結果の種類に関連するか? | identity-mapping.md § データモデル |
| 一致した IoC(IP/domain/hash/CVE/...)に、脅威レポートの敵対者コンテキストを付与する | ioc-enrichment.md |
| 調査結果の対象を AI/GenAI ワークロードに絞り込む、AI サービスに属するプロセスを確認する、プロセスをその AI サービスに解決する | identity-mapping.md § マッピングの基本(Path 4 - GENAI_SERVICE -> SERVICE -> PROCESS) |
このスキルの構成
- SKILL.md(このファイル)— エントリーポイントとルーティングです。
- references/
- identity-mapping.md — 一般化された identity->Smartscape リゾルバー(マッピングプリミティブ Paths 1/2/3/4)、事前チェックの 識別子確認、レベル選択、エンティティ識別フィールドに関するガイダンスです。
- entity-enrichment.md — マッピングプリミティブの利用者: クラウド(Path 1)、K8s ワークロード(3-way)、IP によるホスト、 エンティティによるホスト、自然言語フォールバック、problem->entities->findings チェーンです。 エンティティごとのリスクレベル内訳(Critical/High/Medium/Low)も含みます。
- correlation-and-coverage.md — レベルをまたいだエンティティの収束、pod->node トポロジー解決、スコアリングの契約、 dt-sec-insights と共有する 2-way/3-way カバレッジ照合レシピです。
- ioc-enrichment.md — IoC の逆引きエンリッチメント:
一致した IoC を取り込まれた
THREAT_REPORTイベントに関連付け、 敵対者のコンテキスト(actor / malware / MITRE / targeting)を提示します。単一および バッチ(IoC ごと)テンプレートと、サポート対象 IoC の分類も含みます。
共通のベストプラクティス
- 必ず最初に
dt-dql-essentialsを読み込んでください — DQL の構文と関数名は SQL とは異なります。クエリを生成する前に、すべての関数を確認してください。 - すべてのクエリの根拠として名前付きテンプレートを使用してください — Smartscape の結合を 独自に考案しないでください。3-way match、digest→CONTAINER→workload、pod→node の走査パターンは 厳密です。逸脱すると、気付かないまま結果が 0 行になる可能性があります。
- 完全な 3-way enrichment の前に事前チェックを実行してください — 外部プロバイダーには 大きなばらつきがあります。コストの高い append チェーンを実行する前に、少なくとも 1 つの識別子パスに 値が設定されていることを確認してください。
- Path 1 を信頼する前に
dt.smartscape_source.typeを確認してください —dt.smartscape_source.idが null でないことは、ワークロードレベルで解決されている証拠にはなりません。この フィールドは、ネームスペース、クラスター、またはクラウドリソースを指している場合があります。K8s ワークロードの 種類(K8S_DEPLOYMENT、K8S_DAEMONSET、K8S_STATEFULSET、K8S_CRONJOB、K8S_JOB、K8S_REPLICASET)のみが、Path 1 によるワークロードのエンリッチメントの対象です。 - 早い段階と
appendの後に重複を排除してください — 再取り込みされた重複をまとめるため、結合の前に 重複を排除します。同じ finding が複数のパスに一致する可能性があるため、appendの後にも 重複を排除してください。 - Tier 3 の相関はコンテキスト情報に限られます — 2 つの finding が同じネームスペース/クラスターを 共有していても、露出スコアは上がりません。クラスター単位で共有される属性を、エンティティレベルの 関連性の証拠として扱わないでください。
- トポロジークエリは
dt-obs-kubernetesに振り分けてください — pod→node の配置と Smartscape エッジの走査パターンはdt-obs-kubernetes/references/pod-node-placement.mdにあります。ここで再作成せず、 参照したうえで、その出力をcorrelation-and-coverage.mdで適用してください。 dt.system.bucketのフィルターは使用しないでください — セキュリティイベントデータはどの バケットにも存在する可能性があります。バケットによるフィルタリングは finding を隠すおそれがあります。- ここで許可される
security.eventsクエリは THREAT_REPORT の逆引きのみです。ioc-enrichment.mdは 一致した IoC をレポートに関連付けます(IoC → report)。THREAT_REPORT の概要、IOC の集計、 report → environment の順方向の相関は、dt-sec-insights(threat-intelligence.md)で扱います。ここで finding/posture クエリを作成しないでください。
関連スキル
| スキル | 役割 |
|---|---|
dt-dql-essentials | 最初に読み込みます。 DQL の基本構文、関数、Smartscape パターンを扱います。 |
dt-sec-insights | マッピングプリミティブを利用します。ファインディングスキーマのクエリとカバレッジ集計ロジックを担当します。threat-intelligence.md では順方向の脅威インテリジェンス(レポート → 環境の相関、概要、IOC の集計)を担当します。このスキルが扱うのは、IoC → レポートの逆方向のエンリッチメント(ioc-enrichment.md)のみです。 |
dt-sec-ioc-hunting | 証拠をまたぐ相関とエンティティのエンリッチメントをこのスキルに委ねます。 |
dt-obs-kubernetes | Pod → ノードのトポロジー、K8s エンティティの配置パターンを扱います。 |
dt-obs-hosts | ホストインベントリ、および HOST/PROCESS_GROUP ファインディングのプロセスレベルのコンテキストを扱います。 |
dt-obs-aws / dt-obs-azure / dt-obs-gcp | クラウドエンティティのエンリッチメントに使用する、クラウドの Smartscape トポロジーを扱います。 |
コメント
Markdown 対応