# 🛡️ AI 安全卫士
**基于 n8n 构建的自主、企业级 AI 安全运营中心 (SOC)。**
[](LICENSE)
[](https://n8n.io/)
[](https://openai.com/)
[](https://www.postgresql.org/)
[](https://www.docker.com/)
[](#)
[](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/数据库报告。