Skip to content

Latest commit

 

History

History
146 lines (116 loc) · 10.9 KB

Work2M.md

File metadata and controls

146 lines (116 loc) · 10.9 KB

演習2. 標準コネクタを用いて、Defender XDR のアドバンスドハンティングクエリーを実行する

標準コネクタを用いて、ロジックアプリを作成してみましょう

Defender XDR のハンティングクエリーを実行するロジックアプリを実践してみましょう 構成イメージは以下の通りです。

image

事前準備

空のロジックアプリを作成する 

  • 空のロジックアプリから作成します。Sentinel のオートメーション、もしくはロジックアプリから作成して下さい。 image
  • ロジックアプリが作成されましたら、「繰り返し」を選択します(crond) image
  • 「繰り返し」の設定のパラメータを変更して、1 時間おきに実行するようにします
image

ロジックアプリの編集

1. ロジックアプリに「Defender ATP」コネクタを追加する

  • ロジックアプリのフロー Defender XDR コネクタを追加します。
    image
  • 詳細な検索」を選択します

「詳細な検索」 = Advanced Hunting を実行する標準コネクタになります

image

  • テナント接続が出てきますので、Entra ID 認証を用いて接続します
    image
  • クエリー入力画面が出ればOKです

クエリー欄に実際に KQL を入れて結果を得ることが出来るようになりました!

image

2. Defender XDR Advanced Hunting Query を用意する

インシデントをトリガーにハンティングクエリーを実行します 定期的に Defender XDR Advanced Hunting Query を実行して通知します。
以下はサンプルなので、他に実行したいクエリーアイデアをお持ちであれば、そちらをご活用下さい!

クエリー例 1 - 脆弱性を Fix するセキュリティ更新プログラムを抽出する

  • MDTM 脆弱性情報から、高危険度の脆弱性があり、セキュリティ更新プログラムがある情報を抽出する
  • DeviceTvmSoftwareVulnerabilities テーブルを利用
  • 「セキュリティ更新プログラム」があるのだから、パッチ適用しようよ!をアピール
  • CVE 情報ではなく、パッチ適用を推進するための情報を抽出するイメージ
DeviceTvmSoftwareVulnerabilities
| where DeviceName contains "(ホスト名)"
| where VulnerabilitySeverityLevel == @"High"
| where RecommendedSecurityUpdate != ""
| distinct RecommendedSecurityUpdate, RecommendedSecurityUpdateId, SoftwareVendor, SoftwareName, SoftwareVersion
image

クエリー例 2 - 対象サーバーのアセット情報からソフトウェアリストを抽出する

  • MDTM 脆弱性情報から、ソフトウェアインベントリ情報を抽出する
  • DeviceTvmSoftwareInventory テーブルを利用
  • サーバーやクライアントを検出した際に、この端末(サーバー)はどのようなものかを判定させる
DeviceTvmSoftwareInventory
| where DeviceName contains "(ホスト名)"
| distinct SoftwareVendor,SoftwareName,SoftwareVersion
image

3. ロジックアプリにクエリーを設定する

ロジックアプリのフローから Defender XDR Advanced Hunting Query を設定しましょう

  • ロジックアプリのコネクタにクエリーを設定してみましょう
  • Defender XDR に対して Advanced Hunting Query を実行し、正しく動作する(結果が得られる)クエリーを投入します

    image

  • 「繰り返し」の場合、ロジックアプリのテストは実行することでテストが容易に出来ます

    image

  • 成功すると、ロジックアプリの結果から Defender XDR のクエリー結果を得られます

    image

4. クエリー結果を成型する

ロジックアプリの結果を成型して見やすくする

  • RESTAPI の処理によって得られた結果は JSON フォーマットで結果を得ることが出来ます
  • クエリー結果を事後のアクションとしてメール通知、Teams 通知する場合、このままでは既読性が悪く運用に向きません
  • 通知し易いように HTML 変換しちゃいましょう!

4.1 ロジックアプリのフローに「HTML テーブルの作成」を追加する

  • ロジックアプリの追加フローボタンを押して、「ビルトイン」-> 「データ操作」から、「HTML テーブルの作成」を選択します image
  • 前のフローで実施したクエリー結果 Results を反映させて、保存します。 image
  • 一度、ロジックアプリの履歴から実行してテストして下さい。
  • クエリーは HTML テーブルに変換されましたか? image

4.2 HTML テーブルをカスタマイズする

美的センスを高めてカスタマイズしましょう!

  • デフォルトの設定でも自動で HTML テーブルが作成されましたが、要らないフィールドが含まれていませんか?

  • 表の項目名、せっかくなので日本語化してみましょう

  • ロジックアプリデザイナーに戻り、「HTML テーブルの作成」をカスタムに変更します

    image

  • HTML テーブルの「カスタム」より、各表の項目名を書き換えて、必要な項目だけを抽出してみましょう

    image

  • ロジックアプリの履歴から、イベントを再送信してテストして下さい。成型した表形式に書換られたら成功です!

image

5. メール通知 or Teams 通知

最後に通知してみましょう

  • Defender XDR に Advanced Hunting した結果を通知します
  • メールコネクタ or Teams コネクタお好きな方法を選んでください。

5.1 メール送信 (Office 365 コネクタ)

  • 標準コネクタから「Office 365 Outlook」を選択します image
  • 「メールの送信」を選択します  - サインインはメール送信元ユーザーで Entra ID 認証を行って下さい image

  • 「メールの送信」から、送信先メールアドレス、メールタイトルなどを設定します
  • メール本文に、前項目で設定した JSON2HTML の BODY を選択して下さい image

  • テストしてメール通知が行われることを確認して下さい image

5.2 Microsoft Teams 送信 (Office 365 コネクタ)

- 標準コネクタから「Microsoft Teams」を選択します image

  • 「チャットやチャネルにメッセージを投稿する」を選択  - Teams に投稿するユーザーで Entra ID 認証を行います image

  • 投稿先の Teams チャネル、メッセージ内容を編集します
  • 本文に、前項目で設定した JSON2HTML の BODY を選択して下さい image

  • テストして Teams チャネル宛に通知が行われることを確認して下さい

振り返り

お疲れさまでした!

  • この演習では以下を実践しました。
    • 標準コネクタを用いて、Defender XDR にクエリーを実施する
    • クエリーの結果から JSON を HTML に成型する
    • HTML をメール通知 / Team 通知する

次の演習 Sentinel インシデントトリガーからエンティティ属性を抽出して、Defender XDR のアドバンスドハンティングクエリーを実行するもやってみましょう!