taoq-ai/ziran

GitHub: taoq-ai/ziran

专门针对 AI Agent 系统进行安全测试的框架,通过工具链分析和多阶段信任利用发现 LLM 安全工具无法覆盖的 Agent 特有漏洞。

Stars: 2 | Forks: 0

# ZIRAN 🧘 ### AI Agent 安全测试 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/46024edcdc044637.svg)](https://github.com/taoq-ai/ziran/actions/workflows/test.yml) [![Lint](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/a9d3f9a229044637.svg)](https://github.com/taoq-ai/ziran/actions/workflows/lint.yml) [![PyPI](https://img.shields.io/pypi/v/ziran.svg)](https://pypi.org/project/ziran/) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/) **发现 AI Agent 中的漏洞 —— 不仅是 LLM,还包括具有工具、记忆和多步推理能力的 Agent。** ![ZIRAN Demo](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0ef06ad545044639.gif) [安装](#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** — 可通过程序解析,供机器消费
ZIRAN HTML Report
## CI/CD 集成 在您的流水线中将 ZIRAN 用作质量门禁: ### 实时扫描(对您的 Agent 运行完整攻击套件) ``` # .github/workflows/security.yml - uses: taoq-ai/ziran@v0 with: command: scan framework: langchain # langchain | crewai | bedrock agent-path: my_agent.py # OR use target: target.yaml for remote agents coverage: standard # essential | standard | comprehensive gate-config: gate_config.yaml env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} # or ANTHROPIC_API_KEY, etc. ``` ### 离线 CI 门禁(评估之前的扫描结果) ``` - uses: taoq-ai/ziran@v0 with: command: ci result-file: scan_results/campaign_report.json gate-config: gate_config.yaml ``` **输出:** `status` (通过/失败)、`trust-score`、`total-findings`、`critical-findings`、`sarif-file`。 请参阅[完整示例工作流](examples/07-cicd-quality-gate/ziran-scan.yml)或使用 [Python API](examples/07-cicd-quality-gate/)。 ## 开发 ``` git clone https://github.com/taoq-ai/ziran.git && cd ziran uv sync --group dev uv run ruff check . # lint uv run mypy ziran/ # type-check uv run pytest --cov=ziran # test ``` ## 贡献 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。帮助方式: - [报告 Bug](https://github.com/taoq-ai/ziran/issues/new?template=bug_report.md) - [请求功能](https://github.com/taoq-ai/ziran/issues/new?template=feature_request.md) - [提交 Skill CVE](https://github.com/taoq-ai/ziran/issues/new?template=skill_cve.md) 用于工具漏洞 - 添加 [攻击向量](ziran/application/attacks/vectors/) (YAML) 或 [适配器](ziran/infrastructure/adapters/) ## 许可证 [Apache License 2.0](LICENSE) — 请参阅 [NOTICE](NOTICE) 了解第三方署名。

TaoQ AI 构建

标签:CISA项目, DLL 劫持, PyRIT, Python, 人工智能安全, 信任利用, 合规性, 域名收集, 多智能体系统, 多阶段攻击, 大语言模型, 密码管理, 工具链分析, 提示注入, 攻击模拟, 无后门, 智能体安全, 特权检测, 网络安全, 自动化红队, 逆向工具, 隐私保护, 集群管理, 驱动签名利用