🐥

DeTT&CT実践3

に公開

はじめに

DeTT&CTの実践として、データソース管理ファイルからテクニック管理ファイルを生成し、可視性の可視化を行います。

データソース管理ファイルからテクニック管理ファイルを生成する

  1. DeTT&CTコンテナに入ります。
$ docker compose exec dettect /bin/bash
  1. データソース管理ファイルからテクニック管理ファイルを生成します。
# python dettect.py ds -fd input/data_sources_mde.yaml -a default --local-stix-path ./attack-stix-data --yaml -of ./output/mde_techniques.yaml
  1. DeTT&CT エディタが起動されていない場合は、起動します。
# python dettect.py e &
  1. ブラウザを起動し、 http://localhost:4201 にアクセスします。

  2. 作成したテクニック管理ファイルを開きます。

TECHNIQUES -> Select YAML file をクリックし、 mde_techniques.yaml ファイルを読み込みます。

  1. 各テクニックごとの設定値を見てみます。

ここでは可視性の可視化を行っていくので、可視性(Visibility)のスコアに値が設定されていることを確認してください。

テクニック管理ファイルから可視性の可視化を行う

テクニック管理ファイルはこのまま使い回していきます。

テクニック管理ファイルについてのこれまでの状況を確認します。

  • Microsoft Defender for Endpoint用のデータソース管理ファイルをdettectinatorを使って生成
    • input/data_sources_mde.yaml
  • テクニック管理ファイルをデータソース管理ファイルを元に作成
    • output/mde_techniques.yaml

mde_techniques.yamlファイルから、可視性についてのNavigator用レイヤーファイルを生成します。

  1. dettectコンテナに入ります。
$ docker compose exec dettect /bin/bash
  1. 可視性についてのNavigator用レイヤーファイルを生成します。
# python dettect.py v -ft ./output/mde_techniques.yaml --local-stix-path ./attack-stix-data -l -of ./output/mde_techniques.json
  1. mde_techniques.jsonをNavigatorで読み込みます。

可視性スコアの調整

この時点での各テクニックおける可視性スコアには、データソース網羅率から割り出した大まかな可視性を示す値が割あたっています。

可視性スコア:

スコア スコア名 説明
0 None 完全に可視性が無い状態。攻撃の痕跡をまったく確認できない
1 Minimal 部分的にしか見えない: テクニックの実行手順の一部を確認できるだけの、十分なデータソースが存在し、データ品質もある程度担保されている状態
2 Medium 主要な痕跡がカバーできている: Minimalより多くの手順の側面が見える状態。必要なデータソースと品質があるが、まだ十分ではない
3 Good 既知のほぼ全てが見えている: テクニックの既知のほぼすべての側面を確認できるに足る十分かデータ(ソースと品質)が存在している状態
4 Excellent 完全に網羅している: テクニックのすべての既知の側面を確認できるすべての必要なデータソースとデータ品質が揃っている状態

大まかな可視性は、データソース網羅率を元に、5段階にわかれています。

大まかな可視性スコア算出ロジック:

ds_score = 1 if result <= 49 else 2 if result <= 74 else 3 if result <= 99 else 4
可視性スコア内の `側面` についてはオリジナルではaspectとなっており、攻撃に紐付いたデータソースを側面と呼んでいると(私は)認識しています。

攻撃ごとのデータソースそれぞれに対して、その攻撃を特定するデータが含まれているかを判定し、含まれていない場合はデータソースとして機能していないと判断すれば良いと思います。

つまり、ある攻撃に4つのデータソースが紐付いていて、その4つのデータソースが利用可能であるとした場合、データソース網羅率は100%となります。

大まかな可視性では、データソース網羅率が100の場合、可視性スコアは4になっています。

このデータソースのうち、その攻撃を特定するためのデータが入っておらず、実際に攻撃の検出ができないものがあればこのデータソースは機能していないものと判断します。

4つのデータソースのうち、3つまでしか攻撃を特定できないのであれば、(3 / 4) * 100 = 75 。
大まかな可視性のスコア算出ロジックに当てはめて、実際の可視性スコアを3にします。

4つのデータソースのうち、1つしか攻撃を特定できないのであれば、 (1 / 4) * 100 = 25 。
実際の可視性スコアを1にします。

算出した可視性スコアを、DeTT&CTエディタを通じてテクニック管理ファイルに反映させ、Navigator用ファイルを生成することで、実際の状況に合わせた可視性を可視化することができます。

まとめ

DeTT&CTの実践として、データソース管理ファイルからテクニック管理ファイルを生成し、可視性の可視化を行いました。

次は、テクニック管理ファイルから、検出の可視化を行います。

関連記事

MITRE ATT&CK関連記事一覧
https://zenn.dev/sesamum/articles/fba079cadba113

Discussion