vbhashkar50be23-tech/AI-Driven-Intrusion-Detection-Threat-Intelligence-System
GitHub: vbhashkar50be23-tech/AI-Driven-Intrusion-Detection-Threat-Intelligence-System
一个集成了多种机器学习与深度学习算法的端到端入侵检测与威胁情报系统,提供从流量解析、模型训练到实时 API 预测和可视化仪表板的全链路解决方案。
Stars: 3 | Forks: 0
# AIDTIS - AI 驱动的入侵检测与威胁情报系统
一个基于综合机器学习的入侵检测系统,支持多种数据集(NSL-KDD、CICIDS2017/2018、UNSW-NB15、Bot-IoT)并提供实时威胁检测、可视化以及自动响应功能。该系统包含监督和无监督 ML 模型、REST API、交互式仪表板以及容器化部署选项。
## 快速开始(3 步)
1. **环境设置**:`make setup`(创建带有 GPU 支持的 conda 环境)
2. **下载并处理数据**:`make extract`(下载数据集并创建统一流格式)
3. **训练与服务**:`make train && make serve`(训练模型并启动 API + 仪表板)
**📋 如需完整的分步说明,请参阅 [QUICKSTART.md](QUICKSTART.md)**
## ⚠️ 安全与法律免责声明
**重要提示**:本系统仅为教育和研究目的而设计。所有流量生成、攻击模拟和自动响应功能必须仅在隔离的 Docker 网络或虚拟机中使用。切勿在生产网络或主机系统上运行主动流量生成或自动拦截。用户需自行负责遵守当地法律和网络政策。
## 功能特性
- **多数据集支持**:NSL-KDD、CICIDS2017/2018、UNSW-NB15、Bot-IoT
- **统一流处理**:从 PCAP 到流的提取,采用标准化 schema
- **ML 模型**:RandomForest、XGBoost、Autoencoder、IsolationForest、LSTM
- **实时 API**:带有批量和单次预测端点的 FastAPI 服务
- **交互式仪表板**:具有实时监控和可视化功能的 Streamlit 应用
- **自动响应**:用于隔离网络拦截的演示脚本
- **容器化部署**:支持 Docker 和 Kubernetes
- **GPU 加速**:支持 RTX 4060 及类似 GPU 的 CUDA
## 系统要求
- **硬件**:NVIDIA RTX 4060(或兼容的 CUDA GPU)
- **操作系统**:Ubuntu 20.04+(推荐使用带有 WSL2 的 Windows 10/11)
- **内存**:至少 16GB RAM,推荐 32GB
- **存储**:50GB 可用空间用于存放数据集和模型
- **软件**:Docker、Python 3.9+、CUDA 11.8+
## 仓库结构
```
AIDTIS/
├── src/ # Source code
│ ├── api/ # FastAPI service
│ ├── models/ # ML model training
│ ├── utils/ # Utilities and feature engineering
│ └── data/ # Data processing and extraction
├── notebooks/ # Jupyter notebooks and tutorials
├── tests/ # Unit tests
├── config/ # Configuration files
├── scripts/ # Utility scripts
├── docker/ # Docker configurations
├── k8s/ # Kubernetes manifests
├── .github/workflows/ # CI/CD pipelines
├── requirements.txt # Python dependencies
├── environment.yml # Conda environment
├── Dockerfile # Docker image definition
├── docker-compose.yml # Multi-service deployment
├── Makefile # Build and deployment commands
├── README.md # This file
├── QUICKSTART.md # Step-by-step guide
└── LICENSE # MIT License
```
## 核心组件
### 1. 数据处理 (`src/data/`)
- **Flow Extractor**:使用 Scapy/dpkt 将 PCAP 转换为流
- **Dataset Parser**:多入侵检测数据集的统一解析
- **Data Balancer**:训练/验证/测试集的拆分与平衡
### 2. 特征工程 (`src/utils/`)
- **Feature Engineer**:高级特征提取与预处理
- **时间特征**:小时、星期几、工作时间检测
- **网络特征**:IP 熵、端口分析、协议统计
- **统计特征**:滚动统计、多项式特征
### 3. 机器学习 (`src/models/`)
- **监督模型**:RandomForest、XGBoost、LightGBM
- **无监督模型**:IsolationForest、Autoencoder、LOF、OCSVM
- **模型训练**:使用 Optuna 进行超参数调优
- **评估**:跨数据集性能分析
### 4. API 服务 (`src/api/`)
- **FastAPI**:带有自动文档的 RESTful API
- **端点**:单次/批量预测、CSV 上传、PCAP 导入
- **认证**:可配置的安全性与速率限制
- **监控**:健康检查与性能指标
### 5. 仪表板 (`src/streamlit_app.py`)
- **实时监控**:实时威胁检测可视化
- **交互式分析**:单流和批量预测界面
- **模型比较**:性能指标和混淆矩阵
- **告警管理**:威胁时间线和攻击者分析
### 6. 响应自动化 (`src/utils/response_automation.py`)
- **演示脚本**:隔离网络拦截(仅限 Docker)
- **云端集成**:模拟 AWS WAF、Cloudflare、Azure WAF
- **安全检查**:多重验证层以保障生产安全
## 使用示例
### API 使用
```
# 健康检查
curl http://localhost:8000/health
# 单次预测
curl -X POST "http://localhost:8000/predict" \
-H "Content-Type: application/json" \
-d '{"flow": {...}, "model_name": "random_forest"}'
# 批量预测
curl -X POST "http://localhost:8000/predict/batch" \
-H "Content-Type: application/json" \
-d '{"flows": [...], "model_name": "random_forest"}'
```
### Python 集成
```
import requests
# Predict 单个 flow
response = requests.post("http://localhost:8000/predict", json={
"flow": {
"src_ip": "192.168.1.100",
"dst_ip": "10.0.0.1",
"src_port": 12345,
"dst_port": 80,
"protocol": 6,
# ... other flow features
},
"model_name": "random_forest"
})
prediction = response.json()
print(f"Prediction: {prediction['prediction']}")
print(f"Confidence: {prediction['confidence']}")
```
## 部署选项
### 1. Docker Compose(推荐用于开发)
```
# 启动所有服务
make docker-up
# 访问服务
# API: http://localhost:8000
# Dashboard: http://localhost:8501
# Jupyter: http://localhost:8888
```
### 2. Kubernetes(生产环境)
```
# 部署到 Kubernetes
kubectl apply -f k8s/deployment.yaml
# 通过 ingress 访问
# API: https://api.aidtis.example.com
# Dashboard: https://dashboard.aidtis.example.com
```
### 3. 手动部署
```
# 启动 API
python -m uvicorn src.api.api:app --host 0.0.0.0 --port 8000
# 启动 Dashboard
streamlit run src/streamlit_app.py --server.port 8501
```
## 开发
### 运行测试
```
# 单元测试
python -m pytest tests/ -v
# 包含 coverage
python -m pytest tests/ -v --cov=src --cov-report=html
# Linting
flake8 src/ tests/
black src/ tests/
mypy src/
```
### 贡献
1. Fork 本仓库
2. 创建一个 feature 分支
3. 进行更改
4. 添加测试
5. 运行测试套件
6. 提交 pull request
## 性能
- **单次预测**:< 100ms
- **批量处理**:1000+ 流/秒
- **内存使用**:完整 pipeline 占用 2-4GB
- **GPU 加速**:使用 CUDA 提速 3-5 倍
## 安全注意事项
- **输入验证**:所有 API 输入均经过验证
- **速率限制**:可配置的请求限制
- **认证**:已为 OAuth/JWT 集成做好准备
- **网络隔离**:Docker 网络隔离
- **审计日志**:全面的日志记录与监控
## 故障排除
### 常见问题
1. **找不到 CUDA**:安装 CUDA 11.8 及兼容驱动
2. **内存不足**:减少 batch 大小或使用更小的数据集
3. **端口冲突**:更改配置文件中的端口
4. **模型加载错误**:检查 models/ 目录中是否存在模型文件
### 获取帮助
- 查看日志:`make docker-logs`
- 运行测试:`python -m pytest tests/ -v`
- 检查 API 健康状态:`curl http://localhost:8000/health`
- 查阅文档:`QUICKSTART.md`
## 许可证
MIT License - 详情请参见 [LICENSE](LICENSE) 文件。
## 引用
如果您在研究中使用了 AIDTIS,请引用:
```
@software{aidtis2024,
title={AIDTIS: AI-Driven Intrusion Detection & Threat Intelligence System},
author={AIDTIS Contributors},
year={2024},
url={https://github.com/your-org/aidtis},
license={MIT}
}
```
## 致谢
- NSL-KDD、CICIDS2017/2018、UNSW-NB15、Bot-IoT 数据集创建者
- Scapy、FastAPI、Streamlit 以及其他开源库
- NVIDIA 提供的 CUDA 支持和 GPU 加速
**🛡️ 使用 AI 驱动的入侵检测保护网络安全**
标签:AIDTIS, AI安全, Apex, AV绕过, Chat Copilot, CUDA, Docker, FastAPI, IP 地址批量处理, Kubernetes, LightGBM, Python, PyTorch, REST API, Scikit-Learn, Streamlit, 入侵检测系统, 凭据扫描, 分类模型, 威胁情报, 子域名突变, 安全可视化, 安全数据湖, 安全防御评估, 实时检测, 容器化部署, 开发者工具, 异常检测, 插件系统, 无后门, 机器学习, 流量提取, 深度学习, 端到端安全平台, 网络安全, 网络流量分析, 自动化响应, 访问控制, 请求拦截, 逆向工具, 隐私保护