rostam-sodagari/AutoPentest
GitHub: rostam-sodagari/AutoPentest
一个基于多智能体LLM推理的自动化渗透测试平台,通过模块化扫描流水线与沙箱验证,实现持续性的安全评估。
Stars: 0 | Forks: 0
# 自主多智能体渗透测试平台
一个由 AI 驱动的渗透测试平台,它结合了基于 LLM 的多智能体推理、模块化扫描流水线、沙箱化漏洞验证以及实时可观测性。专为罗汉普顿大学 AI 系统工程模块 (CMP-L044) 构建。
## 问题背景
传统的渗透测试按固定的时间间隔进行。在基础设施每天都在变化的环境中,这种时间差构成了真正的风险。该平台通过运行连续、自动化的评估流水线来解决这个问题——发现资产,通过一组协调的 AI 智能体对漏洞进行推理,并在将任何内容作为发现上报之前,在独立的沙箱环境中验证每一个假设。
核心设计原则:**LLM 生成的是假设,而不是发现**。
任何未经独立沙箱验证的内容都不会出现在报告中。
## 架构

每一层都作为独立的服务运行。Apache Kafka 将它们解耦,实现了异步处理和独立扩展。人工审批门会拦截任何 CVSS 估计值达到或超过 7.0 的假设,直到它被明确审查通过。
## 项目结构

## 前置条件
| 需求 | 备注 |
|---|---|
| Python 3.10+ | |
| Docker + Docker Compose | 运行 PostgreSQL, Kafka, Prometheus, Grafana, ELK |
| Nmap | `sudo apt install nmap` |
| Nuclei | 从 [projectdiscovery.io](https://projectdiscovery.io/nuclei) 安装 |
| Anthropic API key | 智能体推理所需 |
| Shodan API key | 可选 — 缺少时系统会平滑降级 |
| NVD API key | 可选 — 拥有密钥可解除速率限制 |
## 安装说明
```
git clone
cd AutoPentest
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# 在 .env 中填入你的 API keys 和凭据
```
启动基础设施服务:
```
docker compose -f docker/docker-compose.yml up -d
```
由 Docker Compose 启动的服务:
| 服务 | 端口 | 用途 |
|---|---|---|
| PostgreSQL 16 | 5432 | 资产图持久化 |
| Kafka + Zookeeper | 9092 | 层间消息队列 |
| Prometheus | 9090 | 指标收集 |
| Grafana | 3000 | 指标仪表板 |
| Elasticsearch | 9200 | 审计日志存储 |
| Kibana | 5601 | 审计日志 UI |
## 运行流水线
```
# 通过 CLI 运行完整 pipeline
python -m src.main --config configs/config.yaml --target 192.168.1.0/24
# 启动 Web 仪表盘(也可从 UI 触发扫描)
flask --app src.dashboard.app run
```
仪表板可通过 `http://localhost:5000` 访问。
### 仪表板页面
| 路由 | 描述 |
|---|---|
| `/` | 流水线状态、严重性摘要、触发扫描按钮 |
| `/assets` | 发现的资产 — IP、端口、服务、产品、CVE 数量 |
| `/findings` | 已确认的发现,可按严重程度过滤 |
| `/audit` | 智能体审计日志 — 每次推理迭代对应一行记录 |
| `/report/` | 下载分析师和执行报告 |
## 运行测试
```
pytest tests/ -v --cov=src --cov-report=term-missing
```
每个模块都有测试存根。每个存根都被标记为 `pytest.skip("not implemented")`,并在其 docstring 中记录了完整的测试计划。共享的 fixtures 位于 `tests/conftest.py`。
## 关键设计决策
**假设而非发现原则**
LLM 从不直接生成发现。它提出结构化的假设(目标、CVE ID、攻击向量、置信度),这些假设由沙箱层独立确认或拒绝。这可以防止虚构的发现进入报告。
**平滑降级**
每个扫描器都将其执行过程包装在 `safe_run()` 中。如果某个工具不可用,流水线会记录警告并使用已成功的扫描器继续执行。缺少 Shodan API key 或 Nuclei 二进制文件无法访问永远不会阻止扫描。
**共享 schema 契约**
所有五个团队工作流都通过两个共享 schema 进行通信:规范化资产 schema(由摄取层生成)和假设 schema(由智能体层生成)。没有任何层会直接调用另一层——数据完全通过 Kafka topic 流动。
**三级事件响应**
| 级别 | 触发条件 | 动作 |
|---|---|---|
| 1 — 严重 | 检测到沙箱容器逃逸 | 立即停止流水线,记录 `CRITICAL` 日志,需人工调查 |
| 2 — 高 | 模型漂移 — 误报率上升 | 设置 `rollback_requested` 标志,CI/CD 自动回滚 |
| 3 — 警告 | 误报率超过阈值 | 设置 `is_paused` 标志,记录 `WARNING` 日志,需人工审查 |
## 可观测性
- **Prometheus** 每 15 秒抓取一次流水线指标端点 (`localhost:8000`)
- **Grafana** (`:3000`) 为假设吞吐量、沙箱持续时间和 CVSS 评分分布提供预配置的仪表板
- **ELK stack** 为只追加的智能体审计日志 (`data/logs/audit.jsonl`) 建立索引,以实现完整的推理可追溯性
## 负责任的使用
本平台专为**经授权的、受控的测试环境**设计。未经明确书面许可,严禁将其用于任何网络或系统。扫描输出中的所有个人数据都会在摄取时按照 GDPR 数据最小化原则进行假名化处理。
## 团队
第 1 组 — AI 系统工程 (CMP-L044),罗汉普顿大学
标签:AI驱动渗透测试, Apache Kafka, CTI, CVSS评分, Docker, ELK, Google, Grafana, Nmap, Nuclei, PostgreSQL, PyRIT, Python, SOC工具, 人工智能安全, 企业基础设施安全, 占用监测, 合规性, 多智能体协同推理, 多智能体系统, 大语言模型LLM, 安全合规, 安全扫描流水线, 安全报告自动化, 安全防御评估, 实时处理, 密码管理, 开源软件, 持续安全评估, 插件系统, 无后门, 无线安全, 沙箱逃逸验证, 测试用例, 漏洞发现, 红队自动化, 网络代理, 网络安全, 网络安全审计, 自动化渗透测试, 自定义请求头, 虚拟驱动器, 请求拦截, 资产管理, 越狱测试, 软件成分分析, 逆向工具, 隐私保护