3sk1nt4n/arguswatch-ai

GitHub: 3sk1nt4n/arguswatch-ai

一款专为 MSSP 场景设计的 AI 原生威胁情报平台,通过多源数据聚合、智能资产关联和自动化调查报告,实现从威胁检测到修复建议的闭环管理。

Stars: 4 | Forks: 0

Solvent CyberSecurity # ArgusWatch AI-Agentic 威胁情报平台 ### v16.4.7 - 多租户 MSSP 平台 | 47 个收集器 | 111 种 IOC 类型 | 99 项 MITRE 映射 | 21 个管理 API [![Python](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org) [![Docker](https://img.shields.io/badge/docker-compose-2496ED.svg)](https://docker.com) [![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-009688.svg)](https://fastapi.tiangolo.com) [![Codebase](https://img.shields.io/badge/codebase-33%2C500%2B_lines-orange.svg)]() [![IOC Types](https://img.shields.io/badge/IOC_types-111-brightgreen.svg)]() [![Patents](https://img.shields.io/badge/patents-4_USPTO_filed-purple.svg)]() *零虚假数据。真实威胁情报。每项发现都有可验证的证据链。* [快速开始](#-quick-start) · [架构](#-system-architecture) · [Docker 服务](#-10-docker-services) · [代码结构](#-code-structure) · [收集器](#-47-collectors) · [IOC 类型](#-86-ioc-types) · [匹配](#-8-strategy-matching-engine) · [AI 流水线](#-ai-pipeline) · [仪表盘](#-dashboard-pages) · [API](#-api-reference) · [Docker 命令](#-docker-commands) · [测试](#-testing) · [路线图](#️-roadmap)
## 什么是 ArgusWatch? ArgusWatch 是一个生产级、多租户的 AI-Agentic 威胁情报平台,专为 MSSP 设计。它从 47 个真实威胁源收集 IOC,使用 8 种匹配策略将它们与客户资产关联,并为每项发现提供可验证的证据链。AI 通过 Ollama 在本地运行 Qwen 3 8B 并支持 GPU 加速(免费、私有、2-5秒响应),可从仪表盘标题栏一键切换至 Claude、GPT 或 Gemini。 1 Threat Universe 3 2 ### 为什么叫 “AI-Agentic”? ArgusWatch 的核心是一个**自主 AI 编排器**,它能像人类 SOC 分析师一样调查威胁——但速度更快: ``` Detection arrives: "CVE-2026-3404 found in Uber's tech stack" -> AI calls query_customers("Uber") -> learns: industry=transportation -> AI calls search_cve("CVE-2026-3404") -> learns: CVSS 8.1, affects Java -> AI calls check_exposure(customer=4) -> learns: D1=45, high attack surface -> AI calls query_actors(sector="transport") -> finds: APT41 targets this sector -> DECIDES: "CRITICAL - active exploitation + targeted sector + high exposure" ``` 没有人告诉它该使用哪些工具或按什么顺序。AI 从 9 个工具中自主选择,观察结果,进行推理,并最多迭代 12 次直到得出结论。 ### AI 的工作 vs 自动化的工作 | 组件 | 工作原理 | 类型 | 相比 if-else 是否增值? | |-----------|-------------|------|----------------------| | **AI 栏** | 自动检测 IOC (regex, 0ms) -> 失陷检查 (2-10s) -> LLM 调查结果、决定后续步骤、撰写分析简报 (30-90s 本地, 5-10s 云端) | ✅ **Agentic** | **YES** - LLM 根据结果决定下一步调查内容 | | **调查报告** | AI 根据原始 IOC 数据撰写分析师级别的上下文说明 | ✅ **AI-Generated** | **YES** - 无法通过模板复制 | | **可靠聊天代理** | 自然语言提问 -> 分类 -> 确定性查询 -> LLM 总结 | ✅ **AI-Powered** | **YES** - 针对实时数据库的自然语言交互 | | **9 工具编排器** | AI 选择工具、观察、推理、迭代 | ✅ **Agentic** | 冗余 - 线性流水线更快 | | **严重性分级** | AI 为每项发现填充严重性 JSON | 单次 LLM 调用 | IOC v10 查找表更好 | | **误报复核** | AI 标记可能的误报 | 单次 LLM 调用 | 已识别 12 种高误报类型 | | **误报记忆** | 记录分析师的误报决定,自动关闭重复项 | 命中计数器 + CIDR | 实用的自动化(非机器学习) | | 47 个收集器 | 定时 HTTP 获取 + 解析 + 存储 | 自动化 | | | 8 种匹配策略 | 正则 + 域名匹配 + 编辑距离 | 基于规则 | | | 86 个 IOC 模式 | 静态正则模式 | 模式匹配 | | | 12 个修复手册 | 基于模板的响应步骤生成 | 基于规则 | | | 5 维暴露评分 | 加权数学公式 | 公式 | | **3 个 AI 真正增值(代码无法复制)的组件:** AI 栏(统一 IOC 搜索 + 自动分类 + 失陷检查)、调查报告和可靠聊天代理。其余部分是扎实的工程实现。 ## 🚀 快速开始 ### 前置条件 - **Docker Desktop** 或 **Rancher Desktop** (任意操作系统) - **Ollama** (推荐:原生安装以获得 GPU 加速) - 8GB+ 内存,20GB 磁盘空间 ### 第 1 步:安装 Docker **Windows (Rancher Desktop):** 从 [rancherdesktop.io](https://rancherdesktop.io/) 下载并安装。选择 **dockerd (moby)** 作为容器引擎。 **Windows (Docker Desktop):** 从 [docker.com](https://www.docker.com/products/docker-desktop/) 下载并安装。启用 WSL 2 后端。 **macOS / Linux:** ``` # macOS brew install --cask docker # Linux (Ubuntu/Debian) curl -fsSL https://get.docker.com | sh ``` ### 第 2 步:安装 Ollama (GPU 加速 AI) 原生 Ollama 可获得完整的 GPU 访问权限。Docker Ollama 仅在 CPU 上运行(慢 20 倍)。 ``` # Windows winget install Ollama.Ollama # macOS brew install ollama # Linux curl -fsSL https://ollama.com/install.sh | sh ``` 拉取 AI 模型 (5.2GB 下载): ``` ollama pull qwen3:8b ``` 验证 GPU: ``` ollama run qwen3:8b "say hello" --verbose # 查找:eval rate > 40 tokens/s = GPU # 如果 eval rate < 10 tokens/s = CPU(仍然可用,只是较慢) ``` **AI 模型选项:** | 模型 | 大小 | 速度 (GPU) | 速度 (CPU) | 最适合 | |-------|------|-------------|-------------|----------| | `qwen3:4b` | 2.7GB | 150+ tok/s | 10-15 tok/s | 低显存,快速响应 | | `qwen3:8b` | 5.2GB | 100+ tok/s | 5-8 tok/s | **推荐** - 最佳平衡 | | `qwen3.5:9b` | 6.6GB | 80+ tok/s | 3-5 tok/s | 最佳质量(当 Ollama 支持时) | GPU vs CPU:任何具有 6GB+ 显存的 NVIDIA GPU 都能带来 10-20 倍的加速。AMD/Apple Silicon 也通过 Ollama 支持。 ### 第 3 步:配置 ``` cp .env.example .env # 编辑 .env - 设置 OLLAMA_URL 并粘贴你拥有的任何 API keys ``` `.env` 中的关键设置: ``` # 指向原生 Ollama (GPU) 而非 Docker Ollama (CPU) OLLAMA_URL=http://host.docker.internal:11434 OLLAMA_MODEL=qwen3:8b # 可选:添加 cloud AI providers 以实现一键切换 ANTHROPIC_API_KEY=sk-ant-... # Claude OPENAI_API_KEY=sk-... # GPT GOOGLE_AI_API_KEY=AIza... # Gemini ``` ### 第 4 步:启动 ``` docker compose up -d --build # 首次启动需要 2-3 分钟 # 打开 dashboard(无需登录) # http://localhost:7777 ``` ### 首次启动时自动执行的操作 ``` 1. PostgreSQL initializes with 12 migration scripts 2. 6 demo customers auto-seeded (HackerOne bug bounty targets) 3. Intel Proxy collects 3,000-4,000 IOCs from 47 feeds 4. Correlation routes detections to customers 5. 8-strategy matching creates findings 6. Exposure scores calculated (D1-D5 formula) 7. Attribution links findings to 180+ threat actors 8. Campaign detection groups related findings 9. Dashboard fully populated - ready to use ``` 无需手动操作。一切都是自动的。 ### 演示客户(预置数据) 所有 6 家公司都有活跃的 HackerOne 漏洞赏金计划,这使得侦察和威胁情报收集完全被授权用于安全研究: | 客户 | 域名 | 行业 | 包含原因 | |----------|--------|----------|-------------| | **Yahoo** | yahoo.com | 科技 | 攻击面大,频繁发生数据泄露,活跃的漏洞赏金 | | **Uber** | uber.com | 交通 | 高价值目标,涉及大量 PII,活跃的漏洞赏金 | | **Shopify** | shopify.com | 科技 | 电子商务平台,支付数据暴露 | | **Starbucks** | starbucks.com | 零售 | 品牌监控,零售行业威胁 | | **GitHub** | github.com | 科技 | 代码/机密暴露,针对开发者的攻击 | | **VulnWeb Demo** | vulnweb.com | 科技 | Acunetix 测试站点,故意存在漏洞 | ### Docker 命令 ``` # 启动 docker compose up -d # 停止 docker compose down # 全新部署(擦除所有数据) docker compose down -v && docker compose up -d --build # 查看日志 docker logs arguswatch-backend --tail 50 docker logs arguswatch-intel-proxy --tail 50 # 重建单个 service docker compose build --no-cache backend && docker compose up -d ``` ## 🏗️ 系统架构 ``` ┌──────────────────────────────────────┐ │ BROWSER (Port 7777) │ │ Single-Page Dashboard (5,379 LOC) │ │ 13 pages · clickable everything │ └──────────────────┬───────────────────┘ │ ┌──────────────────▼───────────────────┐ │ NGINX GATEWAY │ │ Reverse Proxy + SSL │ │ /api/* -> Backend:8000 │ │ /collect* -> Intel-Proxy:9999 │ │ /* -> Static Dashboard │ └────┬─────────────────────────┬───────┘ │ │ ┌─────────────────────▼──────┐ ┌─────────────▼──────────────┐ │ BACKEND (FastAPI) │ │ INTEL PROXY (FastAPI) │ │ Port 8000 │ │ Port 9999 │ │ │ │ │ │ ┌── Correlation Engine │ │ ┌── 47 Collectors │ │ │ 8 matching strategies │ │ │ NVD, CISA, MITRE... │ │ │ │ │ │ │ │ ├── AI Pipeline │ │ ├── Pattern Matcher │ │ │ 9-tool orchestrator │ │ │ 86 IOC regex types │ │ │ triage + FP + narr. │ │ │ │ │ │ │ │ ├── grep.app Scanner │ │ ├── Action Generator │ │ │ 109 search queries │ │ │ 12 playbook types │ │ │ │ │ │ │ │ ├── crt.sh Collector │ │ ├── Exposure Scorer │ │ │ CT log subdomain scan │ │ │ 5-dimension formula │ │ │ │ │ │ │ │ └── Shodan InternetDB │ │ ├── Finding Manager │ │ Free port scanning │ │ │ dedup + proof chain │ │ │ │ │ │ └────────────────────────────┘ │ └── Attribution Engine │ │ actor -> customer │ └─────┬──────────┬───────────┘ │ │ ┌────────────▼──┐ ┌───▼────────────────┐ ┌─────────────────────┐ │ PostgreSQL │ │ Ollama │ │ Recon Engine │ │ Port 5432 │ │ Port 11434 │ │ Port 8888 │ │ │ │ │ │ │ │ ✦ findings │ │ qwen3:8b (5.2GB) │ │ subfinder │ │ ✦ detections │ │ Orchestrator │ │ crt.sh CT logs │ │ ✦ customers │ │ Triage hooks │ │ DNS enumeration │ │ ✦ assets │ │ Chat agent │ │ 200 asset cap │ │ ✦ actors │ │ │ │ │ │ ✦ remeds │ │ OR Claude/GPT/ │ └─────────────────────┘ │ ✦ campaigns │ │ Gemini (1-click) │ │ ✦ fp_patterns│ │ │ │ + RLS (multi │ └────────────────────┘ │ tenant) │ └───────┬───────┘ ┌────────────────────┐ ┌─────────────────────┐ │ │ Redis │ │ Prometheus │ │ │ Port 6379 │ │ Port 9090 │ │ │ │ │ │ │ │ Celery broker │ │ Metrics collection │ │ │ AI provider state │ │ Health monitoring │ │ │ Session cache │ │ │ │ └────────────────────┘ └─────────────────────┘ │ ┌───────▼──────────────────────────────┐ │ Celery Worker + Celery Beat │ │ │ │ Worker: background pipeline tasks │ │ Beat: scheduled collection every │ │ 30-60 min │ └──────────────────────────────────────┘ ``` ### 数据流 ``` 1. COLLECT Intel Proxy fetches 47 feeds -> raw IOCs stored as Detections 2. SCAN Pattern Matcher extracts 86 IOC types from raw text 3. MATCH Correlation Engine routes IOCs to customers (8 strategies) 4. PROMOTE Finding Manager creates/merges Findings with proof chain 5. TRIAGE AI Pipeline assesses severity, FP probability, narrative 6. REMEDIATE Action Generator creates response steps (12 playbooks) 7. SCORE Exposure Scorer calculates 5-dimension risk score 8. DISPLAY Dashboard renders everything with clickable drill-down ``` ## 🐳 10 个 Docker 服务 | # | 服务 | 容器 | 端口 | 功能描述 | |---|---------|-----------|------|-------------| | 1 | **backend** | arguswatch-backend | 8000 | FastAPI 应用 - 匹配、关联、AI 流水线、API | | 2 | **intel-proxy** | arguswatch-intel-proxy | 9999 | 47 个收集器、模式匹配器、grep.app、crt.sh | | 3 | **postgres** | arguswatch-postgres | 5432 | PostgreSQL 16 + 行级安全(多租户) | | 4 | **redis** | arguswatch-redis | 6379 | Celery 代理、AI 提供商状态、缓存 | | 5 | **ollama** | arguswatch-ollama | 11434 | Qwen 3 8B - 本地 AI(首次启动时自动拉取) | | 6 | **recon-engine** | arguswatch-recon | 8888 | 子域名枚举、DNS、证书扫描 | | 7 | **celery_worker** | arguswatch-celery-worker | - | 后台流水线处理 | | 8 | **celery_beat** | arguswatch-celery-beat | - | 每 30-60 分钟定时收集 | | 9 | **nginx** | aw-nginx | **7777** | 反向代理,向浏览器提供仪表盘 | | 10 | **prometheus** | arguswatch-prometheus | 9090 | 指标收集 + 健康监控 | ## 📂 代码结构 ``` arguswatch-v16.4.7/ │ ├── 📄 README.md # This file ├── 📄 CHANGELOG-v16.4.7.md # 20 bug fixes documented ├── 📄 AGENTIC-AI-HONEST-ASSESSMENT.md # Honest AI capability analysis ├── 🐳 docker-compose.yml # All 10 services defined ├── 🔧 start.sh / stop.sh / fresh-start.sh # Linux/Mac scripts ├── 🔧 START.bat / FRESH-START.bat # Windows scripts │ ├── backend/ # ═══ FASTAPI BACKEND ═══ │ ├── arguswatch/ │ │ ├── main.py # App init, auth, health, onboard (~2,283 lines - was 5,258) │ │ ├── api/ │ │ │ ├── ai_routes.py # AI endpoints: triage, chat, investigate (896 lines) │ │ │ ├── stats_routes.py # Stats, metrics, threat-pressure (282 lines) │ │ │ ├── findings_routes.py # Findings, campaigns, SLA, FP patterns (656 lines) │ │ │ ├── ops_routes.py # Collectors, matching, scan, enterprise (387 lines) │ │ │ ├── settings_routes.py # Settings, exposure, reports, attribution (1,010 lines) │ │ ├── config.py # Settings, env vars, model names │ │ ├── models.py # SQLAlchemy ORM models (all tables) │ │ ├── auth.py # JWT auth (disabled by default) │ │ ├── database.py # Async SQLAlchemy session │ │ ├── celery_app.py # Celery configuration │ │ │ │ │ ├── engine/ # ═══ CORE INTELLIGENCE ENGINE ═══ │ │ │ ├── correlation_engine.py # 🎯 8-strategy matcher + AI hooks │ │ │ ├── customer_router.py # IOC -> customer routing logic │ │ │ ├── customer_intel_matcher.py # Bulk matching (match-intel-all) │ │ │ ├── pattern_matcher.py # 🔍 86 IOC regex patterns │ │ │ ├── action_generator.py # 🔧 12 remediation playbooks │ │ │ ├── severity_scorer.py # SLA-based severity scoring │ │ │ ├── exposure_scorer.py # 📊 5-dimension scoring (1,064 lines) │ │ │ ├── finding_manager.py # Finding create + dedup + merge │ │ │ ├── attribution_engine.py # Threat actor -> customer attribution │ │ │ └── campaign_detector.py # Multi-finding campaign grouping │ │ │ │ │ ├── services/ # ═══ AI + PIPELINE SERVICES ═══ │ │ │ ├── ai_pipeline_orchestrator.py # 🤖 9-tool autonomous agent (698 lines) │ │ │ ├── ai_pipeline_hooks.py # AI triage + FP check + narrative │ │ │ ├── ai_rag_context.py # RAG context builder for AI │ │ │ ├── enrichment_pipeline.py # VT + AbuseIPDB + OTX enrichment │ │ │ ├── exposure_scorer.py # Exposure calculation service │ │ │ └── ingest_pipeline.py # Detection -> Finding pipeline │ │ │ │ │ ├── agent/ # ═══ LLM PROVIDER LAYER ═══ │ │ │ ├── agent_core.py # 4 provider call handlers: │ │ │ # _call_ollama (Qwen 3 8B local) │ │ │ # _call_anthropic (Opus 4.6 / Sonnet 4.6) │ │ │ # _call_openai (GPT-5.3 Codex / GPT-4o) │ │ │ # _call_google (Gemini 3.1 Pro) │ │ │ ├── chat_tools.py # 6 query tools for chat agent │ │ │ ├── chat_agent_reliable.py # Two-phase chat: classify->query->summarize │ │ │ └── investigate_agent.py # Agentic investigation after compromise check │ │ │ │ │ ├── static/ # ═══ FRONTEND ═══ │ │ │ ├── dashboard.html # 🖥️ Single-page app (5,379 lines) │ │ │ │ # 13 pages, all inline CSS/JS │ │ │ │ # Detection detail modals │ │ │ │ # Remediation detail modals │ │ │ │ # Dark web clickable cards │ │ │ │ # AI chat with countdown timer │ │ │ │ # Onboard with validation │ │ │ ├── solvent-icon.svg # Solvent CyberSecurity icon │ │ │ └── solvent-logo.svg # Solvent CyberSecurity logo │ │ │ │ │ └── api/ # ═══ SUB-ROUTERS ═══ │ │ ├── customers.py # Customer CRUD + onboard │ │ ├── detections.py # Detection CRUD + status │ │ └── enrichments.py # Enrichment + remediation │ │ │ └── tests/ # ═══ 110 UNIT TESTS ═══ │ ├── test_matching_strategies.py # 35 tests (8 strategies × TP + FP) │ ├── test_crtsh_collector.py # 22 tests (parsing + email exclusion) │ ├── test_onboard_validation.py # 16 tests (domain-name mismatch) │ ├── test_v16_4_6_css_fix.py # 16 tests (CSS FP + sanitizer) │ ├── test_pattern_matcher.py # 12 tests (core regex patterns) │ ├── test_self_referential.py # 9 tests (exclusion logic) │ ├── test_matching_helpers.py # Domain, IP, CIDR helpers │ ├── test_severity_scorer.py # Severity + SLA tests │ ├── test_infrastructure.py # Docker + schema alignment │ ├── test_pipeline.py # Pipeline integration │ └── test_collectors.py # Collector module validation │ ├── intel-proxy/ # ═══ INTELLIGENCE COLLECTION ═══ │ └── proxy_server.py # 🌐 47 collectors (4,204 lines) │ # 23 free feeds (no API key) │ # grep.app (109 queries) │ # crt.sh CT log scanner │ # Shodan InternetDB │ # Typosquat detector │ # Pattern matcher (86 types) │ ├── recon-engine/ # ═══ RECONNAISSANCE ═══ │ └── recon_server.py # subfinder + crt.sh + DNS enum │ # 200-asset cap per domain │ ├── initdb/ # ═══ DATABASE ═══ │ ├── 01_schema.sql # Core tables (findings, detections, etc.) │ ├── 08_migrate_v16_4.sql # v16.4 additions (fp_patterns, etc.) │ └── 09_row_level_security.sql # Multi-tenant RLS policies │ ├── nginx/ # ═══ REVERSE PROXY ═══ │ └── nginx.conf # Port 7777 -> backend/intel-proxy │ ├── config/ # ═══ MONITORING ═══ │ └── prometheus.yml # Metrics scrape configuration │ └── scripts/ # ═══ UTILITIES ═══ └── (migration + seed scripts) ``` ## 📡 47 个收集器 **23 个免费(无需密钥):** NVD, CISA KEV, EPSS, MITRE ATT&CK, OpenPhish, URLhaus, PhishTank, Feodo, ThreatFox, MalwareBazaar, Abuse.ch, CIRCL MISP, grep.app (109 个查询), GitHub Gist, Sourcegraph, Ransomwatch, RansomFeed, VX-Underground, Paste Sites, RSS, Pulsedive, DarkSearch, Telegram, **crt.sh** (新增), **Shodan InternetDB** (新增), Typosquat Detector **11+ 个需密钥:** VirusTotal, AbuseIPDB, Shodan, OTX, URLScan, GitHub Secrets, HudsonRock, HIBP, LeakIX, GrayHatWarfare, Censys, IntelX ## 🔍 111 种 IOC 类型 **15 种已验证**(在实时数据库中) · **64 种工作中**(正则 + 查询已验证) · **10 种理论上的** · 4 种已移除的噪声模式 **类别:** API Keys & Tokens · Stolen Credentials · Vulnerability Intel · Network IOCs · Data Exfiltration · Threat Actors · Financial/PII · SaaS Misconfiguration · Dark Web · OAuth/Session **v16.4.7 修复:** github_fine_grained_pat (前缀), sendgrid_api_key (长度), azure_bearer (模式), CSS 误报 (排除)。**移除:** crypto_seed_phrase, stripe_test_key, twilio_auth_token, bearer_token_header。 ## 🎯 8 策略匹配引擎 | 策略 | 示例 | 测试 | |----------|---------|-------| | exact_domain | `yahoo.com` -> Yahoo | TP + FP | | subdomain | `api.yahoo.com` -> Yahoo | TP + FP | | exact_ip / CIDR | `10.0.0.5` 在 `10.0.0.0/24` 中 | TP + FP | | keyword (word boundary) | `starbucks` 在数据转储中 | TP + FP | | brand + typosquat | `yah0o.com` (≤2 次编辑) | TP + FP | | tech_stack | CVE + Apache -> VulnWeb | TP + FP | | exec_name | `john.ceo@yahoo.com` | TP + FP | | cloud_asset | `s3://yahoo-backup` | TP + FP | **保护机制:** 自引用过滤 · 域名不匹配 · DNS 验证 · 行业默认隔离 · 侦察资产上限 (200) · 从连接字符串提取主机名 ## 🤖 AI 流水线 **从仪表盘标题栏切换提供商:** 🦙 Qwen 3 8B · 🟣 Claude Opus 4.6 · 🤖 GPT-5.3 Codex · 💎 Gemini 3.1 Pro | 组件 | Ollama (本地) | 云端 (Claude/GPT/Gemini) | 实际价值 | |-----------|---------------|--------------------------|-------------| | AI 栏 (搜索 + 调查) | ✅ 分类->失陷检查->LLM 调查->简报 | ✅ (更快,更智能) | **YES - 真正的 Agentic** | | 调查报告 | ✅ | ✅ | **YES - 无法用 if-else 实现** | | 9 工具编排器 | ✅ 4 次迭代 | ✅ 12 次迭代 | Agentic 但冗余| AI 严重性分级 | ✅ | ✅ | 查找表更好 | | 误报复核 | ✅ | ✅ | 规则更好 | **独立端点:** `match-intel-all` (快,无 AI) -> `ai-triage?limit=5` (慢,每次 5 个) ### 🏆 前 10 AI 模型 - 本地 + 云端 (2026 年 3 月) *您的硬件:AMD Ryzen 9 9950X3D · 64GB DDR5 · ~17GB VRAM* | # | 模型 | 类型 | 大小 | 速度 | GPQA | SWE-bench | Context | Tools | 成本 (输入/输出) | |---|-------|------|------|-------|------|-----------|---------|-------|---------------| | 🥇 | **Qwen 3 9B** | 🟢 LOCAL | 6.6 GB | 40-60 t/s | 81.7 | - | 256K | ✅ RL-trained | **免费** | | 🥈 | **Gemini 3.1 Pro** | 🟣 CLOUD | 专有 | 50-70 t/s | **94.3** 🏆 | 80.6% | 1M | ✅ Native+MCP | $2 / $12 | | 🥉 | **Claude Opus 4.6** | 🟣 CLOUD | 专有 | 25-35 t/s | 91.3 | **80.8%** | 1M | ✅ Native | $5 / $25 | | 4 | **GPT-5.3 Codex** | 🟣 CLOUD | 专有 | 40-60 t/s | 81.0 | 56.8% Pro | 400K | ✅ Native | $1.75 / $14 | | 5 | GPT-OSS 20B | 🟢 LOCAL | ~13 GB | 80-140 t/s | ~72 | - | 128K | ✅ Native | **免费** | | 6 | GLM-4.6V Flash 9B | 🟢 LOCAL | ~6 GB | 45-65 t/s | ~65 | - | 128K | ✅ 87.4% τ² | **免费** | | 7 | Qwen 3 14B | 🟢 LOCAL | ~8.5 GB | 35-50 t/s | ~68 | - | 128K | ✅ Yes | **免费** | | 8 | Qwen 3.5 4B | 🟢 LOCAL | 2.7 GB | 80-120 t/s | ~70 | - | 256K | ✅ RL-trained | **免费** | | 9 | Qwen3-Coder-Next 80B-A3B | 🟢 LOCAL | ~14 GB | 25-40 t/s | ~75 | 70.6% | 256K | ✅ Strong | **免费** | | 10 | Gemma 3 12B | 🟢 LOCAL | ~8 GB | 35-50 t/s | ~60 | - | 128K | ⚠️ Limited | **免费** | ## 🔧 96 个修复手册 每种 IOC 类型自动生成:`malicious_ip` · `unpatched_cve` · `credential_combo` · `leaked_api_key` · `phishing` · `malware_hash` · `ransomware` · `typosquat` · `exec_exposure` · `cloud_exposure` · `data_leak` · `generic` 每项包含:编号的技术步骤 · 管理步骤 · 所需证据 · SLA 截止时间 · 角色分配 ## 📊 仪表盘页面 | 页面 | 显示内容 | |------|-------------| | **Overview** | 威胁压力指数、严重性图表、检测时间线、IOC 分布 | | **Findings** | 所有相关发现,包含严重性、客户、证据链 | | **Campaigns** | 多发现攻击战役 | | **Detections** | 原始检测 - 点击任意卡片 -> 完整详情弹窗,包含原始证据 + VirusTotal/NVD/Shodan 链接 | | **Actors** | 183 个 MITRE ATT&CK 威胁行为者及其 TTP、国家、复杂度 | | **Dark Web** | 勒索软件声明、粘贴板转储、暗网提及 - 可点击卡片 -> 详情弹窗 | | **Exposure** | 每个客户的 5 维暴露评分 (D1-D5 明细) | | **Threat Universe** | 交互式威胁图谱可视化 | | **Customers** | 客户管理 + 带验证的一键入驻 | | **Reports** | PDF 报告生成 | | **Remediations** | 所有修复操作 - 点击 -> 编号的技术步骤、SLA、状态按钮 | | **FP Memory** | AI 学习的误报模式 | | **Settings** | AI 提供商切换、API 密钥、47 个带状态的收集器卡片 | ## 📋 API 参考 ``` POST /api/customers/onboard # One-call customer onboarding POST /api/match-intel-all # Match all detections to customers (fast) POST /api/ai-triage?limit=5 # AI triage batch (5 at a time) POST /api/collect-all # Trigger all 47 collectors GET /api/findings # List findings with filters GET /api/findings/{id} # Finding detail + proof chain + sources GET /api/detections # List raw detections GET /api/detections/{id} # Detection detail + raw evidence GET /api/customers # List all customers GET /api/actors # List threat actors (auto-seeds MITRE) GET /api/darkweb # Dark web mentions GET /api/finding-remediations/ # All remediation actions GET /api/finding-remediations/stats # Remediation statistics POST /api/finding-remediations/create # Create manual remediation GET /api/fp-patterns # False positive patterns GET /api/settings/ai # AI provider status POST /api/settings/active-provider # Switch AI provider (no restart) POST /api/pipeline-fixup # Backfill proofs + remediations GET /api/collectors/status # All collector statuses + IOC counts ``` ## 🐳 Docker 命令 ### 日常操作 ``` # 启动所有 services docker compose up -d # 带重建启动(代码更改后) docker compose up -d --build # 停止所有 services(保留数据) docker compose down # 查看正在运行的 services docker compose ps # 追踪 backend 日志 docker logs arguswatch-backend -f --tail=50 # 追踪 Ollama 日志(AI model 状态) docker logs arguswatch-ollama -f --tail=20 # 追踪 intel-proxy 日志(collector 活动) docker logs arguswatch-intel-proxy -f --tail=20 ``` ### 数据管理 ``` # 检查数据库计数 docker exec arguswatch-postgres psql -U arguswatch -d arguswatch -c \ "SELECT 'findings' as t, COUNT(*) FROM findings UNION ALL SELECT 'detections', COUNT(*) FROM detections UNION ALL SELECT 'customers', COUNT(*) FROM customers UNION ALL SELECT 'remediations', COUNT(*) FROM finding_remediations UNION ALL SELECT 'actors', COUNT(*) FROM threat_actors;" # 检查 AI triage 进度 docker exec arguswatch-postgres psql -U arguswatch -d arguswatch -c \ "SELECT COUNT(*) as triaged FROM findings WHERE ai_provider IS NOT NULL; SELECT COUNT(*) as untriaged FROM findings WHERE ai_provider IS NULL;" # 检查 collector IOC 计数 docker exec arguswatch-postgres psql -U arguswatch -d arguswatch -c \ "SELECT source, COUNT(*) as iocs FROM detections GROUP BY source ORDER BY iocs DESC LIMIT 15;" # 将 findings 导出为 CSV docker exec arguswatch-postgres psql -U arguswatch -d arguswatch -c \ "COPY (SELECT * FROM findings ORDER BY created_at DESC) TO STDOUT WITH CSV HEADER;" > findings.csv ``` ### 故障排除 ``` # 检查 Ollama model 是否已加载 docker exec arguswatch-ollama ollama list # 从 backend 测试 Ollama 连接 docker exec arguswatch-backend python -c \ "import httpx; r=httpx.get('http://ollama:11434/api/tags'); print(r.status_code, r.text[:200])" # 检查 backend 环境变量 docker exec arguswatch-backend env | grep -E "OLLAMA|ANTHROPIC|OPENAI|AUTH" # 重启单个 service(不影响其他) docker compose restart backend docker compose restart ollama docker compose restart intel-proxy # 查看 PostgreSQL 实时查询 docker exec arguswatch-postgres psql -U arguswatch -d arguswatch -c \ "SELECT pid, state, LEFT(query,80) FROM pg_stat_activity WHERE state='active';" ``` ### 核弹级选项 ``` # ⚠️ 停止 + 删除所有数据(volumes、findings、customers、所有内容) docker compose down -v # ⚠️ 从头开始完全重建 docker compose down -v docker compose up -d --build # ⚠️ 删除所有 Docker images(强制重新下载) docker compose down -v --rmi all # ⚠️ 清理 Docker 系统(回收磁盘空间) docker system prune -af --volumes ``` ### 运行测试 ``` # 所有 110 个测试 docker exec arguswatch-backend python -m pytest tests/ -v # 特定测试文件 docker exec arguswatch-backend python -m pytest tests/test_matching_strategies.py -v # 快速测试计数 docker exec arguswatch-backend python -m pytest tests/ -q ``` ## ⚙️ 配置 ``` # docker-compose.yml 环境: ANTHROPIC_API_KEY: sk-ant-... # Optional - Claude Opus 4.6 ($5/$25 per M tokens) OPENAI_API_KEY: sk-... # Optional - GPT-5.3 Codex ($1.75/$14 per M tokens) GOOGLE_AI_KEY: AIza... # Optional - Gemini 3.1 Pro ($2/$12 per M tokens) VIRUSTOTAL_API_KEY: ... # Recommended - free 500/day ABUSEIPDB_API_KEY: ... # Recommended - free 1000/day OLLAMA_MODEL: qwen3:8b # Default local AI (5.2GB, auto-pulled, free) AUTH_DISABLED: true # No login (default) ``` ## 🧪 测试 ``` # 所有测试(共 157 个) docker exec arguswatch-backend python -m pytest tests/ -v # 仅集成测试 - 快速冒烟(无需 DB,2秒): docker exec arguswatch-backend python -m pytest tests/test_integration.py -v -k "not requires_db" # 集成测试 - 完整(需要运行 PostgreSQL): docker exec arguswatch-backend python -m pytest tests/test_integration.py -v ``` | 测试文件 | 测试数 | 覆盖范围 | |-----------|-------|---------------| | `test_integration.py` | **47** | **应用启动、端点注册、CORS 安全、输入验证、响应格式、模型完整性、安全修复、N+1 修复、日期时间弃用、认证流程、完整 CRUD 生命周期** | | `test_matching_strategies.py` | 35 | 8 种策略 × TP + FP + 跨客户隔离 | | `test_crtsh_collector.py` | 22 | crt.sh 解析、邮箱排除、去重、上限 | | `test_onboard_validation.py` | 16 | 域名不匹配检测 | | `test_v16_4_6_css_fix.py` | 16 | CSS 误报拒绝 + 清理器 | | `test_pattern_matcher.py` | 12 | 核心 IOC 正则模式 | | `test_self_referential.py` | 9 | 自引用排除逻辑 | ## 📊 暴露评分 (5 个维度) | 维度 | 权重 | 数据来源 | |-----------|--------|-------------| | D1: 直接暴露 | 45% | 已确认的 CVE、凭据、恶意 IP | | D2: 活跃利用 | 20% | EPSS 评分、CISA KEV、VirusTotal | | D3: 威胁行为者意图 | 15% | 183 个 MITRE ATT&CK 行为者 × 客户行业 | | D4: 攻击面 | 10% | Shodan InternetDB 端口扫描 | | D5: 资产关键性 | 10% | 客户资产关键性评级 | **SLA:** CRITICAL 1-4h · HIGH 4-24h · MEDIUM 24-72h · LOW 72h+ ## 📋 v16.4.7 变更 (2026 年 3 月 9 日) ### 🔧 流水线连接 - 关键修复 **`_post_match_pipeline()`** - 100 行函数,对每项发现运行 严重性 -> 丰富化 -> 自动关键性 -> AI 分级 -> MITRE 标记 -> 修复 -> 战役。在此之前,所有下游引擎(丰富化、评分、手册、战役)对于匹配的发现来说都是死代码。现已连接到所有 7 个发现创建路径: | 路径 | 运行频率 | 状态 | |------|-----------|--------| | `match_customer_intel` | 每次入驻 + 每 30 分钟 | ✅ | | Onboard Step 4a2 (promote) | 每次入驻 | ✅ | | `_delayed_rematch` | 入驻后 90 秒 | ✅ | | `correlation_engine` | 每 15 分钟 | ✅ | | Startup bootstrap | 启动时一次 | ✅ | | `ingest_pipeline` | 每次检测 | ✅ (独立流水线) | | AI manual promote | 仅手动 | ⚠️ (有意为之) | ### 🧬 IOC 注册表 - 运行时可扩展性 用单个数据库表 (`ioc_type_registry`) 替换了 6 个硬编码的 Python 字典。通过 API 添加新的 IOC 类型 - 零重新部署。 | 组件 | 详情 | |-----------|--------| | `ioc_type_registry` 表 | 启动时从旧字典种子 111 种类型 | | `criticality_weights` 表 | 8 个可调整的评分权重 | | `ai_prompts` 表 | 9 个可编辑的系统提示,带行业覆盖 | | `mitre_sync_log` 表 | 每周 MITRE ATT&CK 同步跟踪 | | Admin API | 21 个端点 (CRUD、测试正则、预览评分、覆盖缺口、权重、提示、MITRE 同步) | | Dashboard tab | 完整的 IOC 注册表 UI,支持添加/编辑/过滤/自动发现/评分预览 | ### 🎯 自动关键性评分 (8 因子模型) 动态严重性取代静态查找。相同的 IOC 类型,不同的上下文 = 不同的严重性: ``` aws_access_key + active + today + technology customer = CRITICAL (0.95) aws_access_key + revoked + 90 days + generic customer = MEDIUM (0.42) ``` 因子:基础严重性 (0.20)、杀伤链阶段 (0.15)、丰富化数据 (0.20)、来源可靠性 (0.10)、时间新鲜度 (0.05)、行业上下文 (0.10)、MITRE 战术权重 (0.10)、暴露确认 (0.10)。 ### 🤖 AI 提示管理 9 个 AI 钩子现在从数据库读取系统提示。可按钩子、按行业编辑 - 通过一次 API 调用从通用 SOC 切换到 HIPAA 专家。基于缓存(每次钩子调用零数据库会话)。 ### 🌐 MITRE ATT&CK 自动同步 每周从 MITRE STIX GitHub 拉取。在注册表中标记已弃用的技术。建议替换。记录每次同步。通过 Celery Beat 运行 + 通过 API 按需运行。 ### 🧠 FP Memory - AI 驱动 5 个新功能:AI 分析(解释为何模式是误报)、AI 建议(扫描 30 天的驳回记录)、测试模式、类别过滤器、置信度着色卡片。 ### 🔧 Remediations - AI 驱动 6 个新功能:AI 重新生成、验证修复(重新检查 IOC)、合规映射 (NIST/PCI/HIPAA/SOC2)、批量重新生成、批量验证、无手册过滤器。 ### 🔄 跨客户误报学习 3 层系统:第 1 层(3+ 客户时自动全局生效,纯 if/else)、第 2 层(2 个客户时可见)、第 3 层(AI 处理模糊情况)。分析师覆盖跟踪列,用于未来的提示演进。 ### 🐛 发现并修复的错误 | 错误 | 严重性 | 影响 | |-----|----------|--------| | 流水线未连接到匹配 | CRITICAL | 所有下游代码均为死代码 | | `check_and_create_campaign(int)` | CRITICAL | 从未创建任何战役 | | `_load_prompt` 连接池耗尽 | CRITICAL | 入驻在发现约 6 个时死锁 | | Step 4a2 发现跳过流水线 | CRITICAL | 提升的发现没有评分 | | 关联引擎跳过流水线 | HIGH | 15 分钟周期的发现只有原始严重性 | | `_delayed_rematch` 跳过流水线 | HIGH | 后台发现跳过丰富化 | | 丰富化格式不匹配 | HIGH | 自动评分总是默认值 | | 注册表表不在自动迁移中 | HIGH | 现有部署启动时崩溃 | | `swift_bic` 正则匹配每个单词 | HIGH | IOC 图表被噪声主导 | | Steps 4b/4d 重复执行 | MEDIUM | 入驻慢 2 倍 | ### 📊 其他改进 - **自动植入**:全新部署时自动植入 6 个演示客户(Yahoo, Uber, Shopify, Starbucks, GitHub, VulnWeb) - 均为 HackerOne 漏洞赏金目标 - **全自动启动流水线**:收集 -> 关联 -> 匹配 -> 提升 -> 评分 -> 归因 -> 战役(零手动步骤) - **GPU 加速 AI**:原生 Ollama 配合 qwen3:8b(GPU 上 100+ tok/s vs CPU 上 5 tok/s) - **覆盖缺口**:行业感知 (P0/P1/P2),基于策略的百分比,可操作 - **IOC 图表**:前 12 名 + 其他桶,严重性感知颜色,点击 -> AI 栏 - **版本**:所有 228 个文件更新至 v16.4.7 ## 🗺️ 路线图 - ✅ 47 个收集器,111 种 IOC 类型,99 项 MITRE 映射, 种匹配策略 - ✅ 4 个 AI 提供商,96 个手册,21 个管理 API - ✅ IOC 注册表(运行时可扩展),自动关键性评分(8 因子) - ✅ 带行业覆盖的 AI 提示管理,MITRE 自动同步 - ✅ 跨客户误报学习,分析师覆盖跟踪 - ✅ 完整的流水线连接(7 个发现路径 -> 评分 -> 丰富化 -> 修复) - ✅ 通过原生 Ollama 的 GPU 加速 AI (qwen3:8b, 100+ tok/s) - ✅ 全自动启动流水线(收集 -> 匹配 -> 评分 -> 归因 -> 战役) - ✅ 6 个 HackerOne 漏洞赏金演示客户自动植入 - 🔜 第 2 阶段:EDR/SIEM webhook 接入 - 🔜 Sysmon -> MITRE ATT&CK TTP 提取 - 🔜 交叉关联(外部 + 内部遥测) - 🔜 每个客户的 PDF 威胁报告 - 🔜 多租户 RBAC ## 待审批专利 | 申请号 | 标题 | |------------|-------| | US 63/983,055 | VulnPilot - AI 漏洞优先级排序 | | US 63/983,059 | Ghost Risks - 未检测到的威胁识别 | | US 63/983,697 | VCTS - 漏洞场景引擎 | | US 63/987,743 | IAMPilot - 治理调制的身份威胁评估 | ## 许可证 专有软件 - Solvent CyberSecurity LLC。保留所有权利。
Solvent *ArgusWatch:洞察一切。无一遗漏。*
**Cyber AI 架构** 由 [**3sk1nt4n**](https://www.credly.com/users/eskintan/badges) 构建 [Solvent CyberSecurity LLC](https://solventcyber.com) - *守护重要资产。一次一个命令。*
标签:AI智能体, AI风险缓解, AMSI绕过, AV绕过, Cloudflare, Docker, FastAPI, IOC收集, LLM评估, MITRE ATT&CK, MSSP平台, Ollama, Python, Qwen, 威胁情报, 威胁检测, 威胁源集成, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 搜索引擎查询, 攻击指标, 无后门, 本地私有化部署, 测试用例, 网络安全, 自动化响应, 证据链追溯, 请求拦截, 资产关联, 逆向工具, 隐私保护, 风险暴露评分