適用於身分識別的 Microsoft Defender 的目錄服務帳戶

本文說明 適用於身分識別的 Microsoft Defender 如何使用目錄服務帳戶 (DSA)。

在某些案例中,DSA 是選擇性的,但建議您為適用於身分識別的 Defender 設定 DSA,以取得完整的安全性涵蓋範圍。

例如,當您設定 DSA 時,DSA 會用來在啟動時連線到域控制器。 DSA 也可用來查詢域控制器,以取得網路流量、受監視事件和受監視 ETW 活動中所見實體的數據

下列特性和功能需要 DSA:

  • 使用安裝在 AD FS/ AD CS 伺服器上的感測器時。

  • 透過對裝置進行的 SAM-R 呼叫,從網路流量、事件和 ETW 活動中看到的裝置,要求本機系統管理員群組的成員清單。 收集的數據可用來計算潛在的橫向移動路徑。

  • 存取 DeletedObjects 容器以收集已刪除使用者和計算機的相關信息。

  • 在感測器啟動時發生的網域和信任對應,每 10 分鐘再次發生一次。

  • 透過LDAP查詢另一個網域以取得詳細資料,當偵測來自其他網域中實體的活動時。

當您使用單一 DSA 時,DSA 必須具有 樹系中所有網域的讀取 許可權。 在不受信任的多樹系環境中,每個樹系都需要 DSA 帳戶。

每個網域中的一個感測器會定義為 網域同步器,並負責追蹤網域中實體的變更。 例如,變更可能包括建立的物件、適用於身分識別的Defender追蹤的實體屬性等等。

注意

根據預設,適用於身分識別的Defender最多支援30個認證。 若要新增更多認證,請連絡適用於身分識別的Defender支援。

支援的 DSA 帳戶選項

適用於身分識別的Defender支援下列 DSA 選項:

選項 描述 組態
群組受管理的服務帳戶 gMSA (建議) 提供更安全的部署和密碼管理。 Active Directory 會管理帳戶密碼的建立和輪替,就像計算機帳戶的密碼一樣,而且您可以控制帳戶密碼變更的頻率。 如需詳細資訊,請參閱 使用 gMSA 設定適用於身分識別的 Defender 目錄服務帳戶。
一般用戶帳戶 開始使用時容易使用,且設定受信任樹系之間的讀取許可權更簡單,但需要額外的密碼管理額外負荷。

一般用戶帳戶較不安全,因為它需要您建立和管理密碼,而且如果密碼過期且未同時更新給使用者和 DSA,可能會導致停機時間。
在 Active Directory 中建立新的帳戶,以作為具有所有物件讀取許可權的 DSA,包括 DeletedObjects 容器的許可權。 如需詳細資訊,請參閱 授與必要的 DSA 許可權

DSA 專案使用方式

本節說明如何使用 DSA 專案,以及感測器如何在任何指定的案例中選取 DSA 專案。 感測器嘗試會根據 DSA 項目的類型而有所不同:

類型 描述
gMSA 帳戶 感測器會嘗試從 Active Directory 擷取 gMSA 帳戶密碼,然後登入網域。
一般用戶帳戶 感測器會嘗試使用已設定的使用者名稱和密碼登入網域。

套用下列邏輯:

  1. 感測器會尋找與目標網域功能變數名稱完全相符的專案。 如果找到完全相符的專案,感測器會嘗試使用該專案中的認證進行驗證。

  2. 如果沒有完全相符,或驗證失敗,感測器會使用 DNS FQDN 搜尋父域的專案清單,並嘗試使用父專案中的認證進行驗證。

  3. 如果沒有父域的專案,或驗證失敗,感測器會使用 DNS FQDN 搜尋同層級網域專案的清單,並嘗試使用同層級專案中的認證進行驗證。

  4. 如果同層級網域沒有專案,或驗證失敗,感測器會再次檢閱清單,並嘗試對每個專案再次進行驗證,直到成功為止。 DSA gMSA 專案優先順序高於一般 DSA 專案。

使用 DSA 的範例邏輯

本節提供感測器在有多個帳戶時如何嘗試 DSA 整體的範例,包括 gMSA 帳戶和一般帳戶。

套用下列邏輯:

  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 和 DSA gMSA 專案功能變數名稱,例如 apac.contoso.com

  6. 感測器會尋找同層級網域的目標功能變數名稱,例如 emea.contoso.com 和 DSA 一般專案功能變數名稱,例如 apac.contoso.com

  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 循環配置資源

重要

如果感測器無法在啟動時成功透過LDAP向Active Directory網域進行驗證,感測器將不會進入執行中狀態,而且會產生健康情況問題。 如需詳細資訊,請參閱 適用於身分識別的Defender健康情況問題

授與必要的 DSA 許可權

DSA 需要 Active Directory 中所有物件的唯讀許可權,包括已刪除的物件容器

[已刪除的物件] 容器上的只讀許可權可讓適用於身分識別的 Defender 偵測從 Active Directory 刪除使用者。

使用下列程式代碼範例可協助您授與已刪除物件容器上所需的讀取許可權,不論您是否使用 gMSA 帳戶。

提示

如果您想要授與許可權的 DSA 是群組受控服務帳戶 (gMSA),您必須先建立安全組、將 gMSA 新增為成員,並將許可權新增至該群組。 如需詳細資訊,請參閱 使用 gMSA 設定適用於身分識別的 Defender 目錄服務帳戶。

# 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 參考

後續步驟