sushmasri-msr/real-time-ids-with-attack-classification
GitHub: sushmasri-msr/real-time-ids-with-attack-classification
基于机器学习的实时入侵检测系统,用于识别和分类可疑网络活动。
Stars: 0 | Forks: 0
# 基于机器学习的实时入侵检测系统
使用基于签名的检测、DNS威胁情报和基于机器学习的攻击分类的实时入侵检测系统。
## 概述
本项目实现了一个实时入侵检测系统(IDS),该系统结合了基于签名的检测、DNS威胁情报和基于机器学习的攻击分类,以识别和分类可疑的网络活动。
系统持续监控实时网络流量,使用预定义的签名和威胁情报指标检测可疑行为,并使用在UNSW-NB15数据集上训练的机器学习模型将检测到的事件分类到攻击类别。
该IDS在VMware虚拟环境中使用Kali Linux和Ubuntu机器进行了测试,以模拟攻击并验证检测能力。
## 检测方法
### 基于签名的检测
检测包括以下常见攻击模式:
* 端口扫描
* SSH暴力破解
* RDP扫描
* SYN洪水攻击
* ICMP洪水攻击
### DNS威胁情报
检测与已知恶意域的通信。
示例:
```
malware.wicar.org
```
IDS将DNS查询与维护的已知恶意域列表进行比较,并在检测到匹配项时生成警报。
### 基于机器学习的攻击分类
机器学习模型将可疑活动分类到UNSW-NB15数据集中的攻击类别,包括:
* 分析
* 后门
* DoS
* 漏洞利用
* Fuzzers
* 通用
* 正常
* 侦察
* Shellcode
* 蠕虫
## 数据集
本项目使用由澳大利亚网络安全中心(ACCS)开发的UNSW-NB15数据集。
数据集链接:
https://research.unsw.edu.au/projects/unsw-nb15-dataset
该数据集包含用于训练和评估入侵检测系统的现代网络流量和攻击场景。
## 机器学习模型
IDS使用在UNSW-NB15数据集上训练的机器学习分类器将检测到的事件分类到攻击家族。
由于GitHub文件大小限制,训练好的模型文件(`intrusion_model.pkl`)不包括在本存储库中。
要重新生成模型:
```
python src/train_model.py
```
生成的文件:
```
models/
├── intrusion_model.pkl
├── feature_columns.pkl
├── label_encoders.pkl
└── attack_encoder.pkl
```
## 安装
### 克隆存储库
```
git clone https://github.com/sushmasri-msr/real-time-ids-with-attack-classification.git
cd real-time-ids-with-attack-classification
```
### 创建虚拟环境
```
python -m venv venv
```
### 激活虚拟环境
Windows:
```
venv\Scripts\activate
```
Linux:
```
source venv/bin/activate
```
### 安装依赖项
```
pip install -r requirements.txt
```
## 运行IDS
### 启动IDS引擎
```
python src/main.py
```
在提示时选择所需的网络接口。
### 启动仪表板
```
python src/dashboard.py
```
打开:
```
http://127.0.0.1:5000
```
## 攻击模拟
### 端口扫描
从Kali Linux:
```
sudo nmap -sS -T5 -p 22,23,445,3306,3389 TARGET_IP
```
### SYN扫描
```
sudo nmap -sS TARGET_IP
```
### DNS威胁情报测试
```
nslookup malware.wicar.org
```
## 置信度分数解释
机器学习模型是在包含在受控实验室环境中收集的流量的UNSW-NB15数据集上训练的。
在部署期间,IDS分析可能与原始训练数据显著不同的实时网络流量。因此,当观察到的流量模式与训练期间使用的数据集不相似时,置信度分数可能会降低。
较低的置信度分数并不一定表示分类错误;相反,它们反映了现实世界流量与训练数据集之间的差异。
## 截图
### 仪表板

### 攻击模拟

## 局限性
* 基于签名的检测只能识别已知的攻击模式。
* 机器学习分类的准确性取决于训练数据的质量和多样性。
* 用于DNS威胁情报的恶意域数据库需要定期更新,以保持对新兴威胁的有效性。
* 新的和以前未见的攻击技术可能绕过检测机制。
* 实际流量可能与用于训练的实验室数据集不同。
## 未来改进
* 与Suricata规则的集成
* 威胁情报API集成
* 自动化恶意IP阻止
* SIEM集成(Splunk / ELK)
* 基于流的特征提取
* XGBoost和LightGBM攻击分类
* 自动化恶意域更新
* 威胁狩猎仪表板增强
## 作者
**Sushma Sri Miryala**
标签:Apex, BSD, DNS威胁情报, ICMP洪水攻击, PoC, UNSW-NB15数据集, WSL, 入侵检测系统, 安全数据湖, 开发者评论分析, 异常检测, 恶意域名检测, 拒绝服务攻击, 攻击分类, 攻击场景模拟, 数据挖掘, 数据统计, 暴力破解, 机器学习, 机器学习模型, 端口扫描, 签名检测, 网络安全, 网络安全防护, 网络流量分析, 虚拟环境, 请求拦截, 逆向工具, 隐私保护