Kohlby6/splunk-forensics-lab
GitHub: Kohlby6/splunk-forensics-lab
一个自定进度的 Splunk 数字取证实战课程,通过网络基础与日志分析的结合,帮助初学者在真实数据中追踪隐藏攻击。
Stars: 0 | Forks: 0
# Splunk 取证实验室 🔍
这是一个自定进度的实操实验室,用于学习**使用 Splunk 进行数字取证** —— 以及你真正看懂日志所需的**网络基础知识**。
你不仅是阅读关于搜索的内容。你将搭建一个真实的 Splunk 实例,加载真实
日志数据,其中**隐藏了六次真实的攻击**,然后追查并找出它们 —— 恰好在日志迫使你关注时,学习网络概念(IP、ports、DNS、TCP、HTTP 等)。
## 为什么将 Splunk 和网络结合起来?
在 Splunk 中进行取证意味着阅读来自防火墙、DNS 服务器、Web 服务器和登录系统的日志。这些日志中的每一条都在描述**网络上发生的某些事情**。如果你不知道什么是“端口”、什么是“DNS 查询”或什么是“IP 地址”,那么这些日志就像天书一样。如果你*懂*这些概念,它们就会为你讲述一个故事。
因此,本实验室将它们作为一对组合来教授:
```
Networking concept → shows up in a log → you search for it in Splunk
─────────────────────────────────────────────────────────────────────────────
"ports identify services" → dpt=22 in firewall.log → find the brute-force
"DNS resolves names" → query=... in dns.log → find the data exfil
"HTTP has status codes" → 404 in web_access.log → find the web scan
```
## 课程体系
请**按顺序**学习这些内容。每个模块都建立在前一个模块的基础之上。在学习过程中,请在 [PROGRESS.md](PROGRESS.md) 中勾选完成的进度。
| # | 模块 | 你将学到什么 | 时间 |
|---|--------|--------------|------|
| 00 | [入门与设置](curriculum/00-orientation-and-setup.md) | 什么是取证/Splunk;**安装 Splunk**;加载实验室数据 | 1–2 小时 |
| 01 | [网络基础](curriculum/01-networking-foundations.md) | IP、ports、TCP/IP 模型、DNS、HTTP —— 每一条日志的词汇表 | 3–4 小时 |
| 02 | [Splunk 基础](curriculum/02-splunk-basics.md) | Indexes、sourcetypes、events、fields 以及你的第一次搜索 | 3–4 小时 |
| 03 | [SPL —— 搜索语言](curriculum/03-spl-search-language.md) | `stats`、`eval`、`table`、`top`、`rex` —— 将数据转化为答案 | 5–6 小时 |
| 04 | [阅读网络与安全日志](curriculum/04-reading-network-logs.md) | 将防火墙/DNS/Web/认证字段映射回网络知识 | 3–4 小时 |
| 05 | [调查](curriculum/05-investigations.md) | 狩猎所有六个隐藏的攻击;学习一套调查方法论 | 5–8 小时 |
| 06 | [超越 Splunk](curriculum/06-beyond-splunk.md) | Wireshark、Zeek、数据包与日志取证的对比;下一步去哪里 | 2–3 小时 |
**总计:约 25–35 小时。** 把它当作一门课程,每次坐下来学一两个小时。急于求成是没有意义的 —— 目标是让你弄*懂*搜索,而不是仅仅为了看完。
### 这里还有
- [`exercises/`](exercises/) —— 带有答案的分级挑战(从模块 03 之后开始)
- [`reference/`](reference/) —— 你会一直开着的速查表:[SPL](reference/spl-cheatsheet.md)、[networking](reference/networking-cheatsheet.md)、[glossary](reference/glossary.md)
- [`data/`](data/) —— 示例日志 + 生成它们的生成器
## 快速开始 (TL;DR)
1. 打开 **[curriculum/00-orientation-and-setup.md](curriculum/00-orientation-and-setup.md)** 并跟随指引。它会引导你:
- 在 Windows 上安装 **Splunk Free**(约 10 分钟)
- 将来自 [`data/`](data/) 的四个日志文件加载到名为 `lab` 的 index 中
- 运行你的第一次搜索
2. 数据**已经为你生成好了**(`data/*.log`)。如果你想要
重置或微调数据:`python data/generate_logs.py`。
3. 然后只需逐个模块进行学习即可。
## 本实验室*不是*什么
- 不是 Splunk 认证的突击复习(尽管它为此打下了坚实的基础)。
- 不是生产环境的安全建议 —— 这是一个使用玩具数据的学习沙盒。
- 不是详尽无遗的网络教材 —— 它只教授取证实际会用到的那部分切片知识。
现在前往 **[模块 00](curriculum/00-orientation-and-setup.md)**。🚀
标签:安全实验, 安全教育, 数字取证, 网络基础, 自动化脚本, 逆向工具