chv-sneha/cloud-network-traffic-analyzer

GitHub: chv-sneha/cloud-network-traffic-analyzer

基于 AWS VPC Flow Logs 和 Lambda 的云网络流量监控系统,实时分析网络流量并自动告警可疑活动。

Stars: 0 | Forks: 0

# 🌐 云网络流量分析器 一个基于云的网络监控系统,用于在 AWS 虚拟环境中捕获、分析和可视化网络流量,以检测异常模式和潜在的安全威胁。 [![AWS](https://img.shields.io/badge/AWS-Cloud-orange?logo=amazon-aws)](https://aws.amazon.com) [![Python](https://img.shields.io/badge/Python-3.9+-blue?logo=python)](https://python.org) [![Lambda](https://img.shields.io/badge/Serverless-Lambda-yellow)](https://aws.amazon.com/lambda/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ## 🏗️ 架构图 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ AWS CLOUD │ │ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ VPC │ │ │ │ │ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ │ │ Public │ │ Private │ │ │ │ │ │ Subnet │ │ Subnet │ │ │ │ │ │ │ │ │ │ │ │ │ │ EC2/ECS │◄───────►│ Database │ │ │ │ │ │ Instances │ │ Services │ │ │ │ │ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ │ │ │ │ └───────────┬───────────┘ │ │ │ │ │ │ │ │ │ ┌──────▼──────┐ │ │ │ │ │ VPC Flow │ │ │ │ │ │ Logs │ │ │ │ │ └──────┬──────┘ │ │ │ └─────────────────────┼────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────┐ │ │ │ CloudWatch │ │ │ │ Log Group │ │ │ │ │ │ │ │ • Flow Records │ │ │ │ • Timestamps │ │ │ │ • IP Addresses │ │ │ └────────┬────────┘ │ │ │ │ │ │ (Trigger) │ │ ▼ │ │ ┌─────────────────┐ │ │ │ AWS Lambda │ │ │ │ (analyzer.py) │ │ │ │ │ │ │ │ • Parse Logs │ │ │ │ • Detect Anomaly│ │ │ │ • Analyze Traffic│ │ │ └────────┬────────┘ │ │ │ │ │ ┌────────┴────────┐ │ │ │ │ │ │ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Amazon SNS │ │ CloudWatch │ │ │ │ Topic │ │ Metrics │ │ │ │ │ │ │ │ │ │ • Alerts │ │ • Statistics│ │ │ │ • Warnings │ │ • Logs │ │ │ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ └────────────┼─────────────────┼──────────────────────────────────────┘ │ │ ▼ ▼ ┌────────────┐ ┌────────────┐ │ Email │ │ Grafana │ │ Alert │ │ Dashboard │ │ │ │ │ │ 📧 Admin │ │ 📊 Metrics │ └────────────┘ └────────────┘ ``` ### 数据流 1. **流量捕获**:VPC Flow Logs 捕获所有网络流量(已接受/已拒绝的连接) 2. **日志聚合**:日志实时流式传输到 CloudWatch Log Group 3. **事件触发**:新的日志条目自动触发 Lambda 函数 4. **分析**:Lambda 解析日志并应用异常检测算法 5. **告警**:可疑活动触发 SNS 通知 6. **可视化**:Grafana 查询 CloudWatch 以获取仪表盘指标 ## ⚙️ 技术栈 | 组件 | 技术 | |---|---| | 云服务提供商 | AWS | | 网络监控 | VPC Flow Logs | | 日志存储 | CloudWatch Logs | | 异常检测 | AWS Lambda (Python) | | 告警 | Amazon SNS | | 可视化 | Grafana | | IaC | AWS Console + CLI | ## 🧠 功能特性 - 通过 VPC Flow Logs 进行**实时流量监控** - **自动化异常检测** —— 高流量、拒绝连接、可疑 IP - 通过 SNS 邮件通知进行**即时告警** - 展示流量趋势、已接受与已拒绝流量对比、热门 IP 的**可视化仪表盘** ## 📁 项目结构 ``` cloud-network-traffic-analyzer/ ├── lambda/ │ └── analyzer.py # Anomaly detection Lambda function ├── grafana/ │ └── dashboard.json # Grafana dashboard configuration ├── screenshots/ # AWS console proof of implementation │ ├── vpc-flow-logs.png │ ├── lambda-running.png │ ├── sns-alert.png │ └── grafana-dashboard.png ├── .gitignore └── README.md # This file ``` ## 🚀 部署指南 ### 前置条件 - 具有适当权限的 AWS 账户 - 配置好凭证的 AWS CLI - Python 3.9+ - Grafana(本地或云端实例) - 对 AWS 网络有基本了解 ### 架构组件 该系统由五个主要组件组成: 1. **启用了 Flow Logs 的 VPC** - 捕获所有网络流量 2. **CloudWatch Log Group** - 存储并流式传输流日志 3. **Lambda 函数** - 分析流量中的异常 4. **SNS Topic** - 发送告警通知 5. **Grafana 仪表盘** - 可视化流量指标 ### 部署概览 部署过程包括: - 设置启用了 Flow Logs 的 VPC 基础设施 - 配置 CloudWatch 以进行日志聚合 - 部署具有异常检测逻辑的 Lambda 函数 - 创建用于告警的 SNS Topic - 将 Grafana 连接到 CloudWatch 进行可视化 有关详细的部署说明,请参阅 [architecture.md](architecture.md) 文件。 ### 配置 **Lambda 环境变量:** - `SNS_TOPIC_ARN` - 用于告警的 SNS Topic 的 ARN - `ANOMALY_THRESHOLD_PACKETS` - 数据包阈值(默认:1000) - `ANOMALY_THRESHOLD_REJECTS` - 拒绝阈值(默认:50) **VPC Flow Logs 设置:** - 流量类型:ALL(已接受 + 已拒绝) - 目标:CloudWatch Logs - 日志格式:默认 AWS 格式 - 聚合间隔:1 分钟 **所需 IAM 权限:** - VPC Flow Logs:CloudWatch Logs 写入权限 - Lambda:CloudWatch Logs 读/写,SNS 发布 - Grafana:CloudWatch 只读访问权限 ## 📸 截图 | 组件 | 截图 | |---|---| | VPC Flow Logs | ![Flow Logs](https://raw.githubusercontent.com/chv-sneha/cloud-network-traffic-analyzer/main/screenshots/vpc-flow-logs.png) | | Lambda Running | ![Lambda](https://raw.githubusercontent.com/chv-sneha/cloud-network-traffic-analyzer/main/screenshots/lambda-running.png) | | SNS Alert | ![SNS](https://raw.githubusercontent.com/chv-sneha/cloud-network-traffic-analyzer/main/screenshots/sns-alert.png) | | Grafana Dashboard | ![Grafana](https://raw.githubusercontent.com/chv-sneha/cloud-network-traffic-analyzer/main/screenshots/grafana-dashboard.png) | ## 🔍 异常检测逻辑 Lambda 函数检测以下内容: | 异常类型 | 阈值 | 动作 | |---|---|---| | 高流量 | >1000 数据包/分钟 | SNS 告警 | | 拒绝连接 | >50 次拒绝/分钟 | SNS 告警 | | 可疑 IP | 已知的恶意 IP | SNS 告警 + 阻断 | | 端口扫描 | >100 个唯一端口 | SNS 告警 | | 异常协议 | 非标准协议 | 记录警告 | ## 💡 演示的关键概念 - ☁️ **云网络**:具有公有/私有子网的 VPC 架构 - ⚡ **无服务器计算**:事件驱动的 Lambda 函数 - 🔍 **日志分析**:实时解析和模式检测 - 🚨 **告警流水线**:自动化 SNS 通知 - 📊 **可观测性**:用于流量可视化的 Grafana 仪表盘 - 🔐 **安全监控**:威胁检测和异常识别 ## 🧪 测试与验证 ### 验证部署 1. **检查 VPC Flow Logs** - 验证日志是否正在流式传输到 CloudWatch - 确认日志格式和数据准确性 2. **测试 Lambda 函数** - 在 CloudWatch 中监控 Lambda 调用 - 检查执行日志是否有错误 - 验证异常检测逻辑 3. **验证 SNS 告警** - 确认邮件订阅 - 测试告警投递 4. **检查 Grafana 仪表盘** - 验证数据源连接 - 检查指标可视化 - 确认实时更新 ### 生成测试流量 您可以生成测试流量模式来验证系统: - **正常流量**:常规 HTTP/HTTPS 请求 - **大流量**:并发连接突发 - **端口扫描**:顺序端口访问尝试 - **拒绝连接**:对被阻止端口的请求 监控 Grafana 仪表盘和邮件告警以确认检测。 ## 📊 示例指标 ``` Traffic Statistics (Last 24h): ├── Total Packets: 1,245,678 ├── Accepted: 1,198,432 (96.2%) ├── Rejected: 47,246 (3.8%) ├── Unique IPs: 3,421 ├── Anomalies Detected: 12 └── Alerts Sent: 5 ``` ## 🛠️ 故障排除 | 问题 | 解决方案 | |---|---| | Lambda 未触发 | 检查 CloudWatch Logs 订阅过滤器 | | 未收到 SNS 邮件 | 在 SNS 控制台中确认邮件订阅 | | Flow Logs 丢失 | 验证 IAM 角色是否具有 CloudWatch Logs 权限 | | Grafana 无数据 | 检查 AWS 凭证和 CloudWatch 数据源 | ## 📈 未来增强 - [ ] 基于机器学习的异常检测 - [ ] 与 AWS GuardDuty 集成 - [ ] 通过 Security Groups 自动阻断 IP - [ ] 多区域流量分析 - [ ] 利用 S3 日志归档进行成本优化 - [ ] Slack/Teams 告警集成 ## 🤝 贡献 欢迎贡献!请打开一个 Issue 或提交 Pull Request。 ## 📄 许可证 MIT 许可证 - 可随意将此项目用于学习和作品集展示目的。 ## ⚠️ 资源清理 为避免持续的 AWS 费用,请在测试后删除所有资源: ### 清单 - [ ] 删除 Lambda 函数 - [ ] 移除 SNS Topic 和订阅 - [ ] 删除 CloudWatch Log Group - [ ] 禁用并删除 VPC Flow Logs - [ ] 移除 VPC 及相关资源(子网、路由表等) - [ ] 删除 IAM 角色和策略 **重要**:按创建顺序的相反顺序删除资源,以避免依赖关系错误。 **云网络流量分析器** - 一个专业的基于 AWS 的安全监控解决方案
标签:AMSI绕过, Apex, AWS, DPI, EC2, ECS, IaC, Lambda, Python, SecOps, Serverless, Terraform, VPC, 云安全架构, 云计算, 代码示例, 威胁检测, 安全运营, 异常检测, 扫描框架, 数据分析, 无后门, 机器学习, 流量捕获, 漏洞利用检测, 监控可视化, 网络安全, 网络拓扑, 网络流量分析, 虚拟网络, 规则引擎, 逆向工具, 隐私保护