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

恶意攻击者通过利用常见的漏洞(如 SQL 注入和跨站点脚本)来日益面向 Web 应用程序。 防止应用程序代码中的这些攻击会带来挑战,需要在应用程序拓扑的多层进行严格的维护、修补和监视。 Web 应用程序防火墙(WAF)解决方案可以通过集中修补已知漏洞来更快地应对安全威胁,而不是保护每个单独的 Web 应用程序。 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。
  3. 选择“查看 + 创建”,然后选择“创建” 。

授权 API 连接

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

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

配置参与者角色分配

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 应用来生成一些日志。 例如,可以通过发送如下所示 http://x.x.x.x/?text1=%27OR%27%27=%27的请求来模拟 SQLi 攻击。 替换为 x.x.x.x Front Door URL。

  6. “自动响应 ”页上,选择“ 添加新”。

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

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

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

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

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

  12. 选择应用

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

  14. 选择“保存”

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

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

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