tanishq107/network_attack_detection_system

GitHub: tanishq107/network_attack_detection_system

NADE 是一个混合网络攻击检测引擎,结合 Python 启发式检测与 Suricata IDS,对 PCAP 文件或实时流量进行分析,并将告警映射到 MITRE ATT&CK 框架以生成可视化报告。

Stars: 0 | Forks: 0

NADE — Network Attack Detection Engine

# NADE — 网络攻击检测引擎 一个独立的网络安全分析平台,能够接入 **PCAP 文件** 或**实时流量**,运行混合检测栈(Python 启发式检测 + 真正的 **Suricata** IDS),将发现映射到 **MITRE ATT&CK**,并通过具有浅色和 深色主题的现代 React 仪表板生成 **JSON / HTML / PDF** 报告。 ## 亮点 - **PCAP 上传 + 实时嗅探器** — 选择一个接口,设置可选的 BPF 过滤器,并实时观察警报出现。随后捕获的流量可以 下载为 PCAP。 - **混合检测** — Python 检测器(端口扫描、SYN flood、DNS 隧道、 暴力破解、信标通信、ARP 欺骗、恶意软件流量)与真正的 Suricata IDS 并行运行,以提供基于特征的覆盖。 - **Suricata 规则管理器** — 查看内置规则、编写自己的规则,或从 URL / 粘贴文本中导入。可以单独切换规则的启用或禁用状态。 - **报告** — 执行摘要、IOC 列表、MITRE 技术映射, 每个警报的详细信息。以 HTML 格式呈现,可下载为 JSON 或 PDF。 - **仪表板** — 总计、严重程度甜甜圈图、类别条形图、警报 时间轴,以及带有严重程度标签的警报表格。图表会随 UI 主题自动切换。 ## 快速开始 ### 1. 后端 ``` cd backend python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # macOS brew install suricata # Debian/Ubuntu sudo apt install suricata cd .. sudo backend/.venv/bin/uvicorn backend.api.main:app --reload --port 8000 ``` 交互式 API 文档位于 **http://localhost:8000/docs**。 ### 2. 前端 仪表板需要 **Node.js 18+**(自带 `npm`)。如果尚未 安装,请在每台机器上安装一次: ``` # macOS (Homebrew) brew install node # Debian / Ubuntu sudo apt update && sudo apt install -y nodejs npm ``` 验证: ``` node -v # should print v18.x or newer npm -v ``` 然后安装项目的 JS 依赖并启动开发服务器: ``` cd frontend npm install npm run dev # http://localhost:5173 (proxies /api → :8000) ``` 生产构建: ``` npm run build # output in frontend/dist ``` ## REST API ### 上传 | 方法 | 路径 | 描述 | | -------- | ----------------------------------- | ---------------------------------- | | `POST` | `/api/upload` | multipart PCAP 上传 | | `GET` | `/api/uploads` | 列出上传 | | `DELETE` | `/api/uploads/{id}` | 级联删除 + 移除存储的文件 | | `GET` | `/api/uploads/{id}/download` | 流式传输存储的 PCAP | ### 分析 | 方法 | 路径 | | ------ | ----------------------------------------------------- | | `GET` | `/api/alerts?upload_id=&limit=` | | `GET` | `/api/summary?upload_id=` | | `GET` | `/api/timeline?upload_id=&buckets=` | ### 报告 | 方法 | 路径 | | ------ | ------------------------------------------------------- | | `GET` | `/api/report/{upload_id}?format=html\|json\|pdf` | ### Suricata 规则 | 方法 | 路径 | 描述 | | -------- | ----------------------------- | --------------------------------- | | `GET` | `/api/rules` | 列表 | | `POST` | `/api/rules` | 创建自定义规则 | | `PATCH` | `/api/rules/{id}` | 启用 / 禁用 | | `DELETE` | `/api/rules/{id}` | 删除(仅限非内置规则) | | `POST` | `/api/rules/import` | `{ url? , text? , source_label }` | | `POST` | `/api/rules/run/{upload_id}` | 在存储的 PCAP 上运行 Suricata | ### 实时嗅探器 | 方法 | 路径 | 描述 | | ------ | ----------------------- | -------------------------------------------- | | `GET` | `/api/live/interfaces` | 列出可用的 NIC | | `GET` | `/api/live/status` | 当前嗅探器 + Suricata 状态 | | `POST` | `/api/live/start` | `{ interface, bpf_filter?, with_suricata }` | | `POST` | `/api/live/stop` | 停止 + 结束 PCAP 录制 | ## 检测模块 | 模块 | 检测内容 | | ------------------ | --------------------------------------------------------- | | `port_scan` | 单一来源发往大量唯一目标端口的高扇出 | | `syn_flood` | 针对单一目标的高速率 TCP SYN 突发 | | `dns_tunneling` | 过长 / 高熵的 DNS 标签,超大的 TXT 记录 | | `brute_force` | 重复的认证尝试(SSH, FTP, RDP, HTTP basic) | | `beaconing` | 周期性的出站连接(标准端口已过滤) | | `arp_spoof` | 多个 MAC 地址声明拥有相同的 IP | | `malware_traffic` | IOC 列表匹配(域名 / IP / JA3) | 每个检测器返回的警报均包含严重程度、MITRE 技术 ID 和证据。 ## 故障排除 - **实时嗅探器失败并提示“权限拒绝” / “无法设置 caps”** — 请使用 `sudo` 运行 uvicorn 或授予 `cap_net_raw` 权限(参见快速开始)。UI 会显示带有确切命令的红色横幅。 - **重新运行 Suricata 会重复生成警报** — 已修复;在重新插入之前,同一上传项之前的 `suricata:%` 行已被删除。 - **`Download PCAP` 返回 `409`** — 有实时会话仍在写入 该文件。请先停止它。 - **刷新按钮“无反应”** — 每个列表端点都已进行了缓存清理 (`?_=` + `cache: 'no-store'`);请使用选项卡专属的刷新按钮, 该按钮拥有独立于后台轮询的加载指示器。
标签:GitHub搜索工具, IP 地址批量处理, Metaprompt, MITM代理, Python, React, Suricata, Syscalls, 插件系统, 无后门, 现代安全运营, 网络安全, 逆向工具, 隐私保护