返回首页

24小时热榜

18作者: pipejosh大约 4 小时前原帖
我是一名自学成才的水管工,白天经营一家水管公司,晚上则在我的家庭实验室中进行实验。大约一年前,我开始运行具有完全shell访问权限和API密钥的AI代理,以帮助管理我的业务,包括调度、开票和监控我的K3s集群。 一开始一切运行良好,直到我意识到没有任何东西可以阻止这些代理将我的凭据发送到任何地方。我在环境变量中存储了Slack、电子邮件、云服务的API密钥,这些变量可以被任何工具调用并泄露。静态扫描工具在安装代码之前检查代码,但它们无法捕捉到在运行时决定向外发送信息的受信任工具。 因此,我构建了Pipelock。它是一个单一的Go二进制文件,位于您的AI代理和外部世界之间。 它的功能包括: - 扫描所有出站流量中的秘密(API密钥、令牌、密码),并在它们离开之前阻止它们 - 阻止对未经授权目的地的网络访问(SSRF保护) - 将MCP服务器包装为标准输入输出代理,扫描响应以防止提示注入 - 监控您的工作空间文件以检测未经授权的更改 最难的部分是让它足够快,以至于您不会注意到它的存在。每个HTTP请求都经过正则表达式匹配和熵分析。我花了很多时间将扫描管道的延迟控制在几毫秒之内。MCP代理更为棘手。实时拦截JSON-RPC标准输入输出流而不打断对话流,尤其是在某些内容被标记时,需要进行多次迭代。 我每天在自己的设置中运行它。我的AI助手管理Slack消息,查询我们的工作管理API,检查电子邮件,并监控我的Kubernetes集群。Pipelock位于所有这些操作的前面。上周,它捕捉到一个技能,该技能在调试日志中嵌入了我的Slack令牌,并发送到外部端点。如果没有DLP扫描器,我根本不会注意到这一点。 Snyk最近发现,在3984个已发布的代理技能中,有283个(约7%)泄露了凭据。这就是问题所在。静态扫描可以捕捉恶意软件,而运行时扫描则可以捕捉其他所有内容。 试试这个: ``` brew install luckyPipewrench/tap/pipelock pipelock generate config --preset balanced -o pipelock.yaml pipelock proxy start --config pipelock.yaml ``` 演示链接: [https://asciinema.org/a/I1UzzECkeCBx6p42](https://asciinema.org/a/I1UzzECkeCBx6p42) 我对检测方法的反馈非常感兴趣。希望了解我遗漏的泄露模式,MCP代理对运行编码代理的人是否有用,以及如果您尝试它会有什么问题。