Faried-8/sentinel-dfir
GitHub: Faried-8/sentinel-dfir
面向蓝队分析师的企业级数字取证与事件响应工作台,提供从案件管理、时间线重建到 IOC 提取和 MITRE ATT&CK 映射的全流程调查能力。
Stars: 0 | Forks: 0
# 🛡️ Sentinel DFIR 平台
**企业级数字取证与事件响应工作台**
一款专为蓝队分析师、事件响应人员和网络安全工程师打造的专业级、作品集级别的 DFIR 调查平台。旨在提供真实的企业级 DFIR 工具体验 —— 灵感来源于 CrowdStrike Falcon、Microsoft Defender XDR 和 Velociraptor。
## 🎯 项目简介
Sentinel DFIR 平台是一个以调查为核心的工作台 —— **而不是** SOC 监控仪表板。其设计围绕分析师在主动事件响应操作期间的工作流程:
- 按时间顺序重建攻击时间线
- 管理带有证据和笔记的调查案件
- 提取和筛选失陷标示
- 将检测结果映射到 MITRE ATT&CK 战术和技术
- 分析 Windows 事件日志以发现恶意模式
- 为利益相关者生成专业的 IR 报告
## ✨ 功能
### 🔍 事件响应仪表板
- 带有严重性分类的主动调查概览
- 动态统计计数器(IOC、主机、告警、事件)
- 威胁活动趋势图(7 天视图)
- 带有遏制状态的失陷主机追踪器
- 实时分析师活动流
### 📁 案件管理(调查)
- 创建、查看、更新和关闭调查案件
- 证据收集和笔记系统
- 分析师分配和严重性追踪
- 每个案件的 IOC 和 MITRE 技术清单
- 可展开的调查详情抽屉
### ⏱️ 取证时间线分析
- 按时间顺序重建攻击事件
- 包含原始详情的可展开事件条目
- 进程执行、注册表、文件、网络和认证事件
- 针对每个事件的分析师批注
- 直接从时间线进行 IOC 标记
- 攻击阶段标记(初始访问 → 影响)
### 🎯 IOC 中心
- 多类型 IOC 追踪:IP、域名、哈希、URL、注册表路径、文件路径
- 批量文本 IOC 提取引擎(粘贴日志 → 自动提取)
- 置信度评分和威胁分类
- 一键复制和封禁操作
- 针对每个 IOC 的 MITRE 技术映射
### 📋 Windows 事件日志分析器
- 拖拽上传 EVTX 文件
- 自动检测:
- 暴力破解登录模式(事件 4625)
- 编码的 PowerShell 执行(事件 4104/4688)
- 注册表持久化(事件 13)
- 新建用户账户(事件 4720)
- 权限提升(事件 4672)
- 通过 RDP 进行的横向移动(事件 4648)
- 服务安装(事件 7045)
- 带有展开/折叠详情的交互式事件日志表
- 针对每个事件的“添加到 IOC”和“添加到时间线”操作
### 🧩 MITRE ATT&CK 映射
- 完整的 ATT&CK 企业级矩阵热图(12 项战术)
- 检测到的技术高亮显示(红色 = 已观测)
- 包含技术详情和事件计数的卡片视图
- 点击直达 ATT&CK 知识库
- 一键添加至调查报告
### 📊 报告
- 预构建报告模板:
- 事件响应报告
- IOC 情报报告
- 高层简报
- MITRE ATT&CK 报告
- 取证证据保管链
- 带有 PDF 导出功能的现有报告库
- 草稿 / 最终状态追踪
### ⚙️ 设置
- 深色/浅色模式切换
- 按严重性划分的通知偏好
- Slack 和电子邮件集成配置
- API 密钥管理(VirusTotal、MISP)
- 分析师团队管理
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|-----------|
| 前端 | React 18 + Vite |
| 样式 | Tailwind CSS v3 |
| 动画 | Framer Motion |
| 图表 | Recharts |
| 图标 | Lucide React |
| 后端 | Python FastAPI |
| 数据库 | SQLite (via sqlite3) |
| 字体 | Inter + JetBrains Mono |
## 📁 项目结构
```
sentinel-dfir/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ │ ├── TopNav.jsx # Top navigation with search & alerts
│ │ │ ├── UI.jsx # Shared Glass cards, badges, stat cards
│ │ │ └── ToastContainer.jsx # Animated toast notifications
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx # IR overview with charts & stats
│ │ │ ├── Investigations.jsx # Case management + detail drawer
│ │ │ ├── Timeline.jsx # Forensic timeline analysis
│ │ │ ├── IOCCenter.jsx # IOC tracking + bulk extraction
│ │ │ ├── EventLogAnalyzer.jsx # EVTX upload + parsing
│ │ │ ├── MitreMapping.jsx # ATT&CK matrix + technique cards
│ │ │ ├── Reports.jsx # Report library + templates
│ │ │ └── Settings.jsx # Platform configuration
│ │ ├── data/
│ │ │ └── mockData.js # Realistic DFIR mock dataset
│ │ ├── App.jsx # Root component + routing
│ │ ├── main.jsx # React entry point
│ │ └── index.css # Global styles + Tailwind
│ ├── index.html
│ ├── package.json
│ ├── vite.config.js
│ ├── tailwind.config.js
│ └── postcss.config.js
│
├── backend/
│ ├── main.py # FastAPI app + all routes
│ ├── requirements.txt
│ └── sentinel.db # Auto-created SQLite database
│
└── README.md
```
## 🚀 快速开始
### 前置条件
- Node.js 18+
- Python 3.10+
- pip
### 1. 克隆 / 解压
```
# 如果从 git 克隆
git clone https://github.com/yourname/sentinel-dfir.git
cd sentinel-dfir
# 或者解压 ZIP
unzip sentinel-dfir.zip
cd sentinel-dfir
```
### 2. 启动后端
```
cd backend
# 创建 virtual environment(推荐)
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 启动 API server
uvicorn main:app --reload
```
API 访问地址:**http://localhost:8000**
交互式 API 文档:**http://localhost:8000/docs**
### 3. 启动前端
打开一个新的终端标签页:
```
cd frontend
# 安装依赖
npm install
# 启动开发 server
npm run dev
```
应用访问地址:**http://localhost:5173**
## 🔌 API 端点
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/stats` | 仪表板统计数据 |
| GET | `/api/investigations` | 列出所有调查 |
| GET | `/api/investigations/{id}` | 获取单个调查 |
| POST | `/api/investigations` | 创建新调查 |
| PATCH | `/api/investigations/{id}` | 更新调查 |
| GET | `/api/iocs` | 列出所有 IOC |
| POST | `/api/iocs` | 添加新 IOC |
| POST | `/api/iocs/extract` | 从原始文本中提取 IOC |
| GET | `/api/mitre` | 列出检测到的 MITRE 技术 |
| POST | `/api/mitre/correlate` | 将文本关联至 ATT&CK |
| POST | `/api/analyze/powershell` | 分析 PowerShell 命令 |
| POST | `/api/eventlogs/upload` | 上传 EVTX 进行分析 |
| GET | `/api/timeline/{inv_id}` | 获取调查时间线 |
| GET | `/api/notes/{inv_id}` | 获取调查笔记 |
| POST | `/api/notes` | 添加调查笔记 |
## 🧠 后端逻辑亮点
### IOC 提取 (`extract_iocs_from_text`)
基于正则表达式的提取支持:IPv4 地址(仅限公网)、域名、HTTP/HTTPS URL、SHA-256 哈希、MD5 哈希、Windows 注册表路径、Windows 文件路径。
### MITRE ATT&CK 关联 (`correlate_mitre`)
模式字典将来自日志/命令的自由文本关键字映射到相关的 MITRE 技术 ID。返回按置信度排序的匹配技术。
### PowerShell 分析 (`analyze_powershell`)
根据 13 个风险指标对 PowerShell 命令进行评分:编码、下载诱饵、凭据工具、UAX 绕过、token 操纵、AV 排除、卷影副本删除等。
### 暴力破解检测 (`detect_brute_force`)
按源 IP + 用户名对事件 4625 失败进行分组,标记超过阈值的集群(默认:30 秒内 5 次)。
## 🎨 设计理念
- **玻璃拟态** — 带有背景模糊的半透明卡片
- **深灰色背景** — `#0d0f14` 基底搭配分层表面
- **紫罗兰色 / 靛青色 / 蓝色** 强调色调 — 专业,而非赛博朋克风
- **顶部导航** — 工作台式布局,而非传统的侧边栏
- **可展开面板** — 调查抽屉、时间线条目、事件行
- **动态计数器** — 细腻的微交互打造精致体验
- **JetBrains Mono** — 用于所有 IOC 值、哈希、日志数据、进程名称
## 📸 页面概览
| 页面 | 描述 |
|------|-------------|
| Dashboard | KPI 统计数据、威胁趋势图、主动调查列表、失陷主机追踪器 |
| Investigations | 带有抽屉详情的完整案件列表、创建新案件模态框、MITRE + 证据选项卡 |
| Timeline | 带有可展开条目和批注的按时间顺序重建的事件 |
| IOC Center | 完整的 IOC 清单、批量提取器、置信度条、封禁操作 |
| Event Log Analyzer | 拖拽上传 EVTX、检测卡片、交互式事件日志表 |
| MITRE Mapping | ATT&CK 矩阵热图 + 技术卡片,点击查看详情模态框 |
| Reports | 现有报告库 + 5 个支持导出的生成模板 |
| Settings | 主题切换、通知、分析师团队、API 密钥管理 |
## 🔮 生产增强(路线图)
- [ ] 使用 `python-evtx` 或 `evtx-rs` 解析真实 EVTX
- [ ] VirusTotal / AbuseIPDB IOC 富化 API 集成
- [ ] MISP 威胁共享集成
- [ ] JWT 身份验证 + 分析师基于角色的访问控制
- [ ] 使用 `weasyprint` 或 `reportlab` 导出 PDF
- [ ] 迁移至 PostgreSQL 以满足生产规模
- [ ] Velociraptor / Elastic SIEM 连接器
- [ ] 通过 SMTP 进行电子邮件告警
## 👤 作品集背景
本项目展示了:
- **蓝队 / DFIR 工作流** 理解
- **全栈开发** (React + FastAPI + SQLite)
- **企业级 UI/UX** 设计原则
- **Windows 取证** 知识(事件 ID、注册表、进程分析)
- **MITRE ATT&CK** 框架熟悉度
- **真实世界的 DFIR 工具** 认知(Velociraptor、CrowdStrike、Defender XDR)
*专为网络安全作品集打造 —— Sentinel DFIR 平台 v2.4.1*
标签:红队行动, 自定义脚本, 逆向工具