narain-karthik/AetherSniff

GitHub: narain-karthik/AetherSniff

一款基于 Web 的实时网络流量分析仪表板,结合有状态入侵检测和本地 Ollama AI 引擎,提供数据包捕获、威胁检测与智能修复建议。

Stars: 0 | Forks: 0

# AetherSniff 🚀 ### 实时基于 Web 的 Wireshark 分析与有状态 AI 威胁分析师 AetherSniff 是一个最先进的单页应用(SPA)仪表板,它将原始网络遥测数据与有状态的威胁情报和本地 AI 助手连接起来。它为数据包捕获提供了实时可视化界面,可自动检测入侵向量,并通过本地 Ollama 集成生成详细的修复指南。 ## 🏗️ 系统架构 AetherSniff 通过一个轻量级的 Node.js 事件桥接器运行,该桥接器使用活动的 `tshark` 捕获循环或被动追踪 Wireshark GUI 日志文件来与网络接口进行交互。 ``` flowchart TD subgraph Network Data Sources tshark["TShark Spawn Processes (Active Capture)"] wireshark["Wireshark GUI + Lua Plugin (Passive Mode)"] end subgraph Node.js Backend Bridge server["server.js (Express & WebSockets)"] ids["security_engine.js (Stateful IDS Engine)"] server_log["stream_log.json"] pcap_temp["temp_capture.pcap"] wireshark -->|Lua JSON stream| server_log server_log -->|fs.watch| server tshark -->|stdout streaming| server tshark -->|Raw pcap storage| pcap_temp end subgraph local_AI_Engine ["Local AI Engine"] ollama["Ollama Server (127.0.0.1:11434)"] end subgraph Frontend_SPA ["Frontend Single Page Application (SPA)"] app["index.html + app.js (Tailored Dark Theme)"] chart["Chart.js (Volume & Protocols)"] audio["Web Audio API (Alert Chimes)"] end server <-->|WebSocket Connection| app server <-->|HTTP POST /api/generate| ollama ids -->|Stateful Threat Analysis| server tshark -->|On-demand dissection| server app -->|Interactions & Charts| chart app -->|Sound Synth| audio ``` ## ✨ 功能 - **统一的单页应用 (SPA)**:零重载界面,可在不同视图间保留图表、流连接状态和分析窗口。 - **主动与被动捕获**: - **主动捕获**:在后台启动 `tshark` 来捕获数据包,写入原始 pcap 文件,并流式传输摘要。 - **被动 GUI 捕获**:通过自定义的 Lua tap 监听器脚本与标准 Wireshark 桌面 GUI 集成。 - **有状态入侵检测系统 (IDS)**:评估网络异常、端口扫描、SYN 泛洪、ARP 欺骗和 DNS 隧道。 - **Ollama AI 集成**:使用本地模型(例如 `llama3`、`phi3`、`tinyllama`)实时分析网络数据包和威胁 payload,并将修复步骤直接流式传输到仪表板。 - **协议解析树**:按需查询并显示完整的解析后数据包元数据块,镜像 Wireshark 的 GUI 面板。 - **声音警告系统**:通过 Web Audio API 合成器振荡器发出基于严重程度的警告。 ## 📋 要求 在开始之前,请确保您已安装以下内容: 1. **Node.js**(v18.x 或更高版本) 2. **Wireshark**(必须在路径中包含 `tshark.exe`,默认为:`C:\Program Files\Wireshark\tshark.exe`) 3. **Ollama**(在本地 `http://127.0.0.1:11434` 上运行) ## ⚙️ 安装与设置 ### 1. 克隆并安装依赖项 导航到 `backend/` 目录并安装所需的 Node.js 包: ``` cd backend npm install ``` ### 2. 配置 Wireshark GUI Lua 插件(可选,用于被动模式) 如果您希望从原生 Wireshark GUI 而不是 Web 界面流式传输实时流量: 1. 将 `extension/web_stream_plugin.lua` 复制到您的 Wireshark 插件目录: * **Windows**: `%APPDATA%\Wireshark\plugins\` * **macOS/Linux**: `~/.local/lib/wireshark/plugins/`(或检查 Wireshark 帮助 > 关于 > 文件夹)。 2. 打开该 Lua 文件并验证 `log_path` 是否指向您项目的 `stream_log.json` 文件的正确位置。 3. 启动 Wireshark GUI——您将看到一条确认控制台消息:`[Web Stream Extension] Loaded`。 ### 3. 设置本地 Ollama 模型 确保您已下载至少一个 Ollama 模型。如果您的计算机受限于 RAM,我们推荐使用 `llama3` 或像 `tinyllama` 这样的轻量级模型: ``` ollama pull llama3 ollama pull tinyllama ``` ## 🚀 运行平台 ### 启动服务器 运行后端 Node.js 桥接服务器: ``` cd backend node server.js ``` ### 访问仪表板 打开您的 Web 浏览器并访问: ``` http://localhost:3000/ ``` ### 捕获流量 * **通过 Web 仪表板(推荐)**:从右上角的下拉菜单中选择一个接口,然后点击 **Start Capture**。点击任何数据包以检查其原始头部。 * **通过 Wireshark GUI**:启动您的 Wireshark 应用程序并选择一个接口。数据包将自动从 GUI 流式传输到您的浏览器仪表板。
标签:AI风险缓解, GNU通用公共许可证, MITM代理, Node.js, Wireshark, 入侵检测系统, 句柄查看, 威胁情报, 安全可视化, 安全数据湖, 开发者工具, 本地AI, 网络流量分析, 自定义脚本, 防御绕过