ATT&CKを始めよう:アセスメントとエンジニアリング / Getting Started with ATT&CK: Assessments and Engineering(転載)


Getting Started with ATT&CK: Assessments and Engineering

ここ数週間、ATT&CKを使った脅威インテリジェンス、検知・分析、敵のエミュレーションなど、ATT&CKを使いこなすための記事を掲載してきました。ミニシリーズのパート4では,評価とエンジニアリングについて,ATT&CKを使ってどのように防御力を測定し,改善できるかをご紹介します。この記事は多くの点で過去の記事を基にしていますので、まだご覧になっていない方はぜひチェックしてみてください。 

このプロセスをよりわかりやすくするために、また、他の記事と同様に、この記事を洗練度とリソースの有無に応じて3つのレベルに分けています。

  • レベル1は、リソースをあまり持たない始めたばかりのチーム向け。
  • レベル2は、成熟し始めた中レベルのチーム向け
  • レベル3は、より高度なサイバーセキュリティ・チームとリソースを持つ企業向けです。

評価を始めることは、最初は恐ろしく聞こえるかもしれません-誰が評価されることを喜ぶでしょうか?- しかし、ATT&CKのアセスメントは、セキュリティエンジニアやアーキテクトが脅威に基づくセキュリティの改善を正当化するための有用なデータを提供するための、より大きなプロセスの一部です。

  1. ATT&CKに登場する技術や敵に対して、現在の防御力がどのようになっているかを評価。
  2. 現在のカバー範囲の中で最も優先度の高いギャップを特定。
  3. それらのギャップに対処するために、自社の防御力を修正したり、新たな防御力を獲得。

アセスメントとエンジニアリングのレベルは累積的であり、互いに積み重ねられていきます。自分たちが高度なサイバーセキュリティチームであると考えている場合でも、レベル1から始めて、より大規模なアセスメントに移行するためのプロセスを踏むことをお勧めします。

多くのリソースを利用できない小規模なチームで作業していて、完全な評価を行おうと考えているならば、やめた方がいい。すぐにATT&CKマトリックスの色分けされたヒートマップを作成してカバレッジを可視化するというアイデアは魅力的ですが、ATT&CKを使うことに興奮するよりも、ATT&CKに燃え尽きてしまう可能性の方が高いでしょう。その代わり、小さなことから始めましょう。焦点を当てるべき1つの技術を選び、その技術に対するカバレッジを決定し、それを検出するために適切なエンジニアリングの強化を行います。このように始めることで、より大規模な評価を行う方法を練習することができます。

ヒント:どの手法から始めるべきかわからない?ケイティのブログ記事では、ATT&CKやスレットインテリジェンスをどのように使ってスタート地点を選ぶかのヒントを紹介しています。

テクニックを選んだら、そのテクニックをどのようにカバーするかを考えてみましょう。独自のルーブリックを使用しても構いませんが、まずは以下のカテゴリーでカバーすることをお勧めします。

  • 既存のアナリティクスでその手法を検出できる可能性が高いカテゴリ。
  • アナリティクスでは検出できないが、検出するために適切なデータソースを使用しているカテゴリ。
  • 現在、そのテクニックを検出するための適切なデータソースを利用していないカテゴリ。

ヒント:最初に始めるときには、スコアリングのカテゴリーをシンプルにしてください。

カバー率の測定を始めるための素晴らしい方法は、ある技術をすでにカバーしている可能性のあるアナリティクスを探すことです。SOC の多くは、本来は ATT&CK に対応するように設計されていなくても、ATT&CK に対応する可能性のあるルールやアナリティクスをすでに持っています。多くの場合、テクニックに関する他の情報が必要になりますが、それはテクニックのATT&CKページや外部ソースから得ることができます。

例として、Remote Desktop Protocol(T1076)を調べていて、以下のようなアラートがあったとします。

  1. ポート22を介したすべてのネットワークトラフィック。
  2. AcroRd32.exeによって生成されたすべてのプロセス。
  3. tscon.exeという名前のすべてのプロセス。
  4. ポート 3389 を介したすべての内部ネットワーク トラフィック。

ATT&CKのテクニックページのRemote Desktop Protocolのページを見ると、ルール#3が "detection "ヘッダで指定されている内容と一致しており、ウェブ検索をすると、ルール#4で指定されているポート3389もこのテクニックに対応していることがわかりました。

Remote Desktop Protocolの検出用テキスト。

もし、アナリティクスがすでにそのテクニックをピックアップしているなら、素晴らしいことです。そのテクニックをカバーしていることを記録し、新しいテクニックを選んで再度プロセスを開始してください。しかし、それをカバーしていない場合は、テクニックのATT&CKページに記載されているデータソースを見て、新しい分析を構築するのに適したデータをすでに取り込んでいるかどうかを判断します。もしそうであれば、あとは構築するだけです。

しかし、正しいデータソースを引き込めていない場合、どうすればいいのでしょうか?ここでエンジニアリングの出番です。技術のATT&CKページに掲載されているデータソースを参考にして、それぞれのデータソースを収集することの難しさと、そのデータソースを利用することの有効性を比較してみてください。

ヒント データソースとしてよく挙げられるのが、Windowsのイベントログで、多くのATT&CKテクニックを可視化することができます。イベントログを使い始めるのに適したリソースは、Malware ArchaeologyのWindows ATT&CK Logging Cheat Sheetで、Windowsイベントとそれを使って検出できるテクニックをマッピングしています。

プロセスのコマンドラインパラメータで検出可能な244種類のATT&CK
技術のうち97種類を、Windowsイベント4688を介して取り込みます。

次のレベルへの卒業:このプロセスを何度か繰り返し、その都度、各戦術にまたがる新しいテクニック(または2つ)を選んでください。ATT&CK カバレッジのヒートマップを作成できる ATT&CK ナビゲーターを使って、結果を記録しましょう。プロセスに慣れてきたら、データソースの分析を行い、データソースからどのテクニックを検出できるかをヒートマップで表示します。Olaf Hartong氏のATT&CK DatamapプロジェクトDeTT&CT、MITREのATT&CKスクリプトなどがありますので、参考にしてください。

Level 2

このプロセスに慣れ、より多くのリソースを利用できるようになれば、ATT&CK マトリックスの適度に大きなサブセットにまで分析を拡大することが理想的です。さらに、より高度なカバレッジスキームを使用して、検出の忠実性も考慮したいと思うでしょう。ここでは、SOC内のツールや分析ツールがその技術について警告を発する信頼性が低い、ある、高いのいずれかにカバレッジを分類することをお勧めします。

最終的にどのような評価をするかのサンプル。

ヒント カバレッジを評価する際には、ピンポイントの精度を気にする必要はありません。評価の目的は、技術を一般的に検出するためのエンジニアリング能力があるかどうかを理解することです。より正確な評価を行うためには、敵のエミュレーション演習を行うことをお勧めします。

このように範囲が広がったことで、アナリティクスの分析はやや複雑になっています。各アナリティクスは、以前のように1つのテクニックだけでなく、多くの異なるテクニックに対応する可能性があります。さらに、ある分析手法がカバーされている場合、その分析手法の忠実度も調べる必要があります。

ヒント 各アナリティクスについて、何をキーにしているかを調べ、それがATT&CKにどのように対応しているかを確認することをお勧めします。例えば、Windowsの特定のイベントに注目しているアナリティクスがあるとします。このアナリティクスのカバレッジを判断するには、Windows ATT&CK Logging Cheat SheetなどでイベントIDを調べることができます。また、ATT&CKのウェブサイトを利用して分析を行うこともできます。下図は、ポート22の検出を検索した例ですが、これは「Commonly Used Port ATT&CK technique」に表示されています。

ATT&CK site search for port 22

もう一つの重要な点は、テクニックと一緒に掲載されているグループやソフトウェアの例です。これらは、敵対者がテクニックを使用する際の手順や具体的な方法を示しています。多くの場合、これらの例は、既存の分析でカバーされているか否かにかかわらず、テクニックのバリエーションを示しており、テクニックをどれだけカバーしているかという信頼性評価に織り込む必要があります。

Examples section of Windows Admin Shares

分析結果を見るだけでなく、ツールの分析にも着手しましょう。そのためには、各ツールのヒートマップを作成し、次のような質問を繰り返し行うことをお勧めします。
  • ツールはどこで実行されますか?ツールがどこで実行されているか(例えば、境界や各エンドポイント)によって、特定の戦術でうまくいったり、うまくいかなかったりします。
  • ツールはどのように検出しますか?既知の悪い指標の静的なセットを使用していますか?それとも、何か行動的なことをしているのでしょうか?
  • そのツールはどのようなデータソースを監視していますか?ツールが監視しているデータソースを知ることで、どのようなテクニックを検出するかを推測することができます。

これらの質問に答えるのは大変です。すべてのベンダーがこの種の情報を公開しているわけではありませんし、探してもマーケティング資料になってしまうことがよくあります。このような質問に答えるのは大変です。

カバレッジの最終的なヒートマップを作成するには、ツールと分析のヒートマップをすべて集約し、各手法で最も高いカバレッジを記録します。これができたら、次は改善に向けて動き出します。最初のステップとして、前述の分析開発プロセスのより高度なバージョンをお勧めします。

  1. 短期的に注力したい優先度の高い技術のリストを作成する。
  2. 重点的に取り組む技術の分析を始めるために、適切なデータを集めていることを確認する。
  3. アナリティクスの作成とカバレッジチャートの更新を開始する。

現在の補償内容から始めて、アナリティクスを追加し、それに応じて補償内容を更新していきます。

また、ツールのアップグレードも必要かもしれません。ドキュメントを分析する際には、カバー率を高めるために使用できる可能性のあるオプションのモジュールを追跡してください。そのようなモジュールが見つかった場合には、それをネットワーク上で有効にするために必要なものを調べ、そのモジュールが提供するカバー率とのバランスを取ってください。ツールの追加モジュールが見つからない場合は、代替のデータソースとして利用することもできます。例えば、各エンドポイントにSysmonをインストールすることはできないかもしれないが、既存のソフトウェアが、他の方法ではアクセスできないような関連するログを転送できるかもしれない。

次のレベルへの卒業:これらの変更を実施してカバレッジを向上させたら、次のステップとして、敵対者のエミュレーション、特にアトミックテストを導入します。新しい分析手法を試作するたびに、それに対応するアトミックテストを実行して、その結果を確認します。捕まえられれば上出来です。捕まえられなかった場合は、何を見逃したのかを確認し、それに応じて分析手法を改良します。このプロセスの詳細については、当社の論文「ATT&CKベースの分析でサイバー脅威を発見する」を参照してください。

Level 3

より高度なチームの場合、評価を強化するための素晴らしい方法として、ミティゲーションを含めることができます。これにより、ツールやアナリティクスの検出内容だけを見るのではなく、SOC全体を見て評価を行うことができます。

技術をどのように緩和しているかを確認する良い方法は、SOC の各ポリシー、予防ツール、セキュリティコントロールを確認し、それらが影響を与える可能性のある ATT&CK 技術にマッピングして、それらの技術をカバー範囲のヒートマップに追加することです。最近、ミティゲーションを再構築したことにより、各ミティゲーションを見て、それがマッピングされている技術を確認することができます。ミティゲーションが適用された技術の例としては、以下のようなものがあります。

ブルートフォース(左)とWindows Admin Shares(右)の緩和策。

アセスメントの範囲を広げるもう一つの方法は、SOCで働いている人にインタビューしたり、非公式に話を聞いたりすることです。これは、ツールがどのように使用されているかをよりよく理解するのに役立つだけでなく、他の方法では考えられないギャップや強みを明らかにすることができます。例えば、以下のような質問が考えられます。

  • 最もよく使うツールは何ですか?その長所と短所は何ですか?
  • 見ることができないデータソースで、見ることができたらいいなと思うものは何ですか?
  • 検知の観点から見た、あなたの最大の強みと弱みはどこですか?

これらの質問への回答は、先に作成したヒートマップを補強するのに役立ちます。

例:以前、ATT&CK関連の機能を多く持つツールを見つけたが、人事はWindowsのレジストリを監視するためだけに使用している場合、そのツールのヒートマップを修正して、使用方法をよりよく反映させる必要があります。

同僚と話しながら、以前に作成したツールのヒートマップを見てみましょう。自分が使っているツールのカバレッジにまだ満足していないのであれば、新しいツールを評価する必要があるかもしれません。新しいツールを検討する際には、それぞれのツールのカバレッジのヒートマップを作成し、そのツールを追加することでどのようにカバレッジが向上するかを確認します。

ヒント:特にリソースに余裕がある場合は、代表的なテスト環境を立ち上げて、そのツールをライブでテストし、うまくいったところ、うまくいかなかったところ、そのツールを追加した場合に既存のカバレッジにどのような影響があるかなどを記録することができます。

最後に、より多くのミティゲーションを導入することで、ツールやアナリティクスへの依存度を下げることができるかもしれません。ATT&CKに掲載されているミティゲーションを見て、実際に導入できるかどうかを判断します。このプロセスの一環として、検出ヒートマップを参照してください。検出がうまくいっている技術を妨げる高コストの緩和策があれば、それは良いトレードオフではないかもしれません。一方で、分析結果を書くのに苦労している技術に対して、低コストの緩和策があれば、それを実施することでリソースを有効に活用できるかもしれません。

ヒント: ミティゲーションのために検出を取り除くことを検討する際には、可視性が失われる可能性を常に考慮してください。ミティゲーションやコントロールがバイパスされる可能性がある場合には、それらのイベントが見逃される可能性が低くなるように、ある程度の可視性を確保してください。検知とミティゲーションは、どちらも効果的なカバレッジのためのツールとして使用する必要があります。

クロージング: アセスメントとエンジニアリングの関係

アセスメントを行うことで、現在のカバレッジがどこにあるのかを理解し、それを脅威インテリジェンスで補強してギャップを優先し、アナリティクスを書くことで既存の防御を調整することができます。

長期的には、毎週、あるいは毎月、アセスメントを実施することは想定していません。その代わりに、前回のアセスメントの内容を記録し、新しい情報を得るたびに更新し、定期的に敵のエミュレーション演習を行って結果をスポットチェックする必要があります。時間の経過とともに、ネットワークや収集された情報に変化が生じ、以前にテストした防御の効果が低下することがあります。ATT&CK を活用して実際の脅威に対する防御力を示すことで、防御態勢の理解を深め、改善の優先順位を決めることができます。

ATT&CKのユースケースを可視化