AdnanAM10/Incident-Response-Dashboard
GitHub: AdnanAM10/Incident-Response-Dashboard
一个模拟安全运营中心分析师日常工作的轻量级 Web 沙盒,旨在帮助用户通过贴近实战的演练学习安全事件应急响应的标准流程。
Stars: 0 | Forks: 0
# Sentinel IR — 一个专注于学习的应急响应平台
Sentinel IR 是一个小巧但贴近现实的 Web 应用程序,它模拟了安全运营中心 (SOC) 分析师 / 应急响应人员的日常工作流程。它旨在作为一个学习沙盒:你可以点击查看真实风格的检测项、对它们进行分诊、开启工单、推动它们经历完整的 IR 生命周期、附加证据和 IOC 并将其关闭——而无需访问真实的企业环境。
它基于现实世界工具的概念和工作流程进行建模:
| 现实世界工具 | 功能 | Sentinel IR 借鉴的内容 |
|---|---|---|
| **TheHive Project** | 开源 IR 案例管理 | 案例、任务、可观察项 (IOC)、TLP 标记、告警 → 案例升级 |
| **Splunk SOAR (Phantom)** | 安全编排与剧本 | 与事件类别绑定的剧本概念 |
| **IBM Resilient (QRadar SOAR)** | IR 工作流与工单管理 | 工单生命周期、分类、MTTR |
| **ServiceNow Security Operations** | 企业 SIR 工单管理 | 工单 ID、优先级、严重性、分配 |
| **Splunk Enterprise Security / Sentinel / QRadar** | SIEM 检测内容 | 带有来自 EDR、IDS、云等原始事件的“告警队列” |
| **PagerDuty / Opsgenie** | 值班与升级 | 严重性/优先级配对、状态工作流 |
它**不是**一个真正的 SOC 工具——它是一个教学工具。这里没有真正的检测引擎,没有与 EDR 的集成,没有自动化,没有身份验证,也没有加密。请将这里的数据库视为一次性的。
## 1. 快速入门
### 要求
- Python 3.10+
- pip
### 安装与运行
```
# 从项目文件夹
python -m venv .venv
.venv\Scripts\activate # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 使用示例 SOC 数据填充数据库
python seed.py
# 启动 web app
python app.py
```
在浏览器中打开 http://127.0.0.1:5000。
要随时重置数据,只需重新运行 `python seed.py`——它会删除并重新创建所有内容。
## 2. 包含哪些内容
你将置身于一家虚构公司的 SOC 中,这里有 5 名员工和大约 30 条跨多个检测源的新到达告警:
- **CrowdStrike Falcon / SentinelOne / Microsoft Defender** — EDR (端点检测与响应)
- **Splunk / Wazuh** — SIEM (安全信息与事件管理)
- **Suricata / Zeek** — 网络 IDS / NSM
- **Palo Alto NGFW / Cloudflare / AWS WAF** — 网络边界
- **Proofpoint** — 电子邮件安全网关
- **Okta / Azure AD** — 身份与 SSO
- **AWS GuardDuty / CloudTrail / GitHub** — 云与 SaaS
- **Symantec DLP / Microsoft Purview** — 数据防泄漏
- **Tenable / Auditd** — 漏洞与主机审计
这些告警涵盖了你在任何真实 SOC 中都会见到的场景:网络钓鱼、勒索软件、撞库、连接到已知 C2 的信标、DNS 数据渗出、LSASS 访问 (Mimikatz 风格)、内部人员通过 USB 窃取数据、OAuth 授权同意、公开的 S3 存储桶、泄露的 AWS 密钥等。
你还会发现 **6 个响应剧本**,涵盖网络钓鱼、勒索软件、凭据泄露、恶意软件、数据渗出和 DDoS。
## 3. 你可以扮演的角色
右上角的“Acting as:”下拉菜单允许你在不同角色之间切换以模拟工作交接。
| 用户 | 角色 | 用途 |
|---|---|---|
| Ana Martinez | IR 负责人 | 最终分诊、状态变更、关闭 |
| Jamal Chen | 分析师 | 一线分诊、记录笔记 |
| Riya Kapoor | 分析师 | 取证任务、IOC 丰富 |
| Tunde Okafor | 分析师 | 威胁狩猎 / 范围确定工作 |
| Sofia Oliveira | 经理 | 只读利益相关者、审批签字 |
在此演示中,角色仅作装饰之用——每个角色都可以做任何事情。在真正的工具中,基于角色的访问控制将会限制破坏性操作。
## 4. 核心概念(请先阅读本节)
### 4.1 告警 vs. 事件
**检测** 是工具告诉你它看到了什么。在 Sentinel IR 中,这些被称为 **告警**。
**事件** 是分析人员确认(或强烈怀疑)的、值得调查和响应的问题。它是一个 *案例文件*,一个 *工单*,一个带有状态、任务、证据、IOC、记录谁在何时做了什么的时间线以及最终关闭结果的工作流对象。
大多数告警永远不会成为事件(它们是误报或良性的)。
单个事件可能会捆绑多个相关的告警。
### 4.2 NIST IR 生命周期 (SP 800-61r2)
Sentinel IR 的事件状态遵循经典的阶段:
```
Preparation (offline — runbooks, training, tooling)
↓
Detection & Analysis
new → triage → investigating
↓
Containment, Eradication & Recovery
contained → eradicated → recovered
↓
Post-Incident Activity
closed (with a classification: true_positive, false_positive,
benign, duplicate)
```
你不会被强制要求严格按照顺序推进。真实的事件往往会反复——你可能正处于 *调查中* → *已控制* 的阶段,然后如果你发现攻击者仍然活跃,就需要重新打开 *调查中* 状态。
### 4.3 严重性 vs. 优先级
这两者是不同的,但分析人员经常将它们混淆。在 Sentinel IR 中:
- **严重性** = 如果这是真的,会有多糟? (`info`/`low`/`medium`/`high`/`critical`)
由数据敏感性、影响范围、攻击者能力决定。
- **优先级** = 我们应该以多快的速度处理它? (`P1`–`P5`)
由严重性 + 业务背景 + 攻击者驻留时间的重要程度决定。P1 可能是一个 *高* 严重性的事件,其中攻击者 *现在* 正在积极进行横向移动。
### 4.4 分类(在关闭时)
当你关闭一个事件时,你需要为其打上以下标签之一:
- **true_positive** — 真实事件,已确认
- **false_positive** — 触发了检测,但并非真实情况
- **benign** — 真实的活动,但是无害 / 已授权的(例如红队演练)
- **duplicate** — 与另一个事件相同
这是 SOC 随时间衡量检测质量的方式。
### 4.5 TLP (交通灯协议)
当你添加 IOC 时,你需要为它们打上 TLP 级别标签。这决定了你可以在团队外部多广泛地共享该指标。
| TLP | 含义 |
|---|---|
| WHITE | 无限制共享 |
| GREEN | 社区 / 同行组织 |
| AMBER | 仅限你的组织 |
| RED | 仅限指定接收者(非常敏感) |
### 4.6 MITRE ATT&CK
告警和(优秀的)事件报告会引用 ATT&CK 框架——例如 `T1110.001 Password Guessing` 或 `T1486 Data Encrypted for Impact`。
这是描述对手行为的行业标准词汇。当你在告警中看到它时,可以在 https://attack.mitre.org 上查找。
## 5. 演练:处理你的第一个事件
让我们演练一次贴近现实的端到端响应。所需时间:约 15 分钟。
### 步骤 1 — 观察队列
转到 **告警队列**。按严重性排序/扫描。你应该会看到类似这样的内容:
这是一个教科书式的基于宏的恶意软件执行尝试。点击它。
### 步骤 2 — 阅读原始事件
在详情视图中:
- **描述** 为你提供了分析人员可读的摘要。
- **原始事件** 向你展示了工具实际看到的内容——进程树、命令行、解码后的 payload、目标 IP。
- **指标** 列出了平台为你解析出的 IOC。
- **MITRE** 告诉你这映射到 `T1059.001 PowerShell`。
这就是“这是否是一个真正的问题?”的决策时刻。人类在此做出的决定:
- `WINWORD.EXE → cmd.exe → powershell.exe -enc` 是否曾属于合法行为?**不。**
- EDR 是否阻止了它?是的——Falcon 预防机制已启动。好消息,但这并不意味着威胁已经结束(其他端点可能没有这么幸运)。
### 步骤 3 — 升级为事件
滚动到“升级为事件”。选择:
- 类别:**malware**
- 优先级:**P2**(高严重性,仅在一台主机上被控制,但有必要立即调查其范围)
点击 **创建事件**。Sentinel IR 将会:
- 生成一个工单 ID (`INC-2026-NNNN`)
- 将告警中的源 IP、目标 IP、主机和用户作为初始 IOC 转移过来
- 添加一条时间线条目
- 将告警的状态更改为 `escalated`
- 引导你进入事件详情视图
### 步骤 4 — 打开正确的剧本
在右侧栏中,平台向你显示了与事件类别匹配的剧本。在新标签页中点击 **“Malware on Endpoint”**——这就是你的检查清单。
### 步骤 5 — 构建响应
根据剧本操作,在事件中添加 **响应任务**:
1. *在 VirusTotal 上验证哈希——winword.exe 及任何释放的 payload*
2. *通过 CrowdStrike 网络隔离 FIN-WS-014*
3. *提取电子邮件日志——是否有一封投递此文档的入站邮件?*
4. *威胁狩猎:在过去 7 天内搜索 Falcon 中是否有任何其他主机出现 WINWORD → powershell -enc*
5. *检查用户 kpatel 的其他设备和近期登录记录*
6. *决定:清理还是重装镜像 FIN-WS-014?*
将任务分配给队友(使用右上角的下拉菜单切换角色,以作为不同的分析师“执行”工作)。
### 步骤 6 — 记录证据和发现
当你“执行”每项任务时,在事件页面底部添加 **时间线条目**:
- *笔记*:“VT 显示 sha256 d7e1f3b5… 的检出率为 47/72——已确认是 Qakbot 加载器。”
- *证据*:“FIN-WS-014 的内存镜像已捕获并存入证据储物柜 E-2026-0014。”
- *笔记*:“全群狩猎——过去 30 天内没有其他端点显示此进程链。”
### 步骤 7 — 跟踪新的 IOC
在调查期间,你会发现新的指标。在 **可观察项 / IOC** 下添加它们:
| 类型 | 值 | TLP | 备注 |
|---|---|---|---|
| `domain` | `cs-beacon.xyz` | AMBER | 与此活动相关的 Cobalt Strike C2 |
| `hash_sha256` | `9c3e7b2c...` | AMBER | HTML 走私附件释放的 IOC |
| `email` | `billing@docusgn-secure.com` | GREEN | 来自相关 Proofpoint 告警的伪造发件人 |
### 步骤 8 — 推进生命周期
在右侧面板中,随着响应的进展更改状态:
- `triage` → `investigating`(一旦你确定了范围)
- `investigating` → `contained`(主机已隔离,IOC 已在边界被阻止)
- `contained` → `eradicated`(主机已重装镜像,持久化已移除)
- `eradicated` → `recovered`(主机已恢复生产,监控已到位)
- `recovered` → `closed`,分类:`true_positive`
每次状态更改都会自动写入时间线——在你关闭时,你将拥有一份可防御、可审计的记录。
### 步骤 9 — 结案
关闭时,将分类设置为 `true_positive`。仪表板中的 MTTR(平均关闭时间)指标将会更新。
🎉 你刚刚运行了一个真实的 IR 工作流。
## 6. 练习场景
种子数据是刻意多样化的。试试这些:
1. **勒索软件演练(严重,时间紧迫)**
找到 *“Mass file rename pattern on SRV-FS-02”* 告警。在类别 `ransomware` 下升级,优先级为 `P1`。打开 **勒索软件遏制** 剧本。时间就是你的敌人。
2. **内部威胁(HR 敏感)**
找到 *“312 customer records copied to USB by user lpark”*。这不是一个恶意软件案例。在类别 `insider_threat` 下打开。请注意,剧本提醒你在 HR/法律部门介入之前不要惊动当事人。
3. **网络钓鱼活动(多告警,范围驱动)**
同时找到 HTML 走私附件告警和 O365 凭据网络钓鱼告警。它们看起来像是同一场活动——将它们关联到同一个事件下。使用 **网络钓鱼响应** 剧本。
4. **误报(练习结案纪律)**
找到 EICAR 测试文件告警。这是一个已知的良性测试,但流程规定你仍然需要对其进行分诊。将其升级为一个事件,运行一个最小的生命周期,以 `false_positive` 关闭。
5. **云事件(无需镜像端点)**
找到 *“Root account call from unusual ASN”*。依据 **受损凭据** 剧本进行应对。响应完全是以身份 / IAM 为中心的。
6. **检测工程时刻**
找到 *“Internal port scan: 10.42.9.21 → /24”*——由用户 `jchen` 发起。打开告警;你会看到 jchen *还* 触发了之前的不可能旅行告警。该端口扫描会不会是受损账户的后续活动,而不是合法的 IT 操作?练习这种分析性转折。
## 7. 概念小抄
**SOC** — 安全运营中心。负责检测和响应的团队/职能。
**SIEM** — 安全信息与事件管理。集中日志,运行检测规则。示例:Splunk ES、Microsoft Sentinel、Elastic SIEM、IBM QRadar。
**EDR** — 端点检测与响应。每台设备上的代理,用于查看进程活动、文件更改、网络调用。示例:CrowdStrike Falcon、SentinelOne、Microsoft Defender for Endpoint。
**SOAR** — 安全编排、自动化与响应。通过剧本和自动化将工具粘合在一起。示例:Splunk SOAR、Tines、Torq、XSOAR。
**IDS / NSM** — 入侵检测系统 / 网络安全监控。监控流量。示例:Suricata、Zeek、Snort。
**IOC** — 漏洞指标。与恶意活动相关的特定工件:IP、域名、URL、文件哈希、电子邮件地址、互斥体名称。在 TheHive 中,这些被称为“observables”。
**TTP** — 战术、技术和程序。攻击者使用的行为模式。MITRE ATT&CK 框架对这些进行了分类。
**MTTR** — 平均解决(或响应)时间。你关闭事件所需的平均时间。仪表板会跟踪此指标。
**MTTD** — 平均检测时间。攻击者活动与你的告警之间相隔的时间。(在此演示中未跟踪——需要真实的攻击者开始时间。)
**驻留时间** — 攻击者在你发现他们之前在你的环境中停留了多长时间。这是 Mandiant 每年发布的指标。
**证据保管链** — 证明取证证据未被篡改的文档。对于进入法律程序的案件至关重要。
**遏制 vs. 根除 vs. 恢复** — 人们通常容易混淆的三个不同步骤。
- *已控制*:攻击者无法再行动(主机已隔离,账户已禁用,网络已阻止)。
- *已根除*:威胁已被移除(恶意软件已删除,持久化已消除,漏洞已修补)。
- *已恢复*:业务恢复正常(系统已还原,用户重新上线,监控已到位以检测复发)。
## 8. 这个演示没有做什么(以及为什么这没关系)
- **没有真正的身份验证** — 你通过下拉菜单切换角色。真正的平台使用带有 MFA 的 SSO。
- **没有真正的检测引擎** — 告警是静态的种子数据。真正的 SIEM 运行连续的关联规则。
- **没有集成** — 在真正的 EDR 中点击“隔离主机”会真正进行隔离。在这里,我们只是在笔记中输入“我隔离了主机”。
- **没有自动化** — 真正的 SOAR 平台会为你执行剧本步骤。这里的剧本只是参考文本。
- **没有威胁情报源** — 真正的工具会使用来自 VT、MISP、AbuseIPDB 等的信誉数据自动丰富 IP/哈希。
- **没有报告功能** — 真正的平台会为法务、监管机构和高管生成 PDF 事件报告。
- **没有 SLA 跟踪、没有值班轮换、没有交接班、没有审计日志、没有指标导出。**
目标是使 *工作流* 足够具体,让你理解那些生产环境能力的用途,以及如果你拥有它们会有什么样的体验。
## 9. 接下来去哪里(真实世界)
如果你想继续学习:
- **TheHive**(免费,自托管)——安装它并使用几周。它的概念模型与本演示几乎相同。
- **The DFIR Report** (https://thedfirreport.com) ——免费、深入的真实入侵案例研究。读 3 篇;你就会了解这个领域。
- **MITRE ATT&CK** ——通读一个战术(例如 Initial Access)及其下的技术。
- **SANS 阅读室 / NIST SP 800-61r2** ——权威的 IR 文档。
- **搭建一个家庭 SOC**:Wazuh + Suricata + 几台虚拟机,你就可以生成自己的告警了。
祝你狩猎愉快。
标签:CIDR查询, Flask, IBM Resilient, IR, IT运维, Python, SOAR, Socks5代理, TheHive, 入侵指标, 全栈项目, 告警分诊, 多模态安全, 威胁情报, 安全案例管理, 安全演练平台, 安全运营中心, 实战练习, 工单系统, 库, 应急响应, 开发者工具, 教学工具, 无后门, 沙箱模拟, 漏洞修复, 生命周期管理, 网络安全培训, 网络映射, 网络研究, 逆向工具