ClassyEdge/ProcSentry
GitHub: ClassyEdge/ProcSentry
一款只读的 Windows 主机完整性检测扫描器,以 C++ 库和 CLI 形式对关键进程与服务的篡改行为进行 MITRE ATT&CK 映射检测。
Stars: 0 | Forks: 0
它的特点是:
- **只读** — 仅限查询访问权限;绝不修改其他进程
- **库 + 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);
}
```
## 结构 ⚙️

## CLI 🔧
```
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系统, 主机完整性检测, 数据擦除, 脆弱性评估