tony11301130/shigure-edr
GitHub: tony11301130/shigure-edr
基于开源 sensor 融合的 EDR/MDR 终端层原型,提供类 Fidelis Endpoint 的统一调查接口,帮助安全团队用开源组件搭建内部终端检测与响应能力。
Stars: 0 | Forks: 0
# Shiori Agent
这是一个利用开源 sensor 构建内部 EDR + MDR endpoint 层的原型项目。
首个目标是实现 **Fidelis Endpoint 工具集的对等功能**,而不是开发内核级的 EDR 驱动。
## 目标接口
该项目暴露了类似 Fidelis 的 provider 契约:
- `list_alerts()`
- `get_alert_by_id(alert_id)`
- `get_endpoint_context(hostname/ip)`
- `query_events(...)`
- `trace_process_chain(...)`
- `hunt_indicator(indicator)`
- `list_readonly_scripts()`
- `run_readonly_script(helper, host, ...)`
你现有的 MDR 可以依赖此接口,同时后端源可以从 Fidelis 切换为开源 sensor。
## Sensor 融合计划
| 来源 | 角色 | 类似 Fidelis 的能力 |
|---|---|---|
| Wazuh | 告警来源 / 日志收集 | `list_alerts`, `get_alert_by_id` |
| Sysmon | Windows 行为遥测 | 进程、网络、DNS、文件、注册表事件 |
| osquery / Fleet | endpoint 状态查询 | 资产清单、进程、服务、用户、启动项 |
| Velociraptor | 证据/制品收集 | 只读脚本、文件/哈希/自启动/事件日志 |
| Falco / Tetragon | Linux/container runtime | 进程/网络/syscall/container 行为 |
## 当前状态
这是一个初步可运行的原型:
- 规范化的事件 schema
- 类似 Fidelis 的 provider 接口
- 复合 provider
- 用于冒烟测试的本地 JSONL provider
- 针对 Sysmon/Wazuh/Falco 风格记录的 normalizer
- 模拟 MDR 工具的 CLI 命令
它目前**尚未**连接到实时的 Wazuh/Fleet/Velociraptor API。这些适配器是下一步的工作。
## 快速开始
```
cd /opt/open-edr-mdr-agent
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
open-edr-mdr-agent init-sample-data
open-edr-mdr-agent alerts
open-edr-mdr-agent endpoint-context --host POS01
open-edr-mdr-agent query-events --host POS01
open-edr-mdr-agent trace-process-chain --host POS01 --process-id 4242
open-edr-mdr-agent hunt powershell
```
运行 M0 后端:
```
open-edr-mdr-agent serve --host 127.0.0.1 --port 8765 --db /tmp/open-edr-mdr.sqlite3
```
运行自动化的 M0 后端+agent 冒烟测试:
```
scripts/m0_smoke.sh
```
构建 Windows agent 并将其安装为单一品牌化 endpoint 服务:
```
# 从 Linux 开发主机交叉编译
GOOS=windows GOARCH=amd64 go build -o shiori-agent.exe ./agent/cmd/open-edr-agent
# 在 Windows 上以 Administrator 身份运行
.\shiori-agent.exe --install-service --server https://edr.example.local --enroll-token
sc.exe start ShioriAgent
# agent 二进制文件会检测 Windows Service 上下文,并通过 Service Control Manager 运行。
# 从控制台运行相同的二进制文件会保留前台循环行为以进行诊断。
# 如有需要,移除服务
.\shiori-agent.exe --uninstall-service
```
如果你不想使用 venv,也可以通过 `PYTHONPATH=.` 运行:
```
cd /opt/open-edr-mdr-agent
PYTHONPATH=. python3 -m open_edr_mdr_agent.cli init-sample-data
PYTHONPATH=. python3 -m open_edr_mdr_agent.cli alerts
```
## 安全模型
初始范围为只读:
- 收集遥测数据
- 规范化事件
- 生成告警
- 支持分析师调查
- 收集只读证据
只有在满足以下条件后,才应添加高影响响应操作(例如隔离、终止进程、删除文件或更改注册表):
1. 明确的审批工作流
2. 租户范围的授权
3. 防篡改审计日志
4. 回滚 / 安全测试
## 下一步适配器
- `WazuhProvider`:接入 Wazuh 告警 API 或 `alerts.json`
- `FleetOsqueryProvider`:调用 Fleet API / 定期查询结果
- `VelociraptorProvider`:调用 Velociraptor API 和制品收集
- `SysmonProvider`:读取 Windows Event Forwarding / Wazuh / OpenSearch 规范化的 Sysmon 事件
- `FalcoTetragonProvider`:接入来自 Linux/Kubernetes runtime sensor 的 JSON 告警/事件
标签:EDR, MDR, 安全运营, 扫描框架, 日志审计, 端点检测与响应, 脆弱性评估, 脱壳工具, 逆向工具