Aravind-Arige/NETFALCON-AI-BASED-NETWORK-TRAFFIC-ANALYZER-WITH-TACTICAL-THREAT-INTELLIGENCE

GitHub: Aravind-Arige/NETFALCON-AI-BASED-NETWORK-TRAFFIC-ANALYZER-WITH-TACTICAL-THREAT-INTELLIGENCE

一款集成无监督机器学习与 MITRE ATT&CK 映射的 AI 网络流量分析平台,旨在实现从威胁检测、战术情报分析到 Windows 防火墙自动阻断的闭环防御。

Stars: 0 | Forks: 0

**NETFALCON** 是一个全面的、AI 驱动的网络流量分析平台,旨在解决传统网络监控工具中的关键缺口。与 Wireshark 等被动捕获实用程序或 Snort 等依赖签名的 IDS 平台不同,NETFALCON 结合了: - 通过 Scapy 进行**深度包检测** - **无监督机器学习**(Isolation Forest)用于零日异常检测 - **MITRE ATT&CK** 杀伤链关联,用于战役级威胁情报 - 通过 Windows Firewall 实现**自动化系统级威胁缓解** - 通过 Flask + Socket.IO 提供**实时 Web 仪表板** ## ✨ 核心功能 | 功能 | 描述 | |---|---| | 📡 **实时流量捕获** | 跨 WiFi、LAN 和以太网接口的多线程数据包嗅探 | | 📊 **实时指标** | 网络速度、平均带宽、延迟、抖动、活跃流、PPS、误码率、丢包率 | | 📈 **实时图表** | 实时数据包速率和带宽时间序列图 | | 🔍 **Top IP 通信对** | 最活跃源/目标 IP 对的动态排行榜 | | 🤖 **AI 异常检测** | Isolation Forest(无监督 ML),带有实时置信度评分 | | 🚨 **威胁检测** | 检测 SYN Flood、端口扫描、ARP 投毒、DNS 放大、SSH 暴力破解、C2 Beaconing | | 🛡️ **自动缓解** | 通过 Windows Firewall (`netsh`) 规则自动阻止攻击者 IP | | ⚔️ **杀伤链映射器** | 将相关警报分组为 MITRE ATT&CK 攻击战役 | | 📧 **智能警报调度器** | 在检测到威胁时通过 SMTP 邮件向管理员发送警报 | | 🎭 **对手模拟器** | 安全模拟 SYN Flood、端口扫描、ARP 投毒、DNS 放大、SSH 暴力破解、C2 Beaconing | | ⏳ **时间穿梭历史** | 从 SQLite 数据库重放历史网络快照 | | 🏥 **网络健康度仪** | 整体网络健康的综合视觉仪表 (0–100%) | | 🕵️ **可疑 IP 仪表板** | 带有相关威胁类型的标记 IP 实时表 | | 📁 **PCAP 文件分析** | 上传并分析离线 `.pcap` 文件 | | 📄 **报告下载** | 直接从仪表板导出分析报告 | | 🌗 **深色 / 浅色主题** | Web 界面的一键主题切换 | | 🔌 **自动接口检测** | 自动检测可用网络接口或允许手动选择 | ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ NETFALCON │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ [Network Interface] ──► [Traffic Capture Engine] │ │ │ │ │ ┌───────────────────┤ │ │ ▼ ▼ │ │ [Metrics Engine] [Threat Detection Engine] │ │ Feature Vectors ──► [Anomaly Detection Module] │ │ │ │ │ │ └────────► [Kill Chain Mapper] │ │ │ │ │ ┌───────────────────┤ │ │ ▼ ▼ │ │ [Mitigation Engine] [Alert Dispatcher] (SMTP Email) │ │ │ │ │ ▼ │ │ [Time Travel Module] ◄──► [SQLite Database] │ │ │ │ │ ▼ │ │ [Flask Web Server + SocketIO] ──► [Dashboard (Browser)] │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` ## 📁 项目结构 ``` NETFALCON/ │ ├── app.py # Flask application entry point ├── requirements.txt # Python dependencies ├── database.db # SQLite database (auto-generated) ├── .gitignore ├── pyrightconfig.json # Pyright type-checker config ├── debug_if.py # Interface debug utility ├── dos_test.py # DoS attack simulation test ├── temp_test.py # Temporary/scratch tests ├── test_alert.py # Alert pipeline tests ├── test.pcap # Sample PCAP for testing └── test2.pcap # Additional sample PCAP │ ├── alerts/ # Alert management module │ ├── __init__.py │ ├── config.py # Alert thresholds & configuration │ └── dispatcher.py # Routes & dispatches triggered alerts │ ├── analyzer/ # Core traffic analysis engine │ ├── __init__.py │ ├── database.py # DB models & query helpers │ ├── dpi.py # Deep Packet Inspection logic │ ├── engine.py # Main analysis orchestration │ ├── firewall.py # Firewall rule evaluation │ ├── metrics.py # Traffic metrics collection │ ├── mitre.py # MITRE ATT&CK technique mapping │ ├── pcap_analyzer.py # PCAP file parsing & replay │ ├── simulator.py # Traffic simulation for testing │ └── threat_intel.py # Threat intelligence feed integration │ ├── anomaly_engine/ # ML-based anomaly detection │ ├── __init__.py │ ├── engine.py # Detection pipeline orchestration │ ├── explainer.py # SHAP-based prediction explainer │ ├── feature_extractor.py # Feature engineering from raw traffic │ └── models.py # Isolation Forest model wrapper │ ├── models/ # Trained ML model artifacts (.pkl files) ├──isolation_forest.pkl | ├── static/ # Frontend static assets │ ├── style.css # Dashboard styles │ ├── landing.css # Landing page styles │ ├── script.js # Dashboard logic & API calls │ └── theme.js # Theme switching (light/dark) │ ├── templates/ # Jinja2 HTML templates │ ├── index.html # Main dashboard │ └── landing.html # Landing / home page │ ├── uploads/ # User-uploaded PCAP files (runtime) ├── Screenshots/ # Project screenshots ``` ## 🛠️ 技术栈 ### 后端 | 库 / 模块 | 角色 | |---|---| | `scapy.all` | 核心数据包捕获、解构和构建 | | `scapy.layers.dns` | 用于放大检测的 DNS 层解析 | | `scapy.layers.inet` | IP、TCP、UDP 层解析 | | `scapy.layers.l2` | ARP、以太网层解析 | | `scapy.arch.windows` | Windows 特定的接口和 Socket 处理 | | `flask` | Web 服务器和路由处理 | | `flask_socketio` | 实时 WebSocket 事件推送到浏览器 | | `sklearn.ensemble.IsolationForest` | 无监督 ML 异常检测 | | `smtplib` | SMTP 邮件警报调度 | | `sqlite3` | 时间穿梭历史数据库 | | `threading` | 多线程捕获和处理 | | `collections.defaultdict` | 用于流和 IP 跟踪的高效计数器 | | `psutil` | 系统资源和接口监控 | | `requests` | 外部威胁情报查询 | ### 前端 | 技术 | 角色 | |---|---| | HTML5 + CSS3 | 仪表板结构和主题 | | JavaScript + Chart.js | 实时图表和 DOM 更新 | | Socket.IO (client) | 来自 Flask 服务器的实时事件订阅 | | Jinja2 | 服务器端 HTML 模板渲染 | ## ⚙️ 安装 ### 前置条件 - Windows 10/11 (64-bit) - Python 3.9 或更高版本 - 已安装 [Npcap](https://npcap.com/)(Windows 上的 Scapy 数据包捕获所需) - 启用了 SMTP 的电子邮件帐户(例如,带有应用密码的 Gmail)用于警报调度 ### 1. 克隆仓库 ``` git clone https://github.com/yourusername/NETFALCON.git cd NETFALCON ``` ### 2. 创建虚拟环境(推荐) ``` python -m venv venv venv\Scripts\activate ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` **`requirements.txt`:** ``` scapy>=2.5.0 flask>=2.0.0 flask-socketio>=5.0.0 scikit-learn>=1.0.0 psutil>=5.9.0 requests>=2.28.0 ``` ### 4. 配置环境变量 在项目根目录创建一个 `.env` 文件: ``` SMTP_SERVER=smtp.gmail.com SMTP_PORT=465 SMTP_EMAIL=your_email@gmail.com SMTP_PASSWORD=your_app_password ADMIN_EMAIL=admin@yourdomain.com ``` ### 5. 运行 NETFALCON ``` python app.py ``` 打开浏览器并访问: ``` http://localhost:5000 ``` ## 🚀 使用 ### 开始分析 1. 在 `http://localhost:5000` 打开仪表板 2. 从下拉菜单中选择一个网络接口(或使用 **Auto-detect Interface**) 3. 点击 **▶ Start** 开始实时捕获 4. 状态指示器从 `● STOPPED` → `● CAPTURING` 变化 ### 停止分析 - 随时点击 **■ Stop** 以停止捕获 ### 上传 PCAP 文件 - 点击侧边栏中的 **Upload PCAP** - 选择您的 `.pcap` 文件进行离线分析 ### 模拟攻击(测试) - 点击侧边栏中的 **Threat Simulator** - 选择攻击类型和强度级别 - 启用 **Safe-Mode Sandboxing** 以将模拟限制在 `127.0.0.1` - 点击 **Launch Attack Simulation** ### 时间穿梭历史 - 点击侧边栏中的 **Time Travel & History** - 设置 **Start Time** 和 **End Time** - 点击 **Query Database** 以检索快照 - 点击 **Start 10x Playback** 以重放历史网络状态 ### 切换主题 - 点击侧边栏中的 **Switch Theme** 以在深色和浅色模式之间切换 ### 下载报告 - 点击侧边栏中的 **Download Report** 以导出当前分析会话 ## 🧩 模块 ### 1. 流量捕获引擎 多线程 Scapy 嗅探器,支持实时接口捕获 (`sniff()`) 和离线 PCAP 分析 (`rdpcap()`)。使用 `psutil.net_if_stats()` 进行接口枚举,过滤处于 UP 状态的接口。 ### 2. 指标计算模块 计算滑动窗口网络性能指标: - **带宽**: `bytes_per_second × 8 / 1,000,000` → Mbps - **延迟 / 抖动**: TCP SYN–SYNACK 时序分析;抖动 = 平均绝对偏差 - **活跃流**: 唯一的 5 元组 `(src_ip, dst_ip, src_port, dst_port, proto)` - **PPS**: 每秒标准化的滚动数据包计数 - **误码率**: TCP RST + ICMP unreachable 百分比 - **丢包**: TCP 重传和 ICMP echo reply 丢失检测 ### 3. 威胁检测引擎 针对已知攻击模式的行为规则引擎(参见 [Threat Detection](#-threat-detection))。 ### 4. AI 异常检测模块 基于实时流量特征向量持续训练的 Isolation Forest 模型(参见 [AI Anomaly Detection](#-ai-anomaly-detection))。 ### 5. 杀伤链映射器 将来自同一源 IP 的相关威胁警报关联为映射到 MITRE ATT&CK 阶段的协同攻击战役(参见 [Kill Chain Mapping](#-kill-chain-mapping))。 ### 6. 威胁缓解引擎 通过 `netsh` 与 Windows Firewall 接口,在确认威胁后自动阻止攻击者 IP。 ``` # NETFALCON 添加的示例防火墙规则: netsh advfirewall firewall add rule name="NETFALCON_BLOCK_" dir=in action=block remoteip= ``` ### 7. 智能警报调度器 通过 SMTP(SSL/TLS 端口 465 或 STARTTLS 端口 587)发送格式化的 HTML 邮件警报,内容包括:威胁类型、源 IP、目标 IP、时间戳、ATT&CK 阶段和建议的缓解措施。 ### 8. 对手威胁模拟器 使用 Scapy 的数据包构建功能,针对受监控的接口安全模拟六种攻击类型,受持续时间和数据包数量限制,并设有防止外部 IP 定位的安全互锁。 ### 9. 时间穿梭历史模块 每 60 秒将网络状态快照保存到 SQLite。支持历史范围查询和 10 倍速仪表板重放,用于取证调查。 ### 10. Web 仪表板 Flask + Jinja2 模板配合 Socket.IO 实时事件:`metrics_update`、`threat_alert`、`anomaly_score`、`campaign_update`、`health_update`。Chart.js 渲染实时数据包速率和带宽图表。 **⭐ 如果您觉得 NETFALCON 有用,请给这个仓库点个 Star!** 由 Aravind_Arige 用 ❤️ 制作 - NETFALCON, Hyderabad
标签:adversaries 模拟, Apex, ARP 欺骗, C2 通信检测, Cloudflare, DDoS 攻击检测, DNS 放大攻击, Flask, IP 地址批量处理, MITRE ATT&CK, Python, Scapy, Socket.IO, SQLite, SSH 暴力破解, SYN Flood, Web 仪表盘, Windows 防火墙, Wireshark 替代, 人工智能, 入侵检测系统, 告警系统, 威胁情报, 孤立森林, 安全数据湖, 密码管理, 开发者工具, 异常检测, 插件系统, 数据统计, 无后门, 机器学习, 杀伤链分析, 深度包检测, 用户模式Hook绕过, 端口扫描, 网络健康度, 网络安全, 网络安全分析, 网络流量分析, 自动化防御, 逆向工具, 邮箱通知, 配置错误, 防火墙管理, 隐私保护