DhanrajGangnaik/PurpleClaw
GitHub: DhanrajGangnaik/PurpleClaw
PurpleClaw 是一个自托管 AI 安全代理,用于自动化威胁检测、漏洞扫描和日志分析,提升安全团队效率。
Stars: 0 | Forks: 0
PurpleClaw
适用于红队、蓝队和紫队作战的本地人工智能代理
自托管 · 内置大语言模型(Ollama) · 网页图形界面 + 命令行界面
## 这是什么
PurpleClaw 是一个**专注的人工智能安全代理**。一个容器即可启动:
- **Ollama** — 本地大语言模型,首次启动时自动拉取 `qwen2.5:3b`
- **后端** — 暴露 `/api/v1/agent/*` 端点的 FastAPI 应用,预装了 `nmap`、`httpx` 和 `nuclei`
- **前端** — 单页代理控制台(无需登录)
默认情况下,代理以**试运行模式**运行:它会计划、推理并生成一份 Markdown 报告。
当您将 `ALLOW_ACTIVE_SCANNING=true` 并提供一个在您允许列表中的目标时,
它将*实际*运行 nmap / httpx / nuclei,并将它们的输出反馈给大语言模型。
## 快速启动
```
git clone
purpleclaw && cd purpleclaw
cp .env.example .env
docker compose up --build -d
```
| 项目 | 地址 |
|---|---|
| 网页界面 | http://localhost:8080 |
| API 文档 | http://localhost:8001/api/docs |
| Ollama | http://localhost:11434 |
首次启动需要几分钟,因为后端镜像会下载 `nmap`、`httpx`、`nuclei` 以及 Python 依赖,同时 Ollama 会拉取 `qwen2.5:3b`(约 2 GB)。
在模型下载期间,代理会回退到一个确定性的 `MockProvider`,因此用户界面可以立即使用。
## 安全模型
| 控制项 | 默认值 | 含义 |
|---|---|---|
| `dry_run`(按请求) | `true` | 仅计划 — 不运行任何工具 |
| `ALLOW_ACTIVE_SCANNING` | `false` | 主动执行的主开关 |
| `ALLOW_DESTRUCTIVE_ACTIONS` | `false` | 即使启用了扫描,破坏性操作也保持关闭 |
| `APPROVED_TARGETS` | `127.0.0.1,localhost` | 允许的主机和 CIDR 地址 |
代理还会阻止任何匹配破坏性 shell 模式的输入
(`rm -rf /`、`curl … | sh`、`mkfs`、fork bombs 等),并在检测到时记录一个 `高`
严重性的发现。
## 运行流程
```
POST /api/v1/agent/run
│
▼
Validate policy
(allowlist · dry-run · dangerous patterns)
│
▼
Generate deterministic plan for mode
│
▼
If active: run nmap / httpx / nuclei against the target
│
▼
Ollama enriches summary + findings + recommendations
│
▼
Save JSON record + Markdown report
```
## 图形界面
打开 http://localhost:8080 → 选择模式 → 填写目标和目的 → 切换试运行开关 → **运行代理**。
页面会显示计划、实际工具输出(激活时)、带有严重性徽章的发现、建议、策略警告以及一个查看完整 Markdown 报告的按钮。底部的**近期执行**表格允许您重放任何先前的运行。
## 命令行界面
```
cd cli && pip install -e .
purpleclaw ask "How can I secure my nginx reverse proxy?"
purpleclaw red recon --target http://localhost:8080 --dry-run
purpleclaw blue triage --text "Failed password for root from 10.0.0.5"
purpleclaw purple validate --technique T1046 --target 127.0.0.1 --dry-run
purpleclaw executions
purpleclaw report --task-id pc-task-…
```
无需登录。如有需要,可设置 `PURPLECLAW_API_URL` 指向远程后端。
## API
```
POST /api/v1/agent/run
GET /api/v1/agent/executions[?limit=20]
GET /api/v1/agent/executions/{task_id}
GET /api/v1/agent/report/{task_id}
GET /api/v1/agent/policy
GET /api/v1/health
```
OpenAPI 文档:http://localhost:8001/api/docs
```
curl -sS http://localhost:8001/api/v1/agent/run \
-H 'content-type: application/json' \
-d '{
"mode": "blue",
"objective": "Triage SSH brute-force attempts",
"input_text": "Failed password for root from 10.0.0.5 port 53222 ssh2",
"dry_run": true
}' | jq
```
## 模式
| 模式 | 用途 | 激活时使用的工具 |
|---|---|---|
| `general` | 问答、建议、运维手册风格的答案 | — |
| `red` | 针对已授权目标的红队安全验证 | `nmap`、`httpx`、`nuclei` |
| `blue` | 日志/警报/证据分诊,Sigma 规则建议 | — |
| `purple` | ATT&CK 技术覆盖验证 | (仅限计划) |
## 自定义大语言模型
默认模型是 `qwen2.5:3b`(体积小,约 2 GB,CPU 上运行快)。通过编辑 `.env` 来更换为更大的模型:
```
LLM_BASE_MODEL=qwen2.5:7b
LLM_DEFAULT_MODEL=qwen2.5:7b
```
或者构建一个 PurpleClaw 定制的 Modelfile(`ollama/Modelfile`)并将
`LLM_DEFAULT_MODEL` 指向它。参见 `ollama/README.md`。
## 测试
```
cd backend
pip install -r requirements.txt pytest
pytest tests/
```
12 个单元测试覆盖了策略强制执行和编排器管道。
## 项目布局
```
purpleclaw/
├── backend/
│ ├── agent/ # schemas, policies, llm, planner, orchestrator, tools, prompts
│ ├── routes/ # FastAPI router
│ ├── tests/ # pytest suite
│ ├── main.py # FastAPI app (no auth, no SQL)
│ ├── Dockerfile # python:3.12 + nmap + httpx + nuclei
│ └── requirements.txt
├── frontend/
│ ├── src/ # React + Vite + Tailwind, one page: AgentConsole
│ ├── nginx.conf # proxies /api/* to backend
│ └── Dockerfile
├── cli/
│ └── purpleclaw_cli/ # Typer CLI
├── ollama/
│ └── Modelfile # optional custom model wrapper
├── docker-compose.yml # ollama + backend + frontend
└── .env.example
```
## 负责任使用
PurpleClaw 用于**授权**测试。运行它即表示您同意仅针对您拥有或已明确授权测试的系统。不要将其用于未授权访问、大规模扫描或规避检测。
## 许可证
MIT 许可证。标签:AES-256, AI风险缓解, AMSI绕过, AV绕过, BurpSuite集成, DLL 劫持, Docker, FastAPI, httpx扫描, LLM评估, nmap扫描, nuclei扫描, Ollama, React, Syscalls, Web图形界面, 人工智能安全, 加密, 合规性, 命令行界面, 大语言模型, 威胁情报分析, 威胁检测, 安全运营平台, 安全防御评估, 实时威胁监控, 容器化部署, 密码管理, 插件系统, 本地AI代理, 漏洞扫描器, 漏洞评估, 紫队操作, 红队操作, 网络安全, 蓝队操作, 请求拦截, 运行时操纵, 逆向工具, 隐私保护