你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Microsoft Sentinel 对 Azure WAF 进行自动检测和响应

恶意攻击者越来越多地通过利用常见的漏洞(如 SQL 注入和跨站脚本)来针对 Web 应用程序。 防止应用程序代码中的这些攻击是一个挑战,需要在应用程序拓扑的多层进行严格的维护、修补和监视。 相较保护每个单独的 Web 应用程序,Web 应用程序防火墙 (WAF) 解决方案可以通过在中心位置修补已知漏洞,更快地对安全威胁做出反应。 Azure Web 应用程序防火墙 (WAF) 是一种云原生服务,可保护 Web 应用免受常见的 Web 黑客攻击技术。 可以在几分钟内部署此服务,以全面了解 Web 应用程序流量并阻止恶意 Web 攻击。

将 Azure WAF 与 Microsoft Sentinel(一种云原生 SIEM/SOAR 解决方案)集成以便自动检测和响应威胁/事件/警报是一个额外的优势,减少了更新 WAF 策略所需的手动干预。

在本文中,你将了解 Sentinel 中的 WAF 检测模板,部署 playbook,并使用这些模板和 playbook 在 Sentinel 中配置检测和响应。

先决条件

部署 playbook

通过 GitHub 上的模板安装名为“Block-IPAzureWAF”的 Sentinel playbook。 此 playbook 在响应 WAF 事件时运行。 目标是在 WAF 策略中创建或修改自定义规则,以阻止来自特定 IP 地址的请求。 这是使用 Azure REST API 完成的。

通过 GitHub 上的模板安装 playbook。

  1. 转到 GitHub 存储库,然后选择“部署到 Azure”以启动模板。
  2. 填写必需的参数。 可以从 Azure 门户获取 Front Door ID。 Front Door ID 是 Front Door 资源的资源 ID。 Screenshot showing the playbook template.
  3. 选择“查看 + 创建”,然后选择“创建” 。

授权 API 连接

此部署过程中,会创建名为“azuresentinel-Block-IPAzureWAF”的 API 连接。 必须使用 Azure ID 对其进行授权,才能让 playbook 对 WAF 策略进行更改。

  1. 在 Azure 门户中,选择“azuresentinel-Block-IPAzureWAF”API 连接。
  2. 选择“编辑 API 连接”。
  3. 在“显示名称”下,键入 Azure ID。
  4. 选择“授权”。
  5. 选择“保存”。

Screenshot showing the API authorization screen.

配置参与者角色分配

playbook 必须具有通过 REST API 查询和修改现有 WAF 策略所需的权限。 你可以为 playbook 分配一个系统分配的托管标识,其中包含 Front Door 资源的参与者权限及其关联的 WAF 策略。 仅当你的帐户分配有基础资源的所有者或用户访问管理员角色时,才能分配权限。

可以向此 playbook 添加新的角色分配,从而使用相应资源中的 IAM 部分来完成此操作。

  1. 在 Azure 门户中,选择 Front Door 资源。
  2. 在左窗格中,选择“访问控制(IAM)”。
  3. 选择“角色分配”。
  4. 依次选择“添加”、“添加角色分配”。
  5. 选择“特权管理员角色”。
  6. 选择“参与者”,然后选择“下一步”
  7. 选择“选择成员”。
  8. 搜索“Block-IPAzureWAF”并选择它。 此 playbook 可能有多个条目。 最近添加的通常是列表中的最后一个。
  9. 选择“Block-IPAzureWAF”,然后选择“选择”。
  10. 选择“查看 + 分配”。

对 WAF 策略资源重复此过程。

将 Microsoft Sentinel 添加到工作区

  1. 在 Azure 门户中,搜索并打开 Microsoft Sentinel。
  2. 选择创建
  3. 选择你的工作区,然后选择“添加”。

配置逻辑应用参与者角色分配

你的帐户必须对要授予 Microsoft Sentinel 权限的任何资源组拥有所有者权限,并且必须对包含要运行的 playbook 的任何资源组具有逻辑应用参与者角色。

  1. 在 Azure 门户中,选择包含 playbook 的资源组。
  2. 在左窗格中,选择“访问控制(IAM)”。
  3. 选择“角色分配”。
  4. 依次选择“添加”、“添加角色分配”。
  5. 选择搜索“逻辑应用参与者”,选择它,然后选择“下一步”。
  6. 选择“选择成员”。
  7. 搜索帐户并选择它。
  8. 选择“选择” 。
  9. 选择下一步
  10. 选择“查看 + 分配”。

配置检测和响应

Sentinel for Azure WAF 中的 SQLi 和 XSS 攻击有对应的检测查询模板。 可以从内容中心下载这些模板。 通过使用这些模板,可以创建分析规则来检测 WAF 日志中的特定类型的攻击模式,并通过创建事件进一步通知安全分析师。 这些规则的自动化部分可阻止 WAF 策略上的攻击者的源 IP,从而帮助你应对此事件,然后阻止来自这些源 IP 地址的后续攻击。 Microsoft 持续致力于纳入更多检测模板,实现更多检测和响应方案。

安装模板

  1. 在 Microsoft Sentinel 左窗格的“配置”下,选择“分析”。
  2. 在页面顶部,选择“内容中心的更多内容”。
  3. 搜索“Azure Web 应用程序防火墙”,选择它,然后选择“安装”。

创建分析规则

  1. 在 Microsoft Sentinel 左窗格的“配置”下,选择“分析”。

  2. 选择“规则模板”。 可能需要几分钟时间才能显示模板。

  3. 选择“Front Door Premium WAF - SQLi 检测”模板。

  4. 在右窗格中,选择“创建规则”。

  5. 接受所有默认值并继续前往“自动响应”。 稍后可以编辑这些设置以自定义规则。

    提示

    如果在规则查询中看到错误,则可能是因为工作区中没有任何 WAF 日志。 可以通过将测试流量发送到 Web 应用来生成一些日志。 例如,可以通过发送如下所示的请求来模拟 SQLi 攻击:http://x.x.x.x/?text1=%27OR%27%27=%27。 将 x.x.x.x 替换为你的 Front Door URL。

  6. 在“自动响应”页上,选择“新增”。

  7. 在“新建自动化规则”页上,键入规则的名称。

  8. 在“触发器”下,选择“创建警报时”。

  9. 在“操作”下,选择“管理 playbook 权限”。

  10. 在“管理权限”页上,选择资源组,然后选择“应用”。

  11. 返回“新建自动化规则”页,在“操作”下,从下拉列表中选择“Block-IPAzureWAF”playbook。

  12. 选择“应用”。

  13. 在完成时选择“下一步:查看 + 创建”。

  14. 选择“保存”。

使用相应的自动化规则设置创建分析规则后,即可进行检测和响应。 以下事件流发生在攻击期间:

  • 当攻击者尝试针对 Azure WAF 后面的某个 Web 应用时,Azure WAF 会记录流量。 然后,Sentinel 会引入这些日志。
  • 你配置的分析/检测规则会检测此攻击的模式,并生成事件以通知分析师。
  • 分析规则的自动化规则会触发你之前配置的相应 playbook。
  • playbook 会在相应的 WAF 策略中创建名为 SentinelBlockIP 的自定义规则,其中包括攻击者的源 IP。
  • WAF 会阻止后续攻击尝试,如果攻击者尝试使用另一个源 IP,则它会将相应的源 IP 追加到阻止规则。

一个重点是,默认情况下,Azure WAF 会在 Azure WAF 引擎的核心规则集的帮助下,阻止任何恶意 Web 攻击。 但是,此自动检测和响应配置会在 Azure WAF 策略上为相应源 IP 地址修改或添加新的自定义阻止规则,进一步增强安全性。 这可以确保在来自这些源 IP 地址的流量到达 Azure WAF 引擎规则集之前阻止它。