nurzhassec/Snort-lab-IDS
GitHub: nurzhassec/Snort-lab-IDS
Snort IDS实验室项目,用于搭建实战型入侵检测系统。
Stars: 0 | Forks: 0
# 🛡️ Snort IDS检测工程实验室
一个专注于在VirtualBox实验室环境中部署、调整和验证Snort入侵检测系统(IDS)的动手Blue Team项目。
# 📋 目录
* [项目概述](#-project-overview)
* [实验室架构](#-lab-architecture)
* [使用的技术](#-technologies-used)
* [检测规则](#-detection-rules)
* [攻击模拟](#-attack-simulation)
* [误报调整](#-false-positive-tuning)
* [PCAP捕获和回放](#-pcap-capture-and-replay)
* [检测证据](#-detection-evidence)
* [展示的技能](#-skills-demonstrated)
* [仓库结构](#-repository-structure)
# 🎯 项目概述
本项目演示了使用Ubuntu和Kali Linux虚拟机部署和配置基于Snort的入侵检测系统(IDS)。
目标是:
* 部署一个工作的IDS传感器
* 开发自定义的Snort检测签名
* 模拟攻击流量
* 捕获和回放数据包
* 通过规则调整减少误报
* 验证检测对回放流量的有效性
项目遵循了在SOC和Blue Team环境中常用的实用检测工程工作流程。
# 🏗️ 实验室架构
| 主机 | 角色 | IP地址 |
| ---------- | ---------------------- | -------------- |
| Ubuntu | Snort IDS传感器 | 192.168.100.10 |
| Kali Linux | 攻击模拟主机 | 192.168.100.20 |
### 网络配置

Snort监控穿越隔离的VirtualBox内部网络的数据流量。
# ⚙️ 使用的技术
| 类别 | 技术 |
| ---------------- | ------------ |
| 操作系统 | Ubuntu |
| 攻击平台 | Kali Linux |
| IDS | Snort 2.9.20 |
| 网络服务 | Apache2 |
| 探测 | Nmap |
| 数据包捕获 | Tcpdump |
| 数据包回放 | Tcpreplay |
| 虚拟化 | VirtualBox |
# 🚨 检测规则
## ICMP主机发现检测
检测侦察期间使用的ICMP回显请求。
**SID:** 1000001
## TCP SYN端口扫描检测
检测Nmap SYN扫描活动。
**SID:** 1000002
## HTTP SQL注入检测
检测基于UNION的SQL注入尝试。
**SID:** 1000003
# 🎯 攻击模拟
以下攻击场景由Kali Linux生成:
### ICMP发现
```
ping -c 5 192.168.100.10
```
### SYN扫描
```
nmap -sS 192.168.100.10
```
### SQL注入模拟
```
curl "http://192.168.100.10/?id=1+union+select"
```
Snort成功为所有攻击场景生成了警报。
# 🔍 检测证据
## ICMP检测
自定义Snort规则成功检测到ICMP主机发现活动。

## 端口扫描检测
Snort检测到由Nmap生成的TCP SYN侦察。

## SQL注入检测
自定义HTTP规则检测到基于UNION的SQL注入尝试。

# 🎯 误报调整
原始端口扫描规则对每个TCP SYN数据包都生成了警报。
## 原始规则
```
alert tcp any any -> $HOME_NET any (flags:S; msg:"Possible Port Scan"; sid:1000002; rev:1;)
```
## 调整后的规则
```
alert tcp any any -> $HOME_NET any (flags:S; msg:"Potential Port Scan"; detection_filter:track by_src,count 10,seconds 5; sid:1000002; rev:2;)
```
## 调整结果
* 减少了误报
* 保留了检测能力
* 提高了信噪比

# 📦 PCAP捕获和回放
使用Tcpdump捕获流量:
```
sudo tcpdump -i enp0s8 -w lab.pcap
```
捕获的攻击场景:
* ICMP发现
* Nmap SYN扫描
* HTTP SQL注入模拟
### 数据包捕获

### PCAP分析

生成的数据包捕获被回放以验证检测一致性并验证警报生成对先前记录的攻击流量。
# 🧠 展示的技能
* 入侵检测系统(IDS)
* 检测工程
* 签名开发
* 威胁检测
* 网络流量分析
* 数据包捕获分析
* Linux管理
* 安全监控
* 误报减少
* 网络故障排除
* Blue Team操作
# 📁 仓库结构
```
snort-home-lab-ids/
│
├── README.md
│
├── docs/
│ ├── architecture.md
│ ├── detections.md
│ └── false-positive-tuning.md
│
└── screenshots/
├── 01-home-net-configuration.png
├── 02-snort-installation-verification.png
├── 03-icmp-detection.png
├── 04-port-scan-detection.png
├── 05-http-sql-injection-alert.png
├── 06-tcpdump-pcap-capture.png
├── 07-pcap-analysis.png
├── 08-false-positive-tuning.png
├── 09-nmap-syn-scan.png
├── 10-apache-installation.png
├── 11-firewall-http-access.png
└── 12-custom-snort-rules.png
```
# 👨💻 作者
**Nurzhas**
网络安全 • SOC分析师 • 检测工程
该项目旨在演示在受控的家庭实验室环境中进行实用的IDS部署、警报开发、数据包分析和误报调整。
标签:CTI, HTTP攻击检测, PCAP重放, XML 请求, 入侵检测系统, 安全培训, 安全实验室, 安全开发, 安全数据湖, 安全测试, 安全运营中心, 安全配置, 安全防护, 攻击性安全, 生成式AI安全, 端口扫描检测, 网络安全, 网络映射, 网络流量分析, 虚拟机, 误报调整, 隐私保护