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*
标签:红队行动, 自定义脚本, 逆向工具