levvedrov/Voidwatch

GitHub: levvedrov/Voidwatch

Voidwatch 是一款结合规则引擎与随机森林分类器的轻量级端点安全监控系统,用于实时采集进程与网络遥测数据并进行 MITRE ATT&CK 映射的风险评分。

Stars: 0 | Forks: 0

# Voidwatch 端点安全监控系统。一个轻量级 agent 在受监控的机器上运行,每 5 秒收集一次进程和网络遥测数据,并将其发送到后端;后端使用混合规则引擎 + ML 分类器对每个进程进行评分。威胁会显示在桌面仪表板中。 ## 架构 ``` Agent (Python) └─ collects process + network telemetry every 5s └─ POST /telemetry → Backend Backend (FastAPI + SQLite) └─ rule engine (MITRE-mapped scoring) └─ RandomForest classifier └─ alert deduplication (10-min window) └─ REST API → Dashboard Dashboard (Electron) └─ starts backend + agent automatically on launch └─ Dashboard, Processes, MITRE ATT&CK views ``` ## 环境要求 - Python 3.11+ - Node.js 18+ ``` pip install -r requirements.txt cd dashboard && npm install ``` ## 运行 ``` cd dashboard npm start ``` 仪表板会自动启动后端(端口 8000)和 agent。首次启动时,请预留约 3 秒的时间用于 ML 模型训练。 ## 身份验证(可选) 在运行后端的机器和所有运行 agent 的机器上设置 `VOIDWATCH_API_KEY`: ``` # Windows $env:VOIDWATCH_API_KEY = "your-secret-key" # Linux / macOS export VOIDWATCH_API_KEY="your-secret-key" ``` 如果未设置该变量,API 将接受所有请求(适用于本地/受信任的网络)。 ## 风险评分 每个进程使用以下四个组成部分进行 0–150 分的评分: | 组成部分 | 描述 | |---|---| | 基础分 | 规则引擎 —— 映射 MITRE 的检测项(PowerShell 滥用、LOLBins、持久化等) | | 关联加成 | 行为链 —— 例如:Office 应用程序生成带有网络活动的编码 PowerShell | | 置信度修正值 | 根据指标强度和进程上下文向上/向下调整分数 | | 上下文修正值 | 父进程类型和执行路径 | 当分数 ≥ 25 时会生成警报。风险等级:LOW / MEDIUM / HIGH / CRITICAL / SEVERE。 ## ML 分类器 在合成的带标签进程数据上训练的 RandomForest。用于补充(而非替代)规则引擎。每次训练运行时,控制台都会打印精确率/召回率/F1 指标。 若要手动重新训练: ``` cd backend python -c "from classifier import classifier; classifier.train()" ``` ## API 端点 如果设置了 `VOIDWATCH_API_KEY`,所有端点都需要 `X-API-Key` 请求头。 | 方法 | 路径 | 描述 | |---|---|---| | POST | `/telemetry` | 接收 agent 遥测批次数据 | | GET | `/agents` | 列出已注册的 agent | | GET | `/processes` | 列出已收集的进程 | | GET | `/alerts` | 列出生成的警报 | | GET | `/timeline` | 警报事件时间线 | ## 项目结构 ``` agent/ main.py — entry point, collect loop telemetry.py — TelemetryEvent dataclass process_collector.py network_collector.py sender.py — HTTP POST to backend config.py — SERVER_URL, API_KEY, AGENT_ID backend/ main.py — FastAPI app entry point api.py — REST endpoints, auth, deduplication scoring.py — rule engine + correlation engine classifier.py — RandomForest classifier + metrics features.py — feature extraction database.py — SQLAlchemy models + SQLite models.py — Pydantic schemas dashboard/ main.js — Electron entry, spawns backend + agent app.js — router, window controls, status bar pages/ dashboard.js — overview + high-risk processes processes.js — full process list mitre.js — MITRE ATT&CK technique mapping ```
标签:AMSI绕过, Apex, API密钥认证, AV绕过, Cloudflare, DAST, EDR, Electron, FastAPI, GNU通用公共许可证, IP 地址批量处理, MITM代理, MITRE ATT&CK, Node.js, OpenCanary, Python, SecOps, SQLite, 云安全架构, 云计算, 人工智能安全, 合规性, 命令控制, 威胁检测, 安全运营, 异常检测, 恶意软件分析, 扫描框架, 数据包嗅探, 数据采集, 无后门, 无线安全, 机器学习, 桌面应用, 知识库安全, 端点安全, 网络安全, 网络遥测, 脆弱性评估, 补丁管理, 规则引擎, 逆向工具, 随机森林, 隐私保护