ASHUTOSH761/Network-Intrusion-Detection-System
GitHub: ASHUTOSH761/Network-Intrusion-Detection-System
基于 Suricata 的网络入侵检测系统,包含 12 种攻击模式的自定义规则集和 Python 告警可视化仪表板。
Stars: 1 | Forks: 0
# 网络入侵检测系统 (Suricata)
一个完整且可部署的网络入侵检测系统,基于
**Suricata** 构建,包含涵盖 12 种常见攻击模式的自定义规则集、
详细的 Windows 安装指南,以及一个用于可视化 Suricata `eve.json` 日志警报的 Python 仪表板。
本项目作为个人实践构建,旨在亲自动手体验网络威胁检测——
编写自定义特征签名,搭建真实的 IDS 引擎,
并将原始警报日志转化为直观易读的内容。
## 包含内容
| 文件 | 用途 |
|---|---|
| `custom.rules` | 12 条自定义且兼容 Suricata/Snort 的检测规则 |
| `INSTALL_GUIDE.md` | 分步设置指南:安装 Suricata、加载规则、运行程序、生成测试流量 |
| `generate_sample_alerts.py` | 生成真实的示例 `eve.json` 警报日志,以便无需实际部署即可测试仪表板 |
| `dashboard.py` | 解析 `eve.json` 并生成打印摘要 + 可视化 PNG 仪表板(柱状图 + 警报时间轴) |
| `sample_eve.json` | 预先生成的示例警报日志(60 个事件),用于快速演示 |
| `alerts_dashboard.png` | 基于示例数据生成的仪表板输出示例 |
## 检测覆盖范围
自定义规则集(`custom.rules`)可检测:
1. SQL Injection(UNION SELECT, OR 1=1 模式)
2. Cross-Site Scripting (XSS)
3. OS Command Injection
4. Path Traversal
5. SSH 暴力破解尝试
6. 端口扫描
7. 通过 HTTP 明文传输的密码
8. 可疑扫描工具 User-Agents(sqlmap、nikto、nmap 等)
9. ICMP 泛洪 / 基础 DoS
10. 疑似 DNS tunneling(超大查询名称)
11. 可疑可执行文件下载
## 快速开始(使用示例数据 — 无需 Suricata)
```
pip install matplotlib
python generate_sample_alerts.py
python dashboard.py sample_eve.json
```
这会将警报摘要打印到控制台,并保存 `alerts_dashboard.png`。
## 完整部署(实时流量监控)
请参阅 `INSTALL_GUIDE.md` 获取完整指南:在
Windows 上安装 Suricata、加载 `custom.rules`、针对实时网络
接口运行、安全地生成测试流量,并将生成的
`eve.json` 输入到 `dashboard.py` 中。
## 响应机制
`INSTALL_GUIDE.md` 涵盖了自动化的 inline 阻断(Suricata IPS
模式)以及一种更简单的方法:编写 Windows Firewall 规则脚本,当 `eve.json` 中的警报数量超过阈值时阻断源 IP。
## 作者
Ashutosh Kumar Ray
标签:CISA项目, DOE合作, IP 地址批量处理, Metaprompt, Python, Suricata, 入侵检测系统, 安全可视化, 安全数据湖, 插件系统, 无后门, 现代安全运营, 网络安全, 逆向工具, 隐私保护