taoq-ai/ziran
GitHub: taoq-ai/ziran
专门针对 AI Agent 系统进行安全测试的框架,通过工具链分析和多阶段信任利用发现 LLM 安全工具无法覆盖的 Agent 特有漏洞。
Stars: 2 | Forks: 0
# ZIRAN 🧘
### AI Agent 安全测试
[](https://github.com/taoq-ai/ziran/actions/workflows/test.yml)
[](https://github.com/taoq-ai/ziran/actions/workflows/lint.yml)
[](https://pypi.org/project/ziran/)
[](LICENSE)
[](https://www.python.org/downloads/)
**发现 AI Agent 中的漏洞 —— 不仅是 LLM,还包括具有工具、记忆和多步推理能力的 Agent。**

[安装](#install) · [快速开始](#quick-start) · [示例](examples/) · [文档](https://taoq-ai.github.io/ziran/)
## 为什么选择 ZIRAN?
大多数安全工具测试的是 **LLM**(提示词注入、越狱)或 **Web 应用**(XSS、SQLi)。
ZIRAN 测试的是 **AI Agent** —— 即那个操控工具、保留记忆并链式推理的系统。
这是一个根本不同的攻击面。
| 能力 | ZIRAN | [Garak](https://github.com/NVIDIA/garak) | [Promptfoo](https://github.com/promptfoo/promptfoo) | [PyRIT](https://github.com/Azure/PyRIT) | [Shannon](https://github.com/KeygraphHQ/shannon) |
|---|:---:|:---:|:---:|:---:|:---:|
| Agent 感知(工具 + 记忆) | **是** | — | 部分 | — | — |
| 工具链分析 | **是** | — | — | — | — |
| 多阶段攻击战役 | **是** | — | — | 部分 | 是 |
| 多 Agent 协调 | **是** | — | — | — | — |
| 自适应攻击战役 | **是** | — | — | — | — |
| 自主渗透测试 Agent | **是** | — | — | — | — |
| 流式传输 (SSE/WebSocket) | **是** | — | — | — | — |
| 知识图谱追踪 | **是** | — | — | — | — |
| 远程 Agent 扫描 (HTTPS) | **是** | 仅 REST | HTTP provider | 部分 | — |
| 多协议 (REST/OpenAI/MCP/A2A) | **是** | — | — | — | — |
| A2A 协议支持 | **是** | — | — | — | — |
| 协议自动检测 | **是** | — | — | — | — |
| CI/CD 质量门禁 | **是** | — | 是 | — | Pro |
| 开源 | Apache-2.0 | Apache-2.0 | MIT | MIT | AGPL-3.0 |
**核心差异化特性:**
- **工具链分析** — 检测危险的工具组合(`read_file` → `http_request` = 数据渗出)。没有其他工具能做到这一点。
- **多阶段信任利用** — 渐进式攻击战役,在测试边界之前先建立信任,就像真正的攻击者一样。
- **多 Agent 协调** — 发现拓扑结构(supervisor、router、peer-to-peer)并测试跨 Agent 信任边界和委托模式。
- **自适应攻击战役** — 三种执行策略 —— 固定、基于规则的自适应和 LLM 驱动 —— 根据知识图谱状态实时调整攻击计划。
- **流式支持** — 通过 SSE 和 WebSocket 协议对长时间运行的 Agent 响应进行实时攻击监控。
- **知识图谱** — 每一个发现的能力、关系和攻击路径都被追踪在一个动态图谱中。
- **远程 Agent 扫描** — 通过 HTTPS 测试任何已发布的 Agent,使用 YAML 驱动的目标配置。支持 REST、OpenAI-compatible、MCP 和 A2A 协议及自动检测。
- **A2A 协议支持** — 首个测试 [Agent-to-Agent](https://google.github.io/A2A/) Agent 的安全工具,包括 Agent Card 发现、任务生命周期攻击和多轮操控。
- **自主渗透测试 Agent** — 一个由 LLM 驱动的 Agent,自主规划、执行和调整攻击战役,具有去重和交互式红队模式。
- **框架无关** — LangChain、CrewAI、MCP、远程 HTTPS Agent,或[编写您自己的适配器](examples/08-custom-adapter/)。
## 安装
```
pip install ziran
# 带有 framework adapters
pip install ziran[langchain] # LangChain support
pip install ziran[crewai] # CrewAI support
pip install ziran[a2a] # A2A protocol support
pip install ziran[streaming] # SSE/WebSocket streaming
pip install ziran[pentest] # autonomous pentesting agent
pip install ziran[all] # everything
```
## 快速开始
### CLI
```
# 扫描 LangChain agent(进程内)
ziran scan --framework langchain --agent-path my_agent.py
# 通过 HTTPS 扫描远程 agent
ziran scan --target target.yaml
# 具有 LLM 驱动策略的自适应 campaign
ziran scan --target target.yaml --strategy llm-adaptive
# 实时流式响应
ziran scan --target target.yaml --streaming
# 扫描多 agent 系统
ziran multi-agent-scan --target target.yaml
# 发现远程 agent 的 capabilities
ziran discover --target target.yaml
# 自主 pentesting agent
ziran pentest --target target.yaml
# 交互式 red-team 模式
ziran pentest --target target.yaml --interactive
# 查看交互式 HTML 报告
open reports/campaign_*_report.html
```
### Python API
```
import asyncio
from ziran.application.agent_scanner.scanner import AgentScanner
from ziran.application.attacks.library import AttackLibrary
from ziran.infrastructure.adapters.langchain_adapter import LangChainAdapter
adapter = LangChainAdapter(agent=your_agent)
scanner = AgentScanner(adapter=adapter, attack_library=AttackLibrary())
result = asyncio.run(scanner.run_campaign())
print(f"Vulnerabilities found: {result.total_vulnerabilities}")
print(f"Dangerous tool chains: {len(result.dangerous_tool_chains)}")
```
请参阅 [examples/](examples/) 获取 19 个可运行的演示 —— 从静态分析到自主渗透测试。
## 远程 Agent 扫描
ZIRAN 可以通过 HTTPS 测试任何已发布的 Agent —— 无需源代码或进程内访问。在 YAML 文件中定义您的目标,ZIRAN 会处理其余工作:
```
# target.yaml
name: my-agent
url: https://agent.example.com
protocol: auto # auto | rest | openai | mcp | a2a
auth:
type: bearer
token_env: AGENT_API_KEY
tls:
verify: true
```
**支持的协议:**
| 协议 | 用例 | 自动检测方式 |
|---|---|---|
| **REST** | 通用 HTTP 端点 | 默认回退 |
| **OpenAI-compatible** | Chat completions API (`/v1/chat/completions`) | 路径探测 |
| **MCP** | Model Context Protocol agents (JSON-RPC 2.0) | JSON-RPC 响应 |
| **A2A** | Google Agent-to-Agent protocol | `/.well-known/agent.json` |
```
# 自动检测协议并扫描
ziran scan --target target.yaml
# 强制指定特定协议
ziran scan --target target.yaml --protocol openai
# 具有 Agent Card 发现功能的 A2A agent
ziran scan --target a2a_target.yaml --protocol a2a
```
请参阅 [examples/15-remote-agent-scan/](examples/15-remote-agent-scan/) 获取即用型目标配置。
## ZIRAN 能发现什么
**提示词级别** — 注入、系统提示词提取、记忆投毒、思维链操控。
**工具级别** — 工具操控、权限提升、数据渗出链。
**工具链**(ZIRAN 独有) — 危险工具组合的自动图谱分析:
```
┌──────────┬─────────────────────┬─────────────────────────────┬──────────────────────────────────────┐
│ Risk │ Type │ Tools │ Description │
├──────────┼─────────────────────┼─────────────────────────────┼──────────────────────────────────────┤
│ critical │ data_exfiltration │ read_file → http_request │ File contents sent to external server│
│ critical │ sql_to_rce │ sql_query → execute_code │ SQL results executed as code │
│ high │ pii_leakage │ get_user_info → external_api│ User PII sent to third-party API │
└──────────┴─────────────────────┴─────────────────────────────┴──────────────────────────────────────┘
```
## 工作原理
```
flowchart LR
subgraph agent["🤖 Your Agent"]
direction TB
T["🔧 Tools"]
M["🧠 Memory"]
P["🔑 Permissions"]
end
agent -->|"adapter layer"| D
subgraph ziran["⛩️ ZIRAN Pipeline"]
direction TB
D["1 · DISCOVER\nProbe tools, permissions,\ndata access"]
MAP["2 · MAP\nBuild knowledge graph\n(NetworkX MultiDiGraph)"]
A["3 · ANALYZE\nWalk graph for dangerous\nchains (30+ patterns)"]
ATK["4 · ATTACK\nMulti-phase exploits\ninformed by the graph"]
R["5 · REPORT\nScored findings with\nremediation guidance"]
D --> MAP --> A --> ATK --> R
end
R --> HTML["📊 HTML\nInteractive graph"]
R --> MD["📝 Markdown\nCI/CD tables"]
R --> JSON["📦 JSON\nMachine-parseable"]
style agent fill:#1a1a2e,stroke:#e94560,color:#fff,stroke-width:2px
style ziran fill:#0f3460,stroke:#e94560,color:#fff,stroke-width:2px
style D fill:#16213e,stroke:#0ea5e9,color:#fff
style MAP fill:#16213e,stroke:#0ea5e9,color:#fff
style A fill:#16213e,stroke:#0ea5e9,color:#fff
style ATK fill:#16213e,stroke:#e94560,color:#fff
style R fill:#16213e,stroke:#10b981,color:#fff
style HTML fill:#1e293b,stroke:#10b981,color:#fff
style MD fill:#1e293b,stroke:#10b981,color:#fff
style JSON fill:#1e293b,stroke:#10b981,color:#fff
style T fill:#2d2d44,stroke:#e94560,color:#fff
style M fill:#2d2d44,stroke:#e94560,color:#fff
style P fill:#2d2d44,stroke:#e94560,color:#fff
```
### 多阶段信任利用
| 阶段 | 目标 |
|-------|------|
| 侦察 | 发现能力和数据源 |
| 信任建立 | 与 Agent 建立融洽关系 |
| 能力映射 | 映射工具、权限、数据访问 |
| 漏洞发现 | 识别攻击路径 |
| 利用设置 | 定位但不触发防御 |
| 执行 | 执行利用链 |
| 持久化 | 跨会话维持访问 *(选填)* |
| 渗出 | 提取敏感数据 *(选填)* |
每个阶段都建立在先前阶段的知识图谱之上。
### 攻击战役策略
| 策略 | 描述 |
|----------|-------------|
| `fixed` | 按顺序执行各阶段(默认) |
| `adaptive` | 基于规则的自适应 —— 根据知识图谱状态跳过、重复或重新排序阶段 |
| `llm-adaptive` | LLM 驱动策略 —— 使用 LLM 分析发现并动态规划下一阶段 |
```
ziran scan --target target.yaml --strategy adaptive
ziran scan --target target.yaml --strategy llm-adaptive
```
### 自主渗透测试 Agent
一个由 LLM 驱动的 Agent,自主规划、执行和调整渗透测试战役:
```
# 完全自主模式
ziran pentest --target target.yaml --max-iterations 5
# 交互式 red-team 模式 —— 与 agent 协作
ziran pentest --target target.yaml --interactive
```
渗透测试 Agent:
- **规划** 使用 LLM 推理和知识图谱状态制定攻击策略
- **执行** 具有实时适应性的多步利用链
- **去重** 使用 LLM embedding 对相关漏洞进行聚类
- **报告** 生成包含 OWASP LLM Top 10 映射的详细 HTML 报告
请参阅 [examples/19-pentesting-agent/](examples/19-pentesting-agent/) 获取完整的演练。
### 多 Agent 扫描
测试协调的多 Agent 系统 —— supervisor、router、peer-to-peer 网络:
```
ziran multi-agent-scan --target target.yaml
```
ZIRAN 发现 Agent 拓扑结构,单独扫描每个 Agent,然后运行针对信任边界和委托模式的跨 Agent 攻击。
### 流式传输
通过 SSE 或 WebSocket 实时监控攻击响应:
```
ziran scan --target target.yaml --streaming
```
## 报告
三种输出格式,自动生成:
- **HTML** — 带有攻击路径高亮的交互式知识图谱
- **Markdown** — 对 CI/CD 友好的摘要表格
- **JSON** — 可通过程序解析,供机器消费
由 TaoQ AI 构建
标签:CISA项目, DLL 劫持, PyRIT, Python, 人工智能安全, 信任利用, 合规性, 域名收集, 多智能体系统, 多阶段攻击, 大语言模型, 密码管理, 工具链分析, 提示注入, 攻击模拟, 无后门, 智能体安全, 特权检测, 网络安全, 自动化红队, 逆向工具, 隐私保护, 集群管理, 驱动签名利用