Anam-Batool-12/Network-ids-suricata-lab
GitHub: Anam-Batool-12/Network-ids-suricata-lab
基于 Suricata 的虚拟网络入侵检测实验环境,通过模拟端口扫描、SSH 暴力破解等真实攻击来演示 IDS 检测与自定义规则编写。
Stars: 0 | Forks: 0
# 使用 Suricata 的网络入侵检测系统 (IDS) 实验
## 概述
一个模拟真实网络攻击的网络安全实操实验,并使用开源高性能网络入侵检测系统 (IDS) Suricata 进行检测。该项目展示了对网络安全监控、威胁检测以及自定义规则工程的实际理解。
## 项目目标
- 构建独立的虚拟实验室环境,用于安全地模拟攻击
- 部署并配置包含 51,000+ 检测规则的 Suricata IDS
- 模拟真实的网络攻击(端口扫描、暴力破解)
- 编写自定义检测规则以识别特定的攻击模式
- 分析并记录 IDS 日志中的攻击特征
## 实验架构
┌─────────────────┐ ┌──────────────────────┐
│ 攻击者 │ ──────► │ 目标 + IDS │
│ WSL2 Ubuntu │ │ Kali Linux │
│ 192.168.100.86 │ │ 192.168.100.104 │
│ │ │ Suricata 8.0.5 │
│ 工具: │ │ 已加载 51,182 条规则 │
│ - Nmap 7.98 │ │ │
│ - Hydra 9.6 │ │ 日志: │
└─────────────────┘ │ - fast.log │
│ - eve.json │
└──────────────────────┘
独立的 VMware Host-Only 网络
## 工具与技术
| 工具 | 版本 | 用途 |
|------|---------|---------|
| Suricata | 8.0.5 | 网络 IDS 引擎 |
| Nmap | 7.98 | 端口扫描模拟 |
| Hydra | 9.6 | SSH 暴力破解模拟 |
| WSL2 Ubuntu | 24.04 | 攻击机 |
| Kali Linux | 2026 | 目标机 + IDS 传感器 |
| Emerging Threats | 最新版 | 社区规则集 |
## 模拟与检测到的攻击
| 攻击类型 | 工具 | Suricata 警报 | MITRE ATT&CK | 已检测 |
|-------------|------|----------------|--------------|----------|
| SYN 隐秘端口扫描 | Nmap -sS | POSSBL PORT SCAN (NMAP -sS) | T1046 - 网络服务发现 | ✅ 是 |
| SSH 暴力破解 | Hydra | 自定义规则 - SSH 暴力破解尝试 | T1110 - 暴力破解 | ✅ 是 |
| 可疑 DNS 查询 | RustDesk | ET INFO DNS Lookup 中的 RustDesk 域名 | T1071 - 应用层协议 | ✅ 是 |
## 自定义检测规则
编写在 `/etc/suricata/rules/local.rules` 中:
alert tcp any any -> $HOME_NET 22 (msg:"SSH Brute Force Attempt
Detected"; flow:to_server; threshold:type threshold, track by_src,
count 5, seconds 60; sid:9000001; rev:1;)
**规则解释:**
- `alert tcp` — 监控 TCP 流量
- `any any -> $HOME_NET 22` — 从任意源到 SSH 端口 22
- `msg` — 日志中显示的警报消息
- `threshold: count 5, seconds 60` — 在 60 秒内尝试 5 次以上时触发
- `sid:9000001` — 唯一规则 ID
## 主要发现
- Suricata 在攻击发起后的几秒钟内就检测到了 Nmap SYN 扫描
- 从 Emerging Threats 开放规则集中加载了 51,182 条规则
- 成功编写并测试了自定义 SSH 暴力破解规则
- Hydra 在 10 秒内成功破解了弱密码 (`kali:kali`) —— 说明了强密码的重要性
- Suricata 未检查回环流量 (127.0.0.1) —— 被认为是基于主机的 IDS 部署的架构限制
- ET 规则自动标记了 RustDesk 远程桌面软件 —— 展示了基于特征检测的真实世界适用性
## MITRE ATT&CK 映射
侦察 → T1046 (网络服务发现) — Nmap 扫描
凭证获取 → T1110 (暴力破解) — Hydra SSH 攻击
命令与控制 → T1071 (应用层协议) — DNS 异常
## 限制与未来改进
| 限制 | 未来改进 |
|------------|-------------------|
| 未监控回环流量 | 通过端口镜像部署专用 IDS 传感器 |
| 单一网络段 | 添加多个 VLAN 以模拟企业网络 |
| 无 SIEM 集成 | 将 Suricata 连接到 ELK Stack 或 Wazuh SIEM |
| 手动编写规则 | 根据威胁情报源实现自动化规则生成 |
| 无 IPS 模式 | 在 IPS 模式下启用 Suricata 以主动拦截攻击 |
## 我学到了什么
- 如何从零开始部署和配置 Suricata IDS
- 网络攻击在数据包和日志级别上是如何呈现的
- 如何使用 threshold 逻辑编写自定义 Suricata 检测规则
- Nmap SYN 隐秘扫描与常规 TCP 扫描有何不同
- 暴力破解攻击如何生成可被 IDS 检测到的模式
- 对 MITRE ATT&CK 框架映射的实际理解
- 基于主机的 IDS 与基于网络的 IDS 部署的限制
## 大型作品集的一部分
这是我的网络安全实验系列中 **9 个项目的第 1 个**,作为准备网络安全与信息安全研究生学习的一部分而构建。每个项目都建立在之前项目技能的基础之上。
**完整系列:**
1. ✅ 网络 IDS 实验 (Suricata) — 本项目
2. 🔄 手动流量分析与异常检测
3. ⏳ 中间人攻击与防御实验
4. ⏳ 无线网络安全审计
5. ⏳ DNS 安全实验 (Spoofing + DNSSEC)
6. ⏳ VPN 与隧道安全实验
7. ⏳ 网络分段与 Zero Trust 实验
8. ⏳ SDN 自动化防火墙
9. ⏳ 完整渗透测试报告 (毕业项目)
## 参考
- [Suricata 文档](https://suricata.io/documentation/)
- [Emerging Threats 规则](https://rules.emergingthreats.net/)
- [MITRE ATT&CK 框架](https://attack.mitre.org/)
- [Nmap 参考指南](https://nmap.org/book/man.html)
*作者:Anam Batool | 软件工程毕业生 |
巴基斯坦虚拟大学*
*研究方向:网络安全与信息安全 |
标签:BurpSuite集成, CTI, Metaprompt, Suricata, 云计算, 插件系统, 现代安全运营, 网络安全, 网络攻防, 虚拟实验室, 规则引擎, 速率限制, 隐私保护