MartinezGN/pcap-triage-kibana-zeek
GitHub: MartinezGN/pcap-triage-kibana-zeek
基于Security Onion/Zeek/Snort/Kibana技术栈的PCAP流量分析实战作品集,展示SOC分析师从流量导入、NIDS告警审查、协议日志分析到IOC提取和案件报告撰写的完整分类工作流。
Stars: 0 | Forks: 0
# 作品集 — PCAP 分类分析 (Zeek + NIDS/Snort + Kibana)
面向 SOC L1 的实践仓库:PCAP 导入、时间窗口界定、Kibana 分析 (Zeek + Snort)、IOC 提取,以及包含可复现证据的案件报告。
## 关于本项目
本仓库记录了我在职业生涯转型至网络安全领域过程中,对网络安全监控 (NSM) 工具的实操练习。每个案例都代表了一个完整的分类工作流:从 PCAP 导入到 IOC 提取及事件文档记录。
目标是建立能直接应用于 SOC 分析师 (L1/L2) 职责的实战技能——不仅仅是运行工具,而是理解*为什么*某些流量模式很重要,以及*如何*清晰地传达发现。
## 实验环境
我使用 VirtualBox 搭建此实验环境,并为虚拟机分配了 8GB RAM。
| 组件 | 详情 |
|-----------|---------|
| 虚拟化平台 | VirtualBox |
| 主虚拟机 | Security Onion (NSM stack) |
| 附加虚拟机 | REMnux (恶意软件分析), FLARE VM (Windows 取证) |
| NSM Stack | Zeek + Snort |
| 可视化 | Kibana |
| 导入方法 | `so-import-pcap` |
### 如何导入 PCAP
1. 从来源下载 PCAP (Wireshark 样本, Malware-Traffic-Analysis.net)
2. 传输至 Security Onion 虚拟机
3. 运行 `sudo so-import-pcap `
4. 调整 Kibana 时间窗口以匹配 PCAP 时间戳
5. 跨仪表板开始分类分析 (DNS → HTTP → Conn → NIDS)
## PCAP 来源
| 案例 | PCAP | 来源 |
|------|------|--------|
| 001 | `http_gzip.cap` | [Wireshark Sample Captures](https://wiki.wireshark.org/SampleCaptures) |
| 002 | `2025-01-22-traffic-analysis-exercise.pcap` | [Malware-Traffic-Analysis.net](https://www.malware-traffic-analysis.net/2025/01/22/index.html) |
## 案例
### Case 001 — HTTP 训练 PCAP
- **报告:** `writeups/case-001.md`
- **IOC:** `iocs/case-001-iocs.txt`
- **证据:** `screenshots/`
- **摘要:** 单个 HTTP GET 事务,响应采用 gzip 编码。用于基线分类练习的训练 PCAP。
- **严重性:** 低 (信息性)
### Case 002 — 恶意软件感染 (伪造 Google Authenticator)
- **报告:** `writeups/case-002.md`
- **IOC:** `iocs/case-002-iocs.txt`
- **证据:** `screenshots/`
- **摘要:** 用户点击恶意广告,下载伪造软件,建立 C2 通信。基于 Unit42 威胁情报。
- **严重性:** 高 (确认感染)
## 仓库结构
```
├── writeups/ # Case reports with methodology and findings
├── iocs/ # Extracted indicators per case
└── screenshots/ # Kibana screenshots as reproducible evidence
```
## 本仓库展示的内容
- **PCAP 导入与时间窗口界定** — 正确调整 Kibana 时间范围以匹配导入的数据。
- **基于证据的调查** — 浏览仪表板 (DNS/HTTP/Conn/NIDS) 并在 Discover 中进行交叉验证。
- **主机与网络识别** — 从 Zeek 事件和 NIDS 警报中识别源/目的主机及相关 IP。
- **IOC 提取与文档记录** — 记录域名、IP、端口、URI 和规则 SID,用于检测和追踪。
- **严重性评估** — 区分良性流量与已确认事件。
- **可复现的文档** — 每次分析均包含案例报告 + 截图 + IOC 列表。
## 方法论
我对每个案例的分类处理方法:
1. **界定时间窗口** — 将 Kibana 调整至 PCAP 的时间范围,避免出现空结果。
2. **优先审查 NIDS 警报** — 了解警报面,并按分类/严重性排定优先级。
3. **转向 DNS** — 识别被查询的域名,并与源主机关联。
4. **审查 HTTP/连接** — 验证流量流向、方法、状态码和连接状态。
5. **交叉参考威胁情报** — 适用时,根据已知的恶意指标检查域名/IP。
6. **记录并提取 IOC** — 附带证据记录发现结果及可操作的指标。
## 关键心得
通过这些实验,我学到了:
- **Kibana 时间窗口调整至关重要** — 如果时间范围不匹配,旧的 PCAP 或导入的数据将不会显示。这曾导致最初的“无结果”困惑,直到我理解了这个问题。
- **Zeek 按协议分离日志的功能非常强大** — 将 DNS、HTTP 和连接日志分开,使得一旦理解了其结构,在数据源之间进行切换就变得直观。
- **NIDS 警报需要上下文** — 单个 `policy-violation` 警报本身没有任何意义;与 DNS/HTTP 数据关联后,才能揭示其是噪音还是真实事件。
- **发现 Kibana 的功能需要时间** — 该应用程序有许多并非一目了然的强大功能。我花时间探索了过滤器、已保存的搜索和仪表板自定义,以构建高效的工作流。
- **文档至关重要** — 撰写带有证据的清晰报告迫使我理解*为什么*我会得出某些结论,而不仅仅是发现了*什么*。
## 关于我
本仓库是我转型网络安全职业生涯的一部分。
**背景:**
- 法学学位 (Procurador) — 阿根廷
- CCNA v1.7 认证
- CyberOps Associate 认证
- 目前正在攻读网络安全硕士学位
我建立这些实验环境是为了培养实用的 SOC 技能,并展示我分析网络流量、提取 IOC 以及专业地记录发现的能力。
*欢迎反馈 — 请随时开启 issue 或联系我。*
标签:DAST, DNS分析, Elasticsearch, HTTP分析, IOC提取, IP 地址批量处理, L1分析师, NIDS, PCAP分类, PFX证书, Rootkit, Security Onion, SOC分析, Triage, VirtualBox, Wireshark, Zeek, 内核驱动, 句柄查看, 威胁情报, 安全可视化, 安全实验室, 安全运营中心, 容器化, 开发者工具, 恶意软件分析, 搜索语句(dork), 攻击检测, 案例报告, 网络协议, 网络安全, 网络映射, 越狱测试, 隐私保护