開発者プログラムによる検証用のEntraテナントの所持を継続していますが、
検証用とはいえセキュリティをおろそかにするわけには行けません。
踏み台等にされてしまう恐れがあります。
Entraテナントはデフォルトでセキュリティの既定値群が有効になっており、
MFA利用が必須であったり、また10回パスワードミス時アカウントロック等の
ある程度の保護はありますが、攻撃されていた場合に通知する仕組み等はデフォルトではありません。
また監査ログをクエリで条件に応じて探索を行うなどはEntra既定の機能には限界があります。
そこでSIEMにログを集めることで、詳細な分析、自動分析からのインデント検知、
自動対応などが可能となります。
ここで、Microsoftには謹製のSIEM、Sentinelがありますので、
Entra作成、Sentinel作成、SentinelにEntraオンボードさせて、
どんなことができるのか案内していきたいと思います。
1.Entraテナント作成
-
既存のEntraテナントを使用
- 既にM365やEntraを利用している環境がある場合、そのテナントを再利用できます。
- 既にM365やEntraを利用している環境がある場合、そのテナントを再利用できます。
-
試用版(Microsoft 365 E5 試用版テナント)で作成
- 参考: Microsoft 365 Defender 試用版セットアップ
- Microsoft 365 E5プランの試用版をセットアップすれば、
1か月の使用ライセンス付きでentraテナントやOffice365を試せます。
勉強に利用するにはとても便利です。
-
Microsoft 365 開発者プログラムで作成
- Microsoft 365 開発者プログラム
- 開発を継続する限り、M365 E5ライセンス付きのテナントが保持されます。上記の強化版ともいえます
-
注意: 現在、参加条件があり、簡単には利用できなくなりました。
参加条件(詳しくは上記リンク参照)- Visual Studio サブスクライバー もしくは
- 何かしらのMicrosoftとのパートナー
2.Sentinel作成
-
Azureサブスクリプションの準備
- SentinelはバックエンドでLog Analyticsワークスペースを利用します
サブスクリプション(クレジットカード登録必須)が必要です。
- SentinelはバックエンドでLog Analyticsワークスペースを利用します
-
Log Analytics ワークスペースの作成
- Azureポータルにログインし、「Log Analytics ワークスペース」を検索。
- 「作成」をクリックし、先ほど作成したサブスクリプション、
Log Analyticsワークスペースを含めるリソースグループ名(新たに作ってもよい)、
Log Analyticsワークスペース名、リージョンを指定。 - 「確認と作成」で設定を確認し、作成を実行。
-
Microsoft Sentinel の有効化
- Azureポータルに戻り、「Microsoft Sentinel」を検索。
- 「作成」をクリックし、先ほど作成したLog Analyticsワークスペース名を指定し追加。
3.Sentinel に Entra オンボード
ここから先はMicrosoft Entra 管理センターでの作業になります。
-
診断設定の作成
- Microsoft Entra 管理センターにて
「監視と正常性」より「診断設定」を開く。 - 診断設定より「診断設定を追加する」をクリック。
- 診断設定では以下を設定。
診断設定の名前:好きなものを指定
ログ:AuditLogsは監査ログ、SignInLogsはサインインログ。
M365E5特典利用すればこの二つは5MB/日/ユーザーのインジェスト(取り込み)無料
宛先の詳細:Log Analytics ワークスペースへの送信 より先ほど作成したLog Analytics ワークスペースへ。
- Microsoft Entra 管理センターにて
これでSentinelにログが取り込まれるようになります!
下にざっくりとしたコスト概算(2025/6月時点)を書いてみます。
-
コスト
コストの主な内訳は以下の三つです。(2年以上ログを保管するようなことがなければ)- ログ取り込み(インジェスト)費用
- 保持費用
よって月1GB取り込み、2年保持の場合、月超大雑把に$10程になるようです。
ログ取り込み費用:$6.24/G*1 /月
保持費用:$0.15/G*24 = 約$3.6 /月
(ちなみに、長期保管ログならば保持費用は$0.03/G)
ただし、M365E5があるなら取り込みログをM365E5特典の AuditLogs および SignInLogs や
Office 365 監査ログ(SPO/EXO/Teams)等に絞り、かつ保持期限を90日とするならば
計算上ほぼ無料になります。
4.Sentinel にて Entraログ を調べてみる
- まずはサインインログ全量を見てみるとしましょう。以下の実行から可能です。
- 直近の24時間のサインインログが1000件まで出てきます。あとはこちらをCSVにエクスポートなりできます。
- 次に本日から90日間の間、失敗のサインインのみ確認したいとします。KQLの出番です。
クエリを簡易モードからKQLモードに切り替え、以下記述し実行します。
SigninLogs
| where ResultType != 0
| where TimeGenerated >= ago(30d)
すると、以下の様に出力されます。今回は失敗のサインインのみ(where ResultType != 0)
としていますから、ResultSignatureが"FAILURE"のみとなっています。
今回は行いませんでしたが、失敗の理由を設定することも可能で、
例えばResultTypeが 50126 ならfailureReasonは
"Invalid username or password or Invalid on-premise username or password."
であり、つまりパスワード間違い等になります。
5.まとめ
ここまででEntraのログをSentinelに保管させ、簡単に検索するところまでできました。
SIEMは基本的にはログを収集しこれを分析して異常を検知し対応するためのものですので、
今回やったのは収集と簡易的な手動分析までをおこなってみました。
次回、自動分析からの異常検知時インシデント化までを行ってみたいと思います。