viralbaloney991/Gap_analyser

GitHub: viralbaloney991/Gap_analyser

面向安全运营团队的全栈 AI 平台,致力于解决 SIEM 告警疲劳、检测规则冗余及 MITRE ATT&CK 覆盖盲区问题。

Stars: 0 | Forks: 0

# SIEM 告警分析器 一个面向安全运营团队的全栈 AI 驱动平台,用于审计检测覆盖率、降低告警噪音、映射 MITRE ATT&CK 盲区,并运行 AI 辅助的威胁狩猎——所有操作均可通过单一界面完成。 专为管理大型检测规则库并需要解答以下问题的团队构建:“我们遗漏了什么?哪些告警触发过于频繁?哪些内容存在重复?” ## 功能 | 功能 | 描述 | |---------|-------------| | **相似度引擎** | 使用 TF-IDF 加权的多维向量对重复及近似重复的检测规则进行分组 | | **MITRE ATT&CK 热力图** | 可视化战术和技术覆盖情况;按集成来源高亮显示未覆盖的区域 | | **噪音检测** | 使用多窗口行为评分(7d/14d/21d/30d)标记大数量、突发、周期性、加速和持续性的噪音告警 | | **告警洞察** | LLM 生成的针对每条检测规则的可执行建议——调优建议、过滤候选、富化构想 | | **威胁图** | 展示告警关系、集成覆盖情况和检测规则家族的力导向图 | | **检测构建器** | 逐步向导式工具,用于根据所选的 MITRE 技术构建新的检测规则,并生成查询输出 | | **AI 威胁狩猎** | 双阶段流式狩猎:schema 发现 → 包含字段映射、查询转换、误报分析和后续查询的发现报告 | | **关联引擎** | 识别集成盲区——未关联检测规则的日志源 | | **导出** | LLM 生成的执行摘要,将完整分析总结为可生成 PDF 的报告 | | **问题追踪器同步** | 将发现的盲区推送到项目管理面板(默认为 Monday.com,可配置) | ## 架构 ``` ┌─────────────────────────────────────────────┐ │ React + TypeScript │ frontend/ │ TenantSelector → Analyze → Results tabs │ └────────────────────┬────────────────────────┘ │ REST / SSE ┌────────────────────▼────────────────────────┐ │ Go API Server │ backend/ │ │ │ ┌──────────┐ ┌──────────┐ ┌───────────┐ │ │ │Similarity│ │ MITRE │ │ LLM │ │ │ │ Engine │ │ Coverage │ │ Pipeline │ │ │ └──────────┘ └──────────┘ └───────────┘ │ │ │ │ Redis (L1 cache) PostgreSQL (L2 store) │ └──────────┬──────────────────────────────────┘ │ API ┌──────────▼──────────────────────────────────┐ │ SIEM Platform (alert/detection source)│ │ Splunk · Sentinel · Chronicle · Coralogix │ └─────────────────────────────────────────────┘ ``` ## 项目结构 ``` . ├── backend/ │ ├── cmd/server/ # Entry point, HTTP routing, CORS middleware │ └── internal/ │ ├── api/ # HTTP handlers (analyze, noise, hunt, export …) │ ├── coralogix/ # SIEM client — alert fetch, event counts, feature extraction │ ├── similarity/ # Similarity engine, noise scoring, merge logic │ ├── mitre/ # ATT&CK coverage computation │ ├── insights/ # LLM enrichment pipeline (insights, suggestions, correlations) │ ├── llm/ # Provider adapters: Claude, NVIDIA NIM, Gemini │ ├── models/ # Shared domain types │ ├── monday/ # Issue tracker client │ ├── pipeline/ # Semaphore-bounded parallel LLM pipeline │ ├── cache/ # Redis L1 cache │ ├── store/ # PostgreSQL persistent alert store │ ├── sync/ # Background worker: DB ↔ cache sync │ └── prewarm/ # Suggestion pre-warm worker ├── frontend/ │ └── src/ │ ├── components/ │ │ ├── ClientSelector.tsx # Tenant/environment picker │ │ ├── AlertInsights.tsx # Insights, noise, suggestions, gaps │ │ ├── MITREHeatmap.tsx # ATT&CK coverage heatmap │ │ ├── ThreatGraph.tsx # Force-directed alert relationship graph │ │ ├── DetectionBuilder.tsx # Detection rule wizard │ │ ├── HuntView.tsx # AI threat hunt streaming UI │ │ ├── IntegrationSummary.tsx # Integration ↔ alert coverage table │ │ └── NoisePills.tsx # Lookback window selector │ ├── services/api.ts # API client + SSE streaming │ └── types/index.ts # Shared TypeScript types └── dev.sh # Dev startup script ``` ## 环境要求 - **Go** 1.21+ - **Node.js** 18+ 及 npm - **Redis**(可选,推荐)— `localhost:6379`,用于响应缓存 - **PostgreSQL**(可选)— 用于持久化告警存储和预热 - SIEM 平台凭据(API 密钥 + 区域/endpoint) - 至少一种 LLM 提供商密钥(Anthropic Claude、NVIDIA NIM 或 Google Gemini) ## 配置说明 后端从 `backend/clients.yaml`(已从版本控制中排除)读取配置。复制示例文件并填入您的配置值: ``` cp backend/clients.yaml.example backend/clients.yaml ``` 结构: ``` monday_api_token: "" # issue tracker token (or set MONDAY_API_TOKEN) monday_board_id: 0 # board/project ID for gap findings llm: default_provider: claude # claude | nvidia | gemini claude_model: claude-opus-4-7 pipeline_global_cap: 5 # max concurrent LLM calls pipeline_batch_size: 10 clients: - name: my-environment region: EU1 # SIEM region/endpoint api_key: "" # set via CLIENT__API_KEY env var monday_group_id: "" # issue tracker group for this tenant ``` ### 环境变量 所有密钥应通过环境变量提供: | 变量 | 用途 | |----------|---------| | `ANTHROPIC_API_KEY` | Claude LLM | | `NVIDIA_API_KEY` | NVIDIA NIM LLM | | `GEMINI_API_KEY` | Google Gemini LLM | | `MONDAY_API_TOKEN` | 问题追踪器 | | `CLIENT__API_KEY` | 多租户 SIEM API 密钥 | | `NEON_DSN` | PostgreSQL 连接字符串 | | `REDIS_ADDR` | Redis 地址(默认:`localhost:6379`) | | `PORT` | API 服务器端口(默认:`8080`) | | `CORS_ORIGIN` | 允许的前端源(默认:`http://localhost:5173`) | | `CONFIG_PATH` | 配置文件路径(默认:`clients.yaml`) | | `FRONTEND_DIST` | 构建的前端路径(默认:`../../frontend/dist`) | | `CX_BIN_PATH` | SIEM CLI 二进制文件路径(由威胁狩猎使用) | ## 本地运行 ``` # Backend cd backend go run ./cmd/server # Frontend (独立终端) cd frontend npm install npm run dev ``` 前端开发服务器:`http://localhost:5173` API 服务器:`http://localhost:8080` 通过 Go 服务器提供前端服务(生产模式): ``` cd frontend && npm run build cd ../backend && go run ./cmd/server ``` ## API 参考 | 方法 | Endpoint | 描述 | |--------|----------|-------------| | `GET` | `/api/health` | 健康检查 | | `GET` | `/api/clients` | 列出已配置的租户 | | `POST` | `/api/analyze` | 完整分析 pipeline(相似度、MITRE、噪音、洞察) | | `POST` | `/api/noise` | 仅重新运行噪音检测(可配置回溯时间) | | `POST` | `/api/insights` | 仅重新运行洞察分析 | | `POST` | `/api/suggestions` | 针对未覆盖技术的 LLM 检测建议 | | `POST` | `/api/correlations` | 集成盲区关联 | | `POST` | `/api/build-detection` | 根据 MITRE 技术生成检测规则 | | `POST` | `/api/map-tactics` | 将自由文本查询映射到 MITRE 战术 | | `GET` | `/api/mitre-catalog` | 完整的本地 MITRE ATT&CK 技术目录 | | `GET` | `/api/hunt/stream` | SSE:AI 威胁狩猎(双阶段,流式传输) | | `POST` | `/api/hunt/export` | 将狩猎报告导出为 Markdown | | `POST` | `/api/export/narrative` | 用于完整报告的 LLM 执行摘要 | ## 噪音检测 噪音引擎使用**多窗口行为评分**,在四个固定的回溯窗口(7d / 14d / 21d / 30d)中对告警触发模式进行分类: | 模式 | 信号 | 阈值 | |---------|--------|-----------| | `high_volume` | 30d 计数 > 10 | 现有音量阈值 | | `burst` | 最近一周 ÷ 预期每周份额 | > 2.5× | | `periodic` | 偏离均匀触发速率 | < 20% 增量 | | `accelerating` | 最近窗口内逐渐攀升 | > 1.5× | | `persistent` | 每个窗口均有触发,总计 ≤ 10 | 单调增长 | 每个噪音告警都会显示一个模式标记,并在工具提示中显示各窗口的计数。 ## 相似度权重 相似度引擎使用 10 维的 TF-IDF 加权模型。各权重之和精确为 1.00: | 维度 | 权重 | |-----------|--------| | 检测查询 (Lucene) | 0.25 | | 告警名称 token | 0.15 | | 数据源 | 0.10 | | 实体 | 0.10 | | 操作 | 0.10 | | MITRE 技术 | 0.10 | | 条件 | 0.05 | | 分组依据类别 | 0.05 | | 告警类型 | 0.05 | | 时间窗口 | 0.05 | ## 技术栈 **后端:** Go · Redis · PostgreSQL **前端:** React · TypeScript · Vite **LLM:** Anthropic Claude · NVIDIA NIM · Google Gemini **问题追踪:** Monday.com(REST API,可替换)
标签:AI安全, Apex, Chat Copilot, Cloudflare, Coralogix, DLL 劫持, IP 地址批量处理, IT运维, LLM, MITRE ATT&CK, Monday.com, OISF, React, Socks5代理, Syscalls, TF-IDF, TypeScript, Unmanaged PE, 关联分析, 后端开发, 告警分析, 告警去重, 告警管理, 告警降噪, 大语言模型, 威胁图谱, 子域名变形, 安全信息与事件管理, 安全报告, 安全插件, 安全运营, 扫描框架, 搜索引擎查询, 搜索引擎爬取, 无线安全, 日志审计, 日志管理, 机器学习, 测试用例, 网络安全, 行为评分, 覆盖率分析, 规则构建器, 隐私保护, 项目集成