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 进行的动手实践网络入侵检测**
标签:安全实验, 网络安全, 隐私保护