微软Defender for Identity自定义账户关联规则:零信任身份威胁检测的终极指南 + Video

Listen to this Post

Featured Image

Introduction:

在现代混合IT环境中,单个用户通常拥有多个账户:标准用户、管理员账户,甚至跨不同域或身份提供商的账户。这种碎片化的身份视图给安全团队带来了巨大挑战,使得追踪恶意行为变得极为困难。微软Defender for Identity新推出的自定义账户关联规则(Custom Account Correlation Rules)功能,允许组织将这些分散的账户关联到单一身份下,从而提供完整的上下文,极大地简化了调查流程并增强了对特权账户滥用的检测能力。

Learning Objectives:

  • 理解微软Defender for Identity自定义账户关联规则的原理及其在身份威胁检测中的作用。
  • 掌握配置自定义关联规则的方法,包括使用Root UPN Prefix、Domain UPN等关联类型。
  • 应用扩展的ITDR技术和命令,将账户关联与MITRE ATT&CK框架映射,并实施主动安全加固策略。

You Should Know:

1. 揭秘自定义账户关联规则:配置与核心概念

扩展内容:

自定义账户关联规则允许您将那些不共享强标识符(如SID、Object ID或UPN)的账户进行逻辑关联。这对于识别具有特殊命名约定的特权账户(如`adm_john`与`[email protected]`属于同一用户)至关重要。当这些规则生效后,Defender for Identity能够将所有相关账户的警报和活动整合到一个统一视图中,安全分析师无需在多个账户间跳转即可全面了解攻击范围。

Step‑by‑step guide (配置与验证):

1. 准备条件: 确认拥有有效的MDI许可证(如E5),并分配了至少“Security Reader”或“Security Administrator”角色。

  1. 访问门户: 打开Microsoft Defender门户(https://security.microsoft.com),导航至 Settings > Identities。

3. 创建规则: 点击 Account Correlation Rules,然后选择 Add Rule。

4. 选择关联类型并输入值: 向导中将提供四种关联类型供选择:

Root UPN Prefix: 关联UPN中“@”符号前的部分相同的账户(例如:`[email protected]` 和 `[email protected]`)。

Root UPN Suffix: 关联UPN中“@”符号后的域部分相同的账户(例如:`[email protected]` 和 `[email protected]`)。

Domain UPN: 跨不同域关联相同用户名的账户(例如:`[email protected]` 与 `[email protected]`)。

Employee ID: 关联具有相同员工ID值的账户,这通常是最准确的关联方式。

5. 提交并生效: 输入规则名称和关联值后,提交规则。请注意,规则更改最多可能需要12个小时才能生效。

6. 验证关联效果: 规则生效后,前往“资产”>“身份”页面,搜索特定用户。您将看到其所有关联账户(常规、管理员、服务账户)被整合在一个身份下。

相关命令与审计:

使用PowerShell模块`DefenderForIdentity`可以审计现有配置。首先安装并连接该模块:

 以管理员身份运行PowerShell
Install-Module -Name DefenderForIdentity -Force -AllowClobber
 连接到Defender for Identity(需要相应权限)
Connect-MicrosoftDefenderForIdentity
 获取当前账户关联规则的状态(注意:此命令为示例,具体cmdlet可能随版本更新)
Get-MDICorrelationRule

2. 主动出击:利用UEBA和KQL进行高级身份行为分析

扩展内容:

账户关联是良好身份威胁检测和响应(ITDR)的基础。一旦账户被关联,我们可以利用用户和实体行为分析(UEBA)来建立动态行为基线,并主动检测异常。微软Sentinel的UEBA引擎使用机器学习为每个实体(用户、主机、IP)生成历史行为档案,并与当前活动进行比较。通过跨多个数据源(如Entra ID日志、防火墙日志、终端日志)关联实体,UEBA可以识别出单个关联身份下的可疑行为聚合,例如:一个用户的标准账户在纽约登录,同时其管理员账户在一分钟后从莫斯科登录——这显示了一个明确的横向移动风险。

Step‑by‑step guide (启用UEBA并创建KQL检测规则):

1. 启用Sentinel UEBA: 在Azure Sentinel工作区中,导航至“行为分析”并启用UEBA功能。启用后,Azure AD数据将同步到`IdentityInfo`表。

2. 识别关键异常: Sentinel UEBA可以检测到诸如地理位置异常、设备变更、资源访问模式剧变等异常。

3. 创建KQL检测规则: 以下是监控特权账户滥用的高级KQL查询示例。该查询查找在短时间内,同一关联身份下的账户从不同地理区域进行登录的事件。

// 高级KQL查询:同一身份下多账户的异常地理位置登录
let TimeWindow = 10m;
AADSignInEventsBeta
| where Timestamp > ago(TimeWindow)
| where isnotempty(AccountUpn) and isnotempty(Country)
| extend AccountBase = tostring(split(AccountUpn, "@")[bash]) // 提取UPN前缀
| summarize EarliestLogin = min(Timestamp), LatestLogin = max(Timestamp), 
CountryList = make_set(Country), AccountList = make_set(AccountUpn) 
by AccountBase
| where array_length(CountryList) > 1 // 同一基础账户从多个国家登录
| project AccountBase, AccountList, CountryList, TimeDelta = datetime_diff('minute', LatestLogin, EarliestLogin)
| where TimeDelta < 30 // 在30分钟内发生
| order by TimeDelta asc

4. 调查与响应: 当此警报触发时,Sentinel会将此异常与从防火墙和端点日志中收集的数据进行关联,提供完整的攻击链视图。安全分析师可以快速判断这是否是一次SSH暴力破解后门或是一次有效的MFA疲劳攻击手法。

3. 加强防御:Linux与Windows下的身份取证与加固命令

扩展内容:

在等待关联规则生效或处理遗留系统时,安全团队必须掌握基本的手动取证命令。这些命令在排查特定主机上的账户滥用行为时至关重要。在Linux和Windows系统中,攻击者通常会在获取初始访问权限后进行系统所有者发现操作,使用诸如`whoami`、`w`、`id`等命令以了解当前用户权限。防御者需要反向使用这些命令以及日志分析工具来检测这种侦察行为。

Step‑by‑step guide (取证与加固命令清单):

1. Linux系统身份发现与审计:

查看当前用户: `whoami` 显示有效用户。`id` 显示用户ID(UID)、组ID(GID)和所属组。若UID为0,则表示超级用户,应立即审查是否存在提权攻击。

审查登录历史: `last` 查看成功登录历史。`lastb` 查看登录失败记录,用于发现暴力破解尝试。`lastlog` 查看所有用户最近一次登录。

发现系统用户: `getent passwd` 列出所有系统用户,可用于识别未知或后门账户。定期审计此列表与员工目录的匹配性。

监控进程树: `ps auxf` 显示进程树,帮助追踪由哪个用户启动的异常进程(如加密矿工或反向Shell)。

2. Windows系统身份发现与审计:

查看当前用户上下文: `whoami` 显示当前域和用户名。`whoami /groups` 显示用户的组信息,用于识别是否属于Domain Admins等敏感组。

列出系统所有用户: `net user` 列出本地用户。`net user /domain` 列出域用户。定期对比预期账户列表,识别未经授权的账户。

审计登录事件: 使用PowerShell查询安全事件日志。以下命令提取过去24小时内失败的登录尝试(Event ID 4625):

Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625; StartTime=(Get-Date).AddDays(-1)} | 
Select-Object TimeCreated, @{Name='User';Expression={$<em>.Properties[bash].Value}}, @{Name='SourceIP';Expression={$</em>.Properties[bash].Value}} |
Group-Object User, SourceIP | Sort-Object Count -Descending

检查特权账户登录: 搜索Event ID 4672(特殊登录),该事件标识被分配了特权的账户登录。

3. 主动加固: 利用`auditd`(Linux)为`/etc/passwd`和`/etc/shadow`设置文件完整性监控。在Windows中,通过组策略启用高级审计策略,特别是“账户登录”和“账户管理”子类别。

4. 自动化关联:利用Microsoft Graph API和PowerShell实现规则管理

扩展内容:

对于拥有成百上千个需要关联的特权账户的大型组织,通过门户逐个创建规则是不现实的。Microsoft提供了Graph API和专用的PowerShell模块来实现规则的批量导入、导出和自动化管理。这不仅提高了效率,也确保了规则的持续一致性,并可与CI/CD管道集成。

Step‑by‑step guide (使用PowerShell自动化关联):

1. 安装MDI PowerShell模块: 该模块简化了部署和配置,使自动化管理成为可能。

Install-Module -Name DefenderForIdentity -Force
Import-Module DefenderForIdentity

2. 使用脚本批量创建用户关联规则:

 假设您有一个CSV文件(UserMappings.csv),包含列:BaseAccount, TargetDomain
 此脚本将为每个基础账户创建一条Domain UPN类型的关联规则

$rules = Import-Csv -Path .\UserMappings.csv
foreach ($rule in $rules) {
$ruleParams = @{
Name = "Auto_Corr_" + $rule.BaseAccount
CorrelationType = "DomainUPN"  使用域关联类型
Value = $rule.TargetDomain
 注意:实际PowerShell cmdlet可能类似Add-MDICorrelationRule
 此代码演示逻辑,请根据最新模块文档调整
}
 Add-MDICorrelationRule @ruleParams (示例命令)
Write-Host "Creating rule for $($rule.BaseAccount) targeting $($rule.TargetDomain)"
 在此处调用实际的API或Cmdlet
}

3. 审计与监控: 定期运行脚本,对比当前规则与HR系统的员工ID或特权账户数据库,确保新员工的账户(尤其是服务账户)被自动纳入关联体系。

  1. 使用Graph API: 对于高级场景,可以直接调用Defender for Identity的Graph API。首先获取访问令牌,然后对`https://api.security.microsoft.com/api/accountcorrelationrules`端点执行`GET`、`POST`、`PATCH`和`DELETE`操作,实现更精细的自动化编排。

5. 零信任架构下的持续威胁暴露管理(CTEM)

扩展内容:

自定义账户关联规则是实现持续威胁暴露管理(CTEM)的关键一步。CTEM要求安全团队持续验证和响应暴露面。通过关联账户,安全团队可以精准识别“陈旧”或“闲置”的账户(例如,90天未登录的账户),这些账户是攻击者的主要目标。一旦这些被遗忘的账户在CTEM扫描中被标记,它们可以被快速解除关联或直接从身份清单中移除,从而缩小攻击面。

Step‑by‑step guide (识别并处置遗留账户):

1. 运行安全态势评估: 在Defender for Identity中,进入“安全态势评估”视图,查找“清除陈旧Active Directory账户”的评估项目。

2. 分析输出: 该评估将列出所有在指定天数内(如90天)未登录的用户账户。将此清单与您的账户关联规则进行对比。

3. 决策与行动: 对于已关联到某个身份的陈旧账户,如果确认不再需要,可以使用以下PowerShell命令手动解除关联:

 连接到MDI管理服务
Connect-MicrosoftDefenderForIdentity
 解除特定账户的关联(示例cmdlet)
 Unlink-MDIAccount -Identity "[email protected]"

4. 实施清理: 对于已解除关联且确认无用的账户,在Active Directory或Entra ID中执行禁用或删除操作。

5. 集成SOAR: 将此识别和解除关联的过程集成到安全编排自动化与响应(SOAR)剧本中。例如,当Sentinel的一个UEBA警报(如“来自隐蔽账户的异常登录”)触发时,SOAR剧本可以自动检索该账户的关联状态,如果未关联,则自动创建一个临时关联规则或向分析师呈递一个富上下文的工单。

What Undercode Say:

  • Key Takeaway 1: 消除身份盲点势在必行。自定义账户关联规则是零信任架构中“显式验证”原则的具象化,它强制安全团队以“人”而非“账户”为中心构建安全体系。
  • Key Takeaway 2: 自动化与编排是规模化威胁检测的核心。手动关联无法应对大规模企业环境,利用PowerShell、Graph API和CI/CD管道将关联过程自动化,是确保安全策略及时生效并抵御动态威胁的关键。

现代身份安全的核心在于将多源数据(Entra ID、本地AD、应用日志)整合为连贯、可操作的情报。当安全分析师能够从一个统一的身份视角看到攻击者的每一步脚印时,响应时间将从数小时缩短至数分钟。组织应优先采用基于员工ID或域UPN的关联规则,因为这些方法提供了最强的关联信任级别。同时,将关联功能与Sentinel的UEBA模块和KQL威胁狩猎结合,构成了ITDR的黄金组合。此外,积极主动地使用CTEM原则定期清除陈旧账户,不仅减少了攻击面,也保持了身份清单的整洁和关联规则的精确性。在身份即边界的新时代,防御的成败取决于您能否完整、真实地看到每一个真实用户的完整数字足迹。实施并不断完善自定义账户关联规则,是迈向这一目标最直接、最有效的一步。

Prediction:

自定义账户关联规则的引入,标志着企业身份安全从“检测单点异常”向“理解完整攻击故事”的范式转移。可以预见,在接下来的12-18个月内,大多数主流身份威胁检测厂商都将推出类似功能,并且会进一步利用图算法和机器学习来“自动建议”账户关联关系。同时,攻击者将寻找新的盲点——例如,关联规则的配置错误本身可能成为新的攻击向量(攻击者可能会破坏关联规则以脱钩特权账户)。因此,我们可以预测,用于验证关联规则完整性和有效性的“身份关联健康度评分”将成为安全运营的关键指标。未来的安全态势将不再单纯比拼检测能力,而是比拼将“碎片”整合为“有效情报”的能力。组织必须投资于身份关联的治理和自动化,否则将在碎片化的警报海洋中迷失方向。

▶️ Related Video (98% Match):

🎯Let’s Practice For Free:

IT/Security Reporter URL:

Reported By: Mmihalos Microsoftsecurity – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky