secvalley/entra-id-security-checklist

GitHub: secvalley/entra-id-security-checklist

一份基于实战经验的 Microsoft Entra ID 安全加固清单,涵盖身份验证、条件访问、PIM、应用安全和日志监控等核心配置项。

Stars: 0 | Forks: 0

[![MIT 许可证](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/secvalley/entra-id-security-checklist?style=social)](https://github.com/secvalley/entra-id-security-checklist/stargazers) [![欢迎 PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/secvalley/entra-id-security-checklist/pulls) # Entra ID 安全检查清单 一份针对 Microsoft Entra ID(原 Azure Active Directory)的实用、不啰嗦的安全检查清单。基于真实世界的租户加固工作、事件响应教训以及处理过太多配置错误的条件访问策略的经验构建而成。 无论您是在搭建新租户还是审计现有租户,这份清单涵盖了真正重要的控制措施。 **主页:** [secvalley.com](https://secvalley.com) ## 目录 - [如何使用本检查清单](#how-to-use-this-checklist) - [身份验证与 MFA](#authentication--mfa) - [条件访问](#conditional-access) - [Privileged Identity Management (PIM)](#privileged-identity-management-pim) - [应用程序安全](#application-security) - [访客与外部访问](#guest--external-access) - [监控与日志](#monitoring--logging) - [进阶学习](#going-further) - [相关项目](#related-projects) - [贡献](#contributing) - [许可证](#license) ## 如何使用本检查清单 每个控制项遵循以下格式: - **严重性** 表示缺少该控制项时的业务影响:`Critical`(严重)、`High`(高)、`Medium`(中)或 `Low`(低)。 - 根据您的租户检查每一项。如果它不适用于您的环境,请将其标记为 N/A 并继续。 - 链接指向相关的 Microsoft 文档,以便您深入了解。 这并不是要列出 Entra 门户中每个开关的详尽清单。它侧重于那些在实践中一旦设置错误就会造成最大破坏的设置。 ## 身份验证与 MFA - [ ] **[Critical]** 对所有管理员强制实施抗网络钓鱼的 MFA(FIDO2、Windows Hello for Business 或基于证书的身份验证)。短信和语音通话等传统 MFA 方法很容易通过 SIM 交换和社会工程学被绕过。不要依赖它们来保护特权账户。 - [抗网络钓鱼的 MFA 方法](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-strengths) - [ ] **[Critical]** 要求所有用户使用 MFA,而不仅仅是管理员。攻击者通常会先入侵普通用户账户,然后进行提权。一个只有管理员启用了 MFA 的租户就是一个等待发生安全事故的租户。 - [启用合并的 MFA 注册](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-registration-mfa-sspr-combined) - [ ] **[Critical]** 阻止传统身份验证协议(IMAP、POP3、SMTP AUTH、使用基本认证的 ActiveSync)。这些协议根本不支持 MFA,是密码喷洒攻击中最常见的入口点。如果您在这份清单上什么都不做,也要做这一项。 - [阻止传统身份验证](https://learn.microsoft.com/en-us/entra/identity/conditional-access/block-legacy-authentication) - [ ] **[High]** 对整个租户禁用短信和语音通话作为 MFA 方法,或者至少对所有管理员角色禁用。将用户迁移到 Microsoft Authenticator 应用、通行密钥或硬件令牌。 - [身份验证方法策略](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage) - [ ] **[High]** 将 Authenticator 应用配置为显示号码匹配和附加上下文(应用程序名称、地理位置)。这能显著减少“MFA 疲劳”攻击,即用户盲目批准推送通知。 - [MFA 中的号码匹配](https://learn.microsoft.com/en-us/entra/identity/authentication/how-to-mfa-number-match) - [ ] **[High]** 启用带有适当验证方法的自助式密码重置 (SSPR),并将其与 MFA 注册结合。确保 SSPR 不会使用比您的 MFA 策略要求更弱的方法。 - [SSPR 部署](https://learn.microsoft.com/en-us/entra/identity/authentication/howto-sspr-deployment) - [ ] **[Medium]** 设置密码保护策略,禁止常见密码,并包含一个自定义禁止密码列表,列入您的组织名称、产品名称和其他易于猜测的词汇。 - [Entra ID 密码保护](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-password-ban-bad) - [ ] **[Medium]** 审查并限制租户中可用的身份验证方法。禁用任何您未主动使用的方法。更少的选择意味着更小的攻击面。 - [管理身份验证方法](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-authentication-methods-manage) ## 条件访问 - [ ] **[Critical]** 创建一个“紧急通道”应急访问账户,并将其从所有条件访问策略中排除。将凭据安全地离线存储。定期测试该账户以确保其仍然有效。这是当您的 CA 策略出现灾难性错误时您要使用的账户。 - [应急访问账户](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/security-emergency-access) - [ ] **[Critical]** 部署要求所有用户、所有云应用、在所有平台上使用 MFA 的基线策略。从这里开始,然后在此基础上叠加额外的策略。不要一开始就试图构建拼凑起来的狭窄策略。 - [常见 CA 策略](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-policy-all-users-mfa) - [ ] **[Critical]** 阻止来自您组织未运营的国家和地区的登录。命名位置使这一点变得简单。这不会阻止使用 VPN 的坚定攻击者,但它能切断绝大多数喷洒流量。 - [基于位置的条件访问](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-policy-location) - [ ] **[High]** 要求使用合规或混合加入的设备才能访问敏感应用程序。令牌窃取是一个日益严重的问题,而基于设备的控制是当今为数不多的有效缓解措施之一。 - [要求使用合规设备](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-policy-compliant-device) - [ ] **[High]** 使用 Entra ID Protection 配置登录风险和用户风险策略。将中高风险登录设置为要求 MFA 或阻止访问。将高风险用户设置为要求更改密码。 - [基于风险的条件访问](https://learn.microsoft.com/en-us/entra/id-protection/howto-identity-protection-configure-risk-policies) - [ ] **[High]** 在强制执行新策略之前,请先使用“仅报告”模式。根据真实登录数据审查“What If”工具的结果。配置错误的 CA 策略可能在几秒钟内锁定您的整个组织。 - [CA 仅报告模式](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-report-only) - [ ] **[Medium]** 对敏感操作要求重新身份验证(登录频率控制)。对于高权限管理门户,考虑设置最长 1 小时的会话。对于普通用户,需平衡安全性与可用性。 - [登录频率](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-session-lifetime) - [ ] **[Medium]** 阻止或限制来自非托管设备的访问,以防止通过个人计算机进行数据渗出。使用应用强制限制或条件访问应用控制来进行会话级别的控制。 - [应用强制限制](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-session#application-enforced-restrictions) ## Privileged Identity Management (PIM) - [ ] **[Critical]** 为所有 Entra ID 目录角色启用 PIM。任何人都不应作为永久分配持有 Global Administrator、Exchange Administrator 或任何其他特权角色。如果一个角色被永久分配,它就永久处于暴露风险中。 - [部署 PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-deployment-plan) - [ ] **[Critical]** 将 Global Administrator 的数量限制为不超过五个(Microsoft 建议少于五个)。审计当前持有此角色的人员。在我们审查的大多数租户中,这个数字都比任何人预期的要高。 - [Entra 角色最佳实践](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/best-practices) - [ ] **[High]** 要求每次 PIM 角色激活都必须进行 MFA 和理由说明。为具有严重影响的角色(如 Global Administrator、Privileged Role Administrator 和 Security Administrator)配置审批工作流。 - [配置 PIM 角色设置](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) - [ ] **[High]** 将激活持续时间设置为最短的实际时间窗口。对于大多数角色,4 小时是一个合理的默认值。对于 Global Administrator,1 小时更好。不要仅仅为了方便就设置 24 小时的激活窗口。 - [PIM 角色设置](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-change-default-settings) - [ ] **[High]** 为所有特权角色分配配置定期访问审查。季度审查是一个好的起点。过期的符合条件的分配几乎与永久分配一样危险,因为没有人会关注它们。 - [PIM 访问审查](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-create-roles-and-resource-roles-review) - [ ] **[High]** 除了 Entra 目录角色外,还要为 Azure 资源角色(Owner、Contributor、User Access Administrator)启用 PIM。Azure 控制平面与身份平面一样敏感。 - [用于 Azure 资源的 PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-resource-roles-assign-roles) - [ ] **[Medium]** 设置 PIM 警报并定期审查。关注关于在预期时间之外激活角色、从未使用的角色(将其移除)以及在 PIM 之外添加的永久分配的警报。 - [PIM 安全警报](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-configure-security-alerts) - [ ] **[Medium]** 使用 PIM for Groups 来管理授予敏感访问权限的安全组的成员资格。这将即时访问扩展到目录角色之外的任何由组成员资格控制的权限。 - [PIM for Groups](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/concept-pim-for-groups) ## 应用程序安全 - [ ] **[Critical]** 限制谁可以在 Entra ID 中注册应用程序。默认情况下,所有用户都可以注册应用并授予它们权限。这几乎绝不是您想要的。将“用户可以注册应用程序”设置为“否”,并通过受控流程管理应用注册。 - [应用注册权限](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/delegate-app-roles#restrict-who-can-create-applications) - [ ] **[Critical]** 审查并最小化具有高权限 Microsoft Graph 权限(Directory.ReadWrite.All、Mail.ReadWrite 等)的应用程序。审计租户中经管理员同意的权限。权限过高的应用程序是攻击者最喜欢的持久化机制。 - [审查应用权限](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/manage-application-permissions) - [ ] **[High]** 配置管理员同意工作流,以便用户可以通过受控流程请求权限,而不是完全被阻止。如果没有这个,用户倾向于寻找比原始风险更糟糕的变通方法。 - [管理员同意工作流](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-admin-consent-workflow) - [ ] **[High]** 限制用户仅能同意经过验证的发布者,或完全禁用用户同意。同意钓鱼(非法授权授予)是一种日益常见的攻击载体,它完全绕过了 MFA。 - [配置用户同意](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-user-consent) - [ ] **[High]** 按照既定计划轮换应用程序凭据(客户端密钥和证书)。将过期时间设置为不超过 12 个月。跟踪过期日期,以免在生产集成在凌晨 2 点中断时手忙脚乱。 - [应用凭据管理](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/certificate-management) - [ ] **[High]** 尽可能使用托管标识代替带有密钥的服务主体。托管标识消除了为 Azure 托管的工作负载管理凭据的需要。 - [托管标识概述](https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/overview) - [ ] **[Medium]** 审计并移除过期的应用注册和企业应用程序。具有授予权限的未使用应用程序是不必要的风险。如果一个应用在 90 天内没有任何登录,请调查是否仍需要它。 - [审查非活动应用](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/clean-up-unmanaged-accounts) - [ ] **[Medium]** 确保多租户应用程序是经过有意配置的。单租户是内部应用程序的正确默认设置。一个意外设置为多租户的应用程序可以接受来自世界上任何 Entra 租户的登录。 - [单租户与多租户应用](https://learn.microsoft.com/en-us/entra/identity-platform/single-and-multi-tenant-apps) ## 访客与外部访问 - [ ] **[Critical]** 审查跨租户访问设置,并明确配置入站/出站信任策略。默认设置是宽松的。定义您信任哪些外部组织以及他们的用户获得何种级别的访问权限。 - [跨租户访问设置](https://learn.microsoft.com/en-us/entra/external-id/cross-tenant-access-overview) - [ ] **[High]** 限制谁可以邀请访客用户。默认情况下,包括其他访客在内的所有用户都可以发送邀请。将邀请权限限制为特定角色或组。 - [访客邀请设置](https://learn.microsoft.com/en-us/entra/external-id/external-collaboration-settings-configure) - [ ] **[High]** 配置访客访问限制以限制访客可以查看的目录信息。默认情况下,访客可以枚举用户、组和其他目录对象。将访客权限限制为其自身目录对象的属性。 - [访客用户权限](https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions#member-and-guest-users) - [ ] **[High]** 为所有访客用户设置定期访问审查。访客账户往往会随着时间的推移而累积,且很少被清理。季度审查并自动移除未审查的账户是一种合理的方法。 - [访客访问审查](https://learn.microsoft.com/en-us/entra/id-governance/create-access-review) - [ ] **[High]** 对访客和外部用户应用条件访问策略。访客至少应被要求使用 MFA。考虑要求接受使用条款并阻止来自风险位置的访问。 - [针对外部用户的 CA](https://learn.microsoft.com/en-us/entra/external-id/authentication-conditional-access) - [ ] **[Medium]** 将权利管理与访问包结合使用,以进行结构化的外部协作。这为您提供了定义的工作流、自动过期和审计跟踪,而不是到处都是临时的访客邀请。 - [权利管理](https://learn.microsoft.com/en-us/entra/id-governance/entitlement-management-overview) - [ ] **[Medium]** 限制可以作为访客邀请的域。如果您只与少数合作伙伴组织协作,请使用允许列表。如果合作伙伴太多无法使用允许列表,至少维护一个已知消费者电子邮件域的阻止列表。 - [允许或阻止域](https://learn.microsoft.com/en-us/entra/external-id/allow-deny-list) - [ ] **[Low]** 为需要紧密集成的亲密合作伙伴组织配置 B2B direct connect。与传统的访客账户相比,这提供了更无缝的体验,同时仍保持租户边界。 - [B2B direct connect](https://learn.microsoft.com/en-us/entra/external-id/b2b-direct-connect-overview) ## 监控与日志 - [ ] **[Critical]** 将 Entra ID 登录日志审计日志流式传输到 SIEM 或 Log Analytics 工作区。Entra 中内置的日志保留期有限(免费租户为 7 天,P1/P2 为 30 天)。如果攻击者在 45 天前进入您的租户,您需要知道这件事。 - [将日志与 Azure Monitor 集成](https://learn.microsoft.com/en-us/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs) - [ ] **[Critical]** 在 Microsoft Purview 中启用统一审核日志,并验证它是否确实在收集事件。令人惊讶的是,这种情况经常被关闭或仅部分配置。 - [审核日志活动](https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities) - [ ] **[High]** 为高影响事件创建警报:新的 Global Administrator 分配、条件访问策略更改、新的应用程序同意授予、批量用户修改以及身份验证方法策略的更改。 - [Entra ID 监控](https://learn.microsoft.com/en-us/entra/identity/monitoring-health/overview-monitoring-health) - [ ] **[High]** 主动监控 Entra ID Protection 的风险检测。不要只是配置风险策略然后就不管了。至少每周查看一次风险用户和风险登录报告。调查并修复或消除每个检测。 - [调查风险](https://learn.microsoft.com/en-us/entra/id-protection/howto-identity-protection-investigate-risk) - [ ] **[High]** 定期启用并查看 Entra ID 建议边栏选项卡。Microsoft 根据您的实际配置在此处提供特定于租户的安全建议。它是免费的,并且经常发现检查清单遗漏的内容。 - [Entra ID 建议](https://learn.microsoft.com/en-us/entra/identity/monitoring-health/overview-recommendations) - [ ] **[High]** 设置诊断设置以捕获非交互式登录日志、服务主体登录日志和托管标识登录日志,除了交互式登录日志。攻击者经常使用默认登录日志视图中不显示的服务主体和非交互式流。 - [登录日志类别](https://learn.microsoft.com/en-us/entra/identity/monitoring-health/concept-sign-ins) - [ ] **[Medium]** 实施一个工作簿或仪表板来跟踪条件访问策略覆盖范围。识别未受任何策略覆盖的用户和应用程序。CA 覆盖范围的缺口是攻击者进入的地方。 - [条件访问见解工作簿](https://learn.microsoft.com/en-us/entra/identity/conditional-access/howto-conditional-access-insights-reporting) - [ ] **[Medium]** 查看应用程序凭据活动报告,以识别即将过期的凭据、从未使用过的凭据以及有效期过长的凭据。 - [应用凭据活动](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/howto-get-list-of-all-application-credentials) ## 进阶学习 本检查清单是一个时间点评估。身份配置会不断漂移。要进行带有自动检查、条件访问缺口分析和 PIM 评估的持续 Entra ID 安全监控,请查看 [SecValley CSPM](https://secvalley.com/cspm.html)。 ## 相关项目 - [cloud-security-checklist](https://github.com/secvalley/cloud-security-checklist) - 涵盖 AWS、Azure 和 GCP 的广泛云安全检查清单 - [m365-security-baseline](https://github.com/secvalley/m365-security-baseline) - Microsoft 365 安全基线配置指南 ## 贡献 欢迎贡献。如果您发现应该在此列表中的控制项,或者 Microsoft 文档链接已失效,请提交 PR 或提出问题。请保持条目实用并基于真实世界的配置,而不是理论上的风险。 ## 许可证 本项目根据 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。 由 [SecValley](https://secvalley.com) 维护
标签:Azure AD, DNS解析, FIDO2, IAM, MFA, Microsoft 365, Microsoft Entra ID, PE 加载器, PIM, RBAC, Tenant Hardening, Windows Server, 多因素认证, 安全基线, 安全清单, 应用注册, 开源项目, 教学环境, 条件访问策略, 来宾访问, 特权身份管理, 身份与访问管理, 身份安全, 防御加固, 零信任架构