E-m-e-k-a/Snort-IDS-Lab
GitHub: E-m-e-k-a/Snort-IDS-Lab
一个基于真实 pcap 文件的 Snort IDS 规则编写与网络流量分析实战实验室,帮助学习者练习入侵检测和安全运营中的威胁检测工作流程。
Stars: 0 | Forks: 0
# Snort-IDS-Lab
Snort IDS 规则编写与网络流量分析实战实验室
# Snort IDS 实战实验室
## 📊 项目概述
使用真实 pcap 文件进行的 Snort 入侵检测系统实战实验室,练习规则编写、流量分析和日志调查。该实验室模拟了真实的 SOC 分析师基于网络的威胁检测工作流程。
## 🎯 实验目标
- 为各种流量类型编写自定义 Snort 检测规则
- 使用 Snort 针对 pcap 文件分析网络流量
- 调查生成的日志以提取数据包详细信息
- 排查并修复无效的 Snort 规则
- 提取特定的数据包信息(ACK、SEQ 号、目标 IP)
## 🛠️ 练习技能
**规则编写:**
- TCP 流量检测规则
- 特定端口检测
- 双向流量监控
- 各种协议规则
**日志分析:**
- 读取 Snort 日志文件
- 提取数据包详细信息
- 按编号查找特定数据包
- 分析数据包头(ACK、SEQ 号)
**故障排查:**
- 识别无效的 Snort 规则
- 纠正规则语法错误
- 根据流量验证规则
## 🔧 使用的命令
**针对 pcap 运行 Snort:**
```
sudo snort -c /etc/snort/snort.conf -A full -l . -r [pcap file]
```
**读取 Snort 日志文件:**
```
sudo snort -r snort.log.XXXXXXX -X
```
**提取特定数据包:**
```
strings snort.log.XXXXXXX
```
**查找特定行:**
```
tcpdump -r snort.log.XXXXXXX -n | awk 'NR==63'
```
## 📝 编写的规则
## **检测所有 TCP 端口 80 流量(双向):**
**检测特定协议流量:**
## 🔍 完成的调查任务
**流量分析:**
- 检测到 TCP 端口 80 数据包
- 识别了来自特定数据包的目标地址
- 从数据包头中提取了 ACK 和 SEQ 号
- 分析了双向流量模式
**故障排查:**
- 识别并纠正了无效的规则语法
- 修复了规则格式错误
- 根据流量验证了修正后的规则
## 💡 关键学习成果
**Snort 规则结构:**
**方向操作符:**
- `->` = 仅单向
- `<>` = 双向
**日志读取命令:**
- `snort -r` = 读取并显示日志
- `-X` = 显示十六进制和 ASCII 输出
- `strings` = 提取可读字符串
- `tcpdump` = 详细的数据包分析
**数据包头字段:**
- SEQ = Sequence number(序列号,跟踪数据顺序)
- ACK = Acknowledgment number(确认号,确认接收)
- Destination IP = 数据包发送的目的地址
## 🎓 SOC 相关性
**实际应用:**
- 为特定威胁编写自定义检测规则
- 使用数据包捕获调查网络安全事件
- 排查 IDS 规则问题
- 从网络日志中提取证据
## 🔗 与 SOC 工作的关联
- Snort 告警会输入到 SIEM(Splunk/ELK)中
- 规则类似于 SIEM 检测逻辑
- 日志分析与事件调查相联系
- 数据包详细信息用于 5W(何人、何事、何时、何地、何因)文档记录
## 📞 联系方式
**GitHub:** [@E-m-e-k-a](https://github.com/E-m-e-k-a)
**日期:** 2026 年 6 月
## 📄 许可证
教育项目 - 可免费用于学习目的的使用和修改
⭐ **使用行业标准 Snort IDS 进行的动手实践网络入侵检测**
标签:安全实验, 网络安全, 隐私保护