Show HN: Pipelock – AI 编码代理的一体化安全防护
Source: Hacker News
介绍
我是一名自学编程的水管工。白天经营水管公司,晚上玩我的家庭实验室。大约一年前,我开始让拥有完整 shell 访问权限和 API 密钥的 AI 代理帮助管理我的业务——排程、开票、监控我的 K3s 集群。
一切运行良好,直到我意识到没有任何东西阻止这些代理把我的凭证发送到任何地方。我把 Slack、邮件和云服务的 API 密钥存放在环境变量中,任何工具都可以将其泄露。静态扫描器可以在你安装代码之前检查代码,但它们抓不住在运行时决定“打电话回家”的受信任工具。
Pipelock
于是我构建了 Pipelock,一个介于你的 AI 代理和外部世界之间的单一 Go 可执行文件。
功能
- 出站机密扫描 – 检测流量中的 API 密钥、令牌、密码,并在它们离开之前阻止。
- SSRF 防护 – 阻止对未授权目的地的网络访问。
- MCP 代理 – 将 MCP 服务器包装为 stdio 代理,扫描响应以防止提示注入。
- 工作区监控 – 监视你的文件,防止未经授权的更改。
实现要点
最难的部分是让它足够快,以至于你几乎感觉不到它的存在。每个 HTTP 请求都会经过正则匹配和熵分析,我花了很多时间把扫描流水线的延迟控制在几毫秒以内。
MCP 代理更为棘手:在不破坏对话流的情况下实时拦截 JSON‑RPC stdio 流并在出现标记时进行处理,经历了多次迭代。
实际使用
我每天在自己的环境中运行它。我的 AI 助手管理 Slack 消息、查询我们的作业管理 API、检查邮件,并监控我的 Kubernetes 集群。Pipelock 位于所有这些操作的前端。
上周它捕获到一个技能在调试日志中嵌入我的 Slack 令牌并发送到外部端点——如果没有 DLP 扫描器,我根本不会注意到这点。
Snyk 最近发现 283 个(占 3,984 个已发布代理技能的约 7%) 正在泄露凭证。静态扫描能捕获恶意软件;运行时扫描能捕获其余所有情况。
入门指南
brew install luckyPipewrench/tap/pipelock
pipelock generate config --preset balanced -o pipelock.yaml
pipelock proxy start --config pipelock.yaml
演示
征求反馈
我感兴趣的方向包括:
- 我可能遗漏的泄露模式。
- MCP 代理对使用编码代理的用户是否有用。
- 在不同环境中尝试时会出现哪些问题。
欢迎分享你的想法和建议。