oxajamal-byte/argus-mini-edr

GitHub: oxajamal-byte/argus-mini-edr

一个防御性的 Windows 迷你 EDR 教学项目,将实时 Sysmon 遥测数据通过 Python 检测规则转化为 MITRE ATT&CK 映射告警。

Stars: 1 | Forks: 0

# Argus Mini EDR Argus Mini EDR 是一个防御性的 Windows 检测项目,它会读取实时的 Sysmon 遥测数据,应用 Python 检测规则,并发出映射到 MITRE ATT&CK 的警报。 ## Argus Mini EDR 的功能 Argus 从 Windows Sysmon Operational 事件通道读取最近的事件, 将进程和文件遥测数据解析为字典,并将每个事件 传递给一个小型检测引擎。匹配的规则会打印面向分析师的警报, 并将结构化的 JSONL 记录追加到 `alerts/alerts.jsonl` 中。 该项目支持模拟演示和实时的只读 Sysmon 收集。它不执行自动化的响应操作。 ## 为什么开发它 我开发 Argus 是为了学习端点遥测数据如何转化为可操作的检测: 收集、解析、有状态关联、规则评估、警报设计、 测试、误报分析以及安全的实时验证。 ## 核心功能 - 从 `Microsoft-Windows-Sysmon/Operational` 进行只读收集 - 解析 Sysmon 进程和文件事件 - 具备 MITRE ATT&CK 映射的“检测即代码”规则 - 跨多个事件的有状态文件爆发检测 - 丰富的终端警报和 JSONL 警报日志记录 - 模拟演示、模拟测试以及安全的实时触发验证 - 用于 FileCreate 遥测的项目级 Sysmon 配置 - 限制在 `data/sandbox/` 中的无害文件爆发测试装置 ## 检测规则 | 规则 | 检测内容 | MITRE ATT&CK | 状态 | | --- | --- | --- | --- | | `ARGUS-001` | 可疑的 Office 子进程 | T1204.002, T1059; Execution | 已通过合成事件测试 | | `ARGUS-002` | 编码的 PowerShell 命令 | T1059.001; Execution | 已通过真实 Sysmon 遥测验证 | | `ARGUS-003` | 针对 LSASS 的进程访问 | T1003.001; Credential Access | 已通过合成事件测试 | | `ARGUS-004` | 类似勒索软件的文件修改爆发 | T1486; Impact | 已通过真实 Sysmon Event ID 11 遥测验证 | 有关证据字段、 误报注意事项和验证说明,请参阅 [docs/detection-rules.md](docs/detection-rules.md)。 ## 架构概述 ``` Windows activity -> Sysmon -> Windows Event Log -> collector.py -> event_parser.py -> DetectionEngine -> rules.py -> alert.py -> terminal output + alerts/alerts.jsonl ``` CLI 连接了收集、解析、演示和检测路径。 有关组件级的 说明,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 安全测试方法 实时验证使用可控的、无害的触发方式: - `ARGUS-002` 触发器运行一个编码的 PowerShell 命令,该命令仅向 控制台打印文本。 - `ARGUS-004` 测试装置仅在 `data/sandbox/` 内创建并追加无害文本。 - 该测试装置拒绝超出 `data/sandbox/` 范围的操作。 - 项目本地的 Sysmon 配置将 FileCreate 遥测限制在 Argus 沙盒内,而不是启用广泛的系统级文件日志记录。 - 自动化测试使用合成事件、模拟以及 pytest 临时路径。 ## 演示命令 运行测试套件: ``` python -m pytest ``` 运行内置的合成演示: ``` python -m argus.cli demo ``` 收集并处理最近的实时 Sysmon 事件: ``` python -m argus.cli collect-demo --max-events 150 --alerts-only ``` 运行无害的文件爆发测试装置: ``` python examples/safe_ransomware_fixture.py --files 30 --rounds 3 --scope data/sandbox ``` 在提权的 PowerShell 终端中手动应用可选的限定范围 Sysmon 实验室配置: ``` cd C:\tools\Sysmon .\Sysmon64.exe -c C:\Path\To\argus-mini-edr\sysmon\argus-sysmon-config.xml ``` 完整的安全演示流程,请参阅 [docs/demo-script.md](docs/demo-script.md)。 ## 验证结果 - 自动化测试套件通过了 33 项测试。 - 无害的实时基线产生了零警报。 - 一个无害的编码 PowerShell 触发器从真实的 Sysmon Process Create 遥测中产生了一个实时的 `ARGUS-002` 警报。 - 安全的文件爆发测试装置从真实的 Sysmon Event ID 11 FileCreate 遥测中产生了一个实时的 `ARGUS-004` 警报。 - `ARGUS-004` 在处理 150 个最近的事件时, 在 10 秒的时间窗口内关联了来自同一进程的 20 个 FileCreate 事件。 ## 演示证据 ### 测试套件 测试套件通过了 33 项测试。 ![测试套件通过了 33 项测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/7d/7de7abf90a886a3e9d89ac7348e5cc19208cea709893f8de2631a8b2845722ce.png) ### 实时 ARGUS-002 警报 实时的 `ARGUS-002` 编码 PowerShell 警报。 ![实时的 ARGUS-002 编码 PowerShell 警报](https://static.pigsec.cn/wp-content/uploads/repos/cas/e3/e385ef611b95b359a69178107eb2ffd90b301526e772f93f53283c31baf52f87.png) ### 实时 ARGUS-004 警报 来自真实 Sysmon Event ID 11 遥测的实时 `ARGUS-004` 文件爆发警报。 ![来自真实 Sysmon Event ID 11 遥测的实时 ARGUS-004 文件爆发警报](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0c1b0bc55f2e6e8159a6e86696fd30f4f04245d03fc338fa4962b42d49eb16cc.png) ### 项目概述 README 项目概述。 ![README 项目概述](https://static.pigsec.cn/wp-content/uploads/repos/cas/3b/3b1ea8a86591ddcaad6087fb0cc84cee93f1bc6151b6e8afc1d5f8ce25fa7ce4.png) ### 架构与安全测试 README 架构与安全测试。 ![README 架构与安全测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/7d/7d5f87c33e2ee49dfc3e730c296efe5381bc86f3dd6fc87e4fdf60d83fba1e6a.png) ### 演示命令与验证结果 README 演示命令与验证结果。 ![README 演示命令与验证结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/73/73ca60646d82bea6ef9c73e4710ae7089c3152c80294a28a1a2b95491fc62d41.png) ### 安全性、技术栈与未来工作 README 安全边界、技术栈与未来工作。 ![README 安全边界、技术栈与未来工作](https://static.pigsec.cn/wp-content/uploads/repos/cas/11/115d5799d56cf0a04d672deeb12f15ad174fa68b5399cf46898d224b0ce8700c.png) ## 安全边界 - 仅警报行为;Argus 不会终止或隔离进程。 - 无恶意软件、加密、持久化、凭据访问、数据泄露或 破坏性行为。 - 安全测试装置不会删除或重命名文件。 - 不会访问真实的用户文件进行文件爆发测试。 - 所有测试装置活动都严格限制在 `data/sandbox/` 下项目所有的虚拟文件中。 - Sysmon 配置更改是手动的,绝不会由 Argus 代码执行。 ## 技术栈 - Python 3.11 - Sysmon 和 Windows Event Log - 用于只读事件收集的 pywin32 - 用于终端警报输出的 Rich - 用于自动化测试的 pytest - 使用 Python 标准库进行 XML 解析 - JSONL 结构化警报日志 ## 未来工作 - 针对更广泛的无害基线调整检测。 - 添加更具代表性的已保存 Sysmon 测试装置。 - 提高不同实验室路径的配置可移植性。 - 添加可视化的架构图。 - 打包已记录在案的 GitHub release。 ## 免责声明 Argus Mini EDR 仅是一个防御性的教育项目。它不是生产级的 EDR 产品,在对任何 系统使用之前,应在受控实验室中进行评估。
标签:Detection-as-code, EDR, OpenCanary, Python, Sysmon, URL发现, 安全检测, 安全规则引擎, 无后门, 时序数据库, 脆弱性评估