事件网格的 Azure 安全基线

此安全基线将 Azure 安全基准版本 1.0 中的指导应用于 Microsoft Azure 事件网格。 Azure 安全基准提供有关如何在 Azure 上保护云解决方案的建议。 内容按安全控制措施分组,这些控制措施根据适用于 Azure 事件网格的 Azure 安全基准和相关指导定义。

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

注意

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

网络安全

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

1.1:保护虚拟网络中的 Azure 资源

指导:使用专用终结点,可以允许事件通过专用链接安全地从虚拟网络直接进入事件网格主题和域,而无需通过公共 Internet。 为事件网格主题或域创建专用终结点时,它会在 VNet 上的客户端与事件网格资源之间提供安全连接。 从虚拟网络的 IP 地址范围为专用终结点分配 IP 地址。 专用终结点与事件网格服务之间的连接使用安全的专用链接。

对于将内容发布到主题和域的操作,Azure 事件网格还支持进行基于公共 IP 的访问控制。 使用基于 IP 的控制,可以将主题和域的发布者限制为一组经过批准的计算机和云服务。 此功能是对事件网格支持的身份验证机制的补充。

责任:客户

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

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

Azure 虚拟机来访问事件网格资源,请启用网络安全组 (NSG) 流日志,并将日志发送到存储帐户进行流量审核。

责任:客户

1.3:保护关键 Web 应用程序

指导:不适用;此建议适用于 Azure 应用服务或计算资源上运行的 Web 应用程序。

责任:不适用

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

指导:可以为事件网格资源配置 IP 防火墙,以限制为仅从一组选定的 IP 地址或 IP 地址范围通过公共 Internet 进行访问。

可将专用终结点配置为仅限从所选虚拟网络进行访问。

在这些虚拟网络上启用 DDoS 保护标准,以防范分布式拒绝服务 (DDoS) 攻击。 使用 Microsoft Defender for Cloud 的集成式威胁情报功能拒绝与已知恶意或未使用的 Internet IP 地址通信。 有关详细信息,请参阅以下文章:

责任:客户

1.5:记录网络数据包

指导:如果使用 Azure 虚拟机来访问事件网格资源,请启用网络安全组 (NSG) 流日志,并将日志发送到存储帐户进行流量审核。 还可以将 NSG 流日志发送到 Log Analytics 工作区,并使用流量分析来提供对 Azure 云中的流量流的见解。 流量分析的优势包括能够可视化网络活动、识别热点、识别安全威胁、了解流量流模式,以及查明网络不当配置。

请注意,为事件网格创建专用终结点时,默认情况下会禁用网络策略,因此以上工作流可能不起作用。

启用网络观察程序数据包捕获(如果调查异常活动时有此需要)。

责任:客户

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

指导:从 Azure 市场中选择一种产品/服务,该产品/服务应支持包含有效负载检查功能的 ID/IPS 功能。 如果不需要进行有效负载检查,则可以使用 Azure 防火墙威胁情报。 使用基于 Azure 防火墙威胁情报的筛选功能,针对进出已知恶意 IP 地址和域的流量发出警报并/或阻止该流量。 IP 地址和域源自 Microsoft 威胁智能源。

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

责任:客户

1.7:管理发往 Web 应用程序的流量

指导:不适用;此建议适用于 Azure 应用服务或计算资源上运行的 Web 应用程序。

责任:不适用

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

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

责任:客户

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

指导:使用 Azure Policy 为与 Azure 事件网格命名空间关联的网络资源定义和实施标准安全配置。 在“Microsoft.EventGrid”和“Microsoft.Network”命名空间中使用 Azure Policy 别名创建自定义策略,以审核或强制实施事件网格资源的网络配置。

还可以使用与 Azure 事件网格相关的内置策略定义,例如:

责任:客户

1.10:阐述流量配置规则

指导:对与 Azure 事件网格资源关联的网络资源使用标记,以便按逻辑将这些资源组织成某种分类。

责任:客户

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

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

责任:客户

日志记录和监视

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

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

指导:通过 Azure Monitor 引入日志来聚合 Azure 事件网格生成的安全数据。 在 Azure Monitor 中,使用 Log Analytics 工作区来查询和执行分析,并使用存储帐户进行长期/存档存储。 或者,可以启用 Microsoft Sentinel 或第三方安全信息和事件管理 (SIEM),并在其中加入数据。

责任:客户

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

指导:事件网格用户可以通过诊断设置在以下任一位置捕获和查看“发布和传递失败”日志:存储帐户、事件中心或 Log Analytics 工作区。

责任:客户

2.4:从操作系统收集安全日志

指南:不适用;此建议适用于计算资源。

责任:不适用

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

指导:在 Azure Monitor 中,根据组织的合规性规定,为与 Azure 事件网格资源关联的 Log Analytics 工作区设置日志保留期。

责任:客户

2.6:监视和审查日志

指导:分析和监视日志中的异常行为,并定期审查来自 Azure 事件网格的结果。 使用 Azure Monitor 和 Log Analytics 工作区查看日志并对日志数据执行查询。

或者,可以启用数据并将其加入 Azure Sentinel 或第三方 SIEM。

责任:客户

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

指导:在事件网格上启用诊断设置,以便访问“发布和传递失败”日志。 活动日志自动可用,包括事件源、日期、用户、时间戳、源地址、目标地址和其他有用元素。 你可以将日志发送到 Log Analytics 工作区。 使用 Microsoft Defender for Cloud 和 Log Analytics 监视安全日志和事件中发现的异常活动并发出警报。

你还可以创建有关 Azure 事件网格指标和活动日志操作的警报。 可以针对 Azure 事件网格资源(主题和域)的发布和交付这两种指标创建警报。

或者,可以将 Log Analytics 工作区载入 Microsoft Sentinel,因为它提供了安全业务流程自动化响应 (SOAR) 解决方案。 这样便可以创建 playbook(自动解决方案)并用于修正安全问题。

责任:客户

2.8:集中管理反恶意软件日志记录

指导:不适用;Azure 事件网格不会处理或生成与反恶意软件相关的日志。

责任:不适用

2.9:启用 DNS 查询日志记录

指导:不适用;Azure 事件网格不会处理或生成与 DNS 相关的日志。

责任:不适用

2.10:启用命令行审核日志记录

指南:不适用;此建议适用于计算资源。

责任:不适用

标识和访问控制

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

3.1:维护管理帐户的清单

指导:借助 Azure 事件网格,可以控制授予不同用户用来执行各种管理操作的访问级别,例如列出事件订阅、创建新的事件订阅及生成密钥。 事件网格使用 Azure 基于角色的访问控制 (Azure RBAC)。 事件网格支持内置角色和自定义角色。

借助基于 Azure 角色的访问控制 (Azure RBAC),可以通过角色分配管理对 Azure 资源的访问。 可以将这些角色分配给用户、组服务主体和托管标识。 某些资源具有预定义的内置角色,可以通过工具(例如 Azure CLI、Azure PowerShell 或 Azure 门户)来清点或查询这些角色。

责任:客户

3.2:在适用的情况下更改默认密码

指导:对事件网格资源的访问管理是通过 Azure Active Directory (Azure AD) 控制的。 Azure AD 没有默认密码。

责任:客户

3.3:使用专用管理帐户

指南:围绕专用管理帐户的使用创建标准操作程序。

还可以通过使用 Azure Active Directory (Azure AD) Privileged Identity Management 和 Azure 资源管理器来启用即时访问权限。

事件网格可以为 Azure 事件网格主题或域启用托管服务标识,并使用该标识将事件转发到支持的目标,如服务总线队列和主题、事件中心和存储帐户。 共享访问签名 (SAS) 令牌用于将事件发布到 Azure 事件网格。 使用这些帐户创建有关事件访问、转发和发布的标准操作过程。

责任:客户

3.4:将单一登录 (SSO) 与 Azure Active Directory 配合使用

指导:不适用;事件网格服务不支持 SSO。

责任:不适用

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

指导:不适用;事件网格服务不使用多重身份验证。

责任:不适用

3.6:对所有管理任务使用专用计算机(特权访问工作站)

指导:不适用;事件网格方案不需要特权访问工作站。

责任:不适用

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

指导:使用 Azure Active Directory (Azure AD) 安全报告和监视,来检测环境中何时发生可疑或不安全的活动。 使用 Microsoft Defender for Cloud 监视标识和访问活动。

责任:客户

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

指导:不适用。 事件网格不使用 Azure Active Directory (Azure AD) 对事件发布客户端进行身份验证;它支持通过 SAS 密钥进行身份验证。

责任:客户

3.9:使用 Azure Active Directory

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

事件网格可以为 Azure 事件网格主题或域启用托管服务标识,并使用该标识将事件转发到支持的目标,如服务总线队列和主题、事件中心和存储帐户。 共享访问签名 (SAS) 令牌用于将事件发布到 Azure 事件网格。

责任:客户

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

指导:Azure Active Directory (Azure AD) 提供日志来帮助发现过时的帐户。 此外,请使用 Azure AD 标识和访问评审来有效管理组成员身份、对企业应用程序的访问以及角色分配。 可以定期评审用户的访问权限,确保只有适当的用户才持续拥有访问权限。

使用 Azure AD Privileged Identity Management (PIM) 在环境中发生可疑或不安全的活动时生成日志和警报。

责任:客户

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

指导:你有权访问 Azure Active Directory (Azure AD) 登录活动、审核和风险事件日志源,因此可以与任何 SIEM/监视工具集成。

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

责任:客户

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

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

责任:客户

3.13:在支持场合下为 Microsoft 提供对相关客户数据的访问权限

指导:不适用;事件网格服务目前不支持客户密码箱。

责任:不适用

数据保护

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

4.1:维护敏感信息的清单

指导:使用标记可以帮助跟踪存储或处理敏感信息的 Azure 资源。

责任:客户

4.2:隔离存储或处理敏感信息的系统

指导:使用单独的订阅和管理组对各个安全域(如环境类型和数据敏感度级别)实现隔离。 你可以限制对应用程序和企业环境所需 Azure 资源的访问级别。 可以通过 Azure RBAC 来控制对 Azure 资源的访问。

责任:客户

4.3:监视和阻止未经授权的敏感信息传输

指导:对于由 Microsoft 管理的基础平台,Microsoft 会将所有客户内容都视为敏感信息,竭尽全力防范客户数据丢失和泄露。 为了确保 Azure 中的客户数据保持安全,Microsoft 实施并维护了一套可靠的数据保护控制措施和功能。

责任:共享

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

指导:Azure 事件网格需要使用 HTTPS 进行发布操作,并支持使用 HTTPS 将事件传递到 Webhook 终结点。 在 Azure Global 中,事件网格支持 1.1 和 1.2 版本的 TLS,但我们强烈建议使用 1.2 版本。 在国家云(例如 Azure 政府和由中国的世纪互联运营的 Azure)中,事件网格仅支持 1.2 版本的 TLS。

责任:客户

4.5:使用有效的发现工具识别敏感数据

指导:数据标识、分类和丢失防护功能尚不适用于 Azure 事件网格。 可以根据合规性需要实施第三方解决方案。

对于由 Microsoft 管理的基础平台,Microsoft 会将所有客户内容都视为敏感信息,竭尽全力防范客户数据丢失和泄露。 为了确保 Azure 中的客户数据保持安全,Microsoft 实施并维护了一套可靠的数据保护控制措施和功能。

责任:客户

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

指导:Azure 事件网格支持使用 Azure Active Directory (Azure AD) 对事件网格资源请求进行授权。 可以通过 Azure AD 使用 Azure 基于角色的访问控制 (Azure RBAC) 向安全主体授予权限,该安全主体可能是用户,也可能是应用程序服务主体。

责任:客户

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

指导:将 Azure Monitor 与 Azure 活动日志结合使用,以创建在 Azure 事件网格资源的生产实例和其他关键资源或相关资源发生更改时发出的警报。

责任:客户

漏洞管理

有关详细信息,请参阅 Azure 安全基线: 漏洞管理。

5.3:为第三方软件部署自动化补丁管理解决方案

指导:不适用;此项指导适用于计算资源。

责任:不适用

5.4:比较连续进行的漏洞扫描

指导:不适用;此项指导适用于计算资源。

责任:不适用

5.5:使用风险评级过程来确定已发现漏洞的修正措施的优先级

指导:不适用;此项指导适用于计算资源。

责任:不适用

清单和资产管理

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

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

指导:不适用;此项指导适用于计算资源。

责任:不适用

6.2:维护资产元数据

指导:将标记应用到 Azure资源,以便有条理地将元数据组织成某种分类。

责任:客户

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

指导:在适用的情况下,请使用标记、管理组和单独的订阅来组织和跟踪资产。 定期核对清单,确保及时地从订阅中删除未经授权的资源。

责任:客户

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

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

责任:客户

6.5:监视未批准的 Azure 资源

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

  • 不允许的资源类型
  • 允许的资源类型

此外,请使用 Azure Resource Graph 来查询/发现订阅中的资源。

责任:客户

6.6:监视计算资源中未批准的软件应用程序

指南:不适用;此建议适用于计算资源。

责任:不适用

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

指南:不适用;此建议适用于计算资源。

责任:不适用

6.8:仅使用已批准的应用程序

指南:不适用;此建议适用于计算资源。

责任:不适用

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

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

  • 不允许的资源类型
  • 允许的资源类型

此外,请使用 Azure Resource Graph 来查询/发现订阅中的资源。

责任:客户

6.10:维护已获批软件的清单

指导:不适用;此建议适用于计算资源。

责任:不适用

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

指南:通过为“Microsoft Azure 管理”应用配置“阻止访问”,使用 Azure Active Directory (Azure AD) 条件访问来限制用户与 Azure 资源管理器交互的能力。

责任:客户

6.12:限制用户在计算资源中执行脚本的能力

指导:不适用;此建议适用于计算资源。

责任:不适用

6.13:以物理或逻辑方式隔离高风险应用程序

指导:不适用;此建议适用于 Azure 应用服务或计算资源上运行的 Web 应用程序。

责任:不适用

安全配置

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

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

指导:通过 Azure Policy 为 Azure 事件网格服务定义和实现标准安全配置。 使用“Microsoft.EventGrid”命名空间中的 Azure Policy 别名创建自定义策略,以审核或强制实施 Azure 事件网格服务的配置。

Azure 资源管理器能够以 JavaScript 对象表示法 (JSON) 格式导出模板,应该对其进行检查,以在部署前确保配置满足组织的安全要求。

责任:客户

7.2:建立安全的操作系统配置

指导:不适用;此项指导适用于计算资源。

责任:不适用

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

指南:使用 Azure Policy“[拒绝]”和“[不存在则部署]”对不同的 Azure 资源强制实施安全设置。 此外,你可以使用 Azure 资源管理器模板维护组织所需的 Azure 资源的安全配置。

责任:客户

7.4:维护安全的操作系统配置

指导:不适用;此项指导适用于计算资源。

责任:不适用

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

指导:如果对事件网格或相关资源使用自定义 Azure Policy 定义,请使用 Azure Repos 安全地存储和管理代码。

责任:客户

7.6:安全存储自定义操作系统映像

指导:不适用;此项指导适用于计算资源。

责任:不适用

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

指导:在“Microsoft.EventGrid”命名空间中使用 Azure Policy 别名创建自定义策略,以审核、强制实施系统配置并对其发出警报。 另外,开发一个用于管理策略例外的流程和管道。

责任:客户

7.8:部署操作系统的配置管理工具

指导:不适用;此项指导适用于计算资源。

责任:不适用

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

指导:使用 Microsoft Defender for Cloud 对 Azure 资源执行基线扫描。 此外,使用 Azure Policy 警告和审核 Azure 资源配置。

责任:客户

7.10:为操作系统实施自动配置监视

指导:不适用;此项指导适用于计算资源。

责任:不适用

7.11:安全管理 Azure 机密

指导:事件网格使用共享访问签名 (SAS) 令牌将事件发布到事件网格主题或域中。 生成只能访问在有限时间范围内需要的资源的 SAS 令牌。

将托管标识与 Azure Key Vault 结合使用,以简化云应用程序的机密管理。

责任:客户

7.12:安全自动管理标识

指导:事件网格可以为 Azure 事件网格主题或域启用托管服务标识。 使用它将事件转发到受支持的目标,如服务总线队列和主题、事件中心和存储帐户。

责任:客户

7.13:消除意外的凭据透露

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

责任:客户

恶意软件防护

有关详细信息,请参阅 Azure 安全基线: 恶意软件防护

8.2:预先扫描要上传到非计算 Azure 资源的文件

指导:Microsoft 反恶意软件已在支持 Azure 服务(例如,Azure 事件网格)的基础主机上启用,但它不会针对客户内容运行。

你需要负责预先扫描要上传到非计算 Azure 资源的任何内容。 Microsoft 无法访问客户数据,因此无法代表你对客户内容执行反恶意软件扫描。

责任:客户

数据恢复

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

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

指导:事件网格可以针对新的和现有的所有域、主题和事件订阅提供元数据自动异地灾难恢复 (GeoDR) 功能。 在整个 Azure 区域出现故障时,事件网格已将所有与事件相关的基础结构元数据同步到配对的区域。

责任:客户

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

指导:事件网格可以针对新的和现有的所有域、主题和事件订阅提供元数据自动异地灾难恢复 (GeoDR) 功能。 在整个 Azure 区域出现故障时,事件网格已将所有与事件相关的基础结构元数据同步到配对的区域。

目前,事件网格不支持客户管理的密钥。

责任:客户

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

指导:事件网格可以针对新的和现有的所有域、主题和事件订阅提供元数据自动异地灾难恢复 (GeoDR) 功能。 在整个 Azure 区域出现故障时,事件网格已将所有与事件相关的基础结构元数据同步到配对的区域。

目前,事件网格不支持客户管理的密钥。

责任:客户

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

指南:在 Key Vault 中启用软删除和清除保护,以防止意外删除或恶意删除密钥。

目前,事件网格不支持客户管理的密钥。

责任:客户

事件响应

有关详细信息,请参阅 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 托管云基础结构、服务和应用程序执行现场渗透测试。

责任:共享

后续步骤