sukrrr/IDS-Project
GitHub: sukrrr/IDS-Project
一个基于 Python 和 Scapy 的轻量级网络入侵检测系统,可实时监控流量并检测端口扫描、SYN flood 和 DNS 异常等可疑活动。
Stars: 0 | Forks: 0
# 网络入侵检测系统 (IDS)
一个使用 Python 构建的轻量级网络入侵检测系统,可实时监控网络流量,并检测包括端口扫描、SYN flood 和 DNS 异常在内的可疑活动。
## 功能
- **实时数据包捕获** - 使用 Scapy 嗅探网络流量
- **流量分析** - 分析数据包流和连接模式
- **基于特征的检测** - 检测已知的攻击模式
- **异常检测** - 识别异常的流量行为
- **警报系统** - 带有严重程度级别(严重、高、中)的实时警报
- **日志记录** - 所有警报都会被记录以供事后分析
- **攻击检测**:
- 端口扫描
- SYN flood 攻击
- DNS 隧道/可疑的 DNS 活动
- 暴力破解尝试
## 使用的技术
- **Python 3.8+** - 核心编程语言
- **Scapy** - 数据包操作和捕获
- **Scikit-learn** - 用于异常检测的机器学习
- **Pandas** - 数据分析
- **Matplotlib** - 可视化(可选)
## 安装
### 前置条件
- Python 3.8 或更高版本
- Npcap (Windows) 或 libpcap (Linux)
- 管理员/root 权限
### 克隆仓库
```
git clone https://github.com/sukri/IDS-Project.git
cd IDS-Project
```
### 安装依赖
```
pip install -r requirements.txt
```
### Windows 用户 - 安装 Npcap
1. 从以下地址下载 Npcap:https://npcap.com/
2. 在安装过程中,**勾选**“WinPcap API-compatible Mode”
3. 以管理员身份运行命令提示符
## 用法
### 启动 IDS
**在 Windows (Wi-Fi) 上:**
```
python src/main.py -i "Wi-Fi"
```
**在 Windows (以太网) 上:**
```
python src/main.py -i Ethernet
```
### 检查您的网络接口
**Windows:**
```
ipconfig
```
## 测试 IDS
### 从 Kali Linux (攻击机)
**1. 端口扫描检测:**
```
nmap -sS -p 1-1000 TARGET_IP
```
**2. SYN flood 检测:**
```
sudo hping3 -S -p 80 --flood TARGET_IP
```
**3. DNS 异常检测:**
```
for i in {1..1000}; do nslookup test$i.evil.com; done
```
### 从 Windows (生成流量)
```
for /L %i in (1,1,50) do nslookup test%i.google.com
```
## 警报输出示例
```
==================================================
ALERT: Port Scan
Severity: HIGH
Source: 10.101.111.166
Confidence: 100%
Details: Packet: TCP 53->59331
==================================================
```
## 检测阈值
| 攻击类型 | 阈值 | 时间窗口 |
|-------------|-----------|-------------|
| 端口扫描 | 20 个唯一端口 | 60 秒 |
| SYN flood | 100 个数据包 | 10 秒 |
| DNS 隧道 | 50 次查询 | 10 秒 |
## 自定义
您可以在 `src/detection_engine.py` 中调整检测阈值:
self.thresholds = {
'port_scan': 20, # 增加以降低敏感度
'syn_flood': 100, # 减小以提高敏感度
'dns_tunnel': 50,
'brute_force': 30
}
## 日志
警报存储在:
- `logs/alerts.log` - 纯文本格式
- `logs/alerts.jsonl` - 用于解析的 JSON 格式
## 学习成果
通过这个项目,我学习了:
- 使用 Scapy 进行网络数据包分析
- TCP/IP 协议基础
- 基于特征和基于异常的检测
- 实时监控和警报
- 使用 Python 多线程进行并发处理
- 安全监控的最佳实践
## 未来改进
- 用于高级异常检测的机器学习
- 带有实时可视化的 Web 仪表板
- 电子邮件/短信警报
- 与 Snort/Suricata 规则集成
- 多线程数据包处理
- 报告生成
## 许可证
该项目基于 MIT 许可证授权。
标签:Apex, IP 地址批量处理, Python, Scapy, 入侵检测系统, 安全数据湖, 插件系统, 无后门, 机器学习, 网络安全, 逆向工具, 隐私保护