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, 安全运营, 扫描框架, 日志审计, 端点检测与响应, 脆弱性评估, 脱壳工具, 逆向工具