Microsoft Defender for Identityのディレクトリ サービス アカウント

Defender for Identity v2.xセンサーは、ディレクトリサービスアカウント(DSA)を使用してActive Directoryからデータを読み込み、オブジェクトのクエリ、変更の追跡、エンティティの解決などを行います。 これは、ユーザーの無効化やパスワードのリセットなどの修復アクションを実行するアクション アカウントとは別です。

注:

ディレクトリ サービス アカウントは、Defender for Identity センサー v2.x にのみ適用されます。 センサー v3.x は DSA または gMSA 構成を使用せず、LocalSystem のみを使用します。 詳細については、「 Defender for Identity sensor v3.x サービス アカウントの要件」を参照してください。

注:

構成されているディレクトリ サービス アカウントに関係なく、センサー サービスは LocalSystem ID で動作し、アップデーター サービスは LocalSystem ID の下で動作します。

v2.xセンサーでは、DSAは一部のシナリオでオプションですが、完全なセキュリティカバーのために設定することをお勧めします。

たとえば、DSA が構成されている場合、DSA は起動時にドメイン コントローラーに接続するために使用されます。 DSAはまた、ネットワーク トラフィック、監視イベント、監視されたETWアクティビティで確認されたエンティティに関するデータをドメイン コントローラーに照会することも可能です。

センサーv2.xでは、以下の機能や機能のためにDSAが必要です:

  • AD FS、AD CS、または Microsoft Entra Connect サーバーにインストールされているセンサーを使用する場合。

  • ネットワークトラフィック、イベント、ETW 活動で確認されたデバイスに対して行われる SAM-R 呼び出し を介して、ローカル管理者グループのメンバー リストを要求します。

  • DeletedObjects コンテナーにアクセスして、削除されたユーザーとコンピューターに関する情報を収集します。

  • センサーの起動時に発生し、10 分ごとに再び発生するドメインと信頼のマッピング。

  • LDAP を介して別のドメインに対してクエリを実行し、それらの他のドメイン内のエンティティからのアクティビティを検出する場合に詳細を確認します。

1 つの DSA を使用している場合、DSA にはフォレスト内のすべてのドメインに対する 読み取り アクセス許可が必要です。 信頼されていないマルチフォレスト環境では、各フォレストに対して DSA アカウントが必要です。

各ドメイン内の1つのセンサーがドメインシンクロナイザーとして機能し、新しいオブジェクトやエンティティ属性の変更など、ドメインエンティティの変更を追跡します。

注:

既定では、Defender for Identity では最大 30 個の資格情報がサポートされます。 資格情報をさらに追加するには、Defender for Identity サポートにお問い合わせください。

サポートされている DSA アカウント オプション

v2.xセンサーに関しては、Defender for Identityが以下のDSAオプションをサポートしています:

オプション 説明 構成
グループ管理サービス アカウント gMSA (推奨) より安全なデプロイとパスワード管理を提供します。 Active Directory は、コンピューター アカウントのパスワードと同様に、アカウントのパスワードの作成とローテーションを管理し、アカウントのパスワードを変更する頻度を制御できます。 詳細については、「 gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを構成する」を参照してください。
通常のユーザー アカウント 使用を開始するときに使いやすく、信頼されたフォレスト間で 読み取り アクセス許可を構成する方が簡単ですが、パスワード管理には余分なオーバーヘッドが必要です。

通常のユーザー アカウントは、パスワードを作成および管理する必要があるため、安全性が低く、パスワードの有効期限が切れ、ユーザーと DSA の両方に対して更新されない場合、ダウンタイムにつながる可能性があります。
Active Directory で新しいアカウントを作成し、DeletedObjects コンテナーへのアクセス許可を含むすべてのオブジェクトに対する読み取りアクセス許可を持つ DSA として使用します。 詳細については、「 必要な DSA アクセス許可を付与する」を参照してください。
ローカル サービス アカウント ローカル サービス アカウントは既定で使用され、DSA が構成されていない場合に使用されます。
注意:
  • このシナリオではサポートされていない潜在的な横移動パスに対する SAM-R クエリ。
  • LDAP クエリは、センサーがインストールされているドメイン内でのみ実行されます。 同じフォレスト内またはフォレスト間の他のドメインへのクエリは失敗します。
  • なし

    注:

    既定では、ローカル サービス アカウントがセンサーと共に使用され、一部のシナリオでは DSA は省略可能ですが、完全なセキュリティ カバレッジを実現するために、DSA for Defender for Identity を構成することをお勧めします。

    DSA エントリの使用状況

    v2.xセンサーは、ターゲットドメインと設定された認証情報に基づいてDSAエントリを選択します。 認証試行はDSAの種類によって異なります:

    タイプ 説明
    gMSA アカウント センサーは、Active Directory から gMSA アカウント のパスワードを取得し、ドメインにサインインしようとします。
    通常のユーザー アカウント センサーは、構成されたユーザー名とパスワードを使用してドメインへのサインインを試みます。

    次のロジックが適用されます。

    1. センサーは、ターゲット ドメインのドメイン名と完全に一致するエントリを検索します。 完全一致が見つかった場合、センサーはそのエントリ内の資格情報を使用して認証を試みます。

    2. 完全に一致しない場合、または認証に失敗した場合、センサーは DNS FQDN を使用して親ドメインへのエントリを検索し、代わりに親エントリの資格情報を使用して認証を試みます。

    3. 親ドメインのエントリがない場合、または認証に失敗した場合、センサーは DNS FQDN を使用して兄弟ドメイン エントリの一覧を検索し、代わりに兄弟エントリの資格情報を使用して認証を試みます。

    4. 兄弟ドメインのエントリがない場合、または認証に失敗した場合、センサーはリストをもう一度確認し、成功するまで各エントリで再認証を試みます。 DSA gMSA エントリの優先度は、通常の DSA エントリよりも高くなります。

    DSA を使用したサンプル ロジック

    以下の例は、gMSAと通常のアカウントの両方を設定したときにセンサーがどのようにDSAエントリを試みるかを示しています。

    次のロジックが適用されます。

    1. センサーは、ターゲット ドメインの DNS ドメイン名 ( emea.contoso.com など) と DSA gMSA エントリ ( emea.contoso.com など) の間で一致するものを探します。

    2. センサーは、ターゲット ドメインの DNS ドメイン名 ( emea.contoso.com など) と DSA の通常のエントリ DSA との間の一致を検索します (例: emea.contoso.com

    3. センサーは、ターゲット ドメインのルート DNS 名 ( emea.contoso.com や DSA gMSA エントリ ドメイン名 ( contoso.comなど) で一致するものを検索します。

    4. センサーは、ターゲット ドメインのルート DNS 名 ( emea.contoso.com や DSA の通常のエントリ ドメイン名 ( contoso.comなど) で一致するものを探します。

    5. センサーは、 emea.contoso.com などの兄弟ドメインのターゲット ドメイン名と、 apac.contoso.comなどの DSA gMSA エントリ ドメイン名を検索します。

    6. センサーは、 emea.contoso.com などの兄弟ドメインのターゲット ドメイン名と、 apac.contoso.comなどの DSA 標準エントリ ドメイン名を検索します。

    7. センサーは、すべての DSA gMSA エントリを順番に巡回します。

    8. センサーは、すべての DSA 標準エントリのラウンド ロビンを実行します。

    この例に示すロジックは、次の構成で実装されます。

    • DSAエントリ:

      • DSA1.emea.contoso.com
      • DSA2.fabrikam.com
    • 最初に使用されるセンサーと DSA エントリ:

      ドメイン コントローラーの FQDN 使用される DSA エントリ
      DC01.emea.contoso.com DSA1.emea.contoso.com
      DC02.contoso.com DSA1.emea.contoso.com
      DC03.fabrikam.com DSA2.fabrikam.com
      DC04.contoso.local ラウンドロビン

    重要

    起動時にセンサーが ACTIVE Directory ドメインに対する LDAP 経由で正常に認証できない場合、センサーは実行中の状態に入らないので、正常性の問題が発生します。 詳細については、「Defender for Identity のヘルス問題」を参照してください。

    必要な DSA アクセス許可を付与する

    DSA には、Active Directory 内のすべての オブジェクト ( 削除されたオブジェクト コンテナーを含む) に対する読み取り専用アクセス許可が必要です。

    削除済みオブジェクト コンテナーに対する読み取り専用アクセス許可を使用すると、Defender for Identity は Active Directory からのユーザーの削除を検出できます。

    次のコード サンプルを使用して、gMSA アカウントを使用しているかどうかに関係なく、 削除済みオブジェクト コンテナーに必要な読み取りアクセス許可を付与するのに役立ちます。

    ヒント

    アクセス許可を付与する DSA がグループ管理サービス アカウント (gMSA) の場合は、まずセキュリティ グループを作成し、gMSA をメンバーとして追加し、そのグループにアクセス許可を追加する必要があります。 詳細については、「 gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを構成する」を参照してください。

    # Declare the identity that you want to add read access to the deleted objects container:
    $Identity = 'mdiSvc01'
    
    # If the identity is a gMSA, first to create a group and add the gMSA to it:
    $groupName = 'mdiUsr01Group'
    $groupDescription = 'Members of this group are allowed to read the objects in the Deleted Objects container in AD'
    if(Get-ADServiceAccount -Identity $Identity -ErrorAction SilentlyContinue) {
        $groupParams = @{
            Name           = $groupName
            SamAccountName = $groupName
            DisplayName    = $groupName
            GroupCategory  = 'Security'
            GroupScope     = 'Universal'
            Description    = $groupDescription
        }
        $group = New-ADGroup @groupParams -PassThru
        Add-ADGroupMember -Identity $group -Members ('{0}$' -f $Identity)
        $Identity = $group.Name
    }
    
    # Get the deleted objects container's distinguished name:
    $distinguishedName = ([adsi]'').distinguishedName.Value
    $deletedObjectsDN = 'CN=Deleted Objects,{0}' -f $distinguishedName
    
    # Take ownership on the deleted objects container:
    $params = @("$deletedObjectsDN", '/takeOwnership')
    C:\Windows\System32\dsacls.exe $params
    
    # Grant the 'List Contents' and 'Read Property' permissions to the user or group:
    $params = @("$deletedObjectsDN", '/G', ('{0}\{1}:LCRP' -f ([adsi]'').name.Value, $Identity))
    C:\Windows\System32\dsacls.exe $params
      
    # To remove the permissions, uncomment the next 2 lines and run them instead of the two prior ones:
    # $params = @("$deletedObjectsDN", '/R', ('{0}\{1}' -f ([adsi]'').name.Value, $Identity))
    # C:\Windows\System32\dsacls.exe $params
    

    詳細については、「 削除されたオブジェクト コンテナーに対するアクセス許可の変更」を参照してください。

    PowerShell を使用して DSA のアクセス許可と委任をテストする

    次の PowerShell コマンドを使用して、DSA に強力な管理者アクセス許可など、あまり多くのアクセス許可がないことを確認します。

    Test-MDIDSA [-Identity] <String> [-Detailed] [<CommonParameters>]
    

    たとえば、mdiSvc01 アカウントのアクセス許可をチェックし、完全な詳細を指定するには、次を実行します。

    Test-MDIDSA -Identity "mdiSvc01" -Detailed
    

    詳細については、「 DefenderForIdentity PowerShell リファレンス」を参照してください。

    次の手順