Microsoft Sentinelにおいてもともと準備されている分析ルールについてクエリの中身や注意点等を紐解いていく。
このルールは利用環境によっては過検知が多発するためチューニングが必要である。
特に多要素認証を必須としている場合、定期的に発生するためである。
例えば
- 条件付きアクセスで許可されたロケーションからの操作は検知除外する
である
1. ルール概要
項目 | 説明 |
---|---|
重大度 | 高 |
ルール名 | Authentication Method Changed for Privileged Account |
ルールの種類 | Scheduled |
ルールの頻度 | 2時間ごとにクエリを実行 |
ルールの期間 | 過去2時間のデータ |
バージョン | 1.0.1 |
説明 | 特権アカウントに対して変更された認証方法を識別します。これは、攻撃者が継続的なアクセスを可能にするために、アカウントに認証方法を追加していることを示す可能性があります。(by DeepL) |
Ref | https://learn.microsoft.com/ja-jp/azure/active-directory/fundamentals/security-operations-privileged-accounts?WT.mc_id=Portal-fx#things-to-monitor-1 |
2. 活用するテーブル
テーブル名 | 概要 | 参考URL |
---|---|---|
IdentityInfo | UEBA機能によって設定されたユーザー ID 情報 | https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/identityinfo |
AuditLogs | Azure ADの監査ログ | https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/auditlogs |
3. クエリ解説
Authentication Method Changed for Privileged Account / version1.0.1
// VIPUsersという変数に管理者権限を有するユーザーを一覧として格納する
let VIPUsers = (IdentityInfo
// 付与された権限名にAdminという文字列が含まれているものに絞り込む
| where AssignedRoles contains "Admin"
// UPNの文字列を小文字化してリスト表示する
| summarize by tolower(AccountUPN));
// AzureADの監査ログを対象とする
AuditLogs
// 大文字小文字区別せずに CategoryフィールドがRoleManagementのものに絞り込む
| where Category =~ "UserManagement"
// アクティビティもしくは操作が認証方法の登録のものに絞り込む
| where ActivityDisplayName =~ "User registered security info"
// 大文字小文字区別せずにアクティビティを開始したサービスが認証方法サービスのものに絞り込む
| where LoggedByService =~ "Authentication Methods"
// アカウントエンティティフィールドに変更対象のUPNを、IPエンティティフィールドに変更時の通信元IPアドレスを格納する
| extend AccountCustomEntity = tostring(TargetResources[0].userPrincipalName), IPCustomEntity = tostring(parse_json(tostring(InitiatedBy.user)).ipAddress)
// 変更対象のUPNが管理者権限を有するユーザーのものに絞り込む
| where AccountCustomEntity in (VIPUsers)
X. おまけ
項目 | 説明 |
---|---|
Azure ADの監査ログ(認証方法サービス)に関するアクティビティ一覧 | https://learn.microsoft.com/en-us/azure/active-directory/authentication/howto-registration-mfa-sspr-combined-troubleshoot |