ethosagent/warden

GitHub: ethosagent/warden

Warden 是一个针对 LLM agent 的专用出向防护代理,通过结构性网络隔离和边缘密钥替换,从架构层面阻止 agent 窃取数据或持有真实凭证。

Stars: 0 | Forks: 0

# Warden **一个智能体出向防护代理。** Warden 封装了不受信任的 LLM agent runtime, 使其*在结构上无法*直接连接到互联网,除非通过一个充当中介的代理。 该代理会强制对每次调用执行允许/拒绝策略,并在网络边缘将 占位符 token 替换为真实的 secrets。 ## 核心不变性 被封装的 agent **没有直接的网络出口路由**。通往 互联网的唯一路径是通过 Warden,这由容器/编排 runtime 强制执行—— 而不是依赖于要求 agent 遵守规则。因此,该 agent: - **无法窃取数据** —— 每个目标都会与一个 默认拒绝的 allowlist 进行核对; - **无法进行恶意调用** —— 任何不在 allowlist 中的请求都会在 TCP 底层被拦截; - **绝不持有真实的 secret** —— 它只持有占位符(例如 `openai_secret_001`);真实的凭证会在边缘被注入,并且永远不会 返回给该 agent。 ## 定位 我们是**针对 agent 专用的**,而不是通用的出向防火墙 如果您运行的是普通的应用程序,通用的出向代理会是更简单的选择。 如果您运行的是 **agent**,Warden 能够理解 agent 所使用的协议以及 它们可能产生的威胁。 ## 快速开始 ``` # 构建单一 binary。 make build # 运行完整的 check gate(format、vet、lint、build、test+race、coverage)。 scripts/check.sh # 安装一次 git hooks(pre-commit = 快速检查,pre-push = 完整 gate)。 scripts/install-hooks.sh # 生成 agent 将信任的 bake-once proxy CA(TLS termination)。 scripts/gen-certs.sh # 使用示例 config 运行 proxy(服务于 M1)。 go run ./cmd/proxy -config configs/config.example.yaml ``` 配置结构记录在 [`configs/config.example.yaml`](configs/config.example.yaml) 中:一个默认拒绝的 `policy.allowlist`(域名 + 可选端口)、占位符↔环境变量 `secrets`、缓存 `ttl` 以及 `logging`。 ## 部署模板 Warden 需要 container runtime 以确保隔离是结构性的——没有 裸本地进程模式。这些模板体现了这种隔离: - **本地开发** —— `deploy/compose/` —— 在仅限内部网络上运行的 agent + 代理 sidecar;该 agent 没有外部路由。 - **Kubernetes** —— `deploy/k8s/` —— sidecar 清单 + 默认拒绝出向 `NetworkPolicy`(仅允许出向到代理)。 - **EC2 / VM** —— `deploy/vm/` —— 在实例上作为 systemd 服务或容器运行的 代理;agent 容器的出向流量被路由到该代理。 ## 目录结构 有关 package 映射、构建/测试命令以及 约定,请参阅 [`AGENTS.md`](AGENTS.md)。 ## 许可证 [Apache-2.0](LICENSE)。
标签:EVTX分析, Go, LLM Agent, Ruby工具, 人工智能, 代理网关, 子域名突变, 底层编程, 日志审计, 用户模式Hook绕过, 网络安全, 网络隔离, 请求拦截, 隐私保护