TarunJohn/Agentic-Vulnerability-Scanner
GitHub: TarunJohn/Agentic-Vulnerability-Scanner
一个自主式AI漏洞扫描平台,通过结合本地和云端AI实现隐私保护的自动化漏洞检测和SOC模拟。
Stars: 0 | Forks: 0
```
█████╗ ██████╗ ███████╗███╗ ██╗████████╗██╗ ██████╗
██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝██║██╔════╝
███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ██║██║
██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ██║██║
██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ██║╚██████╗
╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝
██╗ ██╗██╗ ██╗██╗ ███╗ ██╗███████╗ ██████╗ █████╗ ███╗ ██╗
██║ ██║██║ ██║██║ ████╗ ██║██╔════╝██╔════╝ ██╔══██╗████╗ ██║
██║ ██║██║ ██║██║ ██╔██╗ ██║███████╗██║ ███████║██╔██╗ ██║
╚██╗ ██╔╝██║ ██║██║ ██║╚██╗██║╚════██║██║ ██╔══██║██║╚██╗██║
╚████╔╝ ╚██████╔╝███████╗██║ ╚████║███████║╚██████╗ ██║ ██║██║ ╚████║
╚═══╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
```
### **自主式、AI 驱动的漏洞研究与执行管线**
*利用 n8n 与 Ollama,将公共云端情报与本地私有执行环境相连接。*
    
**[▶ 在线模拟演示](./simulation.html)** • **[📘 架构设计](#2-system-architecture)** • **[🛡 数据隐私](#3-data-sovereignty-boundary)** • **[🚀 部署指南](#5-deployment-guide)**
## 1. 项目概述
自主式 AI 漏洞扫描器旨在自动化漏洞检测的全生命周期——从初始的端点剖析到针对性的漏洞利用生成——同时严格维护数据主权边界。它采用了“洁净云端研究”模式,其中敏感的基础设施信息在查询公共情报 API 之前会被剥离,而实时本地推理则负责最终的执行环节。
### 核心目标
* **自主研究:** 将手动将发现的服务版本映射到已知 CVE 和白皮书的任务自动化。
* **隐私优先的 AI:** 实现一个本地推理引擎 (Llama 3) 以处理敏感的基础设施数据。
* **针对性执行:** 动态生成并执行专为目标端点特定软件栈定制的 Nuclei YAML 模板。
* **基础设施即代码:** 完全容器化的技术栈,便于在家庭实验室或企业沙箱中快速部署。
## 2. 系统架构
系统被组织为三个独立的操作区域:
### 区域 A: 不可信区域 (目标虚拟机)
* **端点代理:** 一个零依赖的 Python 脚本 (`audit_agent.py`),用于剖析主机(操作系统、开放端口、服务横幅),并将原始遥测数据传输给本地编排器。
### 区域 B: 本地编排区域 (安全飞地)
* **n8n:** 管理数据管线和净化逻辑的核心自动化引擎。
* **Ollama:** 本地托管的大语言模型 (Llama 3),用于处理原始遥测数据并生成漏洞利用代码。
* **MCP 服务器:** 一个自定义 Python 桥接器,利用 Model Context Protocol 授予本地大语言模型访问内部漏洞数据库的搜索权限。
* **PostgreSQL + pgvector:** 一个向量数据库,存储已研究的情报和 3072 维的语义嵌入。
* **Nuclei 服务:** 一个针对 ProjectDiscovery Nuclei 引擎的专用 API 封装器,允许使用生成的模板进行按需扫描。
### 区域 C: 公共情报区域 (云端)
* **Gemini 1.5 Pro:** 用于对通用服务字符串进行高保真度研究。
* **Tavily:** 搜索 API,用于检索最新的 2024-2026 年安全公告和 CVE 详情。
## 3. 数据主权边界
该架构的一个关键特性是 **净化网关**。
1. **数据摄入:** 原始遥测数据(包括内部 IP 和主机名)进入 n8n。
2. **数据净化:** 一个 JavaScript 节点剥离所有标识符,只保留通用的服务字符串(例如 `"PostgreSQL 14.2"`)。
3. **云端研究:** 仅将这些通用字符串发送到 Gemini/Tavily。
4. **本地重新关联:** 研究所得的情报存储在本地数据库中。然后,本地的 Ollama 代理会将这些情报与原始数据相结合,以生成针对特定目标的扫描方案。
## 4. 技术栈
| 组件 | 技术 |
| :--- | :--- |
| **编排器** | n8n |
| **本地大语言模型** | Ollama (Llama 3 / Mistral) |
| **云端大语言模型** | Google Gemini 1.5 Pro |
| **向量数据库** | PostgreSQL w/ pgvector |
| **扫描器** | Nuclei v3 |
| **协议** | Model Context Protocol (MCP), SSE, Docker API |
| **基础设施** | Docker, Docker Compose, NVIDIA GPU 直通 |
## 5. 部署指南
### 前置条件
* 已安装 Docker 和 Docker Compose。
* NVIDIA Container Toolkit(可选,用于 GPU 加速的 Ollama)。
* Google AI Studio (Gemini) 和 Tavily 的 API 密钥。
### 安装步骤
1. 克隆仓库。
2. 在 `.env` 文件中配置你的环境变量(参考 `.env.example`)。
3. 部署技术栈:
```bash
docker compose up -d --build
```
4. 初始化数据库模式:
```powershell
Get-Content init_db.sql | docker exec -i agenticvulnerabilityscannerlab-postgres-1 psql -U user -d vulndb
```
5. 将 `workflow.json` 导入到你的 n8n 实例中,地址为 `http://localhost:5679`。
### 使用方法
在目标机器上运行审计代理以触发管线:
```
python audit_agent.py --host     
**[▶ 在线模拟演示](./simulation.html)** • **[📘 架构设计](#2-system-architecture)** • **[🛡 数据隐私](#3-data-sovereignty-boundary)** • **[🚀 部署指南](#5-deployment-guide)**
标签:AES-256, AI编排, AI风险缓解, MCP协议集成, Nuclei模板生成, SOC模拟, 主机安全, 交互式模拟, 人工智能, 公共情报, 协议集成, 后端开发, 威胁情报, 安全测试, 安全运营, 平台即服务, 开发者工具, 情报融合, 扫描框架, 攻击性安全, 数据主权, 数据可视化, 本地执行, 测试用例, 漏洞评估, 版权保护, 用户模式Hook绕过, 网络安全, 自主系统, 请求拦截, 逆向工具, 隐私保护