CYC07/Bifrost-NOX

GitHub: CYC07/Bifrost-NOX

一个基于 AI 微服务架构的透明代理防火墙,通过 MITM TLS 检查和多模型内容分析实现网络流量的智能拦截与分类。

Stars: 1 | Forks: 0

# Bifrost NØX — AI 驱动的网络防火墙 ![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=for-the-badge&logo=python&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge&logo=opensourceinitiative&logoColor=white) ![Platform](https://img.shields.io/badge/Platform-Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) ![PyTorch](https://img.shields.io/badge/PyTorch-EE4C2C?style=for-the-badge&logo=pytorch&logoColor=white) ![React](https://img.shields.io/badge/React_18-61DAFB?style=for-the-badge&logo=react&logoColor=black) ![C++](https://img.shields.io/badge/C++-17-00599C?style=for-the-badge&logo=cplusplus&logoColor=white) ![Status](https://img.shields.io/badge/Status-In_Development-orange?style=for-the-badge) 一个由 AI 驱动的透明代理防火墙,利用多层专用机器学习微服务管道,实时拦截、检查和分类网络流量。本项目作为毕业设计(Final Year Project)开发。 ## 概述 Bifrost NØX 部署在 Wi-Fi 热点和互联网之间,通过 MITM 代理和 iptables 数据包捕获拦截 HTTP 和 HTTPS 流量。每个请求在返回 ALLOW / BLOCK / CENSOR(允许/阻止/审查)判定前,都会被一个或多个 AI 微服务(图像分类、文档扫描和 NLP)进行毫秒级分析。 ``` Device (phone/laptop) │ ▼ Wi-Fi Hotspot (wlan1) │ iptables REDIRECT / NFQUEUE ▼ C++ Firewall Engine ◄──ZeroMQ IPC──► AI Brain (Python) │ │ ▼ ▼ MITM Gateway (:8080) Master AI Orchestrator (:8000) TLS interception ┌──────────────────────────┐ SNI extraction │ Image Service (:8001) │ Allowlist bypass │ Document Service(:8002) │ │ Text Service (:8003) │ └──────────────────────────┘ │ ▼ Dashboard (localhost:8000) ``` ## 功能特性 - **透明 HTTPS 拦截** — 具有按域名生成证书功能的 MITM 代理;当作为热点网关部署时,无需进行客户端配置 - **AI 内容分析** — 使用 CLIP + YOLOv8 进行图像 NSFW/目标检测;使用 YARA + VirusTotal 哈希查询 + 结构异常检测(Isolation Forest)+ 元数据取证分析文档;使用 Presidio + sentence-transformers 检测文本中的 PII(个人身份信息)、API 密钥泄露和 SQL 注入 - **静态规则引擎** — 在 AI 推理之前评估的 IP/端口/域名/关键字规则;可通过仪表板进行配置 - **证书固定(cert-pinned)应用的允许列表** — WhatsApp、Snapchat、Signal、Telegram 以及其他任何固定其 TLS 证书的应用都可以被加入允许列表,直接建立隧道通行而不受检查;如果 MITM 失败,所有其他应用默认被阻止 - **实时仪表板** — 实时 KPI 卡片、威胁源、流量图表、规则管理以及位于 `http://localhost:8000` 的 AI 文件接收功能 - **C++ 数据包引擎** — 具有 10 秒流缓存的 NFQUEUE 处理程序;默认故障开放(fail-open),确保网络访问永远不会被完全阻断 - **VirusTotal 集成** — 对每个扫描的文档进行 SHA-256 哈希查询;可选功能(在 `.env` 中设置 `VIRUSTOTAL_API_KEY`);无密钥时故障开放,确保服务在无密钥情况下仍可正常运行 - **仅主机代理绑定** — MITM 代理会自动检测热点接口 IP 并仅绑定到该接口,确保防火墙主机自身的流量永远不会被拦截 ## 系统架构 | 层级 | 组件 | 端口 / IPC | |---|---|---| | 数据包捕获 | `network_inspector/cpp/firewall_engine` | NFQUEUE 1 | | AI 桥接 | `network_inspector/ai_brain.py` | ZMQ `ipc:///tmp/firewall_pipeline` | | MITM 代理 | `gateway/proxy.py` + `mitm_engine.py` | :8080 | | 协调器 | `master_ai/orchestrator.py` | :8000 | | 图像 AI | `image_service/main.py` | :8001 | | 文档 AI | `document_service/main.py` | :8002 | | 文本 AI | `text_service/main.py` | :8003 | | 仪表板 | `dashboard/` | 由协调器在 `/` 提供服务 | ## 安装说明 ``` # Clone the repo git clone https://github.com/CYC07/Bifrost-NOX.git cd Bifrost-NOX # System dependencies (Debian / Kali / Ubuntu) sudo apt update && sudo apt install -y \ tesseract-ocr \ libnetfilter-queue-dev \ build-essential \ g++ \ libzmq3-dev \ python3-dev \ python3-venv # Python 环境 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # Build C++ engine cd network_inspector/cpp && make && cd ../.. # 生成本地 CA 证书 (HTTPS 拦截所需) cd gateway && python3 cert_utils.py && cd .. ``` ## 运行方式 ### 完整堆栈(热点模式) 需要一个处于 AP 模式的 Wi-Fi 适配器(`wlan1`)。首先启动热点,然后运行: ``` source venv/bin/activate ./start_all.sh ``` ### 仅网关 + AI 服务(无热点) 用于检查本地机器上的流量或手动路由流量: ``` source venv/bin/activate # Terminal 1 — AI microservices uvicorn master_ai.orchestrator:app --host 0.0.0.0 --port 8000 & uvicorn image_service.main:app --host 0.0.0.0 --port 8001 & uvicorn document_service.main:app --host 0.0.0.0 --port 8002 & uvicorn text_service.main:app --host 0.0.0.0 --port 8003 & # Terminal 2 — MITM proxy python3 gateway/proxy.py ``` 然后将您的浏览器或系统代理设置为 `127.0.0.1:8080`。 ### 停止所有服务 ``` sudo ./stop_all.sh ``` ## 仪表板 启动堆栈后,在浏览器中打开 `http://localhost:8000`。 | 页面 | 描述 | |---|---| | 概述 | 实时 KPI 卡片、威胁源、被阻止事件图表 | | 流量 | 吞吐量图表、协议细分、最近流量 | | 规则与策略 | 静态规则引擎 — 添加/移除 IP、端口、域名、关键字规则;管理应用允许列表 | | 威胁 | 带有严重程度和置信度的 AI 分类威胁日志 | | 日志 | 来自所有服务的原始事件流 | | 设备 | 所有 AI 微服务的健康状态 | | 报告 | 会话摘要和导出 | | AI 接收 | 拖拽式文件分析(图像、PDF、文档) | ## 允许列表(证书固定应用) 像 WhatsApp、Snapchat、Signal 和 Telegram 这样的应用会固定其 TLS 证书,并将拒绝代理本地签名的证书。如果没有允许列表条目,这些连接默认会被**阻止**,并在仪表板上记录为 `PINNED-TLS`。 要允许它们免检通过,请使用“允许列表”面板在**规则与策略**页面上添加主机模式,或通过 API 操作: ``` # 添加 host curl -X POST http://localhost:8000/allowlist \ -H "Content-Type: application/json" \ -d '{"host": "*.whatsapp.net"}' # 列出已加入白名单的 host curl http://localhost:8000/allowlist # 移除 host curl -X DELETE http://localhost:8000/allowlist/*.whatsapp.net ``` 仪表板中提供了针对 WhatsApp、Snapchat、Signal、Telegram 和 iMessage 的预设按钮。 ## VirusTotal 集成 文档服务会计算每个扫描文件的 SHA-256 哈希值,并查询 VirusTotal API。不会上传任何文件字节——仅哈希查询可保护隐私并将延迟保持在较低水平(缓存命中时约 200-500 毫秒)。 | 场景 | 分数 | 判定 | |---|---|---| | VT 报告 ≥ 1 个恶意引擎 | 0.99 | BLOCK | | VT 报告 0 次检测 | 0.0 | 传递给 YARA | | 文件不在 VT 数据库中 (404) | 0.0 | 传递给 YARA | | API 不可用 / 未设置密钥 | 0.0 | 传递给 YARA | 要启用此功能,请将您的密钥添加到项目根目录的 `.env` 文件中(该文件已被添加到 .gitignore): ``` echo "VIRUSTOTAL_API_KEY=your_key_here" > .env ``` `./start_all.sh` 会自动加载它。如果没有密钥,服务将仅使用 YARA 检测运行。 ## 网络拓扑(热点模式) | 项目 | 值 | |---|---| | 热点 SSID | FYP-AI-Firewall | | 子网 | 192.168.50.0/24 | | 网关 | 192.168.50.1 | | 代理端口 | 8080 | | 互联网上行链路 | `eth0` 或 USB 网络共享 | ## 项目结构 ``` ai_firewall/ ├── common/ # Shared schemas, utilities, allowlist module ├── config/ # Persisted rules and allowlist (JSON) ├── dashboard/ # React 18 + Babel frontend (served by orchestrator) ├── document_service/ # YARA + VirusTotal, metadata forensics, structural anomaly, content keywords ├── gateway/ # MITM proxy, TLS engine, certificate authority ├── image_service/ # CLIP, YOLOv8, Tesseract OCR ├── master_ai/ # Orchestrator, rule engine ├── network_inspector/ # C++ NFQUEUE engine + Python ZMQ bridge ├── text_service/ # Presidio PII, sentence-transformers, SQLi ├── start_all.sh # Start full stack ├── start_network.sh # iptables + C++ engine + AI brain ├── stop_all.sh # Stop everything └── requirements.txt ``` ## 技术栈 **AI / ML:** PyTorch · CLIP · YOLOv8 (ultralytics) · Tesseract OCR · sentence-transformers · Presidio · YARA · VirusTotal API · scikit-learn (Isolation Forest) **后端:** Python 3.11 · Starlette · uvicorn · httpx · ZeroMQ · cryptography **网络:** iptables · NFQUEUE · C++17 · libnetfilter-queue · Scapy **前端:** React 18 · Babel standalone · 定制 CSS 设计系统(无框架) ## 许可证 MIT — 详见 `LICENSE` 文件。
标签:AI防火墙, AWS, C++, CLIP模型, DLP, DPI, HTTPS解密, iptables, IP 地址批量处理, NFQUEUE, NLP, Presidio, Python, PyTorch, React, Syscalls, TLS拦截, YOLOv8, ZeroMQ, 中间人攻击, 人工智能, 内容审查, 凭据扫描, 图像分类, 威胁情报, 安全网关, 实时仪表盘, 对抗攻击, 开发者工具, 微服务架构, 恶意流量检测, 敏感信息检测, 数据擦除, 无后门, 毕业设计, 流量监控, 深度包检测, 用户模式Hook绕过, 白名单, 目标检测, 网络安全, 网络安全分析, 网络流量分析, 计算机视觉, 证书固定, 逆向工具, 透明代理, 隐私保护