secvalley/m365-security-baseline

GitHub: secvalley/m365-security-baseline

一份面向 Microsoft 365 租户的实用安全加固基线清单,涵盖 Exchange Online、SharePoint、OneDrive、Teams 和 Entra ID 等核心服务的可执行安全控制措施。

Stars: 0 | Forks: 0

# M365 安全基线 [![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/secvalley/m365-security-baseline?style=social)](https://github.com/secvalley/m365-security-baseline/stargazers) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/secvalley/m365-security-baseline/pulls) 一份面向 Microsoft 365 租户的实用、务实的安全加固基线。每一项控制措施都是您当下就可以立即执行的操作。 由 [SecValley](https://secvalley.com) 构建和维护 —— 因为“以后再说”并不是一种安全策略。 ## 如何使用本文档 请逐一阅读每个章节,并勾选您已实施的项。控制措施按严重程度标记: - **Critical (关键)** - 立刻修复。认真的。 - **High (高)** - 应该在一两个冲刺 (Sprint) 内完成。 - **Medium (中)** - 重要,但如果稍微延后处理也不会让您的周末泡汤。 - **Low (低)** - 不错的加固措施。良好的卫生习惯。 并非每项控制措施都适用于每个组织。在“开开关”之前请先阅读“为什么”,尤其是在大型租户中,一个配置错误的传输规则可能会毁掉很多人的一上午。 ## 目录 - [Exchange Online](#exchange-online) - [SharePoint 和 OneDrive](#sharepoint-and-onedrive) - [Microsoft Teams](#microsoft-teams) - [租户全局设置](#tenant-wide-settings) - [进阶学习](#going-further) - [相关项目](#related-projects) - [许可证](#license) ## Exchange Online - [ ] **[Critical]** 为所有邮箱用户启用多因素认证 (MFA) 针对邮箱的凭证撞库仍然是最常见的初始访问途径之一。MFA 应通过 Conditional Access 强制执行,而不是基于用户的 MFA 设置,这样您才能获得准确的报告和策略灵活性。 [Microsoft Docs - Conditional Access and MFA](https://learn.microsoft.com/en-us/entra/identity/authentication/concept-mfa-howitworks) - [ ] **[Critical]** 禁用旧版身份验证协议 POP3、IMAP 和 SMTP AUTH 等协议不支持现代身份验证。攻击者很喜欢它们,因为 MFA 对此不生效。请通过身份验证策略或 Conditional Access 阻止它们。 [Microsoft Docs - Disable Basic Authentication](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online) - [ ] **[Critical]** 配置包含邮箱智能的反钓鱼策略 在 Microsoft Defender for Office 365 中开启邮箱智能、欺骗智能和模拟保护。将操作设置为隔离,而不仅仅是添加安全提示。 [Microsoft Docs - Anti-phishing Policies](https://learn.microsoft.com/en-us/defender-office-365/anti-phishing-policies-about) - [ ] **[High]** 为所有邮箱启用审核日志记录 自 2019 年起,邮箱审核日志记录默认已开启,但请验证其是否被禁用。您需要这些日志来进行事件响应。检查是否正在捕获所有者、委派和管理员操作。 [Microsoft Docs - Mailbox Auditing](https://learn.microsoft.com/en-us/purview/audit-mailboxes) - [ ] **[High]** 为所有接受的域配置 DKIM 和 DMARC 仅有 SPF 是不够的。为每个域启用 DKIM 签名,然后发布一条 DMARC 记录。从 `p=none` 开始并监控,然后在有信心后转移到 `p=quarantine` 或 `p=reject`。 [Microsoft Docs - DKIM](https://learn.microsoft.com/en-us/defender-office-365/email-authentication-dkim-configure) - [ ] **[High]** 阻止自动转发规则到外部域 攻击者在入侵邮箱后,经常设置邮件转发规则来窃取数据。使用邮件流规则阻止外部自动转发,或通过出站反垃圾邮件策略进行设置。 [Microsoft Docs - Outbound Spam Filtering](https://learn.microsoft.com/en-us/defender-office-365/outbound-spam-policies-configure) - [ ] **[High]** 启用安全附件和安全链接 (Defender for Office 365) 安全附件在投递前会在沙箱中引爆文件。安全链接会重写 URL 并在点击时进行检查。两者都应通过覆盖所有收件人的策略在组织范围内启用。 [Microsoft Docs - Safe Attachments](https://learn.microsoft.com/en-us/defender-office-365/safe-attachments-about) - [ ] **[Medium]** 限制可以创建和管理邮件流(传输)规则的人员 传输规则可以静默地重定向、复制或删除邮件。限制 Exchange 管理员角色,并定期审核现有的传输规则以发现任何异常。 [Microsoft Docs - Mail Flow Rules](https://learn.microsoft.com/en-us/exchange/security-and-compliance/mail-flow-rules/mail-flow-rules) - [ ] **[Medium]** 全局禁用 SMTP AUTH 提交,仅在需要的邮箱上启用 SMTP AUTH 是许多租户中仅存的 Basic Auth 途径。在组织层面禁用它,并且仅为确实需要它的特定服务账户(如打印机或 LOB 应用)启用。 [Microsoft Docs - Enable or Disable SMTP AUTH](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission) - [ ] **[Low]** 配置外部发件人标记 在 Outlook 中用视觉指示器标记来自外部发件人的邮件。虽然只是个小细节,但这有助于用户发现钓鱼和模拟攻击,尤其是当显示名称与内部联系人匹配时。 [Microsoft Docs - External Email Tagging](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/remote-domains/remote-domains) ## SharePoint 和 OneDrive - [ ] **[Critical]** 限制外部共享仅限经过身份验证的来宾 许多租户中的默认共享设置过于宽松。至少应禁用匿名的“任何人”链接。要求来宾进行身份验证,并考虑限制仅能与特定域的来宾共享。 [Microsoft Docs - Sharing Settings](https://learn.microsoft.com/en-us/sharepoint/turn-external-sharing-on-or-off) - [ ] **[Critical]** 阻止从非托管设备下载 使用 Conditional Access 应用强制限制,防止用户在个人或非托管设备上从 SharePoint 和 OneDrive 下载文件。如有需要,允许仅浏览器访问。 [Microsoft Docs - Control Access from Unmanaged Devices](https://learn.microsoft.com/en-us/sharepoint/control-access-from-unmanaged-devices) - [ ] **[High]** 为文档和网站启用敏感度标签 敏感度标签允许您根据内容的敏感度对其进行分类和保护。自动或手动将标签应用于文档,并利用它们来强制执行加密、水印和访问控制。 [Microsoft Docs - Sensitivity Labels](https://learn.microsoft.com/en-us/purview/sensitivity-labels) - [ ] **[High]** 将默认共享链接类型设置为“特定人员” 当用户点击“共享”时,默认链接类型至关重要。将其设置为“特定人员”(直接共享),而不是“任何拥有链接的人”或“您组织中的人员”。这样可以减少意外过度共享。 [Microsoft Docs - Default Sharing Link Type](https://learn.microsoft.com/en-us/sharepoint/change-default-sharing-link) - [ ] **[High]** 配置来宾访问的过期时间和权限 来宾访问不应该是无限期的。为来宾账户设置过期策略并定期审查来宾访问。要求来宾定期重新进行身份验证。 [Microsoft Docs - Guest Expiration](https://learn.microsoft.com/en-us/entra/external-id/external-identities-overview) - [ ] **[High]** 在文档库上启用版本控制 版本控制提供了在文件被损坏、覆盖或受到勒索软件攻击时的恢复途径。在所有文档库上启用它,并设置合理的版本限制(通常 50-100 个主要版本即可)。 [Microsoft Docs - Versioning](https://learn.microsoft.com/en-us/sharepoint/governance/versioning-policy) - [ ] **[Medium]** 将网站创建限制为特定用户或组 默认情况下,所有用户都可以创建 SharePoint 网站和 Microsoft 365 组。这会导致蔓延和不受监管的数据存储。将网站创建限制为 IT 或指定用户,并建立请求流程。 [Microsoft Docs - Manage Site Creation](https://learn.microsoft.com/en-us/sharepoint/manage-site-creation) - [ ] **[Medium]** 禁用旧版 SharePoint 身份验证工作流 某些较旧的 SharePoint 身份验证方法会绕过现代身份验证控制。检查并禁用任何自定义身份验证提供程序,并确保所有访问都通过 Entra ID 进行且强制执行 Conditional Access。 [Microsoft Docs - SharePoint Authentication](https://learn.microsoft.com/en-us/sharepoint/security-for-sharepoint-server/plan-for-administrative-and-service-accounts) - [ ] **[Medium]** 审查并限制 SharePoint 仅限应用访问 仅限应用权限(通过 Azure AD 应用注册或 SharePoint Add-ins)可以在没有用户上下文的情况下广泛访问网站内容。审核具有 Sites.Read.All 或 Sites.FullControl.All 权限的应用注册。 [Microsoft Docs - App-Only Access](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azuread) - [ ] **[Low]** 配置 SharePoint 的空闲会话超时 如果用户在查看敏感文档时离开了浏览器,您希望会话能够过期。设置空闲会话注销策略,尤其是针对非托管设备场景。 [Microsoft Docs - Idle Session Timeout](https://learn.microsoft.com/en-us/sharepoint/sign-out-inactive-users) ## Microsoft Teams - [ ] **[Critical]** 限制外部访问仅限于批准的域 默认情况下,Teams 允许与所有外部租户进行联盟。将其锁定为您实际合作的合作伙伴域,或者完全禁用它并改用来宾访问。 [Microsoft Docs - External Access](https://learn.microsoft.com/en-us/microsoftteams/manage-external-access) - [ ] **[Critical]** 控制 Teams 中的来宾访问权限 如果启用来宾访问,请确保来宾无法在无人监管的情况下创建或删除频道、添加或删除应用或共享文件。在 Teams 管理中心审查来宾权限并应用最小权限原则。 [Microsoft Docs - Guest Access](https://learn.microsoft.com/en-us/microsoftteams/guest-access) - [ ] **[High]** 限制用户可以安装的应用 Teams 应用商店默认是开放的。用户可以安装可能访问组织数据的第三方应用。默认阻止所有第三方应用,并仅通过审批流程允许经过审查的应用。 [Microsoft Docs - App Permission Policies](https://learn.microsoft.com/en-us/microsoftteams/app-permissions) - [ ] **[High]** 配置会议策略以防止匿名加入 匿名用户加入会议存在数据泄露风险。为会议禁用匿名加入,或至少要求在大厅获得组织者批准。同时考虑禁用拨号绕过大厅功能。 [Microsoft Docs - Meeting Policies](https://learn.microsoft.com/en-us/microsoftteams/meeting-policies-participants-and-guests) - [ ] **[High]** 如果不需要,禁用频道的电子邮件集成 每个 Teams 频道都可以有一个用于接收入站邮件的电子邮件地址。如果没人使用此功能,请禁用它。这是另一个可能绕过 Exchange 传输规则的钓鱼或垃圾内容入口点。 [Microsoft Docs - Email Integration](https://learn.microsoft.com/en-us/microsoftteams/enable-features-office-365) - [ ] **[High]** 审查并限制谁可以创建团队和私有频道 不受控制的团队创建会导致数据蔓延和影子 IT。使用 Microsoft 365 组创建限制来限制谁可以启动新团队,并为私有频道请求建立流程。 [Microsoft Docs - Team Creation](https://learn.microsoft.com/en-us/microsoftteams/manage-teams-in-modern-portal) - [ ] **[Medium]** 强制执行会议录像存储和访问控制 会议录像存储在 OneDrive 或 SharePoint 中。确保存储位置受到管理,录像继承网站权限,并且应用保留策略,这样录像就不会永久保存。 [Microsoft Docs - Meeting Recording](https://learn.microsoft.com/en-us/microsoftteams/meeting-recording) - [ ] **[Medium]** 为 Teams 聊天配置数据防丢失策略 DLP 策略可以检测并阻止在 Teams 聊天和频道中共享敏感数据(信用卡号、个人 ID、健康记录)。扩展现有的 DLP 策略以覆盖 Teams。 [Microsoft Docs - DLP for Teams](https://learn.microsoft.com/en-us/purview/dlp-microsoft-teams) - [ ] **[Medium]** 将 Teams 聊天中的文件共享限制为受管域 默认情况下,用户可以在 1:1 和群组聊天中共享文件。如果结合外部访问,文件可能会落入他人之手。审查您的文件共享策略并在需要时进行限制。 [Microsoft Docs - Messaging Policies](https://learn.microsoft.com/en-us/microsoftteams/messaging-policies-in-teams) - [ ] **[Low]** 禁用第三方云存储集成 Teams 可以与 Dropbox、Google Drive、Box 和其他云存储提供商集成。如果您的组织标准化使用 OneDrive/SharePoint,请禁用其他提供商以防止数据泄露到非托管存储中。 [Microsoft Docs - Cloud Storage Settings](https://learn.microsoft.com/en-us/microsoftteams/enable-features-office-365) ## 租户全局设置 - [ ] **[Critical]** 启用 Security Defaults 或实施 Conditional Access 基线 如果您没有 Entra ID P1/P2,至少启用 Security Defaults。如果有,请构建一个 Conditional Access 基线,强制执行 MFA、阻止旧版身份验证、要求敏感应用使用合规设备,并定义命名位置。 [Microsoft Docs - Security Defaults](https://learn.microsoft.com/en-us/entra/fundamentals/security-defaults) - [ ] **[Critical]** 启用统一审核日志并将保留期设为最大值 统一审核日志是 M365 中最重要的取证数据源。验证其已启用,增加保留期(默认为 180 天,E5 可达 365 天),并考虑将日志导出到 SIEM 以进行更长期的保留。 [Microsoft Docs - Audit Log](https://learn.microsoft.com/en-us/purview/audit-solutions-overview) - [ ] **[Critical]** 限制全局管理员数量并强制执行 PIM 您应该拥有不超过 2-4 个全局管理员,理想情况下他们应使用 Privileged Identity Management (PIM) 进行即时激活。紧急访问账户是个例外,但应密切监控。 [Microsoft Docs - PIM](https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-configure) - [ ] **[High]** 禁用用户对第三方应用的同意 默认情况下,用户可以授予第三方应用访问组织数据的权限。这是一个主要的 OAuth 钓鱼途径。禁用用户同意并要求对所有应用注册进行管理员审批。 [Microsoft Docs - User Consent](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/configure-user-consent) - [ ] **[High]** 启用 Microsoft Secure Score 监控 Secure Score 为您提供可衡量的基线和改进路线图。定期审查,将改进行动分配给负责人,并随时间跟踪进度。它并不完美,但这是一个坚实的起点。 [Microsoft Docs - Secure Score](https://learn.microsoft.com/en-us/defender/microsoft-365-defender/microsoft-secure-score) - [ ] **[High]** 为高风险登录和风险用户配置警报 在 Microsoft 365 Defender 门户中为不可能的行程、来自匿名 IP 地址的登录、泄露的凭证和其他风险检测设置警报策略。不要只是启用它们,要确保确实有人在监控。 [ Docs - Risk Detections](https://learn.microsoft.com/en-us/entra/id-protection/concept-identity-protection-risks) - [ ] **[High]** 强制执行命名位置并阻止来自高风险国家的登录 如果您的组织仅在特定地理区域运营,就没有理由允许来自各地的登录。定义命名位置并创建 Conditional Access 策略,以阻止意外区域或要求额外验证。 [Microsoft Docs - Named Locations](https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-assignment-network) - [ ] **[Medium]** 配置数据保留和删除策略 为 Exchange、SharePoint、OneDrive 和 Teams 定义保留策略。数据不应永久存在,您需要明确的保留(为了合规)和删除(为了最小化风险)策略。 [Microsoft Docs - Retention Policies](https://learn.microsoft.com/en-us/purview/retention) - [ ] **[Medium]** 每季度审查和清理过时的来宾账户 来宾账户会随着时间的推移累积,且经常被遗忘。在 Entra ID Governance 中设置定期访问审查,或者至少每季度运行一次 PowerShell 脚本来查找并删除近期未登录的来宾。 [Microsoft Docs - Access Reviews](https://learn.microsoft.com/en-us/entra/id-governance/access-reviews-overview) - [ ] **[Medium]** 启用客户密码箱 当 Microsoft 支持工程师在服务请求期间需要访问您的租户数据时,Customer Lockbox 为您提供批准控制权。这是一个 E5 功能,但如果您有许可证,请将其开启。 [Microsoft Docs - Customer Lockbox](https://learn.microsoft.com/en-us/purview/customer-lockbox-requests) - [ ] **[Low]** 禁用自助式许可证分配和试用 用户默认可以注册试用许可证和进行自助购买。这会产生 IT 部门不知道的非托管工作负载和数据存储。通过 PowerShell 禁用自助购买。 [Microsoft Docs - Self-Service Purchase](https://learn.microsoft.com/en-us/microsoft-365/commerce/subscriptions/manage-self-service-purchases-admins) ## 进阶学习 本基线涵盖了基础知识。如需包含 400 多项控制、攻击路径分析和合规性映射的持续、自动化 M365 安全评估,请查看 [SecValley CSPM](https://secvalley.com/cspm.html)。 ## 相关项目 - [cloud-security-checklist](https://github.com/secvalley/cloud-security-checklist) - 涵盖 AWS、Azure 和 GCP 的广泛云安全清单 - [entra-id-security-checklist](https://github.com/secvalley/entra-id-security-checklist) - 专门的 Entra ID (Azure AD) 加固指南 ## 许可证 本项目基于 MIT 许可证授权。详情请参见 [LICENSE](LICENSE)。 由 [SecValley](https://secvalley.com) 维护
标签:Azure AD, Entra ID, Exchange Online, GitHub Advanced Security, JSONLines, M365, MFA, Microsoft 365, OneDrive, ProjectDiscovery, SharePoint, Streamlit, Teams, 人工智能安全, 企业安全, 合规性, 多因素认证, 安全加固, 安全基线, 安全最佳实践, 安全检查清单, 微软安全, 教学环境, 数据保护, 条件访问策略, 网络安全, 网络资产管理, 访问控制, 身份安全, 防御加固, 防钓鱼, 隐私保护, 零信任