不審な AD 同期ロールの割り当て

HIGH

説明

Microsoft Entra Connect (旧 Azure AD Connect) または Microsoft Entra Cloud Sync (旧 Azure AD Connect Cloud Sync) のいずれかを使用して、Microsoft Entra ID を Active Directory と同期できます。Microsoft は、これらの同期ツールで使用されるサービスアカウント用として特別に設計した 2 つの組み込みロールを提供しています。

  • 主なロールは**ディレクトリ同期アカウント**​ (ID: d29b2b05-8046-44ba-8758-1e26182fcf32) です。悪用される可能性については、Tenable Research ブログ投稿 Stealthy Persistence with "Directory Synchronization Accounts" Role in Entra ID (Entra ID の「ディレクトリ同期アカウント」ロールを使ってステルス的に持続性を得る)
  • で詳しく説明しています。オンプレミスディレクトリ同期アカウント​ (ID: a92aed5d-d78a-4d16-b381-09adb37eb3b0) は、2024 年 7 月に Tenable が初めて特定した新しいロールです。これは「ディレクトリ同期アカウント」ロールと同様の説明であり、アクセス許可も同じです。しかし、Tenable Research により、このロールは Microsoft Entra Connect にも Entra Cloud Sync にも使用されておらず、現時点では知られている正当な用途がないことがわかりました。これにより、その目的と悪用の可能性についての懸念が高まっています。

攻撃者は、これらのロールを制御下に置いたセキュリティプリンシパル (ユーザー、サービスプリンシパル、グループなど) に割り当て、権限昇格や長期的な持続性を有効にすることで、悪用することができます。これらのロールは次の理由で特に好んで悪用されます。

  • これらのロールには依然として特権が付与されています。Microsoft は 2024 年 8 月のセキュリティ堅牢化更新で、これらのロールからいくつかの機密性の高い Entra ID アクセス許可を削除しましたが、Tenable Research によれば、これらのロールは特定の API による暗黙的なアクセス許可を依然として保持しています。その結果、それらのロールによって引き続き強力なアクセス権が提供されています。
  • これらのロールはステルス的に動作します。管理者がそれらのロールを手動で割り当てることはほとんどないため、Azure と Entra の両方のポータルで非表示になっています。これらは、Entra ロールのリストや、特定のプリンシパルの [割り当てられたロール] セクションに表示されないため、隠れて使用するには理想的です。
  • 文書化されていないロールが 1 つあります。Microsoft は「オンプレミスディレクトリ同期アカウント」ロールを文書化していないため、検出されない悪用のリスクがさらに高くなります。

この露出インジケーターは、次のロジックに従って、これらのロールを割り当てられた不審なセキュリティプリンシパルを検出します。

  • 「ディレクトリ同期アカウント」ロールの場合は、複数のヒューリスティックに依拠する検出により、Microsoft Entra Connect または Microsoft Entra Cloud Sync で使用される一般的なサービスアカウントと一致しない割当責任者を特定します。
  • 「オンプレミスディレクトリ同期アカウント」ロールの場合は、このロールの正当な用途が未知であるため、条件に関係なく、いずれの割り当ても不審であるとしてフラグを立てます。

ソリューション

まず、特定された不審なセキュリティプリンシパルの正当性の評価​から始めます。

  • テナント同期ステータス: Entra テナントがハイブリッドではない (つまり、Active Directory と同期していない) 場合は、いずれのロールも割り当てられているべきではありません。割り当てられている場合、その報告された割り当ては、不正な設定であるか、以前のハイブリッド状態からの残りのどちらかであることを示唆しています。
  • セキュリティプリンシパルのタイプ: サービスプリンシパルまたはグループがこれらのロールのいずれかを保持すべき正当なシナリオはありません。
  • このセキュリティプリンシパルはいつ作成されましたか?その日付は、実際に「Microsoft Entra Connect」または「Microsoft Entra Cloud Sync」でディレクトリ同期をセットアップした日と一致していますか?
  • 監査ログ: このセキュリティプリンシパルは、ユーザーの更新、作成、削除、パスワード変更などのディレクトリ同期タスクを定期的に実行していますか?
  • サインインログ: このセキュリティプリンシパルは、組織に属していそうな IP アドレスから定期的に認証していますか?
  • Microsoft Entra Connect を使用している場合、そのユーザープリンシパル名に、実際に想定されるオンプレミスの Microsoft Entra Connect サーバー名が含まれていますか?(たとえば、サーバーが「AADCONNECT」という名前の場合は、「Sync_AADCONNECT_@...」というユーザープリンシパル名が想定できます)。予期される表示名「オンプレミスディレクトリ同期サービスアカウント」になっていますか?
  • 冗長または異常なロールの使用: 「オンプレミスディレクトリ同期アカウント」ロールが割り当てられている場合、次のことを検討してください: 標準の「ディレクトリ同期アカウント」ロールの代わりに (またはそれに加えて)、このロールが使用された理由は何ですか?

侵害が疑われる場合

  • フォレンジック調査を実施​して疑わしい攻撃を確認し、攻撃時刻と攻撃者を特定し、潜在的な侵入の範囲を評価します。
  • 監査ログを確認して​、潜在的な悪質性をもたらす行動を特定します。

これらのロールもそれらを割り当てられたユーザーも、Azure ポータルや Entra Admin Center では表示されません。割り当てを特定するには、次のように Microsoft Graph PowerShell コマンドレットなどの代替方法を使用するか、Microsoft Graph API に直接クエリしなければなりません。

Connect-MgGraph -Scopes "RoleManagement.Read.All"
Get-MgDirectoryRoleMember -DirectoryRoleId (Get-MgDirectoryRole -Filter "RoleTemplateId eq 'd29b2b05-8046-44ba-8758-1e26182fcf32'").Id | Format-List *
Get-MgDirectoryRoleMember -DirectoryRoleId (Get-MgDirectoryRole -Filter "RoleTemplateId eq 'a92aed5d-d78a-4d16-b381-09adb37eb3b0'").Id | Format-List *

または、現在は廃止されている Azure AD PowerShell コマンドレットを使用することもできます。

Connect-AzureAD
Get-AzureADDirectoryRole -Filter "RoleTemplateId eq 'd29b2b05-8046-44ba-8758-1e26182fcf32'" | Get-AzureADDirectoryRoleMember
Get-AzureADDirectoryRole -Filter "RoleTemplateId eq 'a92aed5d-d78a-4d16-b381-09adb37eb3b0'" | Get-AzureADDirectoryRoleMember

最後に、特定されたセキュリティプリンシパルにこれらのロールのいずれかが割り当てられている正当な理由がなく、Microsoft Entra Connect でも Microsoft Entra Cloud Sync でも使用されていない場合は、このロールの割り当てを削除してください。削除するには、次の PowerShell コマンドレットのいずれかを使用します: Remove-AzureADDirectoryRoleMember または Remove-MgDirectoryRoleMemberByRef Microsoft Graph PowerShell コマンドレット。提供されている修正スクリプトを参照してください。

インジケーターの詳細

名前: 不審な AD 同期ロールの割り当て

コード名: SUSPICIOUS-DIRECTORY-SYNCHRONIZATION-ACCOUNTS-ROLE-ASSIGNMENT

深刻度: High

タイプ: Microsoft Entra ID Indicator of Exposure

MITRE ATT&CK 情報: