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, 网络流量分析, 自定义脚本, 防御绕过