Rohit24-devOp/Cloud-Security-Monitoring-WAF-Protection-Platform
GitHub: Rohit24-devOp/Cloud-Security-Monitoring-WAF-Protection-Platform
基于 AWS 的企业级云安全监控与 WAF 防护平台,提供实时威胁检测、安全分析仪表板和自动化告警。
Stars: 0 | Forks: 0
# 🛡️ 云安全监控与 WAF 防护平台





一个**生产级云安全平台**,演示了如何在 AWS 上部署由 **AWS WAFv2 (Web Application Firewall)** 保护的安全 Web 应用,通过 **AWS CloudFront CDN** 进行缓存,使用 **Application Load Balancer (ALB)** 进行负载均衡,并通过 **CloudWatch Logs** 和自定义的 **Streamlit 安全分析仪表板** 进行实时监控。
本项目展示了企业级云安全工程原则,包括基础设施即代码、基于签名的威胁缓解、边界速率限制和安全分析 — 专为 **Cloud Security Engineer** 和 **DevSecOps** 岗位设计的作品集项目。
## 🏗️ 系统架构
```
graph TD
User([Internet Client]) -->|1. HTTP Requests| CF[AWS CloudFront CDN Edge]
CF -->|2. Regional Forward| ALB[Application Load Balancer]
WAF[AWS WAFv2 WebACL] -.->|3. Inspects & Blocks Traffic| ALB
ALB -->|4. Allow Ingress Traffic| EC2[EC2 Flask Target Web App]
WAF -->|5. Streams WAF JSON Logs| CW[CloudWatch Log Group]
subgraph Security Operations Center
CW -->|6. Boto3 API Query| Dashboard[Streamlit Security Dashboard]
Dashboard -->|7. PDF / CSV Reports| Operator([Security Engineer])
Dashboard -->|8. Alerting Trigger| SNS[AWS SNS Alerts]
SNS -->|9. Email Notifications| Operations[Security Operations Team]
end
```
## ⚡ 核心功能
| 类别 | 功能 |
| :--- | :--- |
| **Web 应用** | 包含 `/`, `/api/data`, `/login`, `/admin` 端点的 Flask 应用,用于 WAF 测试 |
| **WAF 防护** | SQL 注入、XSS、速率限制、IP 封锁、地理封锁、机器人检测 |
| **安全分析** | Python 引擎,将威胁分类为严重 / 高 / 中 / 低 |
| **安全评分** | 动态安全态势评分 (0–100),带有扣分机制和可视化评级 |
| **仪表板** | 实时 Streamlit UI,采用毛玻璃设计、Plotly 图表和地理地图 |
| **报告生成** | 执行级 PDF 报告 和 CSV 表格导出 |
| **告警** | 针对 SQLi 激增、DDoS 行为和管理后台探测的 AWS SNS 通知 |
| **基础设施** | 完整的 Terraform IaC:VPC、Subnets、ALB、EC2、CloudFront、WAFv2、CloudWatch、SNS |
| **CloudWatch Dashboard** | AWS 原生仪表板,包含 WAF 流量、错误率和攻击趋势小部件 |
| **成本优化** | 自动化 Boto3 清理脚本,在测试后销毁所有资源 |
| **模拟器** | 包含 1,200 多条真实 WAF 日志事件的离线模式,无需 AWS 即可进行本地演示 |
## 🔧 技术栈
| 技术 | 用途 |
| :--- | :--- |
| **AWS WAFv2** | Web Application Firewall — 基于签名的请求检查和拦截 |
| **AWS CloudFront** | CDN 边缘缓存和地理流量分配 |
| **AWS ALB** | Application Load Balancer — HTTP 路由和健康检查 |
| **AWS EC2** | 运行 Flask Web 应用的计算目标 (`t3.micro` 免费套餐) |
| **AWS CloudWatch** | 日志聚合、指标仪表板和监控 |
| **AWS SNS** | Simple Notification Service — 实时邮件安全告警 |
| **AWS IAM** | Identity and Access Management — 最小权限资源策略 |
| **Python 3.11** | 用于分析、评分、报告和告警引擎的核心语言 |
| **Streamlit** | 交互式安全运营仪表板框架 |
| **Boto3** | 适用于 Python 的 AWS SDK — CloudWatch 日志查询和 SNS 通知 |
| **Plotly** | 用于威胁可视化的交互式图表库 |
| **Pandas** | 数据处理和时间序列聚合 |
| **ReportLab** | 用于生成执行级安全报告的 PDF |
| **Terraform** | 用于可重复 AWS 部署的基础设施即代码 |
| **Flask** | 用于目标应用的轻量级 Web 框架 |
## 📂 项目结构
```
d:/AWS WAF Project/
├── README.md # Project overview, resume bullets, architecture
├── DEPLOYMENT.md # Step-by-step AWS Deployment Guide (Terraform & Manual)
├── ARCHITECTURE.md # Security Architecture, Threat Modeling & IR Playbooks
├── INTERVIEW_PREP.md # Cloud Security Interview Questions & Answers
├── requirements.txt # Dashboard & analytics Python dependencies
├── dashboard.py # Streamlit Security Operations Dashboard UI
├── generate_mock_logs.py # WAF log simulator (1,200 events across 7 days)
├── test_attacks.py # Attack simulation runner (SQLi, XSS, rate-limits)
├── cleanup_aws_resources.py # Automated Boto3 AWS resource teardown script
├── waf_logs.json # Generated mock WAF log dataset (auto-created)
├── .venv/ # Python virtual environment (D: drive local)
├── app/ # Target Web Application (deployed on EC2)
│ ├── app.py # Flask web application with 4 endpoints
│ ├── requirements.txt # Flask & Werkzeug dependencies
│ └── templates/
│ └── index.html # Dark-themed landing page with attack simulation UI
├── src/ # Backend Security Analytics Package
│ ├── __init__.py
│ ├── log_parser.py # CloudWatch Logs & local JSON WAF log parser
│ ├── analytics.py # Threat classification, top-talkers, timeseries engine
│ ├── score_engine.py # Security Posture Score calculator (0–100)
│ ├── reporting.py # PDF executive reports (ReportLab) & CSV exporter
│ └── alerting.py # AWS SNS security notification system
└── terraform/ # Infrastructure as Code (IaC)
├── main.tf # VPC, EC2, ALB, WAFv2, CloudFront, CloudWatch, SNS
├── variables.tf # Configurable deployment parameters
└── outputs.tf # Resource URLs, ARNs, and endpoint outputs
```
## 🔐 已实现的 WAF 规则
| 规则 | 类型 | 优先级 | 操作 | 描述 |
| :--- | :--- | :---: | :---: | :--- |
| **IP 黑名单** | 自定义 IP Set | 10 | BLOCK | 用于已知恶意来源的手动 IP 地址封锁列表 |
| **地理封锁** | Geo Match | 20 | BLOCK | 封锁来自受制裁国家 (KP, SY) 的流量 |
| **速率限制** | 基于速率 | 30 | BLOCK | 每个 IP 每 5 分钟最多 100 个请求 (防止 DDoS) |
| **SQL 注入** | AWS 托管 | 40 | BLOCK | `AWSManagedRulesSQLiRuleSet` — 检测 SQLi payload |
| **XSS / 通用** | AWS 托管 | 50 | BLOCK | `AWSManagedRulesCommonRuleSet` — 检测 XSS、路径遍历 |
| **机器人检测** | 自定义 Regex | 60 | BLOCK | 封锁 `sqlmap`、`nmap`、`nikto`、`semrush` user-agent |
## 💣 简历亮点 (可直接使用)
将这些高影响力的成就添加到你的 **Cloud Security Engineer** 或 **DevSecOps** 简历中:
* **设计并实现了云安全监控与 WAF 平台**,使用 AWS WAFv2 托管规则集保护 Web 目标,缓解了 SQL 注入 (SQLi) 和跨站脚本 (XSS) 攻击,拦截率达到 25% 以上。
* **编写了 Terraform IaC 配置**,部署了一个安全的多可用区网络环境,集成了 CloudFront CDN、Application Load Balancer、t3.micro EC2 目标以及包含 6 层防护规则的 AWS WAF。
* **使用 Python 开发了安全分析引擎**,用于解析来自 CloudWatch 的 WAF JSON 日志,利用 Pandas 将威胁分类为严重/高/中/低等级,并计算动态安全态势评分 (0–100)。
* **构建了实时 Streamlit 安全运营仪表板**,使用 Plotly 可视化攻击趋势、主要攻击 IP、地理威胁来源地图,并使用 ReportLab 自动生成执行级 PDF/CSV 报告。
* **实现了自动化 SNS 告警管道**,针对 SQL 注入激增、类 DDoS 速率限制违规以及未经授权的管理控制台探测,触发实时邮件通知。
* **实施了自定义成本优化策略**,使用基于 regex 的 WAF header 规则进行自动机器人检测(相比托管 Bot Control 每月节省约 $10),并构建了自动化 Boto3 清理脚本以立即终止所有资源。
## 💰 AWS 服务与成本分析
本项目专为**免费套餐**设计。以下为 24 小时测试窗口的预计成本:
| AWS 服务 | 部署详情 | 免费套餐覆盖范围 | 预计成本 (24小时) |
| :--- | :--- | :--- | :--- |
| **AWS EC2** | 1 × 运行 Flask 的 `t3.micro` 实例 | 每月 750 小时免费 | **$0.00** |
| **AWS ALB** | 1 × 区域级 Application Load Balancer | 每月 750 小时部分免费 | **$0.50** |
| **AWS CloudFront** | 1 × CDN 分配 | 1 TB 数据传输免费 | **$0.00** |
| **AWS WAFv2** | WebACL + 2 个托管规则 + 1 个 IP Set + 1 个速率限制 + 1 个自定义规则 | 无 | **$0.20** |
| **CloudWatch Logs** | 包含 7 天数据保留策略的日志组 | 5 GB 数据提取免费 | **$0.00** |
| **AWS SNS** | 1 × 主题,邮件递送 | 100 万条通知免费 | **$0.00** |
| | | **总计** | **< $1.00 USD** |
## 🚀 快速入门指南 (本地预览)
使用模拟的 WAF 数据在本地运行整个平台 — **无需 AWS 账户**。
### 前置条件
- 已安装 Python 3.9+
- Git (可选)
### 步骤 1:创建并激活虚拟环境
```
# 在 D: 盘上创建 virtual environment(避免 C: 盘空间问题)
python -m venv .venv
# 激活(Windows PowerShell)
.\.venv\Scripts\Activate.ps1
# 激活(Windows CMD)
.\.venv\Scripts\activate.bat
# 激活(Linux / macOS)
source .venv/bin/activate
```
### 步骤 2:安装依赖项
```
pip install -r requirements.txt
pip install -r app/requirements.txt
```
### 步骤 3:生成模拟攻击数据集
```
python generate_mock_logs.py --count 1200 --out waf_logs.json
```
这将生成过去 7 天内包含 1,200 条真实 WAF 日志事件的数据,包括正常流量、SQL 注入攻击、XSS 尝试、速率限制违规、机器人扫描和地理封锁请求。
### 步骤 4:启动 Flask 目标应用
```
python app/app.py
```
目标 Web 应用将在 **http://localhost:5000** 启动
### 步骤 5:启动安全仪表板
```
streamlit run dashboard.py
```
在浏览器中打开 **http://localhost:8501**。仪表板会自动读取 `waf_logs.json` 并显示:
- 实时 KPI 指标 (总请求数 / 允许的请求数 / 拦截的请求数)
- 安全态势评分 (0–100),带有颜色编码的评级
- 交互式 Plotly 图表 (流量时间线、威胁载体条形图)
- 地理威胁来源地图
- 可过滤的安全日志浏览器
- PDF 和 CSV 报告生成
### 步骤 6:针对 Flask 应用模拟攻击
```
python test_attacks.py --url http://localhost:5000
```
这将发送 SQL 注入 payload、XSS 脚本、速率限制突发请求和未经授权的管理后台访问尝试。
## ☁️ AWS 部署指南
有关使用 Terraform 或手动控制台设置的完整 AWS 部署说明,请参见:
📘 **[DEPLOYMENT.md](DEPLOYMENT.md)** — 完整的分步指南,包括:
- Terraform `init`、`plan`、`apply` 命令
- 手动 AWS Console 演练
- SNS 邮件订阅确认
- 针对实时 CloudFront 端点的攻击模拟
- 仪表板连接到实时 CloudWatch 日志
## 🧹 自动化 AWS 资源清理
为了避免测试后产生持续费用,请立即销毁所有资源:
### 选项 A:Terraform 销毁 (推荐)
```
cd terraform
terraform destroy -auto-approve
```
### 选项 B:自动化 Python 脚本
```
python cleanup_aws_resources.py
```
此脚本会自动:
1. 终止 EC2 实例
2. 删除 Application Load Balancer 和 Target Group
3. 禁用并删除 CloudFront 分配
4. 解除关联并删除 WAF WebACL 和 IP Set
5. 删除 Security Group
6. 删除 CloudWatch Log Group
7. 删除 SNS 主题和订阅
### 选项 C:手动控制台清理
请参阅 [DEPLOYMENT.md](DEPLOYMENT.md#method-c-manual-checklist-console-cleanup) 中的详细清单。
## 📚 文档
| 文档 | 描述 |
| :--- | :--- |
| **[README.md](README.md)** | 项目概述、架构、设置和简历亮点 |
| **[DEPLOYMENT.md](DEPLOYMENT.md)** | 分步 AWS 部署指南 (Terraform 与手动) |
| **[ARCHITECTURE.md](ARCHITECTURE.md)** | 安全架构、威胁建模、评分算法、IR playbook |
| **[INTERVIEW_PREP.md](INTERVIEW_PREP.md)** | Cloud Security Engineer 面试题与标准答案 |
## 📄 许可证
本项目专为教育和作品集演示目的而构建。可自由使用以展示您的云安全工程技能。
云安全监控与 WAF 防护平台
高级云安全架构展示 © 2026
标签:AWS, DevSecOps, DPI, ECS, Kubernetes, Terraform, WAF, 上游代理, 逆向工具