fokrulanthro16-eng/Mythos-AI-SOC-Platform

GitHub: fokrulanthro16-eng/Mythos-AI-SOC-Platform

Mythos 是一个 AI 驱动的多智能体安全运营中心(SOC)平台,通过自动化编排安全事件的检测、归因、取证和缓解全流程来提升企业安全运营效率。

Stars: 0 | Forks: 0

# Mythos — AI 驱动的 SOC 事件编排平台 ## 目录 - [概述](#overview) - [架构](#architecture) - [功能矩阵](#feature-matrix) - [快速开始](#quick-start) - [仪表盘页面](#dashboard-pages) - [Agent 工作流](#agent-workflow) - [MITRE ATT&CK 集成](#mitre-attck-integration) - [案例管理](#case-management) - [分析师工作台](#analyst-workbench) - [Agent 协作](#agent-collaboration) - [PDF 报告生成](#pdf-report-generation) - [威胁行为者情报](#threat-actor-intelligence) - [REST API](#rest-api) - [测试覆盖率](#test-coverage) - [项目结构](#project-structure) - [配置](#configuration) ## 概述 Mythos 是一个全栈网络安全运营平台,它使用专门的 AI agent 流水线来编排完整的事件响应生命周期 —— 从检测到缓解。每个组件都可以独立测试、投入生产环境,并集成到 11 页的实时 SOC 仪表盘中。 **核心能力:** | 能力 | 描述 | |---|---| | 多 agent 流水线 | 5 个专门的 agent 负责处理 检测 → 分析 → 归因 → 合规 → 取证 | | 实时 SOC 仪表盘 | 11 页的 Streamlit 命令中心,包含 Plotly 图表 | | MITRE ATT&CK 引擎 | 完整的技术到战术映射增强,采用懒加载单例模式 | | 案例管理 | 完整的 CRUD,包含状态流、分析师笔记、优先级升级和 PDF 导出 | | 分析师工作台 | 任务分配管理、6 标签页操作面板、活动源 | | 高管仪表盘 | 高管 KPI:MTTR、MTTD、归因置信度、分析师利用率 | | 威胁行为者情报 | 23 个被追踪的行为者,包含 6 个重点行为者中心及对比雷达图 | | PDF 事件报告 | 8 个部分的 ReportLab 报告,包含 MITRE 映射和建议 | | REST API | FastAPI,具备 JWT 认证、RBAC (ADMIN/ANALYST/VIEWER) 和多租户隔离 | | 可观测性 | Prometheus 指标、Grafana 仪表盘、结构化审计日志 | ## 架构 ``` graph TB subgraph Intake["Incident Intake"] A[Incident JSON / CSV / Syslog] --> B[Ingestion Service] B --> C[Parser + Dedup] C --> D[StateObject] end subgraph Pipeline["Agent Pipeline · core/orchestrator.py"] D --> E[PlannerAgent\nDETECTED → ANALYZED\nIOC assignment · confidence · risk score] E --> F[IntelligenceAgent\nATT&CK enrichment · IOC lookup] F --> G[AttributionAgent\nANALYZED → ATTRIBUTED\nthreat actor mapping · campaign clustering] G --> H[ForensicsAgent\nATT&CK technique enrichment] H --> I[ComplianceAgent\nATTRIBUTED → MITIGATED\nplaybook selection] end subgraph Persistence["Persistence"] I --> J[(logs/attribution_log.jsonl)] I --> K[(logs/attribution_log.csv)] I --> L[(PostgreSQL\nincidents · cases · users · tenants)] end subgraph API["REST API · api/main.py"] L --> M[FastAPI /api/v1/\nJWT · RBAC · multi-tenant] M --> N[Prometheus /metrics] N --> O[Grafana dashboards] end subgraph Dashboard["Streamlit Command Center · port 8501"] J --> P[data_loader.py] L --> P P --> Q[1 Incident Overview] P --> R[2 Threat Intelligence] P --> S[3 Incident Timeline] P --> T[4 Logs Explorer] P --> U[5 Incident Intake] P --> V[6 Case Management] P --> W[7 MITRE ATT&CK] P --> X[8 Analyst Workbench] P --> Y[9 Agent Collaboration] P --> Z[10 Executive Dashboard] P --> AA[11 Threat Actor Intel] end subgraph Reporting["PDF Reporting · reporting/"] V --> BB[report_builder.py\nReportLab PDF engine] X --> BB Q --> BB end subgraph ThreatData["Threat Intelligence Data"] CC[(data/threat_profiles.json\n23 actors)] --> AA DD[(data/campaigns.json\n20 campaigns)] --> AA EE[(data/mitre_attack.json\nATT&CK matrix)] --> W end ``` ### 组件层 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Browser / CLI / API Client │ ├───────────────────────┬─────────────────────────────────────────┤ │ Streamlit Dashboard │ FastAPI REST API │ │ port 8501 │ port 8000 /api/v1/* │ │ 11 pages │ JWT HS256 · RBAC · Pydantic v2 │ ├───────────────────────┴─────────────────────────────────────────┤ │ Agent Pipeline (core/orchestrator.py) │ │ PlannerAgent → IntelligenceAgent → AttributionAgent │ │ → ForensicsAgent → ComplianceAgent │ ├─────────────────────────────────────────────────────────────────┤ │ Data Stores │ │ PostgreSQL (production) · SQLite (CI/local) │ │ Redis (JWT blacklist + response cache) │ │ JSONL log files (dashboard data source) │ ├─────────────────────────────────────────────────────────────────┤ │ Observability │ │ Prometheus /metrics · Grafana dashboards · audit.jsonl │ └─────────────────────────────────────────────────────────────────┘ ``` ## 功能矩阵 | 阶段 | 功能 | 状态 | |---|---|---| | 1–2 | 核心 agent 流水线、状态机、风险评分、JSONL/CSV 日志记录 | ✅ | | 3 | IntelligenceAgent、AttributionAgent、Featherless/BandAI 集成 | ✅ | | 4 | Streamlit 命令中心(4 个页面)、Plotly 图表、侧边栏筛选器 | ✅ | | 5 | FastAPI + PostgreSQL + Redis、JWT 认证、RBAC、Alembic、Prometheus/Grafana | ✅ | | 6 | 多格式解析器、摄入 API、MITRE ATT&CK 引擎、案例 API | ✅ | | 7.1 | 2026 年生产数据集(50 个事件、20 个活动)、高管仪表盘 | ✅ | | 7.2 | PDF 事件报告(ReportLab,8 个部分),集成到 3 个页面中 | ✅ | | 7.3 | 威胁行为者情报中心(23 个行为者,5 标签页页面) | ✅ | ## 快速开始 ### 前置条件 ``` python -m pip install -r requirements.txt # 用于 PDF 生成 pip install reportlab ``` ### 生成事件数据并启动仪表盘 ``` # 1. 运行 agent pipeline(生成 attribution_log.jsonl) python core/orchestrator.py # 2. 启动 Streamlit Command Center python -m streamlit run dashboard/app.py ``` 仪表盘将在 **http://localhost:8501** 打开 ### 运行完整测试套件 ``` pytest tests/ -v --tb=short ``` ### Docker Compose(全栈) ``` cp .env.example .env # configure secrets docker compose up -d docker compose run --rm migrate ``` 服务:API `http://localhost:8000` · 仪表盘 `http://localhost:8501` · Grafana `http://localhost:3000` ## 仪表盘页面 | # | 页面 | 主要功能 | |---|---|---| | 1 | **事件概览** | KPI 行、严重程度饼图、风险直方图、状态进展、置信度散点图、事件表、PDF 导出 | | 2 | **威胁情报** | 行为者档案、活动频率、IOC 类型分布、归因置信度图表 | | 3 | **事件时间线** | 状态转换散点图、状态热力图、完整历史记录 | | 4 | **日志探索器** | 原始 JSONL 查看器、可搜索的 CSV 表格、字段级导出 | | 5 | **事件接入** | 带有验证的手动事件提交表单 | | 6 | **案例管理** | 完整 CRUD,状态流 (OPEN→CLOSED),笔记,案例时间线,PDF 导出 | | 7 | **MITRE ATT&CK** | 技术浏览器、战术筛选、增强搜索 | | 8 | **分析师工作台** | 事件分配、6 标签页操作面板、活动源、工作负载图表、PDF 导出 | | 9 | **Agent 协作** | 多 agent 运行查看器、agent 消息时间线 | | 10 | **高管仪表盘** | MTTR、MTTD、活跃活动、分析师利用率、事件趋势、严重程度分布 | | 11 | **威胁行为者情报** | 23 个行为者、搜索/筛选、档案、活动甘特图、技术矩阵、雷达图对比、地理活动 | ## Agent 工作流 ``` Incident ingested (JSON / CSV / Syslog / API) │ ▼ ┌─────────────────────────────────────┐ │ PlannerAgent │ │ DETECTED → ANALYZED │ │ • Assigns IOCs from threat name │ │ • Sets initial confidence score │ │ • Computes risk_score │ │ = (confidence × 0.7) + │ │ (severity_weight × 0.3) │ └──────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ IntelligenceAgent │ │ • Enriches with MITRE ATT&CK data │ │ • Maps techniques to tactics │ │ • Queries Featherless/BandAI APIs │ └──────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ AttributionAgent │ │ ANALYZED → ATTRIBUTED │ │ • Maps threat_name → actor ID │ │ • Clusters incidents to campaigns │ │ • Adjusts confidence │ └──────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ ForensicsAgent │ │ • Lazy-loads AttackEngine singleton │ │ • Enriches with full technique set │ │ • Adds tactic + URL per technique │ └──────────────┬──────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ ComplianceAgent │ │ ATTRIBUTED → MITIGATED │ │ • Selects playbook for threat name │ │ • Populates mitigation_actions │ └──────────────┬──────────────────────┘ │ ▼ persist() → JSONL + CSV + PostgreSQL ``` ### 风险评分模型 ``` risk_score = (confidence × 0.7) + (severity_weight × 0.3) Severity weights: CRITICAL=1.00 HIGH=0.75 MEDIUM=0.50 LOW=0.25 Risk labels: ≥0.80=CRITICAL ≥0.60=HIGH ≥0.40=MEDIUM <0.40=LOW ``` ## MITRE ATT&CK 集成 `intelligence/attack_engine.py` 中的 `AttackEngine` 在完整的 ATT&CK 数据集之上提供了一个懒加载单例: ``` from intelligence.attack_engine import AttackEngine engine = AttackEngine() # lazy — loads on first access techs = engine.get_techniques_for_tactic("execution") detail = engine.get_technique("T1059.001") # Command-Line Interface mapped = engine.map_threat_to_techniques("LOCKBIT4-RANSOMWARE") ``` **ATT&CK 浏览器**(第 7 页)允许分析师: - 浏览所有战术和技术 - 按技术 ID 或名称搜索 - 查看完整的技术描述和缓解措施 - 按战术类别筛选 ## 案例管理 案例存在于 `dashboard/case_store.py`(基于文件的 JSON)中,并与 `api/models/case.py` ORM 模型保持一致。 **状态流:** `OPEN → INVESTIGATING → CONTAINED → RESOLVED → CLOSED` **优先级:** `P1` (Critical) · `P2` (High) · `P3` (Medium) · `P4` (Low) 每个案例存储: - 关联的 `incident_id` - 分析师分配 - 带有时间戳的笔记历史 - 审计跟踪(`history[]` 包含操作、用户、时间戳) - `created_at` / `updated_at` / `resolved_at`(交错设置以实现真实的 MTTR) **MTTR 模型**(种子数据):P1=36h · P2=72h · P3=120h · P4=48h REST API 端点(需要身份验证): | 方法 | 端点 | 描述 | |---|---|---| | GET | `/api/v1/cases` | 列出案例(分页,租户范围) | | POST | `/api/v1/cases` | 创建案例 | | GET | `/api/v1/cases/{id}` | 获取案例详情 | | PATCH | `/api/v1/cases/{id}` | 更新状态 / 优先级 / 分析师 | | DELETE | `/api/v1/cases/{id}` | 删除案例 | | POST | `/api/v1/cases/{id}/incidents/{inc_id}` | 将事件链接到案例 | | DELETE | `/api/v1/cases/{id}/incidents/{inc_id}` | 将事件取消链接 | ## 分析师工作台 `dashboard/pages/8_Analyst_Workbench.py` 是主要的分析师工作流界面。 **功能:** - **分配事件** — 分配给 10 名指定的 SOC 分析师中的任何一个,并附带严重程度/优先级 - **分配表** — 可按优先级排序,可按分析师和状态筛选 - **6 标签页操作面板:** 1. 更改状态 — 经历 OPEN→INVESTIGATING→CONTAINED→RESOLVED 2. 升级优先级 — P3→P2→P1,带有自由文本升级原因 3. 添加笔记 — 带有作者的时间戳调查笔记 4. 重新分配 — 移交给其他分析师 5. 关闭 — 关闭笔记 + 自动同步 case_store 6. 📄 报告 — 生成并下载 PDF 事件报告 - **案例时间线** — 每个事件的按时间顺序排列的事件源 - **分析师活动源** — 实时操作日志(最后 30 个事件) - **工作负载分布图** — 按分析师分组的条形图(Open vs Resolved vs Critical) ## Agent 协作 `dashboard/pages/9_Agent_Collaboration.py` 将多 agent 流水线的执行过程可视化。 - 查看 `logs/agent_runs.jsonl` 中各个 agent 的运行情况 - 检查每个 agent 的输入/输出状态差异 - 跟踪流水线持续时间和 agent 置信度贡献 - 按事件 ID 或 agent 名称筛选 `dashboard/agent_store.py` 提供: - `seed_sample_runs()` — 加载 10 条 2026 年种子 agent 执行记录 - `get_agent_runs(limit, incident_id, agent)` — 筛选后的日志检索 - `get_run_stats()` — 流水线执行指标 ## PDF 报告生成 `reporting/` 包使用 ReportLab platypus 生成专业的 8 部分 PDF 报告。 ``` from reporting import assemble_report_data, build_incident_report data = assemble_report_data( "INC-2026-001", incident_record=inc, case_record=case, assignment_record=assignment, generated_by="Sarah Kim", classification="CONFIDENTIAL", ) pdf_bytes = build_incident_report(data) # returns raw bytes starting with %PDF ``` **报告部分:** 1. 封面 — 分类横幅、严重程度徽章、元数据 2. 事件摘要 — 包含置信度和风险评分的 KV 表 3. 事件时间线 — 按时间顺序排列的事件表 4. MITRE ATT&CK 映射 — 技术 ID、名称、战术、参考 URL 5. 威胁行为者归因 — 包含别名、TTP、工具的行为者档案 6. 分析师笔记 — 带有作者和时间戳的每条笔记 7. 案例状态 — 当前状态、优先级、案例历史 8. 证据摘要 — 解析的 IOC 表(类型 / 值) 9. 建议 — 类别和基于 ATT&CK 战术的修复步骤 PDF 导出功能通过带有 session-state 缓存的 `st.download_button` 集成到**事件概览**、**案例管理**和**分析师工作台**中。 ## 威胁行为者情报 `dashboard/pages/11_Threat_Actors.py` 提供了一个跨越 23 个被追踪行为者的 5 标签页情报中心。 **重点行为者:** LOCKBIT4 · TA505 · FIN7 · APT29 · APT41 · Lazarus Group **风险评分模型:** ``` risk_score = (sophistication_score × 0.45) + (severity_score × 0.40) + (ttp_breadth × 0.15) Sophistication: nation-state=0.95 advanced=0.80 intermediate=0.60 basic=0.35 ``` **五个标签页:** | 标签页 | 内容 | |---|---| | 行为者档案 | 完整的档案卡、风险仪表、归因置信度仪表、目标部门条形图、TTP/工具/IOC/活动展开器 | | 活动活动 | Plotly 甘特图时间线、带有状态/部门/受害者筛选器的活动详情表 | | 技术矩阵 | Top-25 技术频率条形图、行为者 × 技术覆盖网格、战术类别分布 | | 行为者对比 | 雷达图(风险、归因、TTP 覆盖率、活动活动、受害者范围)、并排对比表 | | 地理活动 | 来源甜甜圈图、复杂程度分布、目标区域堆积条形图、目标部门堆积条形图 | ## REST API 基础 URL:`http://localhost:8000/api/v1` 交互式文档:`http://localhost:8000/docs` ### 认证 ``` # 登录 curl -X POST /api/v1/auth/login \ -d '{"email":"admin@example.com","password":"Password123!"}' # → {"access_token":"...", "refresh_token":"...", "token_type":"Bearer"} # 使用 token curl -H "Authorization: Bearer $TOKEN" /api/v1/incidents ``` Token TTLs:access=15 分钟 · refresh=7 天 ### RBAC 矩阵 | 资源 | ADMIN | ANALYST | VIEWER | |---|---|---|---| | 读取事件/案例 | ✓ | ✓ | ✓ | | 创建/更新事件 | ✓ | ✓ | — | | 运行流水线 | ✓ | ✓ | — | | 删除事件 | ✓ | — | — | | 管理用户/租户 | ✓ | — | — | ### 关键端点 ``` POST /auth/login Obtain JWT token pair POST /auth/refresh Refresh access token POST /auth/logout Blacklist refresh token GET /auth/me Current user profile GET /incidents List incidents (paginated) POST /incidents Create incident POST /incidents/{id}/run Trigger agent pipeline GET /incidents/{id} Get incident detail PATCH /incidents/{id} Update incident DELETE /incidents/{id} Delete incident GET /cases List cases POST /cases Create case PATCH /cases/{id} Update case status/priority/analyst POST /cases/{id}/incidents/{id} Link incident to case POST /ingest/json Bulk ingest JSON incidents POST /ingest/csv Bulk ingest CSV log file POST /ingest/syslog Parse syslog entries GET /attack/techniques Browse ATT&CK techniques GET /attack/tactics List ATT&CK tactics GET /health Health check (no auth) GET /metrics Prometheus metrics (no auth) ``` ## 测试覆盖率 | 测试文件 | 测试数 | 范围 | |---|---|---| | `test_state.py` | 11 | StateObject、IncidentStatus、ThreatSeverity 枚举 | | `test_agents.py` | 18 | PlannerAgentForensicsAgent、ComplianceAgent | | `test_orchestrator.py` | 13 | MythosOrchestrator 批处理流水线 | | `test_intelligence_agent.py` | 16 | IntelligenceAgent、MITRE ATT&CK 增强 | | `test_attribution_agent.py` | 24 | AttributionAgent、活动聚类 | | `test_featherless_client.py` | 21 | FeatherlessClient mock-first API | | `test_bandai_client.py` | 22 | BandAIClient mock-first 任务平台 | | `test_phase3_pipeline.py` | 18 | 端到端阶段 3 集成 | | `test_dashboard_data.py` | 39 | data_loader 所有函数 | | `test_dashboard_charts.py` | 32 | Plotly 图表构建器 | | `test_api_auth.py` | 14 | 登录、刷新、登出、/me | | `test_api_incidents.py` | 17 | 事件 CRUD + 流水线触发 | | `test_api_cases.py` | 14 | 案例 CRUD + 链接/取消链接 | | `test_api_rbac.py` | 21 | RBAC 矩阵 + 多租户隔离 | | `test_api_ingest.py` | 18 | 解析器端点 (JSON/CSV/syslog) | | `test_api_attack.py` | 15 | ATT&CK 技术/战术端点 | | `test_api_case_management.py` | 16 | 案例服务层 | | `test_parsers.py` | 19 | JSON/CSV/syslog 解析器 + 去重 | | `test_attack_engine.py` | 14 | AttackEngine 懒加载单例 | | `test_workbench_store.py` | 22 | 工作台分配/笔记/升级 | | `test_agent_store.py` | 18 | Agent 运行存储 + 种子数据 | | `test_executive_store.py` | 79 | 高管 KPI 计算、筛选器、MITRE 覆盖率 | | `test_report_builder.py` | 34 | PDF 构建器、建议、assemble_report_data | | `test_threat_actor_store.py` | 62 | 威胁行为者存储、纯计算、搜索/筛选 | | `test_validators.py` | 72 | 事件/活动/案例/分析师验证器 + 数据集 | | `test_production_dataset.py` | 37 | 数据完整性:50 个事件、10 名分析师、活动 | | **总计** | **795** | | ## 生产数据集 阶段 7.1 提供了一个完全增强的 SOC 数据集,用于驱动所有仪表盘视图: ### 事件 (`data/sample_incidents.json`) 跨越 30 天的 50 个真实企业事件,涵盖所有 10 个威胁类别: | 类别 | 事件数 | 威胁示例 | |---|---|---| | 勒索软件 | 13 | LockBit 4.0、BlackCat/ALPHV、Akira、PLAY、Rhysida | | 命令与控制 | 9 | Cobalt Strike、Brute Ratel C4、Sliver、Havoc、Mythic | | 数据泄露 | 7 | Cl0p MOVEit 风格、TA505 FTP、Scattered Spider Azure | | 横向移动 | 5 | Mimikatz PTH、Kerberoasting、RDP 暴力破解、WMIC | | 凭据窃取 | 5 | EvilGinx2 AITM、Midnight Blizzard OAuth、Storm-0558 | | 钓鱼 / 恶意软件 | 5 | DarkGate、QakBot、BumbleBee、Emotet、Carbanak | | 国家级 LOTL | 3 | Volt Typhoon、APT28、APT29 | | 内部威胁 | 1 | 承包商 USB 暂存 | | 加密 / 供应链 | 2 | Lazarus TraderTraitor、npm 后门 | 每个事件包括: - 真实的 MITRE ATT&CK 技术(每个事件 3–6 个,47 个独特的技术 ID) - 置信度评分、风险评分、归因置信度 (0.0–1.0) - 分析师分配(10 名 SOC 分析师之一) - 状态进展 (DETECTED → INVESTIGATING → CONTAINED → MITIGATED → RESOLVED) - IOC 增强、缓解措施、AI 威胁摘要 ### 分析师 (`data/analysts.json`) 10 名具有真实档案的 SOC 分析师: | 姓名 | 级别 | 专长 | |---|---|---| | Sarah Kim | Tier 3 | 勒索软件、IR、取证 | | James Okafor | Tier 3 | 关键基础设施、OT/ICS | | Elena Vasquez | Tier 2 | 身份与访问、钓鱼、BEC | | Priya Nair | Tier 3 | APT 追踪、威胁情报 | | Nia Thompson | Tier 2 | 金融威胁行为者、加密 | | Carlos Mendez | Tier 3 | 数据泄露、合规 | | Marcus Webb | Tier 2 | C2 检测、网络取证 | | Aisha Patel | Tier 2 | 端点检测、横向移动 | | Tom Brandt | Tier 1 | 分流、警报监控 | | Ryan O'Brien | Tier 2 | 国家级威胁、LOTL | ## 高管仪表盘 **第 10 页 · `dashboard/pages/10_Executive_Dashboard.py`** 带有实时日期范围和严重程度筛选器的高管/CISO 命令视图,应用于所有指标。 ### KPI 卡片 (8) | KPI | 来源 | |---|---| | 事件总数 | 选定范围内的事件计数 | | 关键事件 | 选定范围内严重程度 == CRITICAL 的事件 | | 待处理案例 | 活跃案例(所有时间) | | 活跃活动 | 选定范围内的不同活动 | | MTTD | 基于严重程度加权的检测时间模型 | | MTTR | 解决已关闭案例的平均小时数 | | 分析师利用率 | 活跃分配占产能的百分比 | | 平均归因置信度 | AttributionAgent 的平均置信度 | ### 可视化 (7) - **事件趋势** — 选定日期窗口的面积图 - **严重程度分布** — 甜甜圈图 (CRITICAL / HIGH / MEDIUM / LOW) - **案例状态分布** — 按状态划分的条形图 - **威胁类别细分** — 水平条形图(8 个类别) - **活动活动** — 按事件计数排名前 10 的活动 - **威胁行为者归因** — 按行为者家族划分的甜甜圈图 - **MITRE ATT&CK 覆盖率** — 显示每个战术独特技术的条形图 ### 筛选器 - **日期范围** — 从/到日期选择器 + 快速范围按钮(7 天、30 天、90 天、所有时间) - **严重程度** — 多选 (CRITICAL、HIGH、MEDIUM、LOW) - **导出** — 将 KPI 摘要下载为 CSV ### 启动 ``` streamlit run dashboard/app.py # 导航至:Executive Dashboard(侧边栏第 10 页) ``` ### KPI 输出示例(30 天窗口,所有严重程度) ``` Total Incidents: 50 Critical Incidents: 11 Open Cases: 10 Active Campaigns: 20 MTTD: 7.4 hrs MTTR: 72.0 hrs Analyst Utilization: 16.0% Avg Attribution Conf: 75.0% ``` ## 项目结构 ``` Mythos/ ├── agents/ │ ├── attribution_agent.py # threat_name → actor mapping (55 entries) │ ├── compliance_agent.py # ATTRIBUTED → MITIGATED, playbook selection │ ├── forensics_agent.py # ATT&CK enrichment, AttackEngine wrapper │ ├── intelligence_agent.py # IOC enrichment, Featherless/BandAI │ └── planner_agent.py # DETECTED → ANALYZED, risk scoring (54 entries) │ ├── api/ │ ├── db/database.py # AsyncSession, Base, get_db, init_db │ ├── models/ # SQLAlchemy ORM: incident, case, user, tenant, audit │ ├── routers/ # auth, incidents, cases, users, tenants, ingest, attack │ ├── schemas/ # Pydantic v2 schemas │ ├── services/ # auth, audit, cache (Redis), metrics (Prometheus) │ ├── dependencies.py # get_current_user, require_roles(*roles) │ └── main.py # FastAPI app + middleware + lifespan │ ├── core/ │ ├── logger.py # logging setup, persist(), JSONL/CSV sinks │ ├── orchestrator.py # MythosOrchestrator, 5-agent pipeline │ └── state.py # StateObject (Pydantic), IncidentStatus, ThreatSeverity │ ├── dashboard/ │ ├── pages/ │ │ ├── 1_Incident_Overview.py │ │ ├── 2_Threat_Intelligence.py │ │ ├── 3_Incident_Timeline.py │ │ ├── 4_Logs_Explorer.py │ │ ├── 5_Incident_Intake.py │ │ ├── 6_Case_Management.py │ │ ├── 7_MITRE_ATT&CK.py │ │ ├── 8_Analyst_Workbench.py │ │ ├── 9_Agent_Collaboration.py │ │ ├── 10_Executive_Dashboard.py │ │ └── 11_Threat_Actors.py │ ├── components/ # charts.py, filters.py, metrics.py │ ├── agent_store.py # agent run log + seed │ ├── case_store.py # case CRUD, 15-case 2026 seed │ ├── data_loader.py # JSONL loader, KPI compute, filter_df │ ├── executive_store.py # MTTR/MTTD/utilisation KPI aggregation │ ├── threat_actor_store.py # 23 actors, risk/confidence scoring, search │ └── workbench_store.py # assignment, escalation, activity feed │ ├── data/ │ ├── campaigns.json # 22 campaigns (20 original + FIN7 + APT41) │ ├── mitre_attack.json # full ATT&CK dataset │ ├── sample_incidents.json # 50 2026 incidents │ └── threat_profiles.json # 23 actor profiles │ ├── intelligence/ │ └── attack_engine.py # lazy-loading ATT&CK singleton │ ├── integrations/ │ ├── bandai_client.py # BandAI task platform client │ └── featherless_client.py # Featherless LLM inference client │ ├── logs/ # attribution_log.jsonl/.csv, audit.jsonl, agent_runs.jsonl │ ├── parsers/ │ ├── base.py / json_parser.py / csv_parser.py / syslog_parser.py │ ├── dedup.py # content-hash deduplication │ └── ingestion_service.py # multi-format coordinator │ ├── reporting/ │ ├── __init__.py │ ├── report_builder.py # 8-section PDF engine (ReportLab platypus) │ └── styles.py # colour palette + paragraph styles │ ├── reports/ # generated PDF output directory │ ├── tests/ # 24 test files, 588 tests total │ ├── alembic/ # database migration scripts ├── monitoring/ # Prometheus config + Grafana dashboard JSON │ ├── .env.example ├── conftest.py ├── docker-compose.yml ├── requirements.txt └── README.md ``` ## 配置 将 `.env.example` 复制到 `.env` 并设置: ``` # 生产环境必需 JWT_SECRET_KEY= DATABASE_URL=postgresql+asyncpg://mythos:password@localhost:5432/mythos REDIS_URL=redis://localhost:6379/0 # 可选 MYTHOS_LOG_LEVEL=INFO # DEBUG | INFO | WARNING CONFIDENCE_THRESHOLD=0.75 # minimum confidence to flag as attributed RISK_CRITICAL_THRESHOLD=0.80 # risk score threshold for CRITICAL label SQL_ECHO=false # set true only in local dev ACCESS_TOKEN_EXPIRE_MINUTES=15 REFRESH_TOKEN_EXPIRE_DAYS=7 ``` 对于没有 PostgreSQL/Redis 的本地开发,应用程序会自动使用 SQLite + 内存缓存(无需配置)。
标签:AI智能体, Cloudflare, DLL 劫持, Kubernetes, MITRE ATT&CK, 大语言模型, 威胁情报, 安全运营中心, 开发者工具, 搜索引擎查询, 测试用例, 网络映射, 自定义请求头, 请求拦截, 逆向工具