enablepedro/pigs-rules-snort-nids
GitHub: enablepedro/pigs-rules-snort-nids
这是一个基于Snort和Snorby的网络入侵检测实验项目,用于自定义规则编写和告警流水线管理。
Stars: 1 | Forks: 0
# Pigs规则 — 基于Snort和Snorby的网络入侵检测
## 概述
这是一次模拟真实网络入侵检测系统部署的动手实验。目标是配置Snort以检测恶意网络行为,根据自定义规则生成告警,并将这些告警路由至基于Web的安全信息与事件管理仪表板(Snorby),以实现集中审查与分析。
## 工具与技术
| 工具 | 用途 |
|------|---------|
| **Snort** | 开源的网络入侵检测系统引擎 — 实时监控网络流量,并根据自定义规则评估数据包 |
| **Snorby** | 基于Web的安全信息与事件管理仪表板 — 集中进行告警可视化与事件审查 |
| **Linux 终端** | 用于配置、执行和故障排除 |
| **Unified2 日志记录** | 二进制日志格式,用于将Snort告警传输至Snorby |
## 主要发现
- 检测到源自 `172.29.0.1` 并以 `172.29.0.3` 为目标的活跃 **TCP端口扫描**行为
- 自定义Snort规则成功触发,并在Snorby中捕获了 **超过78,000条告警**
- 验证了完整流水线的功能:数据包捕获 → 规则评估 → Unified2日志 → SIEM摄入
## 方法步骤
1. 为实验环境复制并修改了默认的Snort配置文件
2. 注释掉了受保护的系统级规则路径;添加了本地规则包含语句
3. 编写了一条自定义Snort规则以检测TCP端口扫描行为:
`alert tcp 172.29.0.1 36730 -> 172.29.0.3 any (msg:"PORTSCAN: 172.29.0.1 scanning 172.29.0.3"; flags:S; sid:1000001; rev:1;)`
4. 使用Snort的测试模式(`-T` 标志)验证配置 — 通过
5. 在 `eth0` 接口上以守护进程模式启动Snort,并启用Unified2输出
6. 确认告警实时出现在控制台输出中,并被摄入Snorby
## 结果
成功从零开始部署了一个功能完整的网络入侵检测系统流水线。检测到了端口扫描活动,记录了日志,并在安全信息与事件管理仪表板中进行了可视化展示 — 展示了核心的安全运营中心技能,包括规则编写、入侵检测系统配置、日志流水线管理和告警分类。
## 建议
- 扩展规则集以检测其他攻击模式(例如,SYN洪泛、横幅抓取)
- 实施网络分段和防火墙规则以限制外部访问
- 将Snorby告警转发给安全运营中心分析人员,以执行结构化的分类工作流程
- 在适用的情况下启用自动告警分类
## 报告
📄 [Pigs规则报告.pdf](https://github.com/enablepedro/pigs-rules-snort-nids/blob/56228c482d5aedf1bb77aa46526ebf848afbeedf/Pigs%20Rules%20Report.pdf)
*我的网络安全作品集组成部分 — UCF网络安全训练营 | IronCircle IR专家认证*
标签:AMSI绕过, Linux配置, Snorby, SOC技能, Unified2日志, 事件审查, 威胁检测, 安全信息与事件管理, 插件系统, 搜索引擎爬取, 日志可视化, 端口扫描检测, 网络安全, 网络安全实验, 自定义规则, 规则编写, 警报管道, 隐私保护