虚拟网络的 Azure 安全基线

此安全基线将 Azure 安全基准版本 1.0 中的指南应用于 Azure 虚拟网络。 Azure 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按“安全控制”分组,这些控制根据适用于 Azure 虚拟网络的 Azure 安全基准和相关指南进行定义。

可以使用 Microsoft Defender for Cloud 监视此安全基线及其建议。 Azure Policy定义将在 Microsoft Defender for Cloud 仪表板的“法规符合性”部分列出。

当某个部分具有相关的Azure Policy定义时,它们将列在此基线中,以帮助衡量 Azure 安全基准控件和建议的符合性。 某些建议可能需要付费的 Microsoft Defender 计划才能启用某些安全方案。

注意

排除了不适用于虚拟网络或 Microsoft 为其责任方的控件。 若要查看虚拟网络如何完全映射到 Azure 安全基准,请参阅 完整的虚拟网络安全基线映射文件

网络安全

有关详细信息,请参阅 Azure 安全基线: 网络安全性

1.2:监视并记录虚拟网络、子网和网络接口的配置与流量

指导:使用 Microsoft Defender for Cloud 并遵循网络保护建议来帮助保护 Azure 中的网络资源。

将网络安全组流日志发送到 Log Analytics 工作区,并使用流量分析提供有关 Azure 云中流量流的见解。 流量分析提供可视化网络活动、识别热点、识别安全威胁、了解流量流模式,以及查明网络不当配置的功能。

使用 Azure Monitor 日志可以深入了解环境。 工作区应该用于整理和分析数据,并可与 Application Insights 和 Microsoft Defender for Cloud 等其他 Azure 服务集成。

选择要发送到 Azure 存储帐户或事件中心的资源日志。 也可以使用不同的平台来分析日志。

责任:客户

Microsoft Defender for Cloud 监视:Azure 安全基准是 Microsoft Defender for Cloud 的默认策略计划,也是构筑各项 Microsoft Defender for Cloud 建议的基础。 Microsoft Defender for Cloud 会自动启用与此控制相关的 Azure Policy 定义。 与此控制相关的警报可能需要相关服务的 Microsoft Defender 计划。

Azure Policy 内置定义 - Microsoft.Network:

名称
(Azure 门户)
说明 效果 版本
(GitHub)
应启用网络观察程序 网络观察程序是一个区域性服务,可用于在网络方案级别监视和诊断 Azure 内部以及传入和传出 Azure 的流量的状态。 使用方案级别监视可以诊断端到端网络级别视图的问题。 需要在存在虚拟网络的每个区域中创建一个网络观察程序资源组。 如果网络观察程序资源组在特定区域中不可用,则会启用警报。 AuditIfNotExists、Disabled 3.0.0

1.4:拒绝与已知恶意的 IP 地址进行通信

指导:在 Azure 虚拟网络上启用分布式拒绝服务 (DDoS) 标准保护,以防范 DDoS 攻击。

在组织的每个网络边界上部署 Azure 防火墙,启用基于威胁情报的筛选并将其配置为针对恶意网络流量执行“发出警报并拒绝”操作。

使用 Microsoft Defender for Cloud 的威胁防护功能来检测与已知恶意 IP 地址的通信。

应用针对网络安全组配置的 Microsoft Defender for Cloud 自适应网络强化建议,其中这些配置会根据实际流量和威胁情报限制端口和源 IP。

责任:客户

Microsoft Defender for Cloud 监视:Azure 安全基准是 Microsoft Defender for Cloud 的默认策略计划,也是构筑各项 Microsoft Defender for Cloud 建议的基础。 Microsoft Defender for Cloud 会自动启用与此控制相关的 Azure Policy 定义。 与此控制相关的警报可能需要相关服务的 Microsoft Defender 计划。

Azure Policy 内置定义 - Microsoft.Network:

名称
(Azure 门户)
说明 效果 版本
(GitHub)
所有 Internet 流量都应通过所部署的 Azure 防火墙进行路由 Microsoft Defender for Cloud 已确认,你的某些子网未使用下一代防火墙进行保护。 通过使用 Azure 防火墙或受支持的下一代防火墙限制对子网的访问,保护子网免受潜在威胁的危害 AuditIfNotExists、Disabled 3.0.0-preview
应启用 Azure DDoS 防护标准 应为属于应用程序网关且具有公共 IP 子网的所有虚拟网络启用 DDoS 保护标准。 AuditIfNotExists、Disabled 3.0.0

1.5:记录网络数据包

指导:除了常用的数据包捕获工具,还可以使用 VPN 网关的数据包捕获来记录网络数据包。

还可以通过 Azure 市场产品中提供的数据包代理合作伙伴解决方案,查看提供终端接入点 (TAP) 或网络可见性功能的基于代理或 NVA 的解决方案。

责任:客户

Microsoft Defender for Cloud 监视:Azure 安全基准是 Microsoft Defender for Cloud 的默认策略计划,也是构筑各项 Microsoft Defender for Cloud 建议的基础。 Microsoft Defender for Cloud 会自动启用与此控制相关的 Azure Policy 定义。 与此控制相关的警报可能需要相关服务的 Microsoft Defender 计划。

Azure Policy 内置定义 - Microsoft.Network:

名称
(Azure 门户)
说明 效果 版本
(GitHub)
应启用网络观察程序 网络观察程序是一个区域性服务,可用于在网络方案级别监视和诊断 Azure 内部以及传入和传出 Azure 的流量的状态。 使用方案级别监视可以诊断端到端网络级别视图的问题。 需要在存在虚拟网络的每个区域中创建一个网络观察程序资源组。 如果网络观察程序资源组在特定区域中不可用,则会启用警报。 AuditIfNotExists、Disabled 3.0.0

1.6:部署基于网络的入侵检测/入侵防护系统 (IDS/IPS)

指导:使用部署在启用威胁情报的虚拟网络上的 Azure 防火墙。 使用基于 Azure 防火墙威胁情报的筛选功能,发出警报或拒绝往返于已知恶意 IP 地址和域的流量。 IP 地址和域源自 Microsoft 威胁智能源。

也可以从 Azure 市场中选择一种产品/服务,该产品/服务应支持包含有效负载检查功能的 IDS/IPS 功能。

在组织的每个网络边界上部署所选的防火墙解决方案,以检测和/或拒绝恶意流量。

责任:客户

1.8:最大程度地降低网络安全规则的复杂性和管理开销

指导:在网络安全组或 Azure 防火墙中使用虚拟网络服务标记来定义网络访问控制。 创建安全规则时,可以使用服务标记代替特定 IP 地址。 在规则的相应源或目标字段中指定服务标记名称(例如 ApiManagement),允许或拒绝相应服务的流量。 Microsoft 会管理服务标记包含的地址前缀,并会在地址发生更改时自动更新服务标记。

使用应用程序安全组来帮助简化复杂的安全配置。 通过应用程序安全组,可将网络安全配置为应用程序结构的自然扩展。 这使你能够对虚拟机进行分组,并基于这些组定义网络安全策略。

责任:客户

1.9:维护网络设备的标准安全配置

指导:使用 Azure Policy 为网络资源定义和实现标准安全配置,并评审内置网络策略定义以供实现。

请参阅 Microsoft Defender for Cloud 的默认策略,其中提供了与虚拟网络相关的可用安全建议。

使用 Azure 蓝图,通过在单个蓝图定义中打包关键环境项目(例如 Azure 资源管理器模板、基于角色的访问控制 (Azure RBAC) 分配和策略),来简化大规模的 Azure 部署。 可将 Azure 蓝图应用到新的订阅,通过版本控制来微调控制措施和管理。

责任:客户

1.10:阐述流量配置规则

指导:将标记用于网络安全组以及其他与网络安全和流量流有关的资源。 使用各个网络安全组规则的“说明”字段为允许流量传入/传出网络的任何规则指定业务需要、持续时间以及其他信息。 使用标记相关的任何内置 Azure Policy 定义(例如“需要标记及其值”)来确保使用标记创建所有资源,并在有现有资源不带标记时发出通知。

选择 Azure PowerShell 或 Azure CLI,基于资源的标记查找资源或对其执行操作。

责任:客户

1.11:使用自动化工具来监视网络资源配置和检测更改

指导:使用 Azure 活动日志监视网络资源配置,并检测虚拟网络的更改。 在 Azure Monitor 中创建当关键资源发生更改时触发的警报。

责任:客户

日志记录和监视

有关详细信息,请参阅 Azure 安全基线: 日志记录和监视

2.2:配置中心安全日志管理

指导:启用 Azure Monitor 以访问审核和活动日志,其中包括事件源、日期、用户、时间戳、源地址、目标地址和其他有用元素。

在 Azure Monitor 中,使用 Log Analytics 工作区查询和执行分析,并使用 Azure 存储帐户进行长期/存档存储。 或者,可以启用 Microsoft Sentinel 或第三方 SIEM,并在其中加入数据。

责任:客户

2.3:为 Azure 资源启用审核日志记录

指导:使 Azure Monitor 可以访问审核和活动日志,其中包括事件源、日期、用户、时间戳、源地址、目标地址和其他有用元素。

责任:客户

2.5:配置安全日志存储保留期

指南:在 Azure Monitor 中,根据组织的合规性规则设置 Log Analytics 工作区保持期。 使用 Azure 存储帐户进行安全日志存储保留期的长期/存档存储。

责任:客户

2.6:监视和查看日志

指导:分析和监视日志中的异常行为,并定期查看结果。 使用 Azure Monitor 的 Log Analytics 工作区来查询和执行分析,并使用 Azure 存储帐户进行长期/存档存储。

或者,可以启用 Microsoft Sentinel 或第三方 SIEM,并在其中加入数据。

责任:客户

2.7:针对异常活动启用警报

指导:使用 Microsoft Defender for Cloud 和 Log Analytics 工作区监视安全日志和事件中发现的异常活动并发出警报。

或者,可以启用 Microsoft Sentinel 或第三方 SIEM 并在其中加入数据,以便系统发出警报。

责任:客户

2.9:启用 DNS 查询日志记录

指导:根据你的组织需要,从 Azure 市场为 DNS 日志记录解决方案实现第三方解决方案。

责任:客户

标识和访问控制

有关详细信息,请参阅 Azure 安全基线: 标识和访问控制

3.1:维护管理帐户的清单

指导:使用可显式分配并可查询的 Azure Active Directory (Azure AD) 内置管理员角色。

使用 Azure AD PowerShell 模块执行即席查询,以发现属于管理组的成员的帐户。

责任:客户

3.3:使用专用管理帐户

指南:围绕专用管理帐户的使用创建标准操作程序。 使用 Microsoft Defender for Cloud 的标识和访问管理功能监视管理帐户的数量。

通过使用针对 Microsoft 服务的 Azure Active Directory (Azure AD) Privileged Identity Management 特权角色和 Azure 资源管理器来启用实时/足够访问权限。

责任:客户

3.4:使用 Azure Active Directory 单一登录 (SSO)

指导:使用 Azure Active Directory (Azure AD) SSO,而不是为每个服务配置单个独立凭据。 使用 Microsoft Defender for Cloud 标识和访问管理建议。

责任:客户

3.5:对所有基于 Azure Active Directory 的访问使用多重身份验证

指导:启用 Azure Active Directory (Azure AD) 多重身份验证,并遵循 Microsoft Defender for Cloud 标识和访问管理的建议。

责任:客户

3.6:使用由 Azure 管理的安全工作站执行管理任务

指导:使用配置了多重身份验证的特权访问工作站 (PAW) 来登录并访问 Azure 网络资源。

责任:客户

3.7:记录来自管理帐户的可疑活动并对其发出警报

指导:使用 Azure Active Directory (Azure AD) 风险检测查看有关风险用户行为的警报和报告。

将 Microsoft Defender for Cloud 风险检测警报引入 Azure Monitor,并使用操作组配置自定义警报/通知。

责任:客户

3.8:仅从批准的位置管理 Azure 资源

指导:使用条件访问命名位置,仅允许从 IP 地址范围或国家/地区的特定逻辑分组进行访问。

责任:客户

3.9:使用 Azure Active Directory

指导:使用 Azure Active Directory (Azure AD) 作为服务的中心身份验证和授权系统。 Azure AD 通过对静态数据和传输中数据使用强加密以及加盐、哈希处理和安全存储用户凭据来保护数据。

责任:客户

3.10:定期审查和协调用户访问

指导:使用 Azure Active Directory (Azure AD) 提供日志来帮助发现过时的帐户。

可以执行 Azure 标识访问评审来高效地管理组成员身份、对企业应用程序的访问和角色分配。 应定期评审用户的访问权限,确保只有活动用户才持续拥有访问权限。

责任:客户

3.11:监视尝试访问已停用凭据的行为

指导:使用任何 SIEM 或基于访问的监视工具,来集成 Azure Active Directory (Azure AD) 登录活动、审核和风险事件日志源。

可通过为 Azure AD 用户帐户创建诊断设置,并将审核日志和登录日志发送到 Log Analytics 工作区,来简化此过程。 可以在 Log Analytics 工作区中配置任何所需的警报。

责任:客户

3.12:针对帐户登录行为偏差发出警报

指导:使用 Azure Active Directory (Azure AD) 风险和标识保护功能配置对检测到的与虚拟网络的用户标识相关的可疑操作的自动响应。 将数据引入 Microsoft Sentinel 中进行进一步调查。

责任:客户

数据保护

有关详细信息,请参阅 Azure 安全基线: 数据保护

4.4:加密传输中的所有敏感信息

指导:加密传输中的所有敏感信息。 确保连接到虚拟网络中的 Azure 资源的任何客户端都能够协商 TLS 1.2 或更高版本。 遵循 Microsoft Defender for Cloud 的建议,了解静态加密和传输中加密。

Microsoft 提供了许多选项,客户可使用它们保护在 Azure 网络内部传输和跨 Internet 外部传输到最终用户的数据。 其中包括通过虚拟专用网(使用 IPsec/IKE 加密)、传输层安全性 (TLS) 1.2 或更高版本(通过 Azure 组件,例如应用程序网关或 Azure Front Door)、直接在 Azure 虚拟机上的协议(例如 Windows IPsec 或 SMB)等进行通信。

此外,对于在 Azure 数据中心之间传输的所有 Azure 流量,启用使用 MACsec(数据链路层的 IEEE 标准)的“默认加密”,以确保客户数据的机密性和完整性。

责任:共享

4.6:使用 Azure RBAC 管理对资源的访问

指导:使用 Azure 基于角色的访问控制 (Azure RBAC) 来管理对数据和资源的访问。 否则,请使用特定于服务的访问控制方法。

选择内置角色,如所有者、参与者或网络参与者,并将角色分配到适当的范围。 例如,可将具有虚拟网络所需特定权限的虚拟网络功能的子集分配给这些角色中的任何一个。

责任:客户

4.9:记录对关键 Azure 资源的更改并对此类更改发出警报

指导:结合使用 Azure Monitor 和 Azure 活动日志,创建在关键 Azure 资源(例如虚拟网络和网络安全组)发生更改时发出的警报。

责任:客户

清单和资产管理

有关详细信息,请参阅 Azure 安全基线: 清单和资产管理

6.1:使用自动化资产发现解决方案

指导:使用 Azure Resource Graph 查询和发现订阅中的所有网络资源(例如虚拟网络)。 确保你在租户中拥有适当的(读取)权限,并且可以枚举所有 Azure 订阅,以及订阅中的资源。

责任:客户

6.2:维护资产元数据

指导:将标记应用于 Azure 资源,从而将元数据按逻辑组织到分类中。

责任:客户

6.3:删除未经授权的 Azure 资源

指导:使用标记、管理组和单独订阅(如果适用)来组织和跟踪虚拟网络和相关资源。 定期核对清单,确保及时地从订阅中删除未经授权的资源。

责任:客户

6.4:定义并维护已批准的 Azure 资源的清单

指导:你将需要根据组织需求,创建已获批 Azure 资源以及已获批用于计算资源的软件的清单。

责任:客户

6.5:监视未批准的 Azure 资源

指导:在 Azure Policy 中使用以下内置策略定义,对可以在客户订阅中创建的资源类型施加限制:

  • 不允许的资源类型

  • 允许的资源类型

在基于高安全性的环境(例如具有 Azure 存储帐户的环境)中使用 Azure Resource Graph 查询或发现订阅中的资源。

责任:客户

6.7:删除未批准的 Azure 资源和软件应用程序

指导:根据组织策略的要求,阻止使用 Azure Policy 创建或使用资源。 实现删除未授权资源的过程。

责任:客户

6.9:仅使用已批准的 Azure 服务

指导:在 Azure Policy 中使用以下内置策略定义,对可以在客户订阅中创建的资源类型施加限制:

  • 不允许的资源类型

  • 允许的资源类型

有关详细信息,请参阅以下资源:

责任:客户

6.11:限制用户与 Azure 资源管理器进行交互的能力

指导:使用 Azure 条件访问可通过为“Microsoft Azure 管理”应用配置“阻止访问”,限制用户与 Azure 资源管理器进行交互的能力。

责任:客户

安全配置

有关详细信息,请参阅 Azure 安全基线: 安全配置

7.1:为所有 Azure 资源建立安全配置

指导:使用 Azure Policy 别名创建自定义策略,以审核或强制实施 Azure 网络资源的配置并使用内置 Azure Policy 目标。

使用 Azure 资源管理器导出 JavaScript 对象表示法 (JSON) 中你构建的任何模板,并对其进行评审,以确保配置满足或超过组织的安全要求。

实现 Microsoft Defender for Cloud 中的建议,并将其作为 Azure 资源的安全配置基线。

责任:客户

7.3:维护安全的 Azure 资源配置

指导:使用 Azure 资源管理器模板和 Azure 策略安全地配置与虚拟网络和相关资源关联的 Azure 资源。 Azure 资源管理器模板是基于 JSON(JavaScript 对象表示法)的文件,用于与 Azure 资源一起部署虚拟机。 Microsoft 对基本模板进行维护。

使用 Azure Policy“[拒绝]”和“[不存在则部署]”效果对不同的 Azure 资源强制实施安全设置。

责任:客户

7.5:安全存储 Azure 资源的配置

指导:使用 Azure DevOps 安全地存储和管理代码,如自定义 Azure 策略、Azure 资源管理器模板、Desired State Configuration 脚本。 等等。

若要访问希望在 Azure DevOps 中管理的资源(例如代码、生成和工作跟踪),必须具有对这些资源的权限。 大多数权限通过内置安全组授予。 你可以向特定用户、内置安全组或者 Azure Active Directory (Azure AD)(如果与 Azure DevOps 集成)或 Active Directory(如果与 Team Foundation Server 集成)中定义的组授予权限,或拒绝向其授予权限。

责任:客户

7.7:部署 Azure 资源的配置管理工具

指导:使用 Azure Policy 为 Azure 资源定义和实施标准安全配置。 使用 Azure Policy 别名创建自定义策略,以审核或强制实施 Azure 资源的网络配置以及与特定资源相关的任何内置策略定义。

责任:客户

7.9:为 Azure 资源实施自动配置监视

指导:使用 Microsoft Defender for Cloud 对 Azure 虚拟网络和相关资源执行基线扫描。 使用 Azure Policy 发出警告并审核 Azure 资源配置。

责任:客户

7.11:安全管理 Azure 机密

指导:将托管服务标识与 Azure Key Vault 结合使用,以便简化和保护托管在 Azure 虚拟网络中的 Azure 资源的机密管理。

责任:客户

7.13:消除意外的凭据透露

指南:实施凭据扫描程序来识别代码中的凭据。 凭据扫描程序还会建议将发现的凭据转移到更安全的位置,例如 Azure Key Vault。

责任:客户

数据恢复

有关详细信息,请参阅 Azure 安全基线: 数据恢复

9.1:确保定期执行自动备份

指导:使用 Azure 资源管理器部署虚拟网络和相关资源。 Azure 资源管理器提供导出模板的功能,这些模板可用作还原虚拟网络和相关资源的备份。 使用 Azure 自动化定期调用 Azure 资源管理器模板导出 API。

责任:客户

9.2:执行完整系统备份,并备份客户管理的所有密钥

指导:使用 Azure 资源管理器部署虚拟网络和相关资源。 Azure 资源管理器提供导出模板的功能,这些模板可用作还原虚拟网络和相关资源的备份。 使用 Azure 自动化定期调用 Azure 资源管理器模板导出 API。 在 Azure Key Vault 中备份客户管理的密钥。

责任:客户

9.3:验证所有备份,包括客户管理的密钥

指导:定期将 Azure 资源管理器模板部署到独立订阅,并对备份的客户管理的密钥进行还原测试。

责任:客户

9.4:确保保护备份和客户管理的密钥

指南:使用 Azure DevOps 安全地存储和管理你的代码,例如自定义 Azure Policy 定义和 Azure 资源管理器模板。

向特定用户、内置安全组或者 Azure Active Directory (Azure AD)(如果与 Azure DevOps 集成)或 Active Directory(如果与 Team Foundation Server 集成)中定义的组授予权限,或拒绝向其授予权限。

使用 Azure 基于角色的访问控制 (Azure RBAC) 保护客户管理的密钥。

在密钥保管库中启用软删除和清除保护,以防止意外删除或恶意删除密钥。

责任:客户

事件响应

有关详细信息,请参阅 Azure 安全基线: 事件响应

10.1:创建事件响应指导

指南:为组织制定事件响应指南。 确保在书面的事件响应计划中定义人员职责,以及事件处理/管理从检测到事件后审查的各个阶段。

责任:客户

10.2:创建事件评分和优先级设定过程

指导:Microsoft Defender for Cloud 可以为每个警报分配严重性,以帮助你优先处理应先调查的警报。 严重性取决于 Microsoft Defender for Cloud 在发出警报时所依据的检测结果或分析结果的置信度,以及导致发出警报的活动背后的恶意企图的置信度。

使用标记清楚地标记订阅(例如生产或非生产)并创建命名系统来对 Azure 资源进行明确标识和分类,特别是处理敏感数据的资源。 你的责任是根据发生事件的 Azure 资源和环境的关键性确定修正警报的优先级。

责任:客户

10.3:测试安全响应过程

指南:定期执行演练来测试系统的事件响应功能,以帮助保护 Azure 资源。 识别弱点和差距,并根据需要修改计划。

责任:客户

10.4:提供安全事件联系人详细信息,并针对安全事件配置警报通知

指导:如果 Microsoft 安全响应中心 (MSRC) 发现数据被某方非法访问或未经授权访问,Microsoft 会使用安全事件联系信息联系用户。 事后审查事件,确保问题得到解决。

责任:客户

10.5:将安全警报整合到事件响应系统中

指导:使用连续导出功能导出 Microsoft Defender for Cloud 警报和建议,以帮助确定 Azure 资源的风险。 使用连续导出可以手动导出或者持续导出警报和建议。

还可以使用 Microsoft Defender for Cloud 数据连接器将警报流式传输给 Microsoft Sentinel。

责任:客户

10.6:自动响应安全警报

指导:使用 Microsoft Defender for Cloud 的工作流自动化功能,通过“逻辑应用”自动触发对安全警报和建议的响应,以保护 Azure 资源。

责任:客户

渗透测试和红队练习

有关详细信息,请参阅 Azure 安全基线: 渗透测试和红队演练

11.1:定期对 Azure 资源执行渗透测试,确保修正所有发现的关键安全问题

指导:请遵循 Microsoft 互动规则,确保你的渗透测试不违反 Microsoft 政策。 使用 Microsoft 红队演练策略和执行,以及针对 Microsoft 托管云基础结构、服务和应用程序执行的现场渗透测试。

责任:共享

后续步骤