恶意攻击者通过利用常见的漏洞(如 SQL 注入和跨站点脚本)来日益面向 Web 应用程序。 防止应用程序代码中的这些攻击会带来挑战,需要在应用程序拓扑的多层进行严格的维护、修补和监视。 Web 应用程序防火墙(WAF)解决方案可以通过集中修补已知漏洞来更快地应对安全威胁,而不是保护每个单独的 Web 应用程序。 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。
部署 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 应用来生成一些日志。 例如,可以通过发送如下所示
http://x.x.x.x/?text1=%27OR%27%27=%27
的请求来模拟 SQLi 攻击。 替换为x.x.x.x
Front Door URL。在 “自动响应 ”页上,选择“ 添加新”。
在 “创建新自动化规则 ”页上,键入规则的名称。
在 “触发器”下,选择“ 创建警报时间”。
在 “作”下,选择“ 管理 playbook 权限”。
在“ 管理权限 ”页上,选择资源组,然后选择 “应用”。
返回“ 创建新自动化规则 ”页,在 “作 ”下,从下拉列表中选择 Block-IPAzureWAF playbook。
选择应用。
选择 “下一步:查看 + 创建”。
选择“保存”。
使用相应的自动化规则设置创建分析规则后,即可进行 检测和响应。 以下事件流发生在攻击期间:
- 当攻击者尝试针对其中一个 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 地址的流量。