jdelagar/ArgusML

GitHub: jdelagar/ArgusML

一个自主进化的机器学习驱动入侵检测与防御系统,解决实时威胁检测与规则自动生成问题。

Stars: 0 | Forks: 0

# ArgusML — 自主机器学习驱动的入侵检测与防御系统 **由 Juan Manuel De La Garza 构建** [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Python](https://img.shields.io/badge/Python-3.12-green.svg)](https://python.org) [![GPU](https://img.shields.io/badge/GPU-CUDA%2013.0-brightgreen.svg)](https://developer.nvidia.com/cuda-toolkit) [![Accuracy](https://img.shields.io/badge/Accuracy-98.04%25-success.svg)]() [![Streams](https://img.shields.io/badge/Streams-4%20Active-orange.svg)]() [![ATT&CK](https://img.shields.io/badge/MITRE%20ATT%26CK-Integrated-red.svg)](https://attack.mitre.org/) [![PQC](https://img.shields.io/badge/PQC-ML--KEM--768-brightgreen.svg)](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, 入侵防御, 后门检测, 多流并行, 威胁情报自动化, 实时流处理, 异常检测, 无后门, 无干预运维, 机器学习, 自主系统, 自动化响应, 自适应加权, 规则自动部署, 请求拦截, 贝叶斯融合, 逆向工具, 隔离森林, 零日检测