Ayyadi266/LightEDR
GitHub: Ayyadi266/LightEDR
一个轻量级 Windows EDR 教育项目,涵盖从 ETW 遥测采集到 Sigma/YARA 检测再到告警响应的完整防御安全链路。
Stars: 0 | Forks: 0
# LightEDR — 轻量级 Windows EDR(教育 / PFE)
这是一个为 Windows 构建的精简版端点检测与响应(EDR)系统,作为工程学
毕业设计项目开发。它遵循与商业
EDR(CrowdStrike Falcon 等)相同的内部循环:
这属于**防御性安全研究**。所有攻击 / 规避代码的存在仅为
测试 EDR 自身的检测能力,且被隔离在 [`lab/`](lab/) 中,并带有
实验室专属警告。请参阅 [`docs/threat-model.md`](docs/threat-model.md) 了解该系统能做什么
——以及明确**不**做什么检测。
## 设计范围限制
- **无内核 minifilter / ELAM 驱动。** 仅限用户模式遥测,至多包含
一个可选的简单内核回调作为进阶目标。
- **ETWti (`Microsoft-Windows-Threat-Intelligence`) 仅限实验室使用。** 它需要一个
PPL-Antimalware 保护进程,因此在测试签名 / 隔离的虚拟机中运行,
其局限性已被记录在案,而非含糊其辞。
- 适合 **一名学生在约 5 个月内** 完成。注重深度而非广度。
## 架构
```
┌──────────────┐ mTLS ┌───────────┐ ┌──────────────────┐
│ Agent │ batches │ Transport │ ingest │ Backend │
│ (Windows) ├──────────►│ channel ├────────►│ FastAPI + store │
│ ETW / Sysmon │ └───────────┘ └────────┬─────────┘
└──────────────┘ │
▲ response actions (kill / isolate / quarantine) │
└──────────────────────────────────────────────────┤
▼
┌──────────────────────────────────┐
│ Detection engine │
│ Sigma + YARA + heuristics │
│ → each alert tagged ATT&CK ID │
└───────────────┬──────────────────┘
▼
┌──────────────────┐
│ Dashboard (React)│
│ alerts · tree · │
│ timeline ·respond│
└──────────────────┘
```
## 仓库结构
| 文件夹 | 内容 |
|-----------------|------------------------------------------------------------------|
| `agent/` | Windows 遥测代理 (C# / .NET, 通过 TraceEvent 使用 ETW) |
| `transport/` | 安全通道 (mTLS),事件批处理,schema/protobuf |
| `backend/` | 接收 + 存储 API (Python + FastAPI) |
| `detection/` | Sigma 规则,YARA 规则,行为启发式算法(标记 ATT&CK) |
| `dashboard/` | Web UI + 响应操作 (React) |
| `lab/` | **仅限实验室使用** 的攻击 / 规避代码,用于测试检测 |
| `docs/` | 架构,威胁模型,分阶段构建计划 |
## 构建计划
分为五个阶段,逐一构建。请参阅 [`docs/build-plan.md`](docs/build-plan.md)。
| 阶段 | 重点 | 状态 |
|-------|----------------------------------------|----------------|
| 1 | ETW 代理(进程 / 网络 / DNS 遥测) | 🟡 **已构建 — 等待提权 ETW 冒烟测试** |
| 2 | 传输 (mTLS) + 后端接收 (SQLite) | 🟢 **已构建 + 端到端自我验证** |
| 3 | 检测引擎 — Sigma + 启发式算法 + YARA (ATT&CK) | 🟢 **已构建 + 自我验证 (7/7 用例)** |
| 4 | Dashboard + 响应操作 | 🟢 **已构建 + 自我验证(接收→告警→响应循环)** |
| 5 | 特征库梳理 + Atomic Red Team 评估 | 🟡 **部分完成 — 已构建 ETWti T1055 检测器 + Atomic/指标测试套件;实验室规避三部曲 + 实时指标运行待定** |
## 阶段 1 快速开始
阶段 1 代理是一个控制台应用程序,会打印内核 ETW 进程提供程序产生的每一个进程创建事件
(PID,PPID,映像,命令行)。
**前置条件**
- Windows 10/11(或 Windows Server)。
- **.NET 8 SDK** — 当前机器已有 .NET host,但 *没有 SDK*。请安装:
winget install Microsoft.DotNet.SDK.8
或从 下载。
**运行(必须提权 — ETW 内核会话需要管理员权限)**
```
# 打开一个 *Administrator* PowerShell / Windows Terminal,然后:
cd agent
dotnet run
```
你将看到如下实时数据流:
```
[EDR] Phase 1 agent started — streaming process-creation events. Press Ctrl+C to stop.
14:22:07.913 PID=13480 PPID=6120 powershell.exe
cmd: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile
14:22:09.114 PID=9044 PPID=13480 notepad.exe
cmd: "C:\Windows\System32\notepad.exe"
```
打开第二个终端并启动几个程序(`notepad`,`calc`,`cmd`)以
查看出现的事件。按 **Ctrl+C** 彻底停止运行。
标签:AV绕过, EDR, ETW, FastAPI, React, Syscalls, YARA, 云资产可视化, 脆弱性评估, 逆向工具