Rohit24-devOp/Cloud-Security-Monitoring-WAF-Protection-Platform

GitHub: Rohit24-devOp/Cloud-Security-Monitoring-WAF-Protection-Platform

基于 AWS 的企业级云安全监控与 WAF 防护平台,提供实时威胁检测、安全分析仪表板和自动化告警。

Stars: 0 | Forks: 0

# 🛡️ 云安全监控与 WAF 防护平台 ![Python](https://img.shields.io/badge/Python-3.11-3776AB?logo=python&logoColor=white) ![AWS](https://img.shields.io/badge/AWS-WAFv2%20%7C%20CloudFront%20%7C%20ALB%20%7C%20EC2-FF9900?logo=amazonaws&logoColor=white) ![Terraform](https://img.shields.io/badge/IaC-Terraform-844FBA?logo=terraform&logoColor=white) ![Streamlit](https://img.shields.io/badge/Dashboard-Streamlit-FF4B4B?logo=streamlit&logoColor=white) ![Status](https://img.shields.io/badge/Status-Production%20Ready-10b981) 一个**生产级云安全平台**,演示了如何在 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, 上游代理, 逆向工具