你当前正在访问 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 中配置检测和响应。
先决条件
- 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
- 具有关联的 WAF 策略的 Azure Front Door 部署。 有关详细信息,请参阅快速入门:使用 ARM 模板创建 Front Door 标准版/高级版和教程:使用 Azure 门户在 Azure Front Door 上创建 WAF 策略。
- 配置为捕获 Log Analytics 工作区中的日志的 Azure Front Door。 有关详细信息,请参阅配置 Azure Front Door 日志。
部署 playbook
通过 GitHub 上的模板安装名为“Block-IPAzureWAF”的 Sentinel playbook。 此 playbook 在响应 WAF 事件时运行。 目标是在 WAF 策略中创建或修改自定义规则,以阻止来自特定 IP 地址的请求。 这是使用 Azure REST API 完成的。
通过 GitHub 上的模板安装 playbook。
- 转到 GitHub 存储库,然后选择“部署到 Azure”以启动模板。
- 填写必需的参数。 可以从 Azure 门户获取 Front Door ID。 Front Door ID 是 Front Door 资源的资源 ID。
- 选择“查看 + 创建”,然后选择“创建” 。
授权 API 连接
此部署过程中,会创建名为“azuresentinel-Block-IPAzureWAF”的 API 连接。 必须使用 Azure ID 对其进行授权,才能让 playbook 对 WAF 策略进行更改。
- 在 Azure 门户中,选择“azuresentinel-Block-IPAzureWAF”API 连接。
- 选择“编辑 API 连接”。
- 在“显示名称”下,键入 Azure ID。
- 选择“授权”。
- 选择“保存”。
配置参与者角色分配
playbook 必须具有通过 REST API 查询和修改现有 WAF 策略所需的权限。 你可以为 playbook 分配一个系统分配的托管标识,其中包含 Front Door 资源的参与者权限及其关联的 WAF 策略。 仅当你的帐户分配有基础资源的所有者或用户访问管理员角色时,才能分配权限。
可以向此 playbook 添加新的角色分配,从而使用相应资源中的 IAM 部分来完成此操作。
- 在 Azure 门户中,选择 Front Door 资源。
- 在左窗格中,选择“访问控制(IAM)”。
- 选择“角色分配”。
- 依次选择“添加”、“添加角色分配”。
- 选择“特权管理员角色”。
- 选择“参与者”,然后选择“下一步”。
- 选择“选择成员”。
- 搜索“Block-IPAzureWAF”并选择它。 此 playbook 可能有多个条目。 最近添加的通常是列表中的最后一个。
- 选择“Block-IPAzureWAF”,然后选择“选择”。
- 选择“查看 + 分配”。
对 WAF 策略资源重复此过程。
将 Microsoft Sentinel 添加到工作区
- 在 Azure 门户中,搜索并打开 Microsoft Sentinel。
- 选择创建。
- 选择你的工作区,然后选择“添加”。
配置逻辑应用参与者角色分配
你的帐户必须对要授予 Microsoft Sentinel 权限的任何资源组拥有所有者权限,并且必须对包含要运行的 playbook 的任何资源组具有逻辑应用参与者角色。
- 在 Azure 门户中,选择包含 playbook 的资源组。
- 在左窗格中,选择“访问控制(IAM)”。
- 选择“角色分配”。
- 依次选择“添加”、“添加角色分配”。
- 选择搜索“逻辑应用参与者”,选择它,然后选择“下一步”。
- 选择“选择成员”。
- 搜索帐户并选择它。
- 选择“选择” 。
- 选择下一步。
- 选择“查看 + 分配”。
配置检测和响应
Sentinel for Azure WAF 中的 SQLi 和 XSS 攻击有对应的检测查询模板。 可以从内容中心下载这些模板。 通过使用这些模板,可以创建分析规则来检测 WAF 日志中的特定类型的攻击模式,并通过创建事件进一步通知安全分析师。 这些规则的自动化部分可阻止 WAF 策略上的攻击者的源 IP,从而帮助你应对此事件,然后阻止来自这些源 IP 地址的后续攻击。 Microsoft 持续致力于纳入更多检测模板,实现更多检测和响应方案。
安装模板
- 在 Microsoft Sentinel 左窗格的“配置”下,选择“分析”。
- 在页面顶部,选择“内容中心的更多内容”。
- 搜索“Azure Web 应用程序防火墙”,选择它,然后选择“安装”。
创建分析规则
在 Microsoft Sentinel 左窗格的“配置”下,选择“分析”。
选择“规则模板”。 可能需要几分钟时间才能显示模板。
选择“Front Door Premium WAF - SQLi 检测”模板。
在右窗格中,选择“创建规则”。
接受所有默认值并继续前往“自动响应”。 稍后可以编辑这些设置以自定义规则。
提示
如果在规则查询中看到错误,则可能是因为工作区中没有任何 WAF 日志。 可以通过将测试流量发送到 Web 应用来生成一些日志。 例如,可以通过发送如下所示的请求来模拟 SQLi 攻击:
http://x.x.x.x/?text1=%27OR%27%27=%27
。 将x.x.x.x
替换为你的 Front Door URL。在“自动响应”页上,选择“新增”。
在“新建自动化规则”页上,键入规则的名称。
在“触发器”下,选择“创建警报时”。
在“操作”下,选择“管理 playbook 权限”。
在“管理权限”页上,选择资源组,然后选择“应用”。
返回“新建自动化规则”页,在“操作”下,从下拉列表中选择“Block-IPAzureWAF”playbook。
选择“应用”。
在完成时选择“下一步:查看 + 创建”。
选择“保存”。
使用相应的自动化规则设置创建分析规则后,即可进行检测和响应。 以下事件流发生在攻击期间:
- 当攻击者尝试针对 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 引擎规则集之前阻止它。
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈