gmsmeghana/Azure-WAF-Attack-Detection
GitHub: gmsmeghana/Azure-WAF-Attack-Detection
该项目是一个 Azure WAF 实践实验,通过部署 Web 应用防火墙并模拟常见 Web 攻击来验证 OWASP CRS 规则的检测与拦截能力。
Stars: 0 | Forks: 0
# Azure Web Application Firewall (WAF) — 实践实验
这是一份使用 Azure Application Gateway 部署和测试 **Azure Web Application Firewall (WAF)** 的实践指南。本实验涵盖设置、配置、攻击模拟、日志分析以及规则调整建议。
## 工具与环境
| 工具 / 服务 | 用途 |
|----------------|---------|
| Microsoft Azure | 云平台 |
| Azure App Service | 目标 Web 应用程序 |
| Azure Application Gateway | WAF 主机 |
| Azure Log Analytics | 日志查询与威胁分析 |
| curl | 通过命令行进行攻击模拟 |
| OWASP Core Rule Set (CRS) | WAF 检测规则 |
## 步骤 1 — 部署 Web 应用程序
创建了一个 Azure Web 应用程序,并通过 Azure App Service 进行了部署。







## 步骤 2 — 配置 Application Gateway
使用以下组件设置了 Application Gateway:
- **Frontend IP** — 分配给网关的公共 IP
- **Backend Pool** — 指向已部署的 Web 应用
- **HTTP Settings** — 协议和端口配置
- **Listener** — 用于接收传入流量









配置后分配的公共 IP 地址:

## 步骤 3 — 启用诊断设置
在 Application Gateway 上启用了诊断设置,以将 WAF 日志路由到 Log Analytics 进行查询和分析。

## 步骤 4 — 验证后端健康状况
确认后端池健康,并且流量可以从网关流向 Web 应用程序。

## 步骤 5 — 查询日志
使用 Log Analytics 对 WAF 日志运行查询,并验证事件是否被正确捕获。

## 步骤 6 — 禁用 WAF 策略(用于基准测试)
暂时禁用了 WAF 策略以建立基准——确认在重新启用进行攻击测试之前,在没有 WAF 干预的情况下请求可以正常通过。


## 步骤 7 — 攻击模拟
重新启用 WAF,并使用 `curl` 运行以下攻击 payload 来测试检测和拦截功能:
```
# SQL Injection
curl "http:///?id=1'"
# Command Injection / Directory Traversal
curl "http:///?cmd=; cat /etc/passwd"
# 通过 POST body 进行 SQL Injection
curl "http://" -d "username=admin'"
# Cross-Site Scripting (XSS)
curl "http://" -d ""
```



## 结果
| 攻击类型 | OWASP CRS 规则 | 操作 | 日志消息 |
|-------------|---------------|--------|-------------|
| SQL 注入 | 规则 942100 | 已拦截 | 在 query 参数中检测到使用 AND/OR 运算符的 SQL 注入 |
| 跨站脚本攻击 (XSS) | 规则 941130 | 已拦截 | 在 query string 中检测到跨站脚本漏洞 |
| 目录遍历 | 规则 930120 | 已拦截 | 在 URL 路径中发现目录遍历序列 |
| 正常流量 | 无 | 已通过 | 未检测到可疑活动 |
## 观察结果
**威胁拦截**
WAF 成功识别并拦截了 SQL 注入、XSS 和目录遍历攻击。OWASP CRS 规则根据攻击特征正确触发。
**误报**
一些合法流量触发了 WAF 规则——例如,包含 `SELECT` 等关键字的参数名称被规则 942100 标记。这凸显了在生产环境中进行规则调整的必要性。
**日志与洞察**
WAF 日志针对每个被拦截的请求提供了详细信息,包括源 IP、规则 ID 和恶意 payload。将日志模式与请求行为相关联是了解威胁态势的关键。
## WAF 调整建议
**减少误报**
对于 942100 (SQL 注入) 等规则,使用子规则排除或阈值调整来调整敏感度,以避免拦截包含类似 SQL 关键字的合法流量。
**Log Analytics 模式**
构建日志查询以呈现重复的攻击模式——这些模式可用于随着时间的推移进一步优化 WAF 规则。
**自动化威胁响应**
将 WAF 日志与 **Azure Sentinel** 或 SIEM 解决方案集成,以实现对高严重性威胁的自动告警和响应。
## 关键要点
- 带有 OWASP CRS 的 Azure WAF 针对常见的 Web 攻击提供了强大的开箱即用保护
- 日志记录和诊断至关重要——如果没有它们,WAF 事件将处于不可见状态
- 在实际部署中需要进行规则调整,以平衡安全性和可用性
- WAF 是防御的一层——作为更广泛的安全架构的一部分时,它的效果最好
## 免责声明
本实验是在受控的 Azure 环境中出于教育目的进行的。所有攻击模拟均针对测试人员拥有和管理的资源进行。
标签:AppImage, Azure, CISA项目, DOE合作, OWASP CRS, Web应用防火墙, 安全实验环境, 攻击模拟, 驱动签名利用