ClassyEdge/ProcSentry

GitHub: ClassyEdge/ProcSentry

一款只读的 Windows 主机完整性检测扫描器,以 C++ 库和 CLI 形式对关键进程与服务的篡改行为进行 MITRE ATT&CK 映射检测。

Stars: 0 | Forks: 0

ProcSentry



ProcSentry is an EDR-style host-integrity detection scanner for critical Windows processes & services — a C++ library and CLI.
它的特点是: - **只读** — 仅限查询访问权限;绝不修改其他进程 - **库 + CLI** — 可嵌入 `procsentry::scan()` 或运行 `procsentry.exe` - **五项检测**映射至 **MITRE ATT&CK**,每项捕获特定的篡改行为 - **结构化输出** — 异常与运行诊断分开;支持 JSON - **零外部依赖**,CMake 构建,C++17,x64 ## 检测项 🛡️ | 检测项 | 捕获行为 | MITRE ATT&CK | 严重程度 | |---|---|---|---| | **Termination** | 受监控的进程/服务未运行 | [T1489](https://attack.mitre.org/techniques/T1489/) Service Stop · [T1562.002](https://attack.mitre.org/techniques/T1562/002/) | Info | | **UnexpectedRestart** | 自上次交互登录以来被(重新)启动 | 行为指标 (≈ [T1562](https://attack.mitre.org/techniques/T1562/)) | Warning | | **ImageIntegrity** | 错误的映像路径、未签名/无效的二进制文件,或 SCM 路径不匹配 | [T1036.005](https://attack.mitre.org/techniques/T1036/005/) Masquerading · [T1574](https://attack.mitre.org/techniques/T1574/) | Anomaly | | **ThreadTampering** | 挂起的线程 — 进程镂空/注入的指标 | [T1055.012](https://attack.mitre.org/techniques/T1055/012/) Process Hollowing | Anomaly | | **TokenManipulation** | token 权限/组的启用状态发生偏移 | [T1134](https://attack.mitre.org/techniques/T1134/) Access Token Manipulation | Warning | 各项检测均为映射到最接近技术的**指标** — 例如,挂起的线程是镂空的*信号*,而非证据。 ## 威胁模型 🎯 ProcSentry 监控一组精心挑选的高价值 Windows 进程和服务(例如 `lsass`、`MsMpEng`/Defender、`explorer`、Event Log、BFE、DPS)。攻入主机的攻击者通常会**停止日志/安全服务**、**替换或伪装已签名的二进制文件**、**镂空受信任的进程**,或**调整服务 token**。上述每项检测都针对其中一种行为,并将其呈现为经过严重程度分级、附带 ATT&CK 标签的发现结果,适合用于分类排查或脚本自动化(具有实际意义的退出代码、`--json`)。 ## 功能 ✨ - 具有实际意义的退出代码(`0` 正常,`1` 异常,`2` 操作失败),适用于脚本自动化 - `--json` 机器可读输出 - 细粒度的 `--detections` 选择和可配置的 `--restart-grace` ## 示例 🧪 ``` #include "procsentry/procsentry.hpp" #include int main() { procsentry::Report report = procsentry::scan(); std::printf("anomalies: %d\n", report.has_anomaly() ? 1 : 0); } ``` ## 结构 ⚙️

architecture

## CLI 🔧 cli demo ``` procsentry [--json] [-v|--verbose] [-q|--quiet] [--detections termination,unexpected_restart,image_integrity,thread_tampering,token_manipulation] [--restart-grace ] [-h|--help] [-V|--version] ``` ## 安装 📥 ``` git clone https://github.com/ClassyEdge/ProcSentry cd ProcSentry cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl cmake --build build ``` CLI 为 `build/procsentry.exe`。要嵌入该库,请将 `include/` 添加到您的 include 路径中,并链接 `procsentry` 目标。 ## 文档 📖 完整文档 — API 参考、检测项、MITRE 映射、CLI 用法和构建步骤 — 位于 **[`docs/documentation.md`](docs/documentation.md)** 中。 | 文档 | 内容 | |---|---| | **[文档](docs/documentation.md)** | API 参考、五项检测、ATT&CK 映射、CLI 用法、构建方法 | | **[贡献指南](CONTRIBUTING.md)** | 如何构建、测试和提交更改 | | **[安全性](SECURITY.md)** | 如何报告漏洞 | | **[更新日志](CHANGELOG.md)** | 版本发布历史 | ## 许可证 📜 MIT — 请参阅 [LICENSE](LICENSE)。
标签:API接口, Bash脚本, C++, EDR, Windows系统, 主机完整性检测, 数据擦除, 脆弱性评估