d3fuse99/Process-Sentry

GitHub: d3fuse99/Process-Sentry

一款 Windows 平台事件驱动的轻量级 EDR 引擎,通过实时行为监控和自动化响应拦截零日漏洞及可疑进程执行。

Stars: 1 | Forks: 0

# Process-Sentry 🛡️ image Windows 平台的高级事件驱动 EDR(端点检测与响应)及自动化漏洞缓解套件。 状态:**Beta v1.2** | 许可证:**GPLv3** | 平台:**Windows** Process-Sentry 是一款轻量级、高性能的事件驱动 EDR(端点检测与响应)工具,旨在实时识别、可视化并消除 zero-day 漏洞。它不依赖过时的静态文件特征,而是监控操作系统的**行为进程树**和已加载模块,以拦截未经授权的执行模式,例如可疑的 shell 生成、LOLBAS 攻击、DLL 侧加载(sideloading)以及不受信任的二进制文件执行。 ## 高级事件响应能力 image * **零轮询事件审计**:直接订阅 Windows Management Instrumentation (WMI) 进程创建事件。它作为被动监听器,在空闲时消耗 0% CPU,同时能瞬间捕获即使是转瞬即逝的进程。 * **主动响应引擎**:具有自动化的事件响应循环,在检测到危险时,利用原生的 Win32 `TerminateProcess` API 瞬间终止危险的进程分支。 * **启发式命令行引擎**:分析原始的进程执行参数(例如,PowerShell 执行策略绕过、base64 编码的 payload 或网络下载字符串),以阻止基于脚本的逃避行为。 * **静态分析哈希计算**:为每个新启动的进程二进制文件瞬间计算 SHA-256 加密哈希,以进行信誉查询。 * **Authenticode 签名检查**:调用 Win32 `WinVerifyTrust` 子系统检测未签名关键二进制文件,并强制执行安全目录信任规则。 * **DLL 侧加载检测(新增)**:利用轻量级 Win32 模块快照,识别由已签名的系统二进制文件从用户可写目录(例如 `AppData`、`Temp`、`Downloads`)加载的未签名、未经授权的 DLL。 * **VirusTotal API 集成(新增)**:针对进程 SHA-256 哈希查询 VirusTotal 威胁情报的自动化云端信誉验证。包含线程安全的本地缓存,以尽量减少外部网络请求。 * **高性能进程查询(新增)**:使用 `QueryFullProcessImageNameW` 直接通过 Win32 句柄获取进程身份,在进程生成爆发期间将 CPU 消耗降至接近零的水平。 * **异步线程遥测日志记录(新增)**:实现 SQLite Write-Ahead Logging (WAL) 与线程安全的事务队列相结合,防止在高遥测负载下出现并发数据库锁定。 * **交互式取证 HUD**:赛博朋克风格的交互式 Web 仪表板,使用 React 和 Tailwind CSS v4 构建,用于实时遥测流传输和警报。 * **主机网络隔离**:直接通过仪表板按需即时隔离受感染的主机。激活此功能将部署严格的入站/出站 Windows 防火墙规则,立即切断所有公共互联网和本地网络访问以防止横向移动,同时安全地保留本地回环遥测流。 * **持久化事件数据库**:集成的本地 SQLite 数据库,用于记录和检索历史安全事件,可通过 `Incident History` 选项卡访问。 * **威胁隔离区**:自动化的缓解措施,将恶意二进制文件移动到锁定的隔离文件夹(`C:\ProgramData\ProcessSentry\Quarantine\`)并添加安全扩展名(`.vir`),以防止其被执行。 * **外部规则引擎**:从外部的 `config.json` 文件中动态加载进程规则、可疑父进程和危险关键字。 ## 威胁检测矩阵 | 检测层 | 机制与子系统 | 针对的威胁与攻击 | | :--- | :--- | :--- | | **LOLBAS(行为)** | 监控父子进程关系。如果受保护的应用程序(浏览器、MS Office、Explorer)尝试生成命令 shell(cmd、powershell、mshta、cscript),则会触发。 | 初始访问执行、权限提升、恶意宏、基于浏览器的 stager。 | | **命令行启发式** | 对原始执行参数执行字符串启发式分析,扫描混淆、绕过标志或网络下载参数。 | PowerShell 执行策略绕过、Base64 编码的 payload (`-enc`)、网络 stager(`DownloadString`、`iex`)。 | | **Authenticode 验证** | 通过 `WinVerifyTrust` 验证进程签名。如果关键系统二进制文件(svchost、lsass、conhost)在没有有效 Microsoft 签名的情况下被执行,则会触发。 | 伪装(恶意软件将自身重命名为 svchost.exe)、在用户可写目录中投放 payload。 | | **DLL 侧加载检测** | 使用 Win32 Toolhelp 快照(`Module32FirstW`/`Module32NextW`)扫描已签名二进制文件的内存映射,以标记可写路径中映射的未签名模块。 | 劫持受信任的进程以执行未签名的恶意 DLL。 | | **威胁情报与云信誉** | 针对本地威胁数据库和 VirusTotal API 执行 SHA-256 哈希的信誉查询。 | 已知的恶意软件活动、勒索软件、窃取程序和双重用途工具(例如 Mimikatz)。 | ## 交互式取证能力 * **实时搜索**:使用 `[ SEARCH TELEMETRY... ]` 输入栏,即时过滤活动进程、PID、哈希或实时警报流。 * **一键剪贴板复制**:取证分析师可以直接从信息流或详情模态框中即时复制命令行字符串和 SHA-256 哈希,以便进行快速的外部查询(例如 VirusTotal、Google)。 * **详细进程检查**:点击活动进程图中的任何进程节点,将打开其执行上下文的详细视图。 * **手动事件响应**:分析师可以直接在详情模态框中通过 `Terminate Process` 操作按需手动终止任何正在运行的进程。 ## 威胁模拟与测试 为了测试和演示 Process-Sentry 的实时主动防御能力: 1. 打开标准的命令提示符 (`cmd.exe`) 或运行对话框 (`Win + R`)。 2. 执行典型的混淆 PowerShell 绕过命令: powershell.exe -ep bypass -command Write-Host "Threat Simulation" 3. **预期结果**:PowerShell 窗口将打开并瞬间消失。该进程在执行其 payload 之前就会被终止。Process-Sentry 控制台会记录终止操作,并且 HUD 会瞬间锁定在红色警报模态框中,显示被拦截的命令行和进程的 SHA-256 哈希。 ## 如何运行 1. **前置条件**:确保您的 Windows 系统上安装了 Python 3.10+、Go (Golang) 1.20+ 和 Node.js。 2. **安装依赖**:在项目根目录中运行 `npm.cmd install` 以获取前端库。 3. **构建前端**:执行 `npm.cmd run build` 将仪表板编译到静态生产文件夹中。 4. **构建 Go Agent**:在您的终端中执行 `go build agent.go` 以编译高性能 agent 可执行文件 (`agent.exe`)。 5. **配置**:如果您想启用云端信誉查询,请在 `config.json` 中的 `"VT_API_KEY"` 属性内添加您的 VirusTotal API 密钥。 6. **一键启动**:打开您的 VS Code 编辑器,导航到 `package.json`,将鼠标悬停在 `"sentry"` 脚本上,然后点击 **Run Script**(或者只需在终端中运行 `npm.cmd run sentry`)。这将以完整的管理员权限自动启动所有三个组件,并打开您的默认浏览器访问 `http://localhost:3000`。 ## 技术栈 * **Go (Golang)**:高性能、轻量级的原生 Windows agent,利用 Win32 API 进行签名验证、模块分析和主动终止进程。 * **Python**:启发式规则引擎、云端信誉数据库客户端、SQLite 日志记录以及多线程 socket/SSE Web 服务器。 * **React / Vite**:快速、现代、响应式的前端架构。 * **Tailwind CSS v4**:现代、高性能的网络作战(cyber-ops)样式引擎。
标签:API接口, DNS 反向解析, EDR, Linux, 事件驱动, 库, 应急响应, 日志审计, 漏洞缓解, 终端安全, 脆弱性评估, 自动化攻击, 逆向工具