maj-it/ai-network-observer
GitHub: maj-it/ai-network-observer
一个融合 Isolation Forest 机器学习与 Ollama 本地 LLM 的智能网络威胁检测系统,支持实时识别 DGA、C2、DNS 隧道等攻击并自动生成自然语言分析报告。
Stars: 3 | Forks: 0
# 🔒 AI Network Observer
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://www.docker.com/)
**基于 AI 的智能网络威胁检测** - 网络安全硕士项目
结合了**机器学习**(Isolation Forest)和**LLM**(Ollama)的监控系统,用于实时自动检测网络威胁。
## 🎯 功能
### 自动检测
- **DGA Malware**:检测域名生成算法
- **C2 Beaconing**:识别命令与控制(Command & Control)通信
- **DNS Tunneling**:检测基于 DNS 的数据渗透
- **Port Scanning**:网络侦察
- **异常**:行为偏差
### 技术栈
```
Capture : Scapy / eBPF
Analysis : Python 3.8+
ML Engine : scikit-learn (Isolation Forest)
LLM : Ollama (llama3.2 / qwen2.5 / mistral)
Storage : Neo4j + Elasticsearch
Monitoring : Prometheus + Grafana
Deploy : Docker Compose
```
## 🎯 使用模式
### 模式 1:仅 ML 检测(快速)⚡
- 5 分钟安装
- 通过 ML 进行异常检测
- 自动警报
- **无需 Ollama**
**适用于:** 快速测试,资源有限
### 模式 2:ML + LLM(完整)🧠
- ML 检测 + 深度 AI 分析
- 自然语言报告
- 修复建议
- **需要 Ollama**
**适用于:** 深度分析,完整学习
## 📦 安装 Ollama(仅限模式 2)
### Linux / WSL
```
# 1. 安装 Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# 2. 选择并下载 LLM 模型
# 选项 A:llama3.2(推荐 - 性能/质量均衡)
ollama pull llama3.2
# 选项 B:qwen2.5:3b(速度更快,占用 RAM 更少)
ollama pull qwen2.5:3b
# 选项 C:mistral(强大的替代方案)
ollama pull mistral
# 3. 启动 Ollama 服务
ollama serve &
# 4. 验证安装
ollama list
```
### macOS
```
# 选项 1:Homebrew
brew install ollama
# 选项 2:Application (https://ollama.ai)
# 下载并安装应用
# 下载模型(根据您的资源选择)
ollama pull llama3.2 # Recommandé (4.7 GB)
# 或
ollama pull qwen2.5:3b # Plus léger (1.9 GB)
# 或
ollama pull mistral # Alternatif (4.1 GB)
# 启动
ollama serve &
```
### Windows
```
# 1. 从 https://ollama.ai/download 下载
# 2. 安装应用程序(.exe)
# 3. 打开 PowerShell 并下载模型:
# 推荐选项
ollama pull llama3.2
# 或更轻量版本
ollama pull qwen2.5:3b
# 或替代方案
ollama pull mistral
```
### 模型比较
| 模型 | 大小 | 所需内存 | 速度 | 质量 | 推荐 |
|--------|--------|-------------|---------|---------|----------------|
| **llama3.2** | 4.7 GB | 8-16 GB | 中等 | ⭐⭐⭐⭐⭐ | **推荐** |
| **qwen2.5:3b** | 1.9 GB | 4-8 GB | 快速 | ⭐⭐⭐⭐ | 配置较低的 PC |
| **mistral** | 4.1 GB | 8-16 GB | 中等 | ⭐⭐⭐⭐⭐ | 备选方案 |
### 验证安装
```
# 验证 Ollama 是否正常运行
curl http://localhost:11434/api/tags
# 应返回:
# {"models":[{"name":"llama3.2:latest",...}]}
# 列出已安装的模型
ollama list
# 测试模型
ollama run llama3.2 "Bonjour"
```
## 🚀 快速入门
### 模式 1:不使用 Ollama(推荐新手使用)
```
# 1. 克隆
git clone https://github.com/majflower/ai-network-observer.git
cd ai-network-observer
# 2. 配置
echo "ENABLE_LLM=false" > .env
# 3. 启动
docker-compose up -d
# 4. 验证
docker-compose ps
```
**✅ 2-3 分钟后即可查看结果** → `logs/alerts_*.json`
### 模式 2:使用 Ollama
```
# 1. 克隆
git clone https://github.com/majflower/ai-network-observer.git
cd ai-network-observer
# 2. 验证 Ollama(必须返回模型列表)
curl http://localhost:11434/api/tags
# 3. 配置
cat > .env << 'EOF'
ENABLE_LLM=true
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2
EOF
# 如果您使用 qwen2.5 或 mistral,请更改 OLLAMA_MODEL:
# OLLAMA_MODEL=qwen2.5:3b
# 或
# OLLAMA_MODEL=mistral
# 4. 启动
docker-compose up -d
# 5. 验证 LLM 连接
docker-compose logs observer | grep -i ollama
# 应显示:"✓ Connected to Ollama"
```
## 📊 访问仪表板
### Grafana(可视化)
- **URL**:http://localhost:3000
- **登录信息**:admin / networksecurity
- **仪表板**:Network Security Overview, ML Anomaly Detection
### Neo4j(网络图谱)
- **URL**:http://localhost:7474
- **登录信息**:neo4j / networksecurity
- **查询示例**:
```
MATCH (h:Host)-[r:DNS_QUERY]->(d:Domain)
WHERE d.risk_score > 50
RETURN h, r, d LIMIT 25
```
### Prometheus(指标)
- **URL**:http://localhost:9090
- **查询示例**:`network_packets_total`
⚠️ **重要提示**:在生产环境中请务必修改默认密码!
## 🧪 测试与验证
### 模拟攻击(仅在隔离的虚拟机上进行 ⚠️)
```
# DGA Malware
bash tests/simulate-dga.sh
# C2 Beaconing
bash tests/simulate-c2.sh
# DNS Tunneling
bash tests/simulate-dns-tunnel.sh
# 验证检测结果
grep "DGA\|C2_BEACONING\|DNS_TUNNELING" logs/alerts_*.json
```
## 🔧 常用命令
```
# 启动所有服务
docker-compose up -d
# 停止所有服务
docker-compose down
# 实时日志
docker-compose logs -f observer
# 服务状态
docker-compose ps
# 重启服务
docker-compose restart observer
# 查看警报
tail -f logs/alerts_*.json
# 更改 LLM 模型(无需完全重启)
# 1. 修改 .env:OLLAMA_MODEL=qwen2.5:3b
# 2. 重启 observer:docker-compose restart observer
```
## 📚 详细文档
- **[TESTING_GUIDE.md](TESTING_GUIDE.md)** - 完整测试指南
- **[ML_README.md](ML_README.md)** - 机器学习文档
## ❓ 常见问题
**问:会使我的网络变慢吗?**
答:不会,采用被动监听,不进行拦截。
**问:这合法吗?**
答:合法,但仅限在您自己的网络/虚拟机上使用。切勿在未经授权的情况下使用。
**问:检测结果是 100% 可靠的吗?**
答:不是,这是一个辅助检测工具,不提供绝对保证。
**问:Observer 没有捕获到任何数据?**
答:请检查 `docker-compose.yml` 中的网络接口(`CAPTURE_INTERFACE` 行)。
**问:Ollama 连接被拒绝?**
答:请检查 Ollama 是否正在运行:`ps aux | grep ollama`,然后执行 `ollama serve &`。
**问:Grafana 显示为空?**
答:一开始是正常的,请等待 5-10 分钟的数据收集。
**问:该选择哪个 LLM 模型?**
答:
- **8+ GB 内存** → llama3.2(推荐)
- **4-8 GB 内存** → qwen2.5:3b(速度更快)
- **备选方案** → mistral
**问:安装后可以更换模型吗?**
答:可以!下载新模型(`ollama pull 模型名称`),修改 `.env` 文件,然后重启 observer。
## 🔒 安全与生产部署
**⚠️ 本项目使用了用于演示的默认密码。**
在生产环境中,请务必修改它们:
```
# 在 docker-compose.yml 中
NEO4J_PASSWORD=VotreMotDePasseSecurise
GF_SECURITY_ADMIN_PASSWORD=VotreMotDePasseSecurise
```
**Docker 特权模式**:网络捕获所需(CAP_NET_RAW)。
## 🎓 学术背景
毕业设计 - 网络安全硕士 2026
**教学目标:**
- ✅ 将 ML/LLM 集成应用于安全领域
- ✅ Docker 微服务架构
- ✅ 完整的监控技术栈(Prometheus, Grafana, Neo4j)
- ✅ 高级威胁检测(DGA, C2, DNS Tunneling)
## 🤝 贡献
欢迎在 [GitHub](https://github.com/majflower/ai-network-observer/issues) 提交 Issue 和 Pull Request。
## 📄 许可证
MIT License - 详见 [LICENSE](LICENSE)
Copyright (c) 2026 MAJ (MAJFLOWER)
## 👤 作者
**MAJ (MAJFLOWER)**
- 🎓 网络安全硕士
- 🎯 专业方向:AI 与网络威胁检测
- 🔬 毕业设计:AI Network Observer
## 📧 联系方式
- **GitHub**:[@majflower](https://github.com/majflower)
- **LinkedIn**:[bflore-maj](https://www.linkedin.com/in/bflore-maj/)
- **项目**:[ai-network-observer](https://github.com/majflower/ai-network-observer)
## 🔐 Keylogger 检测
AI Network Observer 集成了一个高级的 Keylogger 检测模块,通过分析网络流量来识别:
- **键盘数据外泄**(Base64 编码,可疑模式)
- **C2 通信**(Discord Webhooks, Telegram Bots, Pastebin)
- **周期性自动流量**(定期数据外泄特征)
**完整文档**:[docs/KEYLOGGER_DETECTION.md](docs/KEYLOGGER_DETECTION.md)
**参考教程**:[Keylogger Python POC](https://lnkd.in/d9YeuEy8)
### 使用示例
```python
from src.detection.keylogger_detector import KeyloggerDetector
detector = KeyloggerDetector()
result = detector.analyze_payload(http_data)
if result['is_suspicious']:
print(f"⚠️ 检测到 Keylogger!风险值:{result['risk_score']}/10")
```
标签:AI安全, AI风险缓解, AMSI绕过, Apex, C2通信, Chat Copilot, DGA检测, DLL 劫持, DNS隧道, Docker, Docker Compose, Docker镜像, Elasticsearch, Grafana, Isolation Forest, LLM分析, LLM评估, MIT ATT&CK, Neo4j, Ollama, Python, Scapy, scikit-learn, 人工智能, 命令与控制, 大语言模型, 威胁检测, 安全报告, 安全运营, 安全防御评估, 异常检测, 扫描框架, 插件系统, 数据渗出, 数据统计, 无后门, 机器学习, 用户模式Hook绕过, 端口扫描, 网络安全监控, 网络安全项目, 网络流量分析, 自动化防御, 自定义请求头, 请求拦截, 赛博安全, 逆向工具, 驱动开发