RishvinReddy/AI-Security-Guardian

GitHub: RishvinReddy/AI-Security-Guardian

基于 n8n 构建的自主企业级 AI 安全运营中心平台,集成多种安全扫描工具与 AI 分析,实现连续的漏洞发现、风险评分和告警自动化。

Stars: 1 | Forks: 0

AI Security Guardian Banner

# 🛡️ AI 安全卫士 **基于 n8n 构建的自主、企业级 AI 安全运营中心 (SOC)。** [![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![n8n](https://img.shields.io/badge/Orchestration-n8n-orange.svg?style=flat-square&logo=n8n)](https://n8n.io/) [![OpenAI](https://img.shields.io/badge/AI%20Engine-GPT--4o-green.svg?style=flat-square&logo=openai)](https://openai.com/) [![PostgreSQL](https://img.shields.io/badge/Database-PostgreSQL-blue.svg?style=flat-square&logo=postgresql)](https://www.postgresql.org/) [![Docker](https://img.shields.io/badge/Deployed-Docker-blue.svg?style=flat-square&logo=docker)](https://www.docker.com/) [![Version](https://img.shields.io/badge/Release-v1.0.0-success.svg?style=flat-square)](#) [![Maintainer](https://img.shields.io/badge/Maintainer-Rishvin%20Reddy-blueviolet?style=flat-square)](https://github.com/RishvinReddy)
## ⚠️ 重要安全免责声明 ## 📖 执行摘要 **AI Security Guardian** 是一个高度可扩展的自主安全自动化平台。它将标准的漏洞扫描转变为连续、智能的 pipeline。 通过将开源安全工具(Nmap、Nuclei、Subfinder)与确定性风险引擎和由 OpenAI 驱动的安全分析师统一起来,该项目可自动发现资产、扫描漏洞、将数据标准化为集中的 JSON 对象、计算风险,并提供可操作的、按严重程度路由的警报。 ### 📊 快速统计 - **150+** 工作流节点 - **15** 个逻辑执行部分 - **20+** 支持的集成(OpenAI、Slack、PostgreSQL、Nmap 等) - **6** 个标准化数据库表 - **100%** 开源架构 ## 🏗️ 高层系统架构 该生态系统依赖三大主要支柱:**编排** (n8n)、**执行** (安全扫描器) 以及 **状态管理** (PostgreSQL)。 ``` graph TD classDef core fill:#2c3e50,stroke:#ecf0f1,stroke-width:2px,color:#ecf0f1; classDef tools fill:#c0392b,stroke:#ecf0f1,stroke-width:2px,color:#ecf0f1; classDef data fill:#27ae60,stroke:#ecf0f1,stroke-width:2px,color:#ecf0f1; classDef ai fill:#8e44ad,stroke:#ecf0f1,stroke-width:2px,color:#ecf0f1; subgraph Orchestration Layer [n8n Mega Workflow] A[CRON Trigger] --> B[Configuration Control Center] B --> C{Parallel Dispatcher} end subgraph Execution Layer [Active Scanners & APIs] C --> D[Nmap / Nuclei]:::tools C --> E[DNS / WHOIS]:::tools C --> F[Threat Intel APIs]:::tools end subgraph Normalization & AI Layer D --> G{Data Normalizer}:::core E --> G F --> G G --> H[Deterministic Risk Engine]:::core H --> I[OpenAI GPT-4o Analyst]:::ai end subgraph State & Reporting I --> J[(PostgreSQL DB)]:::data J --> K[Severity-Based Routing] K --> L((Slack / Email Alerts)):::core end class A,B,C,G,H,K core; ``` ## ⚙️ 工作原理:输入、处理与数据流 该工作流被编译为一个 **150+ 节点的大型工作流 (Mega-Workflow)**。以下是关于数据如何遍历系统的深入探讨。 ### 1. 触发与输入 (如何开始) 该工作流被设计为完全自主的。它通过两种方式触发: 1. **CRON 调度器**:在定义的时间间隔唤醒(例如,每天凌晨 2 点)。 2. **手动执行**:通过 n8n UI 触发,用于临时评估。 它命中的第一个节点是 **`CFG_Configuration`** 控制中心。这是所有动态变量被初始化并注入 pipeline 的地方: ``` { "TARGET_DOMAIN": "example.com", "SCAN_PROFILE": "Deep", "ENABLE_NMAP": true, "ENABLE_NUCLEI": true, "TIMEOUT": 60 } ``` ### 2. 并行处理 (我们如何执行) 由于安全扫描非常耗时,该工作流利用 n8n 的异步执行来分发工作负载。 配置变量会同时传递给所有已启用的收集器节点。 ``` sequenceDiagram participant Config as Control Center participant Nmap as Network Scanner participant Nuclei as Vuln Scanner participant DNS as OSINT participant Merge as Merge Gate Config->>Nmap: Start port scan (target.com) Config->>Nuclei: Start CVE scan (target.com) Config->>DNS: Fetch WHOIS/A/MX records Note over Nmap,DNS: Scanners run concurrently DNS-->>Merge: Return JSON (Fast) Nmap-->>Merge: Return XML -> JSON (Medium) Nuclei-->>Merge: Return JSON (Slow) Note over Merge: Workflow halts until ALL branches complete. ``` ### 3. 标准化引擎 (我们如何构建混乱的数据) 安全工具的原始输出通常非常混乱。Nmap 返回 XML,Nuclei 返回多行 JSON 对象,而 WHOIS 返回纯文本。 **`CODE_StandardizeJSON`** 节点充当一个漏斗。它拦截所有原始数据,对其进行清理,并将其映射到我们严格的全局数据对象 schema。 **全局数据对象结构:** ``` { "workflow_metadata": { "execution_id": "uuid-1234", "version": "1.0.0" }, "asset": { "domain": "example.com", "fingerprint": "example.com_1.1.1.1" }, "dns": { "records": [] }, "ports": [ { "port": 80, "state": "open" } ], "vulnerabilities": [ { "id": "CVE-2024-XXXX", "severity": "high" } ], "risk": { "score": null }, "execution": { "duration": 145, "scanners_failed": 0 } } ``` ### 4. 确定性风险引擎 (我们如何计算危险) 我们**不**让 AI 来猜测风险评分。AI 很容易产生幻觉。相反,我们使用由标准 JavaScript 编写的确定性数学引擎。 ``` flowchart LR A[Vulnerabilities Found] -->|+40 points per Critical| D(Total Score) B[Exposed RDP/SSH Ports] -->|+15 points per Port| D C[Missing HTTP Headers] -->|+5 points per Header| D D --> E{"Math.min(Score, 100)"} E --> F[Final Risk Score 0-100] ``` ### 5. AI 安全分析师 (我们如何进行综合分析) 一旦数学运算完成,完整的全局数据对象(包括确定性风险评分)将传递给 **OpenAI (GPT-4o)**。 我们利用严格的 System Prompt 强制 LLM 输出机器可读的 JSON 摘要,而不是一长串对话式的文本。 **AI Prompt:** ### 6. 多表关系日志记录 (我们如何跟踪历史记录) 在发送任何警报之前,所有证据都会被永久保存在 PostgreSQL 中。我们使用 6 表标准化 schema,确保我们可以随时间推移跟踪 MTTR(平均修复时间)等指标。 ``` erDiagram ASSETS ||--o{ EXECUTIONS : "undergoes" EXECUTIONS ||--o{ FINDINGS : "generates" EXECUTIONS ||--o{ RAW_SCANNER_RESULTS : "logs" EXECUTIONS ||--o{ AI_REPORTS : "synthesizes" ASSETS { UUID id PK VARCHAR domain VARCHAR fingerprint } EXECUTIONS { UUID id PK INT duration TIMESTAMP start_time } FINDINGS { UUID id PK VARCHAR severity VARCHAR cve_title } AI_REPORTS { UUID id PK TEXT business_impact JSONB recommendations } ``` ### 7. 基于严重程度的告警 (我们如何通知) 为了防止“告警疲劳”,该工作流使用 Switch 节点检查最终的风险评分,并适当地路由通知。 | 风险评分 | 严重级别 | 采取的行动 | | :--- | :--- | :--- | | **90 - 100** | 严重 | 即时 Slack 消息 + Email + 高优先级 DB 标记 | | **70 - 89** | 高危 | Slack 消息 + 数据库日志记录 | | **40 - 69** | 中危 | Email 摘要 + 数据库日志记录 | | **10 - 39** | 低危 | 仅数据库日志记录(仪表板可见) | | **0 - 9** | 信息 | 仅数据库日志记录 | ## 🛠️ 完整功能矩阵 | 类别 | 功能 | 状态 | | :--- | :--- | :--- | | **侦察** | DNS 映射、WHOIS、反向 DNS、Subfinder | ✅ 活跃 | | **攻击面** | Nmap 端口扫描、SSL 过期与密码验证、HTTP 安全标头 | ✅ 活跃 | | **漏洞** | Nuclei 模板扫描、Trivy 镜像/文件系统扫描 | ✅ 活跃 | | **威胁情报** | VirusTotal IP 信誉、Shodan 暴露、EPSS 漏洞利用概率 | ✅ 活跃 | | **AI 操作** | GPT-4o 执行摘要、技术根因分析、修复步骤 | ✅ 活跃 | | **编排** | 并行执行、`continueOnFail` 容错机制、错误捕获 pipeline | ✅ 活跃 | | **数据存储** | PostgreSQL 关系型 schema、原始 JSONB 证据库 | ✅ 活跃 | ## 🚀 安装与部署 部署 AI Security Guardian 是完全容器化的。 ### 1. 环境要求 * Docker & Docker Compose * n8n 实例(包含在 `docker-compose.yml` 中) * OpenAI、VirusTotal 的 API 密钥(可选) * 如果使用本地执行节点,需在本地安装 CLI 工具(Nmap、Nuclei)。 ### 2. 快速开始 ``` # Clone 仓库 git clone https://github.com/RishvinReddy/AI-Security-Guardian.git cd AI-Security-Guardian # 设置环境变量 cp .env.example .env # 部署 Infrastructure (n8n, Postgres, Redis) chmod +x scripts/install-tools.sh ./scripts/install-tools.sh docker-compose up -d ``` ### 3. 导入大型工作流 1. 在 `http://localhost:5678` 打开 n8n 2. 导航至 **Workflows > Import from File** 3. 从仓库根目录中选择 `AI_Security_Guardian_Mega.json`。 4. 在 n8n UI 中添加您的凭据(OpenAI、PostgreSQL)。 5. 点击 **Execute Workflow**! ## 📁 仓库结构 ``` ai-security-guardian/ ├── AI_Security_Guardian_Mega.json # The compiled master workflow ├── generator/ # YAML-to-JSON compiler logic │ ├── workflow-spec.yaml # Edit architecture here! │ └── build.py ├── database/ │ └── init.sql # 6-Table PostgreSQL schema ├── scripts/ # Deployment scripts ├── docs/ # Detailed architecture documentation ├── examples/ # Demo outputs & configs └── workflows/modular/ # Original individual tool logic ``` ## 🗺️ 路线图 ### 阶段 1:核心扫描器与 AI 分析 ✅ (v1.0.0) - [x] 庞大的 15 部分 n8n 大型工作流 - [x] 确定性风险引擎 + OpenAI JSON 输出 - [x] PostgreSQL 6 表存储 schema - [x] 基于 YAML 的生成器,用于架构编译 ### 阶段 2:情报与趋势 🚧 (进行中 - v1.1.0) - [ ] 历史对比(通过 SQL 差异检测已关闭/新开启的端口) - [ ] 威胁情报聚合与数据库缓存(`threat_intel_cache` 表) - [ ] 管理仪表板(Grafana / Metabase 集成) ### 阶段 3:SOC 自动化 📅 (已计划) - [ ] 基于发现的 Jira / GitHub Issues 工单自动化 - [ ] 云与容器安全审计(Prowler / Trivy 集成) - [ ] 自动化合规评分(SOC2 / CIS Benchmarks) ## ❓ FAQ **我需要 Docker 来运行这个吗?** 是的,确保 n8n、Postgres 和网络扫描器正确配置的最简单方法是使用提供的 `docker-compose.yml`。 **这能在 Windows 上运行吗?** 是的,通过适用于 Linux 的 Windows 子系统 (WSL2) 并安装 Docker Desktop 即可运行。 **如果 Nmap 太慢,我可以禁用它吗?** 绝对可以。`CFG_Configuration` 节点允许您独立切换 `ENABLE_NMAP` 或 `ENABLE_NUCLEI`。 **如何添加新的扫描器?** 要添加新工具,请修改 `generator/workflow-spec.yaml`,为您的工具包含一个 `Execute Command` 节点,在 Normalizer 部分映射其输出,然后重新运行 `build.py`。 **是否严格要求提供 OpenAI API 密钥?** 不需要。如果您将 `ENABLE_AI` 切换为 false,平台将跳过 GPT-4o 分析,并完全依赖确定性的风险评分和原始漏洞进行 Slack/数据库报告。
标签:CTI, DLL 劫持, 大语言模型, 威胁情报, 安全运营中心, 实时处理, 密码管理, 开发者工具, 插件系统, 测试用例, 网络映射, 请求拦截