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 项测试。

### 实时 ARGUS-002 警报
实时的 `ARGUS-002` 编码 PowerShell 警报。

### 实时 ARGUS-004 警报
来自真实 Sysmon Event ID 11 遥测的实时 `ARGUS-004` 文件爆发警报。

### 项目概述
README 项目概述。

### 架构与安全测试
README 架构与安全测试。

### 演示命令与验证结果
README 演示命令与验证结果。

### 安全性、技术栈与未来工作
README 安全边界、技术栈与未来工作。

## 安全边界
- 仅警报行为;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发现, 安全检测, 安全规则引擎, 无后门, 时序数据库, 脆弱性评估