vamshi-narahari/detect-iq

GitHub: vamshi-narahari/detect-iq

AI 驱动的开源 SIEM 检测工程平台,帮助安全团队跨 10 个平台自动构建、翻译和部署威胁检测规则,并提供 MITRE ATT&CK 覆盖率分析与威胁情报驱动的自动检测生成能力。

Stars: 0 | Forks: 0

# DetectIQ

面向 SOC 团队的 AI 驱动检测工程平台

功能演示快速开始架构贡献

## 概述 DetectIQ 是一个**开源、自托管**的 SIEM 检测工程平台,利用 AI 帮助安全团队更快地构建、测试和部署威胁检测规则。该平台由 AWS Bedrock(Claude Sonnet 4.6)提供支持,可自动执行繁琐的检测工程任务,同时让 SOC 分析师拥有完全的控制权。 **专为以下人员构建**:SOC 分析师、检测工程师、威胁猎人、安全架构师 ## 🚀 部署模型 **DetectIQ 是自托管的** - 在您自己的基础设施上运行: ✅ **您将获得:** - 完整源代码(MIT 许可证 - 可自由使用、修改、分发) - 对数据的完全控制权 - 在您自己的服务器上运行(本地、AWS EC2、Docker、Kubernetes 等) ### 📋 运行 DetectIQ 所需条件 #### **必需(缺少这些应用将无法运行):** 1. **具有 Bedrock 访问权限的 AWS 账户**([注册](https://aws.amazon.com/bedrock/)) - 您自己的 AWS 凭证(访问密钥 + 秘密密钥) - 在 Bedrock 中启用 Claude Sonnet 4.6 模型 - **成本**:按需付费(约 $5-30/月,具体取决于使用情况) - **用途**:所有 AI 功能(检测生成、翻译等) 2. **Redis**(开源,自托管) - **成本**:免费(在您的服务器上运行) - 可使用:本地 Redis、AWS ElastiCache、Redis Cloud 免费套餐 - **用途**:响应缓存 + BullMQ 作业队列 3. **Node.js 18+** 和 **npm** - **成本**:免费 - **用途**:运行应用程序 4. **用于运行的服务器** - **成本**:$5-50/月(DigitalOcean、AWS、您的笔记本电脑) - 最低配置:1 vCPU,2GB 内存 - 可运行于:本地机器、云虚拟机、Docker、Kubernetes #### **可选(没有这些应用也能运行,但会失去部分功能):** 5. **Supabase**(用于用户账户和团队协作) - **成本**:提供免费套餐([注册](https://supabase.com)) - 如果您不使用 Supabase: - ✅ DetectIQ 可正常工作(使用浏览器 localStorage) - ❌ 无法创建用户账户 - ❌ 无法与团队共享检测规则 - ❌ 无法跨设备同步检测库 - **用途**:PostgreSQL 数据库、用户身份验证、检测存储 6. **Resend**(用于密码重置邮件) - **成本**:免费套餐:100 封邮件/天([注册](https://resend.com)) - **用途**:发送密码重置邮件 - 如果您不使用:用户无法通过电子邮件重置密码 ### 💡 **太长不看版 - 最低配置:** **供个人使用(单用户,无团队功能):** - AWS Bedrock(必需,约 $5-10/月) - Redis(免费,本地运行) - 任何 $5/月的服务器或您的笔记本电脑 - **总成本**:约 $10-15/月 **供团队使用(5-20 名用户,带协作功能):** - AWS Bedrock(必需,约 $20-40/月) - Redis(免费或 $10/月的托管服务) - Supabase(免费套餐或 $25/月以获取更多存储空间) - $10-30/月的服务器 - **总成本**:约 $30-80/月 **与商业工具相比**:大多数 SIEM 检测平台按用户每年收费 $1000-5000+。 ## 演示 🌐 **在线演示**:https://detect-iq.com ### 截图 **仪表盘 - 概览与覆盖率** ![仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/65d72adb1a153603.jpg) *仪表盘概览显示了检测库统计信息、MITRE ATT&CK 覆盖率指标、严重性分布和快速启动快捷方式。(演示显示 82 条规则 - 您将从 0 条开始并逐步构建您的库)* **检测构建器 - AI 驱动的规则生成** ![检测构建器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9692465e7f153607.jpg) *通过 ADS (Attack Detection Strategy) 框架,跨越 10 个 SIEM 平台从纯英语威胁场景生成检测规则。选择您的 SIEM,描述威胁,即可获得可用于生产环境的查询。* **检测链构建器 - 多阶段关联** ![检测链](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e8b341285a153611.jpg) *构建多阶段检测链,以追踪攻击者在杀伤链中的活动。链接 Discovery → Collection 等阶段的检测,并附带自动关联逻辑和可视化剧本。* **自动驾驶 - 从威胁情报自动生成** ![自动驾驶](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/c211c7da67153613.jpg) *从 4 个威胁情报源自动起草检测规则:CVE (CISA KEV)、ATT&CK TTPs (20 种技术)、威胁行为者 (8 个 APT 组织) 和勒索软件组织 (6 个主要家族)。具有审批流程的基于队列的工作流。* **ATT&CK 覆盖率热力图** ![ATT&CK 地图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ee5a0def3c153614.jpg) *通过成熟度评分可视化您在 MITRE ATT&CK 战术和技术上的检测覆盖率。一眼看清缺口并确定检测开发的优先级。(演示显示在 9/14 个战术中具有 64% 的成熟度)* **仪表盘 - 蜂巢视图** ![仪表盘蜂巢图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0fc943a1fe153616.jpg) *交互式蜂巢可视化,按战术显示覆盖强度。将鼠标悬停在单元格上可查看技术细节。颜色编码:绿色(强)、黄色(部分)、橙色(极少)、灰色(无覆盖)。* **检测库 - 管理与部署** ![库](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ce137e51a7153618.jpg) *您集中管理的检测库。搜索、按战术/严重性/平台筛选、导出为 Sigma、直接推送到 SIEM 或与团队共享。每项检测都会获得基于 8 项标准的质量评分(0-100)。(演示显示 82 条规则 - 您从 0 条开始)* **查询翻译器 - 跨平台** ![查询翻译器](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9393d7e5e6153619.jpg) *在 10 个 SIEM 平台之间即时翻译检测查询。示例显示了 Splunk SPL → Falcon LogScale 的翻译。支持在任何平台对之间进行双向翻译。* **对手 SIEM - 红队模拟器** ![对手 SIEM](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/31160fb1bd153621.jpg) *生成逼真的攻击日志,以便在部署前测试您的检测规则。选择攻击技术,自定义参数,获取真实的日志样本。无需运行实际攻击即可测试检测覆盖率。* **原子测试 - 真实攻击程序** ![原子测试](https://raw.githubusercontent.com/vamshi-narahari/detect-iq/main/docs/screenshots/atomic-tests.jpg) *浏览所有 MITRE 战术中的 141 多项 Atomic Red Team 测试。查看带有已解析参数的测试命令,然后自动生成匹配的检测规则。示例显示了 T1114.001(使用 PowerShell 进行电子邮件收集)。* **防御工具 - 蜜标与 Sinkhole** ![防御](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7ea11f23af153653.jpg) *生成蜜标(虚假凭证、金丝雀文件、AWS 密钥、DNS 金丝雀)和 DNS sinkhole 配置,以实现零误报检测。从您的检测库加载威胁上下文。* **入门指南** ![入门](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4c5e097c9c153654.jpg) *交互式引导将引导您完成构建第一个检测规则、审查库中的检测规则以及探索关键功能。完成 7 个步骤,从零开始实现全面的 MITRE 覆盖。* **文档** ![文档](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5c759c5961153656.jpg) *内置可搜索文档,包含涵盖各项功能的 19 篇文章。包括快速链接、示例和最佳实践。类别:入门、构建、分析、情报、设置。* ## 功能 ### 🔨 构建检测 #### 检测构建器(ADS 框架) - 基于威胁场景的 **AI 驱动检测生成** - 生成完整的 **Attack Detection Strategy (ADS)** 输出 - 支持所有 MITRE ATT&CK 战术和 100 多种技术 - 多 SIEM 支持,具备特定平台优化 - 包括:检测查询、威胁描述、数据要求、误报分析、响应剧本 #### 检测链构建器 - **多阶段关联规则** - 跨杀伤链链接 2 个或更多检测 - 带有攻击叙述、时间线和响应步骤的 **可视化剧本生成** - 基于 MITRE ATT&CK 序列的 **智能战术建议** - **覆盖率缺口分析** - 识别缺失的检测阶段 - 为 Splunk ES、Elastic、Sentinel 导出关联搜索 #### 查询翻译器 跨 **10 个 SIEM 平台**翻译检测查询: - **Splunk** (SPL) - **Microsoft Sentinel** (KQL) - **Elastic** (EQL/KQL) - **CrowdStrike** (Falcon LogScale) - **Google Chronicle** (YARA-L) - **IBM QRadar** (AQL) - **Sumo Logic** - **Tanium Signals** - **Panther** (Python) - **Humio/LogScale** #### Atomic Red Team 集成 - 浏览所有 MITRE 战术中 **50 多项精选的 Atomic 测试** - 查看带有已解析参数的测试命令 - 自动生成匹配的检测规则 - 平台支持:Windows、Linux、macOS、云 #### 日志重放(空运行测试) - 在部署之前针对真实日志样本测试检测 **before deployment** - AI 评估哪些日志行与您的检测逻辑匹配 - 识别误报和覆盖缺口 - 支持所有 SIEM 查询语言 #### 防御工具 - **Honeytokens** - 金丝雀凭证、虚假 API 密钥、诱饵文件 - **DNS Sinkhole** - 捕获恶意软件 C2 回连 - **Living Off the Land (LotL) 检测** - 检测对内置 OS 工具的滥用 ### 📊 分析覆盖率 #### 检测库 - 所有检测的集中存储 - 搜索,按战术/严重性/平台筛选 - 基于 8 项标准的质量评分(0-100) - 导出为 Sigma,推送到 SIEM,版本控制 - 通过社区选项卡与团队共享检测 #### MITRE ATT&CK 覆盖率地图 - 跨 14 个战术的覆盖 **热力图可视化** - 用于缺口分析的 **蜂巢视图** - 按技术和子技术跟踪覆盖情况 - 识别您检测策略中的盲点 #### 告警分诊 - 用于快速告警分析的 **AI 裁决引擎** - 置信度分数 + 攻击分类(真阳性 / 误报 / 良性) - 建议的遏制措施 - 使用历史模式进行上下文感知分析 #### 对手 SIEM - **模拟攻击者行为**并生成逼真日志 - 测试您的 SIEM 检测是否会触发 - 支持:Mimikatz、Cobalt Strike、勒索软件、横向移动、持久化技术 - 多平台日志生成(Windows 事件日志、Sysmon、EDR、网络) #### 检测健康监控器 - **质量评分仪表盘** - 跟踪检测有效性 - **爆炸半径评估** - 在部署前预测告警量 - **误报预测** - 基于机器学习的误报率评估 - **机器学习增强建议** - UBA、基于风险的评分、异常检测 - **SOAR 工作流构建器** - 自动化响应剧本 ### 🌐 威胁情报 #### 自动驾驶 - 自动生成检测 从 **4 个威胁情报源**自动起草检测规则: 1. **CVE 订阅源** - CISA 已知被利用漏洞 (KEV) 目录 2. **ATT&CK TTPs** - 20 项精选的高影响力技术 3. **威胁行为者** - 8 个 APT 组织(Lazarus、APT29、APT28、APT1、FIN7、Sandworm、Kimsuky、MuddyWater) 4. **勒索软件** - 6 个主要组织(LockBit、BlackCat/ALPHV、Cl0p、Play、BlackBasta、Akira) 功能: - 带有实时进度跟踪的基于队列的起草 - 按源类型(CVE、TTP、行为者、勒索软件)筛选草稿 - 一键保存到库或在检测构建器中编辑 - 通过 BullMQ 作业队列异步运行 #### 威胁情报仪表盘 - 带有严重性评级的实时 **CISA KEV 目录** - 带有 CVSS 评分和利用证据的 CVE 详情 带有 TTP 和基础设施 IOC 的 APT 组织档案 - 活动时间线和归因 ### ⚙️ 部署与协作 #### SIEM 推送集成 直接从 DetectIQ 将检测推送到您的 SIEM: - **Splunk Enterprise Security** - **Elastic Security** - **Microsoft Sentinel** - **Chronicle** - **QRadar** - **CrowdStrike** - **LogScale** - **Tanium** - **Panther** - **Sumo Logic** 所有推送均记录在审计日志中,带有时间戳、用户 ID 和状态。 #### 导出格式 - **Sigma 规则** - YAML 格式,用于通用 SIEM 兼容 - **JSON** - 用于备份的批量导入/导出 - **Markdown** - 文档生成 - **GitHub** - 将检测推送到版本控制仓库 #### 团队协作 - 通过电子邮件邀请团队成员 - 通过社区选项卡共享检测 - 收藏/克隆队友的检测 - 基于角色的访问控制 ## 架构 ``` ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ React │─────▶│ Express │─────▶│ AWS Bedrock │ │ Frontend │ │ Backend │ │ (Claude) │ │ (Vite) │◀─────│ (Node.js) │◀─────│ Sonnet 4.6 │ └─────────────┘ └──────────────┘ └─────────────┘ │ ├─────▶ Redis (BullMQ queues) └─────▶ Supabase (PostgreSQL) ``` ### 技术栈 **前端** - React 18 与 Hooks - Vite(快速构建,HMR) - 无 UI 框架 - 具有内联样式的自定义组件 - 客户端路由 (SPA) **后端** - Node.js + Express - BullMQ 作业队列(异步 AI 处理) - Redis(缓存 + 作业队列存储) - Supabase(用于用户数据、检测、审计日志的 PostgreSQL) - jsonrepair(处理被截断的 AI JSON 响应) **AI** - AWS Bedrock (Claude Sonnet 4.6) - 用于实时反馈的流式响应 - 使用 Redis 进行响应缓存 - max_tokens:4000+,用于复杂输出 **安全** - Helmet.js(安全标头) - 基于 Redis 后端的速率限制 - 具有白名单的 CORS - 压缩(gzip) - 输入清理 **部署** - PM2(进程管理) - Nginx(反向代理 + 静态文件服务) - AWS EC2 上的 Ubuntu Linux ## 快速开始 ### 前提条件 **最低要求(必需):** - Node.js 18+ 和 npm - Redis 6+([安装说明](#5-redis-setup)) - 具有 Bedrock 访问权限的 AWS 账户([启用 Claude Sonnet 4.6](https://console.aws.amazon.com/bedrock/home#/modelaccess)) **可选(用于团队功能):** - Supabase 账户(免费套餐即可 - [在此注册](https://supabase.com/)) - 用于发送电子邮件的 Resend 账户(免费套餐 - [在此注册](https://resend.com/)) ### 1. 克隆仓库 ``` git clone https://github.com/vamshi-narahari/detect-iq.git cd detect-iq ``` ### 2. 后端设置 ``` cd backend npm install # 创建 .env 文件 cp .env.example .env ``` 使用您的凭证编辑 `.env`: ``` # ======================================== # 必填 - 缺少这些应用将无法运行 # ======================================== # AWS Bedrock (用于 AI 功能) AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_access_key_here AWS_SECRET_ACCESS_KEY=your_secret_key_here BEDROCK_MODEL_ID=us.anthropic.claude-sonnet-4-6 # Redis (用于缓存和作业队列) REDIS_URL=redis://127.0.0.1:6379 # 服务端 PORT=3001 # ======================================== # 可选 - 个人使用可跳过 # ======================================== # Supabase (用于用户账户、团队协作) # 保持注释状态以改用 localStorage # SUPABASE_URL=https://your-project.supabase.co # SUPABASE_ANON_KEY=your_supabase_anon_key # SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # 电子邮件 (用于密码重置邮件) # 如果不需要密码重置,请保持注释状态 # RESEND_API_KEY=your_resend_api_key ``` 启动后端: ``` node server.js ``` 后端将在 `http://localhost:3001` 上运行 ### 3. 前端设置 ``` cd frontend npm install # 创建 .env 文件 (可选 - 仅在使用 Supabase 时需要) cp .env.example .env ``` 编辑 `.env`(可选 - 如果不使用 Supabase 请跳过此步): ``` # 仅当您在后端 .env 中设置了 Supabase 时才需要 VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your_supabase_anon_key ``` **注意:** 前端在没有此配置的情况下也能正常工作 - 检测将存储在浏览器 localStorage 中。 启动前端: ``` npm run dev ``` 前端将在 `http://localhost:5173` 上运行 ### 4. AWS Bedrock 设置 1. 前往 [AWS Console → Bedrock → Model access](https://console.aws.amazon.com/bedrock/home#/modelaccess) 2. 点击 **"Manage model access"** 3. 勾选 **"Claude 3.5 Sonnet v2"**(模型 ID:`us.anthropic.claude-sonnet-4-6`) 4. 点击 **"Request model access"**(Sonnet 的批准是即时的) 5. 确保您的 IAM 用户/角色具有 `bedrock:InvokeModel` 权限: ``` { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": "arn:aws:bedrock:us-east-1::foundation-model/us.anthropic.claude-sonnet-4-6" } ] } ``` ### 5. Redis 设置 **Ubuntu/Debian:** ``` sudo apt update sudo apt install redis-server sudo systemctl enable redis sudo systemctl start redis ``` **macOS (Homebrew):** ``` brew install redis brew services start redis ``` **Docker:** ``` docker run -d --name redis -p 6379:6379 redis:7-alpine ``` 验证 Redis 是否正在运行: ``` redis-cli ping # 应返回:PONG ``` ### 6. Supabase 设置(可选 - 不需要请跳过) **如果您满足以下条件,可以跳过整个此部分:** - 您是唯一用户 - 不需要团队协作 - 可以接受检测存储在浏览器 localStorage 中 **仅在以下情况设置 Supabase:** - 具有登录/注册功能的多个用户账户 - 跨设备同步检测库 - 通过社区选项卡进行团队检测共享 - 用于 SIEM 推送操作的审计日志 **设置步骤:** 1. 在 [supabase.com](https://supabase.com) 创建一个免费账户 2. 创建一个新项目 3. 前往 **Settings → API** 并复制: - 项目 URL(`SUPABASE_URL`) - anon/public 密钥(`SUPABASE_ANON_KEY`) - service_role 密钥(`SUPABASE_SERVICE_ROLE_KEY`) 4. 运行 SQL 迁移(在 Supabase SQL 编辑器中): ``` -- Detections table CREATE TABLE detections ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), user_id UUID NOT NULL, name TEXT NOT NULL, query TEXT NOT NULL, tool TEXT NOT NULL, tactic TEXT, severity TEXT, description TEXT, tags TEXT[], score INTEGER DEFAULT 0, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Community detections (shared) CREATE TABLE community_detections ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), user_id UUID NOT NULL, name TEXT NOT NULL, query TEXT NOT NULL, tool TEXT NOT NULL, tactic TEXT, severity TEXT, threat TEXT, tags TEXT[], score INTEGER DEFAULT 0, star_count INTEGER DEFAULT 0, clone_count INTEGER DEFAULT 0, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- SIEM push audit log CREATE TABLE siem_push_audit ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), user_id UUID, detection_id UUID, detection_name TEXT, platform TEXT NOT NULL, status TEXT NOT NULL, message TEXT, ip_address TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Enable Row Level Security (RLS) ALTER TABLE detections ENABLE ROW LEVEL SECURITY; ALTER TABLE community_detections ENABLE ROW LEVEL SECURITY; ALTER TABLE siem_push_audit ENABLE ROW LEVEL SECURITY; -- RLS Policies CREATE POLICY "Users can CRUD their own detections" ON detections FOR ALL USING (auth.uid() = user_id); CREATE POLICY "Anyone can read community detections" ON community_detections FOR SELECT TO authenticated USING (true); CREATE POLICY "Users can insert their own community detections" ON community_detections FOR INSERT TO authenticated WITH CHECK (auth.uid() = user_id); ``` ## 🔧 自带基础设施 **DetectIQ 是灵活的** - 使用您公司现有的基础设施,无需购买新服务: ### 灵活性矩阵 | 组件 | 默认 | 替代方案 | 如何替换 | |-----------|---------|--------------|-------------| | **AI 模型** | AWS Bedrock (Claude) | Azure OpenAI, Anthropic API, 本地 LLM (Ollama) | 在后端更改 API 端点 | | **云提供商** | AWS | Azure, GCP, DigitalOcean, 本地部署 | 在任何具有 Node.js 的地方部署 | | **缓存/队列** | Redis | KeyDB, Valkey, Dragonfly, AWS ElastiCache, Azure Cache | 在 .env 中更改 REDIS_URL | | **电子邮件** | Resend (可选) | Office 365/Outlook, SendGrid, AWS SES, 公司 SMTP | 在后端更改电子邮件配置 | | **数据库** | 浏览器 localStorage (无数据库!) | PostgreSQL, MySQL, MongoDB, SQL Server | 更新后端代码 | | **Web 服务器** | Nginx | Apache, IIS, Caddy, Traefik | 使用任何反向代理 | | **进程管理器** | PM2 | Systemd, Docker, Kubernetes, Supervisor | 使用任何进程管理器 | ### 常见企业场景 #### **场景 1:Microsoft 系(Azure + Office 365)** ``` # 使用 Azure OpenAI 替代 AWS Bedrock AZURE_OPENAI_API_KEY=your_key AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/ AZURE_OPENAI_DEPLOYMENT=claude-3-5-sonnet # 使用 Azure Cache for Redis REDIS_URL=redis://your-cache.redis.cache.windows.net:6380?password=your_password # 使用 Office 365 收发邮件 (通过 Microsoft Graph API) EMAIL_PROVIDER=microsoft MICROSOFT_TENANT_ID=your_tenant MICROSOFT_CLIENT_ID=your_client_id MICROSOFT_CLIENT_SECRET=your_secret ``` #### **场景 2:Google Cloud 系(GCP + Gmail)** ``` # 直接使用 Anthropic API (由 GCP 托管) ANTHROPIC_API_KEY=your_api_key ANTHROPIC_BASE_URL=https://api.anthropic.com # 使用 Google Cloud Memorystore 作为 Redis REDIS_URL=redis://10.0.0.3:6379 # 使用 Gmail API 收发邮件 EMAIL_PROVIDER=gmail GMAIL_CLIENT_ID=your_client_id GMAIL_CLIENT_SECRET=your_secret ``` #### **场景 3:本地部署 / 物理隔离** ``` # 使用本地 LLM (Ollama, LM Studio) AI_PROVIDER=ollama OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=llama3:70b # 使用本地 Redis 集群 REDIS_URL=redis://redis-cluster.internal:6379 # 使用公司 SMTP 服务器 EMAIL_PROVIDER=smtp SMTP_HOST=smtp.company.local SMTP_PORT=587 SMTP_USER=detectiq@company.com SMTP_PASSWORD=your_password ``` #### **场景 4:具有现有服务的 AWS 系** ``` # 使用 AWS SES 收发邮件 (替代 Resend) EMAIL_PROVIDER=aws-ses AWS_SES_REGION=us-east-1 AWS_SES_FROM_EMAIL=detectiq@company.com # 使用 AWS ElastiCache 作为 Redis REDIS_URL=redis://detectiq-cache.abc123.0001.use1.cache.amazonaws.com:6379 # 使用 AWS RDS PostgreSQL (替代 Supabase) DATABASE_URL=postgresql://user:pass@detectiq-db.xyz.rds.amazonaws.com:5432/detectiq ``` ### 🔌 如何替换基础设施组件 #### **1. 替换 AI 提供商(AWS Bedrock → Azure/GCP/本地)** **当前(AWS Bedrock):** ``` // backend/server.js - line ~11 const bedrock = new BedrockRuntimeClient({ region: process.env.AWS_REGION, credentials: { accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY } }); ``` **选项 A:Azure OpenAI** ``` // Install: npm install @azure/openai const { OpenAIClient, AzureKeyCredential } = require("@azure/openai"); const client = new OpenAIClient( process.env.AZURE_OPENAI_ENDPOINT, new AzureKeyCredential(process.env.AZURE_OPENAI_API_KEY) ); ``` **选项 B:Anthropic API 直连** ``` // Install: npm install @anthropic-ai/sdk const Anthropic = require('@anthropic-ai/sdk'); const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }); ``` **选项 C:本地 LLM (Ollama)** ``` // Install: npm install ollama const ollama = require('ollama'); // Calls go to http://localhost:11434 ``` **实现方式:** 修改 `backend/server.js` 的第 11-50 行(Bedrock 初始化)和第 261-370 行(API 调用) #### **2. 替换电子邮件提供商(Resend → Office 365/Gmail/SMTP)** **当前(Resend):** ``` // backend/server.js - line ~633 const resend = new Resend(process.env.RESEND_API_KEY); await resend.emails.send({ from, to, subject, html }); ``` **选项 A:Office 365 / Outlook (Microsoft Graph API)** ``` // Install: npm install @microsoft/microsoft-graph-client const { Client } = require('@microsoft/microsoft-graph-client'); const client = Client.init({ authProvider: (done) => { done(null, accessToken); // Get via OAuth2 } }); await client.api('/me/sendMail').post({ message: { subject, body: { contentType: 'HTML', content: html }, toRecipients } }); ``` **选项 B:Gmail API** ``` // Install: npm install googleapis const { google } = require('googleapis'); const gmail = google.gmail({ version: 'v1', auth: oauth2Client }); await gmail.users.messages.send({ userId: 'me', requestBody: { raw: Buffer.from(emailContent).toString('base64') } }); ``` **选项 C:公司 SMTP 服务器** ``` // Install: npm install nodemailer const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: process.env.SMTP_PORT, secure: true, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASSWORD } }); await transporter.sendMail({ from, to, subject, html }); ``` **实现方式:** 修改 `backend/server.js` 的第 633-660 行(发送电子邮件) #### **3. 替换 Redis(Redis → KeyDB/Valkey/ElastiCache)** **好消息:** Redis 替代品是**直接兼容的**!只需更改 `REDIS_URL`: ``` # AWS ElastiCache REDIS_URL=redis://your-cache.abc123.0001.use1.cache.amazonaws.com:6379 # Azure Cache for Redis REDIS_URL=redis://your-cache.redis.cache.windows.net:6380?password=your_password # Google Cloud Memorystore REDIS_URL=redis://10.0.0.3:6379 # KeyDB (更快的 Redis 替代品) REDIS_URL=redis://localhost:6379 # Dragonfly (现代 Redis 替代品) REDIS_URL=redis://localhost:6379 # Valkey (AWS 的 Redis 分支) REDIS_URL=redis://localhost:6379 ``` **无需更改代码** - BullMQ 和 redis 客户端可与所有兼容 Redis 的服务配合使用。 #### **4. 添加数据库(用 PostgreSQL/MySQL 替代 localStorage)** **当前:** 检测存储在浏览器 localStorage 中(无数据库) **添加 PostgreSQL:** 1. **安装 PostgreSQL 驱动程序:** ``` cd backend npm install pg ``` 2. **添加连接:** ``` // backend/server.js - add after line 19 const { Pool } = require('pg'); const pool = new Pool({ connectionString: process.env.DATABASE_URL }); ``` 3. **创建表:** ``` CREATE TABLE detections ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id VARCHAR(255), name TEXT NOT NULL, query TEXT NOT NULL, tool VARCHAR(50) NOT NULL, tactic VARCHAR(100), severity VARCHAR(50), description TEXT, tags TEXT[], created_at TIMESTAMP DEFAULT NOW() ); ``` 4. **更新 API 端点**(第 1395-1434 行): ``` // GET /api/detections app.get("/api/detections", async (req, res) => { const { rows } = await pool.query( 'SELECT * FROM detections WHERE user_id = $1 ORDER BY created_at DESC', [req.user.id] ); res.json(rows); }); // POST detection (save) app.post("/api/detections", async (req, res) => { const { name, query, tool, tactic, severity, description, tags } = req.body; const { rows } = await pool.query( 'INSERT INTO detections (user_id, name, query, tool, tactic, severity, description, tags) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING *', [req.user.id, name, query, tool, tactic, severity, description, tags] ); res.json(rows[0]); }); ``` **对于 MySQL:** 使用 `mysql2` 包,方法相同 **对于 MongoDB:** 使用 `mongodb` 包,以 JSON 文档形式存储 **对于 SQL Server:** 使用 `mssql` 包,SQL 查询相同 #### **5. 在不同云上部署** **Azure:** ``` # 使用 Azure VM、Azure Redis Cache、Azure OpenAI # 遵循“自行部署”指南,但注意: az vm create --resource-group detectiq --name detectiq-vm --image Ubuntu2204 az redis create --resource-group detectiq --name detectiq-cache --sku Basic --vm-size C0 ``` **GCP (Google Cloud):** ``` # 使用 Compute Engine、Memorystore、Anthropic API gcloud compute instances create detectiq-vm --machine-type=e2-medium --image-family=ubuntu-2204-lts gcloud redis instances create detectiq-cache --size=1 --region=us-central1 ``` **本地部署:** ``` # 安装到任何 Ubuntu/CentOS 服务器上 # 使用本地 Redis、本地 LLM (Ollama),无需联网 # 直接遵循“自行部署”指南 ``` **所有云的工作方式都相同** - DetectIQ 只是 Node.js + Redis + AI API,随处均可运行! ### 💡 **为何这很重要** **无供应商锁定:** - ✅ 使用您公司现有的 Microsoft 365 → 无需购买 Resend - ✅ 在 Azure/GCP 上部署 → 不需要 AWS - ✅ 使用您的 Redis 集群 → 不需要新缓存 - ✅ 使用公司 SMTP → 不需要电子邮件服务 - ✅ 添加您自己的数据库 → 不需要 Supabase **节约成本:** - 使用您已有的企业协议 - 利用现有基础设施 - 没有冗余服务 **合规性:** - 保持在已批准的供应商列表内 - 使用公司管理的服务 - 数据保留在您已批准的区域 ## 🌐 部署选项 DetectIQ 可以根据您的需求以多种方式部署: ### 快速比较 | 部署类型 | 最适合 | 复杂度 | 成本 | 设置时间 | |-----------------|----------|------------|------|------------| | **本地开发** | 测试、个人使用 | 简单 | 免费(仅 AI) | 5 分钟 | | **公司内部** | SOC 团队、安全部署 | 中等 | 取决于基础设施 | 30 分钟 | | **Docker** | 干净的隔离部署 | 中等 | 取决于基础设施 | 20 分钟 | | **云虚拟机** | 公共演示、生产环境 | 中等 | $60-130/月 | 45 分钟 | ## 🏢 自行部署(公司/企业) **非常适合:** SOC 团队、内部部署、无需公共访问 **您将获得:** - ✅ 在您自己的基础设施上运行(仅限内部网络) - ✅ 不需要 Supabase(检测存储在浏览器 localStorage 中) - ✅ 不需要电子邮件/身份验证设置 - ✅ 完全控制和数据隐私 - ✅ 约 $50-100/月(仅 AWS Bedrock AI 成本) ### 前提条件 - 公司服务器或虚拟机(最低 1 vCPU,2GB 内存) - 具有 Bedrock 访问权限的 AWS 账户 - Node.js 18+ 和 npm - Redis(将在步骤中安装) ### 步骤 1:准备服务器 **Ubuntu/Debian:** ``` # 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Node.js 18 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # 安装 Redis sudo apt install -y redis-server sudo systemctl enable redis sudo systemctl start redis # 验证安装 node --version # Should be v18.x or higher redis-cli ping # Should return PONG ``` **CentOS/RHEL:** ``` sudo yum update -y sudo yum install -y nodejs npm redis sudo systemctl enable redis sudo systemctl start redis ``` ### 步骤 2:克隆并配置 ``` # 克隆仓库 cd /opt # Or your preferred location sudo git clone https://github.com/vamshi-narahari/detect-iq.git sudo chown -R $USER:$USER detect-iq cd detect-iq ``` ### 步骤 3:设置后端 ``` cd backend npm install # 创建 .env 文件 (仅包含必填变量) cat > .env << 'EOF' # ======================================== # 必填 - AWS Bedrock 配置 # ======================================== AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_company_aws_key_here AWS_SECRET_ACCESS_KEY=your_company_aws_secret_here BEDROCK_MODEL_ID=us.anthropic.claude-sonnet-4-6 # Redis (本地安装) REDIS_URL=redis://127.0.0.1:6379 # 服务端端口 PORT=3001 # CORS - 限制为您的内部网络 # 格式:以逗号分隔的源 ALLOWED_ORIGINS=http://internal-detectiq.company.local,http://10.0.0.50 # ======================================== # 可选 - 内部使用可跳过 # ======================================== # Supabase - 无需配置,检测结果存储在浏览器中 # Resend - 无需配置,不要求邮件功能 EOF # 填入您实际的 AWS 凭证 nano .env # or vim .env ``` **获取 AWS 凭证:** 1. 前往 AWS Console → IAM → Users 2. 创建新用户:`detectiq-service` 3. 附加具有 Bedrock 访问权限的策略(参见步骤 4) 4. 创建访问密钥 → 将凭证复制到 .env ### 步骤 4:AWS IAM 权限(安全最佳实践) 为 DetectIQ 创建具有最低权限的 IAM 策略: ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "DetectIQBedrockAccess", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": "arn:aws:bedrock:us-east-1::foundation-model/us.anthropic.claude-sonnet-4-6" } ] } ``` 启用 Claude Sonnet 4.6: 1. 前往 AWS Console → Bedrock → Model access 2. 点击 "Manage model access" 3. 启用 "Claude 3.5 Sonnet v2" 4. 等待批准(即时) ### 步骤 5:启动后端 ``` # 先测试后端 node server.js # 如果运行正常,停止它 (Ctrl+C) 并使用 PM2 以生产环境模式运行 sudo npm install -g pm2 pm2 start server.js --name detectiq-backend pm2 save pm2 startup # Run the command it outputs ``` 后端现在应该运行在 `http://localhost:3001` ### 步骤 6:设置前端 ``` cd ../frontend npm install # 构建生产版本 npm run build # 前端现在位于:dist/ 目录 # 复制到 Web 服务器或直接提供对外服务 ``` ### 步骤 7:服务前端 **选项 A:使用 nginx(推荐)** ``` # 安装 nginx sudo apt install -y nginx # 创建 nginx 配置 sudo nano /etc/nginx/sites-available/detectiq ``` 粘贴此配置: ``` server { listen 80; server_name internal-detectiq.yourcompany.local; # Change to your internal domain # Optional: Basic authentication for security # auth_basic "DetectIQ - SOC Team"; # auth_basic_user_file /etc/nginx/.htpasswd; # Frontend location / { root /opt/detect-iq/frontend/dist; try_files $uri $uri/ /index.html; } # Backend API location /api { proxy_pass http://localhost:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_cache_bypass $http_upgrade; } } ``` 启用并启动: ``` sudo ln -s /etc/nginx/sites-available/detectiq /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx ``` **选项 B:使用 Node.js serve(快捷简单)** ``` sudo npm install -g serve pm2 start "serve -s dist -l 80" --name detectiq-frontend pm2 save ``` ### 步骤 8:配置防火墙(安全) **仅允许从公司网络访问:** ``` # Ubuntu/Debian 使用 ufw sudo ufw allow from 10.0.0.0/8 to any port 80 sudo ufw allow from 10.0.0.0/8 to any port 3001 sudo ufw enable # 或者限制为特定子网 sudo ufw allow from 10.50.100.0/24 to any port 80 ``` ### 步骤 9:(可选)添加基本身份验证 使用用户名/密码进行保护: ``` # 安装 apache2-utils sudo apt install apache2-utils # 创建用户 sudo htpasswd -c /etc/nginx/.htpasswd soc_analyst1 sudo htpasswd /etc/nginx/.htpasswd soc_analyst2 sudo htpasswd /etc/nginx/.htpasswd threat_hunter1 # 在 nginx 配置中取消身份验证行的注释 (步骤 7) sudo systemctl restart nginx ``` ### 步骤 10:访问 DetectIQ 1. **添加 DNS 条目**(询问 IT 团队): 将 `internal-detectiq.company.local` 指向您的服务器 IP - 或直接使用 IP:`http://10.0.x.x` 2. **从浏览器访问**: - 打开:`http://internal-detectiq.company.local` - 或:`http://your-server-ip` 3. **开始使用**: - 无需注册(无 Supabase) - 每个用户的检测存储在其浏览器中 - 立即构建检测、链、使用自动驾驶 ### 多用户设置(不使用 Supabase) 由于检测存储在浏览器 localStorage 中,以下是团队共享的选项: **选项 1:通过共享驱动器导出/导入** ``` # 每位分析师都可以导出检测结果: Library → Export JSON → Save to: \\company-nas\soc\detectiq-detections\ # 其他人可以导入: Library → Import JSON → Select file from shared drive ``` **选项 2:Git 仓库** ``` # 创建共享仓库 git clone git@internal-git.company.com:soc/detections.git # 分析师提交他们的检测结果: Library → Export JSON → git add → git commit → git push # 其他人拉取最新内容: git pull → Library → Import JSON ``` **选项 3:添加 PostgreSQL(高级)** 如果您需要带有共享库的真正多用户支持,可以添加 PostgreSQL: ``` # 安装 PostgreSQL sudo apt install postgresql # 创建数据库 sudo -u postgres psql CREATE DATABASE detectiq; CREATE USER detectiq WITH PASSWORD 'secure_password'; GRANT ALL PRIVILEGES ON DATABASE detectiq TO detectiq; # 更新后端 .env: DATABASE_URL=postgresql://detectiq:secure_password@localhost:5432/detectiq # 运行迁移 (您需要实现此功能) ``` ## 🐳 Docker 部署 **非常适合:** 干净的隔离部署、轻松更新、可移植 ### 使用 Docker 快速开始 **前提条件:** - 已安装 Docker 和 Docker Compose **步骤 1:创建项目结构** ``` mkdir detectiq-docker && cd detectiq-docker git clone https://github.com/vamshi-narahari/detect-iq.git cd detect-iq ``` **步骤 2:创建 docker-compose.yml** ``` version: '3.8' services: redis: image: redis:7-alpine restart: unless-stopped volumes: - redis-data:/data backend: build: ./backend ports: - "3001:3001" environment: AWS_REGION: ${AWS_REGION:-us-east-1} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} BEDROCK_MODEL_ID: us.anthropic.claude-sonnet-4-6 REDIS_URL: redis://redis:6379 PORT: 3001 depends_on: - redis restart: unless-stopped frontend: build: ./frontend ports: - "80:80" depends_on: - backend restart: unless-stopped volumes: redis-data: ``` **步骤 3:创建 .env 文件** ``` cat > .env << 'EOF' AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_aws_key AWS_SECRET_ACCESS_KEY=your_aws_secret EOF ``` **步骤 4:创建 Dockerfiles** 后端 Dockerfile (`backend/Dockerfile`): ``` FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --production COPY . . EXPOSE 3001 CMD ["node", "server.js"] ``` 前端 Dockerfile (`frontend/Dockerfile`): ``` FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 前端 nginx 配置 (`frontend/nginx.conf`): ``` server { listen 80; root /usr/share/nginx/html; index index.html; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://backend:3001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` **步骤 5:部署** ``` # 构建并启动 docker-compose up -d # 查看日志 docker-compose logs -f # 访问地址:http://localhost ``` **步骤 6:更新** ``` # 拉取最新代码 git pull origin main # 重新构建并重启 docker-compose down docker-compose build docker-compose up -d ``` ## ☁️ 云虚拟机部署(公共访问) **非常适合:** 公共演示、面向互联网的带有 Supabase 的部署 此设置包括完整的用户身份验证、团队协作和公共访问。请遵循上面的“自行部署”指南,然后添加: ### 公共部署的额外步骤: **1. 设置 Supabase**(参见 [Supabase 设置](#6-supabase-setup-optional---skip-if-not-needed)) **2. 使用 Cloudflare 配置域名**(建议用于 DDoS 保护): - 将您的域名指向服务器 IP - 启用 Cloudflare 代理(橙色云朵) - 将 SSL/TLS 模式设置为 "Full" - 启用速率限制规则 **3. 使用 Let's Encrypt 设置 SSL:** ``` sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com ``` **4. 在后端 `.env` 中启用 Supabase 环境变量:** ``` SUPABASE_URL=https://your-project.supabase.co SUPABASE_ANON_KEY=your_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key ``` **5. 配置前端 `.env`:** ``` VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your_anon_key ``` 现在重新构建前端并重启: ``` cd frontend && npm run build sudo cp -r dist/* /var/www/detectiq/ pm2 restart detectiq-backend ``` ## 📊 部署比较 | 特性 | 公司内部 | Docker | 云虚拟机(公共) | |---------|------------------|--------|-------------------| | **访问** | 仅限内部网络 | 灵活 | 面向互联网 | | **Supabase** | 不需要 | 可选 | 推荐 | | **身份验证** | 可选(nginx 基本认证) | 可选 | 是 | | **SSL/域名** | 可选 | 可选 | 必需 | | **成本** | $50-100/月 | $50-100/月 | $60-130/月 | | **安全性** | 最高(有防火墙) | 高 | 中等(使用 Cloudflare) | | **设置时间** | 30 分钟 | 20 分钟 | 45 分钟 | | **最适合** | SOC 团队 | 干净隔离部署 | 公共演示 | ## 🔧 维护与更新 ### 更新 DetectIQ ``` # 拉取最新代码 cd /opt/detect-iq # or your install path git pull origin main # 更新后端 cd backend npm install pm2 restart detectiq-backend # 更新前端 cd ../frontend npm install npm run build sudo cp -r dist/* /var/www/detectiq/ # or your web root ``` ### 监控 **检查服务状态:** ``` pm2 status pm2 logs detectiq-backend redis-cli ping ``` **检查磁盘空间:** ``` df -h du -sh /opt/detect-iq ``` **AWS Bedrock 成本:** - 检查 AWS Console → Billing Dashboard - 设置 $100/月的预算警报 ### 备份 **需要备份的内容:** ``` # 后端 .env (包含 AWS 凭证) cp /opt/detect-iq/backend/.env ~/backups/ # 如果使用 Supabase,数据库会自动备份 # 如果不使用 Supabase,检测结果存储在浏览器的 localStorage 中 (无需服务器备份) ``` ## 🆘 故障排除 ### 后端无法启动 ``` # 检查日志 pm2 logs detectiq-backend # 常见问题: # - AWS 凭证无效 → 检查 .env # - Redis 未运行 → sudo systemctl start redis # - 端口 3001 被占用 → pm2 stop all,然后 pm2 start server.js ``` ### 前端显示空白页 ``` # 检查 nginx 日志 sudo tail -f /var/nginx/error.log # 常见问题: # - 构建失败 → cd frontend && npm run build # - nginx 中的路径错误 → 检查 nginx 配置中的 root 路径 # - API 调用失败 → 检查后端 .env 中的 CORS ``` ### AWS Bedrock 错误 ``` # 检查 IAM 权限 # 用户需要:bedrock:InvokeModel 权限 # 检查模型访问权限 # 前往 AWS Console → Bedrock → Model access # 确保已启用 Claude Sonnet 4.6 # 检查区域 # 模型必须在您的 AWS_REGION 中可用 (使用 us-east-1) ``` ### AWS 成本偏高 ``` # 在 AWS Console → Bedrock → Usage 中检查使用情况 # 降低成本: # 1. 启用响应缓存 (DetectIQ 中已默认启用) # 2. 降低 backend/server.js 中的 max_tokens # 3. 在 nginx 中限制用户速率 # 4. 对简单任务使用 Haiku 模型 (编辑 BEDROCK_MODEL_ID) ``` ## 💰 成本估算(您的开销) 由于 DetectIQ 是自托管的,您需要直接为基础设施和 AI 使用量付费: ### AWS Bedrock (Claude Sonnet 4.6) - 必需 - **输入 token**:$3.00 / 百万 token - **输出 token**:$15.00 / 百万 token **典型使用量**(100 条检测/月): - 约 500 万输入 token = $15 - 约 100 万输出 token = $15 - **AI 总成本**:约 $30/月 💡 **使用量较少?** 如果您每月生成 10-20 条检测,预计约 $5-10/月。 ### 基础设施选项 **选项 1:低成本($10-15/月)** - DigitalOcean Droplet($6/月)或 AWS Lightsail($5-10/月) - 适用于:个人使用、小团队(1-5 名用户) - 规格:1 vCPU,2GB 内存 **选项 2:生产级($30-50/月)** - AWS EC2 t3.medium($30/月)或 t3.small($15/月) - 适用于:5-20 名用户的团队、高可用性 - 规格:2 vCPU,4GB 内存 **选项 3:企业级(定制)** - Kubernetes 集群、负载均衡、Redis 集群 - 适用于:50+ 用户、关键任务 - 联系您的基础设施团队以确定规模 ### 总成本示例 | 使用场景 | AI 成本 | 基础设施 | 总计 | |----------|---------|----------------|-------| | **个人**(10 条检测/月) | $5 | $6 (DigitalOcean) | **$11/月** | | **小团队**(50 条检测/月) | $15 | $10 (Lightsail) | **$25/月** | | **SOC 团队**(100 条检测/月) | $30 | $30 (EC2 t3.medium) | **$60/月** | | **企业级**(500 条检测/月) | $150 | 定制 | **$200+/月** | 🎯 **与商业替代方案相比:** 大多数 SIEM 检测工具每月每用户收费 $1000-5000+。 ## ❓ 常见问题解答 ### 我需要为 DetectIQ 付费吗? **不需要。** DetectIQ 是 100% 免费的开源软件(MIT 许可证)。但是,您需要支付: - AWS Bedrock AI 使用费(典型使用约 $30/月) - 您自己的服务器/托管费(约 $5-30/月,具体取决于规模) ### 我可以在不使用 AWS 的情况下使用它吗? **可以!** DetectIQ 支持多个 AI 提供商。只需修改后端代码: - ✅ **Azure OpenAI** - 如果您使用 Microsoft Azure - ✅ **Anthropic API 直连** - 如果您有 Anthropic 账户 - ✅ **Google Cloud AI** - 如果您使用 GCP - ✅ **本地 LLM (Ollama)** - 免费,在您的硬件上运行 有关代码示例,请参见 [如何替换基础设施](#-how-to-swap-infrastructure-components)。 ### 我需要 Supabase 吗? **不需要,它是可选的。** DetectIQ 可以在没有 Supabase 的情况下工作: - **无 Supabase**:检测存储在浏览器 localStorage 中(仅限单用户) - **有 Supabase**:多用户支持、检测库同步、团队共享 **免费获取 Supabase:** https://supabase.com(免费套餐提供 50,000 行数据,500MB 存储空间) ### 我需要 Resend 来发送电子邮件吗? **不需要,它是可选的。** 仅当您想要密码重置电子邮件时才需要。您也可以使用: - ✅ **Office 365 / Outlook** - 如果您使用 Microsoft 电子邮件 - ✅ **Gmail API** - 如果您使用 Google Workspace - ✅ **公司 SMTP** - 您的内部邮件服务器 - ✅ **AWS SES** - 如果您使用 AWS - ❌ **完全跳过电子邮件** - 大多数公司对其内部工具都这样做 有关代码示例,请参见 [如何替换基础设施](#-how-to-swap-infrastructure-components)。 ### 我的数据会发送给 Anthropic 或其他第三方吗? **只有检测文本会发送到 AWS Bedrock** 进行 AI 处理。其他一切都保留在您的服务器上: - 检测规则存储在您的数据库中 - 用户凭证存储在您的 Supabase 中 - 不会向我们发送任何遥测或分析数据 ### 我可以修改代码吗? **可以!** MIT 许可证意味着您可以: - ✅ 根据您的需求进行修改 - ✅ 商业使用(甚至销售) - ✅ 移除您不需要的功能 - ✅ 为您的组织添加功能 - ⚠️ 只需保留 MIT 许可证和署名 ### 我可以在我的公司使用它吗? **完全可以!** DetectIQ 专为企业使用而设计。MIT 许可证允许商业使用。 **最佳实践:** - ✅ 使用公司现有的云服务 - ✅ 使用公司现有的电子邮件 - ✅ 部署在内部网络(无互联网暴露) - ✅ 使用公司的 Redis/缓存服务 - ✅ 与公司 SSO 集成(可选) 有关使用您现有服务的信息,请参见 [自带基础设施](#-bring-your-own-infrastructure)。 有关分步企业部署,请参见 [自行部署](#-deploy-on-your-own-companyenterprise)。 ### 发布新版本时如何更新 DetectIQ? ``` cd ~/detect-iq-repo git pull origin main cd backend && npm install cd ../frontend && npm install && npm run build # 重新部署 (复制文件,重启服务) ``` ### 如果我不想自行托管怎么办? 我们正在考虑未来提供托管 SaaS 选项。目前,DetectIQ 仅支持自行托管。如果您在部署方面需要帮助,请开启一个 [GitHub Discussion](https://github.com/vamshi-narahari/detect-iq/discussions)。 ### 我可以回馈贡献吗? **请务必!** 请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。我们欢迎: - 错误修复 - 新的 SIEM 平台支持 - UI 改进 - 文档更新 - 路线图中的功能实现 ## 路线图 - [ ] **检测版本控制** - 用于检测规则的类似 git 的版本控制 - [ ] **多用户工作区** - 具有基于角色访问权限的团队协作 - [ ] **自定义 AI 模型** - 支持本地 LLM (Ollama, LM Studio) - [ ] **Sigma 规则导入** - 从 Sigma 规则库批量导入 - [ ] **威胁狩猎助手** - AI 驱动的假设生成 - [ ] **SOAR 集成** - Splunk SOAR, Palo Alto Cortex XSOAR, Tines - [ ] **深色模式 UI** - 适合深夜检测工程工作者的护眼主题 - [ ] **API 文档** - OpenAPI/Swagger 规范 - [ ] **CLI 工具** - 用于 CI/CD 管道的命令行界面 - [ ] **检测测试框架** - 检测逻辑的自动化单元测试 - [ ] **Jupyter notebook 集成** - 探索性检测分析 ## 贡献 我们欢迎各种贡献!请参见 [CONTRIBUTING.md](CONTRIBUTING.md),了解: - 如何报告错误 - 功能请求流程 - 开发设置 - 编码标准 - 提交 Pull Request 指南 **快速链接:** - [Issues](https://github.com/vamshi-narahari/detect-iq/issues) - 报告错误或请求功能 - [Discussions](https://github.com/vamshi-narahari/detect-iq/discussions) - 提问、分享想法 ## 社区 - **GitHub Issues**:[报告错误或请求功能](https://github.com/vamshi-narahari/detect-iq/issues) - **GitHub Discussions**:[提问、分享技巧](https://github.com/vamshi-narahari/detect-iq/discussions) - **Reddit**:[r/blueteamsec](https://reddit.com/r/blueteamsec) - 分享您的经验 ## 许可证 [MIT 许可证](LICENSE) - 可免费使用、修改和分发,包括商业用途。 ## 致谢 - **AI**:由 Anthropic 的 [Claude](https://www.anthropic.com/claude) 构建 - **MITRE ATT&CK®**:来自 [MITRE Corporation](https://attack.mitre.org/) 的框架和数据 - **CISA KEV**:已知被利用漏洞目录 - **Atomic Red Team**:由 [Red Canary](https://github.com/redcanaryco/atomic-red-team) 提供的测试自动化 - **Sigma**:由 [SigmaHQ](https://github.com/SigmaHQ/sigma) 提供的通用检测规则格式 ## Star 历史 如果 DetectIQ 对您的 SOC 团队有帮助,请在 GitHub 上给它一个 ⭐!

用 ❤️ 为安全社区构建
@vamshi-narahari 制作

标签:AI大模型, AI安全, AMSI绕过, AWS Bedrock, BullMQ, Chat Copilot, Claude, CVE检测, Docker, GNU通用公共许可证, MITM代理, MIT许可, Node.js, Redis, SIEM规则, SOC平台, 威胁检测, 安全分析师, 安全架构, 安全运营, 安全防御评估, 开源, 扫描框架, 搜索引擎查询, 测试用例, 自定义脚本, 自托管, 规则转换