deagonlol/PacketEye

GitHub: deagonlol/PacketEye

一款 Wireshark 风格的 AI 驱动桌面流量分析应用,在本地解析 pcap 文件并通过确定性引擎与 AI 生成威胁检测报告。

Stars: 0 | Forks: 0

# PacketEye AI 驱动的网络流量分析器 —— 一个 Wireshark 风格的**桌面应用**,它可以打开 `.pcap`/`.pcapng` 捕获文件,在本地进行解析,运行确定性的威胁检测 引擎,并在此之上叠加 AI 威胁报告和聊天功能。 所有解析都在**你的机器上**完成。只有紧凑的几 KB 大小的摘要 —— 绝不是原始 数据包 —— 会被发送给 AI。 ## 功能 - **威胁检测** — 明文凭证(Telnet/FTP/HTTP Basic/SNMP)、不安全的 协议、脆弱/过时的 TLS、端口扫描、主机/ICMP 扫描、ARP 欺骗、恶意 DHCP、 DNS 隧道、LLMNR/NBT-NS 暴露、NXDOMAIN 激增、C2 信标活动等等 — 每一项都包含 严重程度、受影响的主机、可点击的数据包证据、修复建议以及 MITRE ATT&CK 参考。 - **仪表盘** — 数据包/字节/主机/时长统计、按严重程度分类的发现、协议 细分、流量随时间变化图以及主要通信者 (top talkers)。 - **会话** — 带有 TCP 状态的可排序/可过滤的 5 元组流表。 - **协议** — DNS / HTTP / TLS 细分(查询的域名 + NXDOMAINs,包含 方法/主机/UAs 的请求,带有版本/密码套件的 SNIs)。 - **数据包** — 虚拟化的 Wireshark 风格表格,带有显示过滤器、解码的层 树以及十六进制/ASCII 转储。 - **AI 报告** — 流式、分段的 Markdown 威胁评估(Groq)。可导出为 Markdown(发现项 + AI 评估)。 - **聊天** — 提出关于该捕获文件的后续问题。 ## 技术栈 Electron + electron-vite + React 19 + TypeScript + Tailwind。一个纯 TypeScript 的 pcap/pcapng 解析器和协议解析器(没有 `tshark`/`libpcap` 依赖)运行在 Node worker 线程中。AI 功能通过 Vercel AI SDK + `@ai-sdk/groq` 实现,从主进程调用,因此 API key 永远不会到达渲染进程。 ## 快速开始 ``` npm install npm run make-samples # writes synthetic test captures into ./samples npm run dev # launch the app (electron-vite) ``` 打开 `samples/mixed-threats.pcap`,查看在植入了威胁的合成 捕获文件上进行的全面检测。 ### AI(可选) 报告和聊天功能使用 [Groq](https://console.groq.com/keys)(最便宜/最快,需自备 你的专属 key)。打开 **Settings**,粘贴你的 `gsk_…` key,选择一个模型 (默认为 `llama-3.1-8b-instant`),并可选择性地开启 payload 脱敏。检测 和所有的检查功能在没有 key 的情况下也能完全正常工作。 ## 脚本 | 脚本 | 作用 | |--------|--------------| | `npm run dev` | 在开发模式下启动应用 | | `npm run build` | 构建 main/preload/renderer bundles | | `npm test` | 运行 Vitest 测试套件(解析器、检测、健壮性、报告、AI 连线) | | `npm run make-samples` | 在 `./samples` 目录中生成合成的 `.pcap` 固件 | | `npm run make-fixture` | 重新生成浏览器预览的数据固件 | | `npm run dist` | 通过 electron-builder 打包安装程序 | ## 架构 ``` Main process window/menu, file dialogs, settings (userData/settings.json), Groq streaming over IPC, Markdown report export Parser worker streaming pcap/pcapng parse; owns the packet index, flow table, stats, app-layer summaries, and findings; answers paged/filtered packet queries and lazy hex/detail by file offset Renderer sandboxed React UI (contextIsolation on) via a typed preload bridge ``` 源码布局: - `src/shared/pcap/` — 读取器 (`parse.ts`, `reader.ts`),解析器 (`dissect/`),流 追踪器 (`flows.ts`),统计数据 (`analyze.ts`),以及纯分析核心 (`analyze-capture.ts`)。 - `src/shared/detect/` — 确定性检测规则 (`rules.ts`)。 - `src/main/` — 窗口/IPC (`index.ts`),worker 宿主 (`capture-service.ts`),设置, 报告导出,以及 AI (`ai/`)。 - `src/renderer/src/` — React 应用 (`views/`, `components/`, `store.ts`)。 - `scripts/` — 合成捕获生成器 (`scenarios.ts`, `make-sample-pcaps.ts`)。 ### 浏览器预览 `npm run make-fixture` 会写入 `src/renderer/src/lib/sample-analysis.json`,让 渲染器 UI 能够在普通浏览器中 (`vite --config vite.preview.config.ts`) 通过对 preload API 的模拟,基于真实的 分析数据运行 — 非常适合在无需启动 Electron 的情况下进行快速 UI 迭代。 ### 后续步骤 添加一个实时的网络流量分析器,以便在威胁发生的瞬间进行实时缓解。
标签:AI威胁检测, IP 地址批量处理, 威胁情报, 密码管理, 开发者工具, 桌面应用, 网络流量分析, 自动化攻击, 防御绕过