Microsoft Defender for Identity的目录服务帐户
本文介绍Microsoft Defender for Identity如何使用目录服务帐户 (DSA) 。
注意
无论配置了哪种目录服务帐户,传感器服务都将在 LocalService 标识下运行,更新程序服务将在 LocalSystem 标识下运行。
虽然 DSA 在某些情况下是可选的,但我们建议为 Defender for Identity 配置 DSA,以全面实现安全覆盖。
例如,如果配置了 DSA,则 DSA 用于在启动时连接到域控制器。 DSA 还可用于在域控制器中查询网络流量、监视事件和受监视的 ETW 活动中看到的实体的数据
以下特性和功能需要 DSA:
使用 安装在 AD FS/AD CS 服务器上的传感器时。
通过对设备进行的 SAM-R 调用 ,从网络流量、事件和 ETW 活动中看到的设备请求本地管理员组的成员列表。 收集的数据用于计算潜在的横向移动路径。
访问 DeletedObjects 容器以收集有关已删除的用户和计算机的信息。
域和信任映射,在传感器启动时以及每 10 分钟再次发生一次。
从其他域中的实体检测活动时,通过 LDAP 查询另一个域以获取详细信息。
使用单个 DSA 时,DSA 必须对林中的所有域具有 读取 权限。 在不受信任的多林环境中,每个林都需要一个 DSA 帐户。
每个域中的一个传感器定义为 域同步器,并负责跟踪对域中实体的更改。 例如,更改可能包括创建的对象、Defender for Identity 跟踪的实体属性等。
注意
默认情况下,Defender for Identity 最多支持 30 个凭据。 若要添加更多凭据,请联系 Defender for Identity 支持。
支持的 DSA 帐户选项
Defender for Identity 支持以下 DSA 选项:
选项 | 说明 | 配置 |
---|---|---|
组托管服务帐户 gMSA (推荐) | 提供更安全的部署和密码管理。 Active Directory 管理帐户密码的创建和轮换,就像计算机帐户的密码一样,你可以控制帐户密码的更改频率。 | 有关详细信息,请参阅 使用 gMSA 为 Defender for Identity 配置目录服务帐户。 |
常规用户帐户 | 入门时易于使用,在受信任的林之间配置 读取 权限更简单,但需要额外的密码管理开销。 常规用户帐户的安全性较低,因为它需要创建和管理密码,并且如果密码过期且未同时为用户和 DSA 更新,可能会导致停机。 |
在 Active Directory 中创建一个新帐户,用作对所有对象具有 读取 权限的 DSA,包括 对 DeletedObjects 容器的权限。 有关详细信息,请参阅 授予所需的 DSA 权限。 |
本地服务帐户 | 本地服务帐户是现用的,在未配置 DSA 时默认使用。 注意: |
None |
注意
虽然本地服务帐户默认与传感器一起使用,并且 DSA 在某些情况下是可选的,但我们建议为 Defender for Identity 配置 DSA,以完全覆盖安全。
DSA 条目使用情况
本部分介绍如何使用 DSA 条目,以及传感器如何在任何给定方案中选择 DSA 条目。 传感器尝试会有所不同,具体取决于 DSA 条目的类型:
类型 | 说明 |
---|---|
gMSA 帐户 | 传感器尝试从 Active Directory 检索 gMSA 帐户密码,然后登录到域。 |
常规用户帐户 | 传感器尝试使用配置的用户名和密码登录到域。 |
将应用以下逻辑:
传感器查找与目标域的域名完全匹配的条目。 如果找到完全匹配项,传感器将尝试使用该条目中的凭据进行身份验证。
如果没有完全匹配,或者身份验证失败,传感器将使用 DNS FQDN 在列表中搜索父域的条目,并尝试使用父条目中的凭据进行身份验证。
如果父域没有条目,或者身份验证失败,则传感器使用 DNS FQDN 在列表中搜索同级域条目,并尝试使用同级条目中的凭据进行身份验证。
如果同级域没有条目,或者身份验证失败,传感器会再次检查列表,并尝试对每个条目重新进行身份验证,直到成功。 DSA gMSA 条目的优先级高于常规 DSA 条目。
使用 DSA 的示例逻辑
本部分提供一个示例,说明当你有多个帐户(包括 gMSA 帐户和常规帐户)时,传感器如何尝试 DSA 整体。
将应用以下逻辑:
传感器在目标域的 DNS 域名(例如)
emea.contoso.com
和 DSA gMSA 条目(如emea.contoso.com
)之间查找匹配项。传感器查找目标域的 DNS 域名(例如
emea.contoso.com
和 DSA 常规条目 DSA)之间的匹配项,例如emea.contoso.com
传感器在目标域的根 DNS 名称(如
emea.contoso.com
和 DSA gMSA 条目域名)中查找匹配项,例如contoso.com
。传感器在目标域的根 DNS 名称(如
emea.contoso.com
和 DSA 常规条目域名)中查找匹配项,例如contoso.com
。传感器查找同级域的目标域名,例如
emea.contoso.com
和 DSA gMSA 入口域名,例如apac.contoso.com
。传感器查找同级域的目标域名,例如
emea.contoso.com
和 DSA 常规条目域名,例如apac.contoso.com
。传感器运行所有 DSA gMSA 条目的轮循机制。
传感器运行所有 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 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 参考。