Sentinel-Gate/Sentinelgate

GitHub: Sentinel-Gate/Sentinelgate

一个面向 AI 代理的 MCP 协议网关,通过策略拦截与审计解决无限制工具调用带来的安全风险。

Stars: 23 | Forks: 1

SentinelGate

您的 AI 代理拥有对您机器的无限制访问权限。
每次工具调用、Shell 命令和文件读取 — 均未经过检查。

SentinelGate 在执行前拦截每一个操作。
确定性规则。从物理机到任意容器或沙箱。

面向那些为 AI 代理提供 MCP 工具访问权限,并需要控制它的开发者。

CI License: AGPL-3.0 Go 1.26+ Release v2.1.3

Works with E2B Works with Docker Works with Kubernetes Works with Modal Works with Fly.io

+6 more platforms

Works with Firecracker Works with Podman Works with Daytona Works with ECS / Fargate Works with systemd Works with LXC / LXD

开始使用 · 官网 · 文档

SentinelGate demo

## 🛡️ 为什么 AI 代理不只是聊天 — 它们会读取文件、运行命令、调用 API 并向外发送数据。一次提示词注入或一次幻觉操作就足以泄露凭证、删除数据或窃取敏感信息。而且 **没有撤销的机会**。 ### 为什么选择 SentinelGate 🏠 **自托管** — 您的数据永远不会离开您的基础设施。 📦 **容器原生** — 一条命令引导布署,随时准备用于编排器。 🔓 **零锁定** — 单一二进制文件,随处运行,随时移除。 ## ⚙️ SentinelGate 如何工作 SentinelGate 位于 AI 代理与您的系统之间。每个操作都会被拦截,依据您的策略进行评估并记录 — 在其触达任何目标之前。被拒绝的操作将在代理层被阻断。

How SentinelGate works

无需代码更改。无需代理修改。单一二进制文件,零依赖,子毫秒级开销。

Tools & Rules with per-tool Allow/Deny enforcement

### 在任意沙箱或容器中工作 沙箱提供隔离墙。SentinelGate 提供门卫。 沙箱和容器隔离您的代理,但它们无法控制代理在内部的行为。SentinelGate 添加了确定性治理 — 每个工具的策略、内容扫描以及完整的审计追踪 — 无论代理在何处运行。 [完整整合指南 →](docs/Guide.md#container--cloud-deployment) ## 🚀 快速开始 **安装**(macOS / Linux): ``` curl -sSfL https://raw.githubusercontent.com/Sentinel-Gate/Sentinelgate/main/install.sh | sh ``` **安装**(Windows PowerShell): ``` irm https://raw.githubusercontent.com/Sentinel-Gate/Sentinelgate/main/install.ps1 | iex ```
手动下载或从源码构建 **下载** [GitHub Releases](https://github.com/Sentinel-Gate/Sentinelgate/releases): | 平台 | 压缩包 | |----------|---------| | macOS (Apple Silicon) | `sentinel-gate_darwin_arm64.tar.gz` | | macOS (Intel) | `sentinel-gate_darwin_amd64.tar.gz` | | Linux (x86_64) | `sentinel-gate_linux_amd64.tar.gz` | | Linux (ARM64) | `sentinel-gate_linux_arm64.tar.gz` | | Windows (x86_64) | `sentinel-gate_windows_amd64.zip` | | Windows (ARM64) | `sentinel-gate_windows_arm64.zip` | **macOS / Linux:** ``` tar xzf sentinel-gate_*.tar.gz chmod +x sentinel-gate sudo mv sentinel-gate /usr/local/bin/ ``` **Windows:** 解压 `.zip` 并将 `sentinel-gate.exe` 添加到您的 `PATH`。 **从源码构建**(Go 1.26+): macOS / Linux: ``` git clone https://github.com/Sentinel-Gate/Sentinelgate.git cd Sentinelgate && go build -o sentinel-gate ./cmd/sentinel-gate ``` Windows: ``` git clone https://github.com/Sentinel-Gate/Sentinelgate.git cd Sentinelgate; go build -o sentinel-gate.exe ./cmd/sentinel-gate ```
**启动:** ``` $ sentinel-gate start SentinelGate 2.1.0 ───────────────────────────────────── Admin UI: http://localhost:8080/admin Proxy: http://localhost:8080/mcp Upstreams: 1 connected / 1 configured Tools: 12 discovered Rules: 0 active ───────────────────────────────────── ``` 打开 **http://localhost:8080/admin** 以管理策略、上游和身份。MCP 端点为 **http://localhost:8080/mcp** — 请配置您的代理以该地址和 API 密钥连接。

## 容器与沙箱快速开始 使用单条命令引导 SentinelGate — 身份、策略、上游等全部就绪。编排器在就绪时通知(`/readyz`),三种安全配置文件覆盖大多数默认用例,并配备一键停止所有代理的紧急开关。 [设置指南 →](docs/Guide.md#2-quick-start) ## 🎮 游乐场 在 30 秒内见证 SentinelGate 拦截提示词注入攻击 — 无需任何设置: **macOS / Linux:** ``` cd examples/playground ./playground.sh ``` **Windows PowerShell:** ``` cd examples\playground .\playground.ps1 ``` 该脚本创建 3 条策略,模拟 4 次代理工具调用(1 次允许,3 次被拦截),并在完成后清理。仅需 bash + curl 或 PowerShell。完整演练:[examples/playground/README.md](examples/playground/README.md)。 要重置所有内容并重新开始,请运行 `sentinel-gate reset` 或在管理界面中使用命令面板(`Cmd+K` → “reset”)。   **想在 Docker、E2B 或其他沙箱中尝试?** 请参见 [examples/](examples/) 获取开箱即用的配置。 ## 🔌 连接您的代理 SentinelGate 与任何 MCP 兼容客户端协同工作。将您的代理指向 `http://localhost:8080/mcp` 并提供 API 密钥: | 客户端 | 设置 | |--------|-------| | Claude Code | `claude mcp add --transport http sentinelgate http://localhost:8080/mcp --header "Authorization: Bearer "` | | Cursor / IDE | 在设置中添加 MCP 服务器,URL 为 `http://localhost:8080/mcp` | | Gemini CLI | 使用 `http` 传输的 MCP 配置 | | Codex CLI | 使用 `http` 传输的 MCP 配置 | | Python / Node.js / cURL | 标准 HTTP 请求,附带 `Authorization: Bearer ` 头部 | 每个客户端的完整配置片段:[连接您的代理](docs/Guide.md#4-agent-configuration)   ## ✨ 功能特性 **确定性执行** — 明确的规则,而非 AI 判断。`deny delete_*` 即被拒绝。始终如此。 **内容扫描** — 对工具参数与响应进行双向 PII、密钥和 IPI 检测。支持可配置白名单与上下文豁免。 ``` write_file({ content: "AKIA..." }) → BLOCKED (AWS key detected) ``` **会话感知策略** — 使用会话历史进行上下文相关规则判断的 CEL 函数。检测跨多个工具调用的模式,例如:读取后外泄 (`session_call_count`, `session_write_count`, `session_sequence` 等)。 ``` session_sequence(session_action_history, "read_file", "send_email") // block read-then-exfiltrate ```   **完整审计追踪** — 每个操作均记录身份、决策、时间戳与参数。支持通过 SSE 实时流式、筛选或导出。 **红队测试** — 包含 6 大类、30 种内置攻击模式。提供一键修复的交互式报告。 **身份与访问控制** — API 密钥、角色及每身份策略。每个代理获得隔离的凭证。   **MCP 原生** — 以 [MCP](https://modelcontextprotocol.io) 代理形式构建。聚合多个上游服务器,应用每工具策略,并暴露单一端点。 **基于 CEL 的规则** — [通用表达式语言](https://github.com/google/cel-go),与 Kubernetes、Firebase 和 Envoy 相同的引擎: ``` action_arg_contains(arguments, "secret") // block by content action_name == "bash" && !("admin" in identity_roles) // role-based shell control dest_domain_matches(dest_domain, "*.pastebin.com") // outbound blocking ``` 简单工具模式(`read_*`、`delete_*`)覆盖大多数场景。其余由 CEL 处理。[更多策略示例 →](docs/Guide.md#example-policies) **管理界面** — 浏览器端的策略编辑器、测试游乐场、安全设置与审计查看器。无需配置文件,无需重启。   **紧急开关** — 单条命令立即停止所有代理。一键命令恢复。用于事件响应、维护或异常情况。 **引导配置** — 完整配置 — 身份、策略、上游 —通过单条命令完成。专为容器与沙箱设计,环境可随时创建与销毁。 **安全配置文件** — 三种预置引导配置: - 严格(默认拒绝、启用内容扫描、关键操作需人工审核) - 标准(阻止破坏性操作、允许读取、监控内容) - 宽松(允许全部、记录所有)。建议从严格开始,逐步放宽信任。  
更多功能(16 项) **策略模板** — 七种预置安全配置文件(安全编码、只读、研究模式、全锁定、仅审计、数据保护、反外泄)。一键应用并可完全自定义。 **预算与配额** — 每身份用量限制:最大调用次数、写入、删除次数、每分钟速率限制。达到限制时拒绝或警告。仪表盘实时追踪进度。 **响应变换** — 五种响应变换类型,在代理接收前应用于工具响应:脱敏(正则)、截断(大小限制)、注入(前置/后缀警告)、干运行(模拟响应)、掩码(部分展示)。内置沙箱可进行测试。 **会话录制** — 记录每次工具调用的完整请求与响应载荷。时间线回放、导出为 JSON 或 CSV、可配置保留周期与隐私模式(仅记录元数据)。 **加密证据** — 每个决策使用 ECDSA P-256 签名并哈希链式存储。不可篡改的审计收据,支持欧盟 AI 法案合规包与覆盖映射。 **工具完整性** — 基于哈希的工具定义基线、架构变更检测、异常工具隔离与差异对比查看。 **行为漂移检测** — 14 天基线对比当前行为。检测工具分布偏移、拒绝率变化、时间异常与参数模式漂移。 **代理健康仪表盘** — 每个代理的拒绝率、漂移分数与违规记录,含 30 天趋势折线、基线对比与跨代理概览。支持基于健康状态的 CEL 变量策略。 **权限健康与影子模式** — 识别权限过高的代理,比较授予权限与实际使用情况,提供一键收紧建议。 **成本探索器** — 每工具成本估算、每身份预算与阈值告警、成本下钻分析,支持通过策略构建器创建预算护栏。 **命名空间隔离** — 基于角色的工具可见性,支持白名单/黑名单通配符模式。 **OpenTelemetry 导出** — 每个工具调用的跨度以标准输出导出,包含身份、决策与延迟。 **人工介入流程** — 托管工作流用于敏感操作。批准/拒绝并附带决策上下文与会话审计签名。 **Readyz 端点** — `/readyz` 信号表明您的编排器已就绪,SentinelGate 已配置并准备保护代理。无启动与保护之间的空窗期。 **自定义内容模式** — 添加自定义检测模式以识别公司特定敏感数据:内部编码、专有 API 密钥格式、客户标识符。在 22 种内置模式之上扩展。 **策略决策点** — 针对非 MCP 协议(REST、SQL、Shell、自定义)的代理,可通过 Go、Python 或 Node SDK 调用 `evaluate()` 强制执行相同 CEL 策略。同一审计追踪,协同执行。
## 🖥️ 管理界面 | 工具与规则 | 审计日志 | |:-:|:-:| | 工具与规则及每工具允许/拒绝执行 | 审计日志查看器 | | 内容扫描 | 策略测试 | |:-:|:-:| | 内容扫描(监控与强制模式) | 策略测试游乐场 | 共 14 个页面:仪表盘、引导、入门指南、工具与规则(含转换、策略测试与模拟选项卡)、访问(配额管理)、审计日志、会话、通知、合规、权限、安全、红队、成本分析、以及客户端(代理健康)。 ## 📋 配置 如需基础设施调优,可选配置文件: ``` server: http_addr: ":8080" rate_limit: enabled: true ip_rate: 100 ``` 完整参考:[配置](docs/Guide.md#7-configuration-reference) · [命令行界面](docs/Guide.md#8-cli-reference) · [API](docs/Guide.md#9-admin-api-reference) ## ⚠️ 限制 完整的 [威胁模型](docs/Guide.md#13-threat-model-and-limitations)。 ## 💼 SentinelGate Pro 扩展保留 · SIEM 集成 · 单点登录 · 多租户 · 高级成本分析(包含计费 API 集成) · 跨代理健康导出 — [sentinelgate.co.uk](https://www.sentinelgate.co.uk) ## 安全性 发现漏洞?请参考 [Security.md](Security.md) 了解负责任披露与补丁 SLA。 ## 贡献 欢迎提交错误修复、功能、文档与反馈。详见 [CONTRIBUTING.md](CONTRIBUTING.md)。代码贡献需签署 CLA — 参见 [CLA.md](CLA.md)。 ## 许可证 [AGPL-3.0](LICENSE) — 免费使用、修改与自托管。商业许可请联系 [联系我们](mailto:hello@sentinelgate.co.uk)。

官网 · 文档 · 版本发布

标签:AGPL-3.0, AI代理安全, CEL策略, EVTX分析, Go语言, MCP代理, RBAC, SentinelGate, Streamlit, Web截图, 子域名突变, 审计追踪, 容器安全, 提示词工程, 日志审计, 权限管理, 模型越狱, 沙箱安全, 用户代理, 确定性规则, 程序破解, 策略决策点, 访问控制, 请求拦截