見出し画像

Microsoft 365 の Auditlog(監査ログ)を取得して中身を読んでみよう

こんばんは、しがない情シスです。

今回は監査ログ(Auditlog)のお話です。
監査ログは何かしらのトラブルがあったときや疑われるときに「何が起こっていたのか」を追跡・調査するために使われるものです。

しばらく前に監査ログを触る機会があったので、その際の備忘録的なまとめをしておこうと思います。

Microsoft 365 における監査ログについて

「Microsoft 365 の監査ログってなぁに?」という点について、まずはMicrosoft Learnの公式ドキュメントを紐解いてみましょう。

Microsoft 365を契約すると、「監査ログ」というものが見れるようになります。
監査ログは文字通り「監査を目的としたサービス内の各種ログ」ですね。

Microsoft Purview 監査ソリューションは、セキュリティ イベント、フォレンジック調査、内部調査、コンプライアンス義務に組織が効果的に対応するための統合ソリューションが用意されています。

Microsoft Purview での監査ソリューション より抜粋

というように、主にセキュリティ対策コンプライアンス対策のために組織がサービスの利用状況を調査する目的で使われるログです。

何かあった時に「あの時何が起こっていた/行われていたの?」とか「定期的に監査ログをチェックしてインシデントを速やかに検知しよう」といった目的で利用されるわけです。

監査ログで分かること、利用シーン

Microsoft 365で実行されたアクティビティ(ユーザー等による操作など)が分かります。

  • いつ(タイムスタンプ)

  • だれが(ユーザー)

  • どこから(IP)

  • 何のサービスの(365サービス)

  • どんな操作を行った(アクティビティ)

というようなことが分かるようになります。

「このユーザーが、○月○日○時○分に、SharePointのファイルに、こんな操作を行ったよ」みたいな情報を知ることができるので、そのような情報を知りたいシーンで利用されます。

上述の通り、何らかのセキュリティインシデントが疑われたり、コンプライアンス的な問題が無いか調査される際に使われることになるでしょう。
普段から監査ログをチェックするようなことはまずないですし、日常的にチェックするのはそれなりに大きな規模か、つよつよなセキュリティ体制を敷いている企業になるかと思います。

監査ログを保存する設定を行う

近年アクティブになったテナントだと、既定で監査ログは有効になっていますが、昔からあるテナントは監査ログの保存がそもそもデフォで無効になっているケースもあります。

なので、まずは以下の手順で監査ログが有効かどうかを確認しましょう。

※PowerShellからM365へアクセスする際にはアクセスモジュールのインストールと管理権限での認証が必要となります。事前に済ませておくとスムーズです。

監査ログが有効になっており、自身も監査ログを検索できるロールを持っていることが確認されたら、いよいよ検索を実行です。

監査ログを検索・取得する

以下の手順に従って監査ログを検索します。

ここまで書いてて気づきましたが、殆どの手順はMSの公式ドキュメントに書いてありますね。
ひょ、ひょっとして…このnote書く意味なかった…?
(逃げちゃ駄目だ逃げちゃ駄目だもう記事は後半戦なんだ)

管理センターからコンプライアンスポータルへアクセスし、「監査」メニューから期間、アクティビティ、ユーザーなどの情報を指定して検索クエリーを発行します。
監査ログは膨大なデータから目的のデータを抽出するので、クエリーを発行してから答えが返ってくるまでしばらくかかります。
お茶でも飲んで待ちましょう。

検索が完了したらGUIに結果が表示されます。
GUIだと人間にとっては見やすいのですが、一画面に表示される件数は限られており、逐次読み込みで画面表示がもたついたり、ソート順がおかしかったりと、ちょっとデータとしての可読性に劣る面もあります。

お目当てのログが短期間かつ極端に絞り込まれていたとしても、最低3桁のログが表示されるんじゃないでしょうか。
仮にコンプライアンス対策として調査するなら、なるべく広範にログを拾って問題箇所を絞り込む、みたいな作業も必要になるかと思います。
(イコール、Web画面表示での目視調査は無理がある

そこでデータをCSVエクスポートしてExcelで解析します。

監査ログを解析する前に

ログを解析する前に以下の点を明確にしておきましょう。

  • そのログを何のために解析するのか

  • 対象期間

  • 対象サービス

  • 対象ユーザー

  • その他「何をした」などの条件

これが明確になってないと、いざ解析する時点で「どれを見たらいいんだ?」「どんな風に結果を出せばいいんだ?」と悩むことになります。
依頼主がいるのであれば、そういった点を事前に確認しておきましょう。
調べ始めてからの手戻りは無い方がスムーズです。

監査ログを解析する

はい、というわけでCSVエクスポートとExcelのPowerQueryによる解析手順はこちらですね。
これまたMS公式さんがまとめてくれてました。

注意点にあるとおり、

1 回の監査ログ検索から CSV ファイルに最大 50,000 エントリをダウンロードできます。

手順 1: 監査ログの検索結果をエクスポートする より抜粋

GUIからCSVエクスポートできるのは50,000件までなので、「ありったけちょうだい!」ってリクエストしても「無理デース!」となります。
実際に検索したら分かると思うのですが、やみくもに検索しても膨大なログがヒットしてしまうので調査効率は極端に悪くなります。

条件は明確にしたうえで、対象ユーザーやサービスなど、ある程度絞り込みましょう。
ちなみにPowerShellでもリクエスト投げれますが、こちらは上限5,000件のよようです。(ここでも5,000件問題か…)

エクスポートしたログをExcelのPowerQueryで開き、「AuditData」カラムを解析します。
AuditData内に詳細なアクセスログが記録されているわけですが、JSON形式なので人間が読むには辛いです。
これを手順の通りにPowerQueryで展開することにより、1カラム1データの形式に変換できるのでグッと見やすくなります。

不必要なデータはノイズになるので展開対象から省き、お目当てのデータのみを展開しましょう。
展開された後は目的のデータを関数やフィルターなどで絞り込めば、ログの内容が見えてくると思います。

展開したAuditLogの中身(プロパティ)はこちらを参照しましょう。

Actor,Operation,Workloadの挙動なんかを見れば「誰が何をどうしたか」くらいはざっと分かります。

あと、監査ログは海外のデータセンターにあるのか分からないのですが、タイムゾーンがUTCになっているようです。
そのままでは日本では深夜の時間帯にログが残ってることになるので、プラス9時間してJTCに変換してやりましょう。(これもログ展開ついでにPowerQueryでやってしまえば良いですね)

監査ログの保存期間

監査ログの保存期間はライセンスに応じて以下の通りになっています。

  • Microsoft 365 E5 ユーザー:1年間

  • 上記以外のMicrosoft 365 ユーザー:90日間

  • E5+監査アドオンライセンス:10年

また、Microsoft Sentinel などのSEIM(ログ収集&分析ツール)などの外部サービスにログを連携する場合は、連携先のサービスのログ保存期間に依存することになります。

CSVエクスポートしてしまえばログの保持期間はストレージの容量次第で無制限となりますが、前述の通り1ファイルあたり50,000件の制限があるため、たとえ少人数であったとしても全アクティビティのエクスポートは現実的ではありません。

仮に定期的にCSVエクスポートを行う場合「セキュリティ/コンプライアンス上、この種類のアクティビティログが監査できれば対応可能である」と条件設定してログの種類や期間を絞り、1ファイル50,000件以内になるようにしてエクスポートするなどの対応が考えられますね。

その辺は組織の対策にかける考え方と需要次第かと思います。

直近90日分だけでも割と色々なことが分かります。
(正直なところ、90日以上遡って何か調べる?って言われると、そういうシーンって殆どないかもしれないですね)
限られた種類のログを数種類だけ1年分、とかでも対策や考え方次第では割と色々追跡出来そうではあります。
お金をかけてSentinel契約して連携すれば更に色々と可視化できますし、ログ保存期間はグーンと伸びます。(お金と、サービスを効果的に運用できるエンジニアのリソースの両方があれば当然これが一番ですね)

およそ正解というものは存在しないと思うので、運用コストと相談して「組織にとって最適な選択」をすればよいと思います。

おわりに

この記事が「監査と言われても何したらいいか分からない」「急にコンプラ対応が必要になった」という方の一助になれたら幸いです。
E5以外は90日の制限付きではありますが、デフォルトでM365サービス内のほとんどすべてのアクティビティログを網羅出来ます。

急に何かしらの監査対応を行うことになっても、監査ログ機能が有効化さえされていれば「完全手動でも90日分は遡って調査可能」っていうことだけ覚えておけば、何かしら対策のしようはあるのでちょっと安心ですね。


なんかほとんどMSさんのドキュメントの紹介記事になってしまいました…。公式が最大手。

一つ、言い訳をさせてください。
PowerQueryのドキュメントの更新日付が2022/12/14。
私自身がヒーコラ言いながらログ解析を行ったのが2022年初夏のころ。

もう半年早くこのドキュメントが公になっていたらね…。もうちょっと私も悩まず作業できたかもですね…。

でも、苦労して身に着けた知識ってすごく理解が深まりますよね!!!!(負け惜しみ)

この記事が気に入ったらサポートをしてみませんか?