jdelagar/ArgusML
GitHub: jdelagar/ArgusML
一个自主进化的机器学习驱动入侵检测与防御系统,解决实时威胁检测与规则自动生成问题。
Stars: 0 | Forks: 0
# ArgusML — 自主机器学习驱动的入侵检测与防御系统
**由 Juan Manuel De La Garza 构建**
[](https://opensource.org/licenses/Apache-2.0)
[](https://python.org)
[](https://developer.nvidia.com/cuda-toolkit)
[]()
[]()
[](https://attack.mitre.org/)
[](https://csrc.nist.gov/pubs/fips/203/final)
ArgusML 是一个完全自主的入侵检测与防御系统(IDPS),由一组独立训练的机器学习模型组成的集成模型驱动。它同时监控三条检测流上的实时网络流量,使用自适应贝叶斯加权融合其决策,检测已知和零日威胁,自动生成并部署 Suricata 规则,并在发现新威胁时持续自我重训练——全程无需人工干预。
**没有人工编写规则。没有人工分析告警。没有人工重训练模型。ArgusML 全部完成。**
## 什么是 ArgusML
ArgusML 不是一个单一的机器学习模型。它是一个**自我进化的自主管道**,将三条检测流中多个独立训练的机器学习模型结合在一起:
- **Suricata 流**——XGBoost(GPU)+ 孤立森林,基于网络流特征训练。检测后门、DDoS、僵尸网络、Web 攻击,准确率达 98.04%。
- **DNS 流**——XGBoost + 孤立森林,基于 DNS 查询特征训练。检测 DNS 隧道、DGA 域名、快速切换(Fast Flux)、C2 信标,准确率达 100%。
- **TLS 流**——XGBoost + 孤立森林,基于 TLS 指纹特征训练。检测恶意 JA3 哈希、自签名 C2 证书、弱密码套件,准确率达 100%。
- **自适应贝叶斯融合引擎**——原创架构,自适应加权融合所有流输出,随时间变得更智能。
- **持续学习引擎**——自动重训练模型以应对新威胁。ArgusML 运行时间越长,智能越高。
- **本地 LLM 规则生成器**——使用本地 GPU 上的 Meta Llama 3 自动编写并部署 Suricata 检测规则。
- **PQC 威胁情报传输器**——使用 NIST 后量子密码学(ML-KEM-768 + ML-DSA-65 + AES-256-GCM)加密并传输威胁情报。抗量子且适用于 DoD。
- **MITRE ATT&CK 集成**——每个检测自动映射到 MITRE ATT&CK 技术 ID、战术和严重级别。适用于企业 SOC 和 DoD 语言。
## ArgusML 的独特之处
| 功能 | ArgusML | 传统 IDPS | 商业方案(Darktrace/Vectra) |
|------|---------|----------|------------------------------|
| 自主规则生成 | ✅ | ❌ | ❌ |
| 自适应贝叶斯融合 | ✅ | ❌ | ❌ |
| 持续自我进化 | ✅ | ❌ | ✅ |
| 三条并行检测流 | ✅ | ❌ | ✅ |
| 孤立森林零日检测 | ✅ | ❌ | ✅ |
| JA3/JA4 TLS 指纹识别 | ✅ | ❌ | ✅ |
| DNS 隧道检测 | ✅ | ❌ | ✅ |
| 本地 LLM(无需云端) | ✅ | ❌ | ❌ |
| GPU 加速训练 | ✅ | ❌ | ✅ |
| 可解释 AI | ✅ | ❌ | ❌ |
| 从零训练模型 | ✅ | ❌ | ❌ |
| REST API | ✅ | ❌ | ✅ |
| 世界地图网络仪表盘 | ✅ | ❌ | ✅ |
| Docker 容器 | ✅ | ❌ | ✅ |
| 开源 | ✅ | ✅ | ❌ |
| 成本 | 免费 | 免费 | 每年 10 万美元以上 |
## 工作原理
```
Live Network Traffic
|
Suricata 8.0+ (eve.json)
|
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Suricata Stream │ │ DNS Stream │ │ TLS Stream │
│ XGBoost (GPU/CUDA) │ │ XGBoost (GPU/CUDA) │ │ XGBoost (GPU/CUDA) │
│ Isolation Forest │ │ Isolation Forest │ │ Isolation Forest │
│ 98.04% accuracy │ │ 100% accuracy │ │ 100% accuracy │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
| | |
┌─────────────────────────────────────────────────────────────────────┐
│ Adaptive Bayesian Fusion Engine │
│ Weights adapt based on stream accuracy — gets smarter over time │
│ Stream weights: suricata=1.96, dns=2.0, tls=2.0 │
└─────────────────────────────────────────────────────────────────────┘
|
┌─────────────────────────────────────────────────────────────────────┐
│ Continuous Learning Engine │
│ New detections → expand dataset → retrain → deploy if improved │
└─────────────────────────────────────────────────────────────────────┘
|
┌─────────────────────────────────────────────────────────────────────┐
│ ArgusML Rule Generator │
│ Ollama llama3 (local GPU) → plain English description │
│ → valid Suricata rule syntax → auto-deploy → Suricata reload │
└─────────────────────────────────────────────────────────────────────┘
|
argus_ml.rules → Suricata fires [ARGUS-ML] alerts
|
Live Web Dashboard (port 5000) + REST API (port 5001)
```
## 性能
所有模型均从真实数据从头训练,无预训练权重或借用模型。
| 流 | 模型 | 训练样本 | 准确率 | F1 分数 | 硬件 |
|----|------|----------|--------|---------|------|
| Suricata | XGBoost + IF | 9,193 | 98.04% | 97.66% | RTX 5070 Ti |
| DNS | XGBoost + IF | 592 | 100% | 100% | RTX 5070 Ti |
| TLS | XGBoost + IF | 7,636 | 100% | 100% | RTX 5070 Ti |
## 核心功能
### 1. 三条并行检测流
ArgusML 并行运行三条独立的机器学习管道,每条监控网络流量的不同方面。逃避一条流的威胁可能被另一条捕获。所有数据输入贝叶斯融合引擎以生成高置信度最终决策。
### 2. 自适应贝叶斯融合引擎
使用贝叶斯概率加权融合三条流的输出。权重根据历史准确率自适应调整。系统在不重训练的情况下随时间优化决策。
### 3. 持续学习引擎
每个高置信度检测(>85%)自动加入训练数据集。每小时 ArgusML 检查是否积累足够新数据并重训练受影响模型。仅在准确率达标时才部署新模型。ArgusML 运行时间越长越智能。
### 4. JA3/JA4 TLS 指纹识别
TLS 流提取每个 TLS 连接的 JA3、JA3S 和 JA4 指纹。已知恶意 JA3 哈希(Cobalt Strike、Metasploit、TrickBot、Emotet)会立即触发告警。异常密码套件、自签名证书在非常规端口以及弱 TLS 版本也会被自动标记。
### 5. DNS 异常检测
DNS 流对每个请求计算 Shannon 熵、辅音比率、数字比率和查询模式。高熵域名指示 DGA 恶意软件。长 TXT 查询指示 DNS 隧道。通过监控 TTL 值和响应次数检测快速切换。
### 6. 本地 LLM 规则生成
确认威胁后,ArgusML 调用本地 GPU 上运行的 Meta Llama 3。LLM 生成自然语言描述。ArgusML 将其封装为有效的 Suricata 规则语法并即时部署。无互联网、无 API 调用、无数据离开设备。适用于隔离网段和机密环境。
### 7. 可解释 AI
每个检测都包含人类可读的解释:
```
[DETECTION #1] 03:53:08
Threat: backdoor_activity
Confidence: 95.5%
Streams: suricata
Explanation: Threat detected: backdoor_activity (confidence: 95.5%) |
High byte rate (1.2M B/s) suggests data exfiltration
```
### 8. 实时网络仪表盘
http://localhost:5000 上的实时威胁可视化,包含:
- 带攻击来源动画连线的地图
- 实时威胁流与置信度评分
- 威胁分布图表
- 系统健康监控
- 生成规则展示
### 9. REST API
企业集成接口:http://localhost:5001
```
GET /api/v1/status — System health and model stats
GET /api/v1/detections — Recent threat detections
GET /api/v1/rules — Generated Suricata rules
GET /api/v1/threats — Threat distribution
GET /api/v1/streams — ML stream performance
POST /api/v1/predict — Submit traffic for analysis
```
## 安装
### 系统要求
- Ubuntu 24 Linux
- Python 3.12
- NVIDIA GPU(推荐 RTX 系列)
- CUDA 13.0+
- Suricata 8.0+
- Ollama 与 llama3 模型
- 训练数据(Suricata eve.json 日志)
### 快速启动
```
git clone https://github.com/jdelagar/ArgusML.git
cd ArgusML
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
ollama pull llama3
```
### Docker
```
docker build -t argusml .
docker run -d --gpus all -p 5000:5000 -p 5001:5001 argusml
```
### 配置 Suricata
添加到 /etc/suricata/suricata.yaml:
```
rule-files:
- suricata.rules
- argus_ml.rules
```
### 训练所有模型
```
python3 argus_ml.py --train
```
### 运行
```
sudo python3 argus_ml.py
```
### 开机自启动
```
sudo cp argus-ml.service /etc/systemd/system/
sudo systemctl enable argus-ml.service
sudo systemctl start argus-ml.service
```
## 生成的规则
ArgusML 自动生成并部署带有 `[ARGUS-ML]` 标签的 Suricata 规则:
```
alert ip any any -> any any
(msg:"[ARGUS-ML] Backdoor C2 communication detected outbound";
threshold:type threshold, track by_src, count 1, seconds 60;
metadata:cf_confidence 0.9550, cf_streams suricata,
cf_label backdoor_activity, cf_severity 1, cf_version 1.0;
classtype:misc-attack; sid:9500001; rev:1;)
```
## 项目结构
```
ArgusML/
├── argus_ml.py # Main entry point and orchestration
├── core/
│ ├── config.py # System configuration
│ ├── base.py # Base stream class (XGBoost + Isolation Forest)
│ └── continuous_learning.py # Self-improving model retraining engine
├── streams/
│ ├── suricata.py # Network traffic detection stream
│ ├── dns.py # DNS anomaly detection stream
│ └── tls.py # TLS/SSL inspection stream
├── fusion/
│ └── bayesian.py # Adaptive Bayesian Fusion Engine
├── output/
│ └── rule_generator.py # LLM-powered autonomous rule generator
├── dashboard/
│ ├── app.py # Web dashboard (Flask + Socket.IO)
│ └── api.py # REST API
├── Dockerfile # Container deployment
├── requirements.txt # Python dependencies
└── argus-ml.service # Systemd service
```
## 路线图
- [x] Suricata 网络流量检测流
- [x] DNS 异常检测流——隧道、DGA、快速切换
- [x] TLS/SSL 检测流——JA3/JA4 指纹识别、C2 检测
- [] 自适应贝叶斯融合引擎
- [x] 持续学习——自我进化模型、自动重训练
- [x] 本地 LLM 自主规则生成
- [x] 可解释 AI 检测
- [x] 实时网络仪表盘与攻击世界地图可视化
- [x] REST API 企业集成
- [x] Docker 容器便于部署
- [x] Systemd 服务实现自主运行
- [x] NetFlow 流——信标、端口扫描、横向移动、数据外泄
- [x] 后量子加密威胁情报传输——ML-KEM-768 + ML-DSA-65 + AES-256-GCM
- [x] 云部署(AWS EC2 + ECR)——仪表盘:http://18.116.72.77:5002 | API:http://18.116.72.77:5001
- [x] Windows 支持——跨平台路径、轮询模式、install_windows.bat
## 许可证
Copyright 2026 Juan Manuel De La Garza
根据 Apache License, Version 2.0 授权。完整条款见 LICENSE 文件。
您可以自由使用、修改和分发本软件。允许商业使用。必须包含署名,且未经许可不得使用我的名字为衍生产品背书。
*ArgusML — 永远在监视。永不休眠。* 👁️
标签:AI安全, Apache 2.0, Apex, APT检测, C2通信检测, Chat Copilot, Cloudflare, CUDA, DDoS检测, DGA检测, DNS隧道检测, Metaprompt, MITRE ATT&CK, PMD, PQC, Python, Suricata规则生成, TLS指纹识别, XGBoost, 入侵防御, 后门检测, 多流并行, 威胁情报自动化, 实时流处理, 异常检测, 无后门, 无干预运维, 机器学习, 自主系统, 自动化响应, 自适应加权, 规则自动部署, 请求拦截, 贝叶斯融合, 逆向工具, 隔离森林, 零日检测