andreypwebgit/outbound-connections-monitor

GitHub: andreypwebgit/outbound-connections-monitor

面向安全分析师的 Windows 出站连接手动扫描工具,通过进程谱系、哈希、签名、基线和可解释风险引擎提供深度的网络取证上下文。

Stars: 1 | Forks: 0

# 出站连接监控器 (OCM) 为网络安全分析师和 *Threat Hunters* 提供 Windows 系统出站连接的人类可读可见性与高级技术上下文。 ## 🏗 当前架构 (v0.4) 本项目在设计时严格遵循操作简便性原则,避免技术过载("bloatware")。它遵循 **Zero Trust**(零信任)原则。 * **Core Backend (Rust):** 负责繁重的处理逻辑、安全的内存管理以及与操作系统的原生交互。纯模块包括: * `Collector`:使用系统命令和 WMI 捕获原生网络状态(当 WMIC 不存在时使用 CIM 作为回退)。 * `Enricher`:高级进程解析、谱系 (PPID)、命令行提取、文件物理标识(`file_id`、`volume_serial`)、加密验证 (SHA-256) 以及签名状态(Authenticode embedded/catalog)。 * `Identity Cache`:双层缓存(SQLite + 每次 scan 的内存),如果文件未更改,则避免重新计算 hash 和签名,并检测内容更改(`hash_changed`)从而触发重新验证。 * `Baseline Manager`:完整的状态机(`Unknown → Candidate → Baseline_Provisional → Baseline_Consolidated`,手动验证后的 `Observed_Local`,更改时的 `Revalidation_Required`,针对严重发现的 `Potentially_Dangerous`),通过信号进行谨慎提升,绝不盲目重复。 * `Affinity Engine`:针对每个二进制文件(hostname、根域名、端口、重复模式)的网络亲和力与历史配置文件进行比对,并在重新验证时继承历史记录。 * `Risk Engine`:可解释的启发式风险引擎,包含提高和**降低**风险的信号、可追溯的 reason codes 以及对 "Living off the Land" 战术的检测。 * `Storage (SQLite)`:完整的持久化存储(scans、observations、identities、trust、baseline、affinity profiles、risk decisions、manual decisions 和 audit events),支持幂等迁移。 * `Exporter`:导出 JSON(contract shape)和独立的 HTML,可从持久化的 scan 中重现。 * **Presentación / Desktop (Tauri 2):** 作为图形界面与操作系统之间的轻量级桥梁,允许生成小巧且独立的二进制文件,通过实时事件进行异步通信。 * **Frontend UI:** * 语义化 HTML5 和原生的模块化 **ESM** Vanilla JavaScript(`api.js`、`state.js`、`render/*`)。**零 SPA 框架依赖 (React/Vue/Angular)**。 * **Tailwind CSS v4** 用于实现响应式、高度优化且现代的设计系统。 ## ✨ 功能与取证上下文 (v0.4) * **带 UX 反馈的 "On-Demand" 扫描:** 捕获 TCP/UDP 连接的快照,界面将 backend 的异步进度实时传达给用户。 * **身份缓存:** 只要文件未更改,hash 和签名即可在 scans 之间重用(键值 `volume_serial + file_id + file_size + last_write_time`);contract 公开 `hash_source: cache|fresh`。内容更改将触发自动的 baseline 重新验证。 * **基于状态的 Baseline 与手动决策:** 本地验证二进制文件(`Candidate → Observed_Local`)并直接从 UI 接受重新验证,且具有持久化的审计跟踪。 * **网络亲和力:** 将每个目标与二进制文件的历史模式(相同的 hostname、相同的根域名、常用端口、重复模式)进行比对,并生成可解释的信号以馈送至 score。 * **扫描历史记录:** 持久化的 scans 可以从 UI 中重新打开,并与 contract 保持完全一致。 * **导出 JSON 和 HTML:** 可从持久化数据重现的报告,独立且严谨,位于 `exports/` 文件夹中。 * **谱系与执行上下文:** 父进程、完整的**命令行**、**用户**以及进程启动的时刻。 * **反向 DNS 解析 (Hostname):** 将远程 IP 转换为域名(以及派生的根域名),为目标提供上下文。 * **高级启发式智能:** *Risk Engine* 会对 Office(`winword.exe`)的子网络进程、系统脚本或命令行混淆(例如 `-enc`、`-bypass`)进行扣分,并对有效签名、consolidated baseline 和高亲和力给予加分。 * **系统例外(Protected Processes):** 识别受高度保护的 Kernel 进程(`System`、`MsMpEng.exe`),通过解释为什么无法获取其 hash 或磁盘路径来避免误报。 * **技术审计:** 内部事件(`scan_started`、baseline 转换、hash/persistence 错误、exports)记录在 `audit_events` 中。 * **关键领域测试:** 70 项测试(JSON contract、scoring、baseline 转换、affinity、identity cache、路径分类以及 SQLite 集成)。 ## ⚙️ 执行要求(开发环境) 1. **操作系统:** Windows 10/11。 2. **Node.js / npm:** 用于解析设计 (Tailwind) 和 Tauri CLI。 3. **Rust Toolchain:** `rustup` 安装程序,提供 `cargo` 和 Rust 编译器。 4. **C++ Build Tools:** Visual Studio 的原生编译工具。 **快速执行:** 在项目根目录下,以**管理员身份**打开 **PowerShell** 终端(这对于审计 PPL / SYSTEM 进程至关重要)。 ``` # 安装 web 依赖 (Tailwind) npm install # 以开发模式启动应用程序 npx tauri dev ``` **生产环境 Build(可分发安装程序):** ``` npx tauri build ``` 在 `src-tauri/target/release/bundle/` 中生成 **MSI** 和 **NSIS** 安装程序, 可以在任何没有 Rust 或 Node 的 Windows 10+ 上通过双击进行安装。 详情、目标计算机要求及数据位置请参阅 [docs/build-and-distribution.md](docs/build-and-distribution.md)。 ## 🚀 演进路线图与潜在改进 尽管 OCM 已经提供了强大的战术能力,但以下是一些进一步提升其网络安全成熟度的途径: ### 1. 原生 API(极致性能) * 用对 `IPHLPAPI.DLL`、`EnumProcesses` 的调用以及对 Windows 加密 API (`WinVerifyTrust`) 的直接验证来替代间接调用。这会将执行时间缩短至毫秒级,并增强对干扰系统二进制文件的恶意软件的抵御能力。 ### 2. Threat Intelligence (IoCs) 集成 * **第三方 API:** 将远程 IP 和未知 hash 连接到 **VirusTotal** 和 **AbuseIPDB** 等数据库,以验证连接是否属于已知的 *botnet*。 * **YARA 规则与 MITRE ATT&CK:** 将 *Risk Engine* 生成的 `reason_codes` 映射到 MITRE ATT&CK 框架的官方战术和技术,以实现更标准化的报告。 ### 3. AI 驱动的诊断 * **本地/云端模型 (LLM):** 将收集到的取证快照(hash、ppid、cmdline)发送到在网络安全方面训练有素的 AI 模型,以获得关于进程为何可能是恶意或良性的叙述性解释,充当分析的第二副驾驶。 ### 4. 常驻模式(EDR Agent) * **后台/托盘应用:** 允许应用程序最小化到系统托盘,并使用 `ETW` (Event Tracing for Windows) 静默收集遥测数据,从而捕获临时连接,而无需依赖手动快照扫描。 ### 5. CI 中的 Build 自动化 * `.msi` / `.exe` 安装程序已可通过 `npx tauri build` 在本地生成(参见 [docs/build-and-distribution.md](docs/build-and-distribution.md))。下一步是使用 GitHub Actions 将其自动化,并添加代码签名以消除 SmartScreen 警告。 ## 📄 许可证 本项目基于 [MIT](LICENSE) 许可证分发。
标签:API接口, DNS 反向解析, Rust, SQLite, Tauri, Windows桌面应用, 可视化界面, 知识库安全, 端点安全, 网络流量审计, 补丁管理, 进程分析, 通知系统