Azure Sentinelに取り込んだ過去ログをブックとハンティングで分析する

こんにちは、ひろかずです
本稿は、[ S3にアーカイブしたログをAZURE SENTINELに取り込んで分析する ]のアップデート記事です

Azure Sentinelに過去ログを取り込んだ後、ブックで可視化したり、事前に定義しておいたハンティングクエリで分析したくなります
前回の記事執筆時点では、ブックやハンティングクエリでオリジナルのタイムスタンプをうまいこと利用することができませんでした
後の検証で、比較的妥当なやり方に辿り着くことができたので、一筆書きます

ざっくり構成

前提条件

  • [ S3にアーカイブしたログをAZURE SENTINELに取り込んで分析する ]を実施していること
  • 分析対象のログの各フィールドにカスタムフィールドを設定していること
    • 本記事では、カスタムログをSQUID_S3_CL、カスタムフィールドをtesttime_CF, HTTPS_FQDN_S3_CFを設定できていることを前提としています
    • カスタムフィールドのtesttime_CFの設定は、前回記事を参照すること

工程

  1. 分析したい過去ログをAzure Sentinelにロードする
  2. ブックで表示する日時範囲を過去ログのオリジナルのタイムスタンプで制御する
  3. ハンティングクエリで対象とする日時範囲を過去ログのオリジナルのタイムスタンプで制御する

1. 分析したい過去ログをAzure Sentinelにロードする

前回4. 分析してみる - アーカイブしたログデータをロードする(三度目)あたりを実行

  • ロードする対象ファイルを保管用s3バケットから分析用s3バケットへコピーする
  • 分析用s3バケットへコピーする時点で、ファイル圧縮は解除しておくこと
  • /var/log/logstash/access.logが作成(更新)されることを確認

2. ブックで表示する日時範囲を過去ログのオリジナルのタイムスタンプで制御する

  • Azure Sentinelワークスペースから[ブック]を選択し、[+ ブックの追加]を選択

  • [パラメータの追加]を選択
    • 初期表示されているテキストとグラフは適宜削除すること

  • [パラメータの追加]を選択

  • パラメータ名を設定して[保存]
    • パラメータは以下2つを作成すること
    • timerange_from_ORG
    • timerange_to_ORG

  • [編集完了]を選択

  • [クエリの追加]を選択

  • 以下のクエリを貼り付けて、視覚化に棒グラフを設定
SQUID_S3_CL
| where TimeGenerated > ago(730d)
| where HTTPS_FQDN_S3_CF != ""
| where testtime_CF > todatetime('{timerange_from_ORG}') and testtime_CF <= todatetime('{timerange_to_ORG}')
| summarize count() by HTTPS_FQDN_S3_CF

動作確認

  • timerange_from_ORGに2019-12-15, timerange_to_ORGに2019-12-17を設定すると、クエリの結果が棒グラフで可視化されました

  • timerange_from_ORGに2019-12-16T23:50:00, timerange_to_ORGに2019-12-17T00:02:00を設定すると、棒グラフに結果が動的に反映されました

3. ハンティングクエリで対象とする日時範囲を過去ログのオリジナルのタイムスタンプで制御する

  • Azure Sentinelワークスペースから[ハンティング]を選択し、[+ 新しいクエリ]を選択

  • 名前を設定し、以下カスタムクエリを貼り付けて、[作成]を選択
let timeframe = 730d;
let timerange_from_ORG = "2019-12-17T00:10:00";
let timerange_to_ORG = "2019-12-18T00:15:00";
SQUID_S3_CL
| where TimeGenerated >= ago(timeframe)
| where testtime_CF > todatetime(timerange_from_ORG) and testtime_CF <= todatetime(timerange_to_ORG)
| where RESCODE_CF != "200" and RESCODE_CF != "301"
| summarize count() by HTTPS_FQDN_S3_CF , HTTP_FQDN_S3_CF , RESCODE_CF
| sort by count_ desc

動作確認

  • ハンティングクエリの一覧から、作成したカスタムクエリ名を選択し、[結果の表示]を選択

  • timerange_from_ORGtimerange_to_ORG を適宜設定して、[実行]を選択
    • 2019-12-17T00:10:00のような形式で設定すること

以上で、Azure Sentinelに取り込んだ過去ログを、当時のタイムスタンプを用いて、ブックの可視化やハンティングでの分析をすることができました

今日はここまでです
お疲れさまでした

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です