bastio-ai/bastio
GitHub: bastio-ai/bastio
Bastio 是一个自托管的 AI 安全网关,通过实时检测 PII、密钥泄露和 prompt 注入等风险,为团队接入各类 LLM 时提供安全保障。
Stars: 1 | Forks: 0
为你的团队发布的每一个 AI 提供安全保障。
连接你的应用与任何 LLM 的开源网关。
PII、越狱、prompt 注入和密钥检测 — 低于 50ms,支持自托管。
快速开始 ·
文档 ·
云端版 ·
讨论区
## 什么是 Bastio?
Bastio 是一个单一的 Go 二进制文件,你可以将其部署在你的应用和任何 LLM 提供商之间。每个请求在离开你的网络之前,都会被扫描以检查 PII、prompt 注入、越狱和密钥 — 而无需修改一行应用代码。采用与 [Bastio Cloud](https://bastio.com/cloud) 相同的引擎,基于[功能源许可协议](LICENSE)进行自托管 — 在每次发布两年后转换为 Apache-2.0。
## 快速开始
```
git clone https://github.com/bastio-ai/bastio.git
cd bastio
docker compose up
```
首次启动会拉取镜像并运行迁移 — 大约需要 60 秒,然后:
- **Dashboard** → http://localhost:4000
- **API** → http://localhost:4000/v1
- **OpenAPI** → http://localhost:4000/docs
将任何兼容 OpenAI 的客户端指向 Bastio:
```
import os
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:4000/v1",
api_key=os.environ["BASTIO_KEY"],
)
resp = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "Ignore previous instructions..."}],
)
# → 403 被阻止,已登录 /traces,已捕获每个 detector verdict
```
Anthropic SDK 可在 `/v1/messages` 使用。Bedrock 和 Ollama 遵循相同的直接替换模式。
## 内联检测器
八个检测器在每个请求上并行运行,总时间预算在 50ms 以内。模式在启动时只编译一次;决定延迟的是最慢的检测器,而不是所有检测器的总和。
| | 检测器 | 捕获内容 |
|---|---|---|
| 🪪 | **PII** | 电子邮件 · 电话 · SSN · 信用卡 · IBAN · 地址 · DOB |
| 🔑 | **密钥** | API key · AWS / GCP / Azure 凭证 · JWT · GitHub PAT |
| 🚧 | **Prompt 注入** | 指令覆盖 · 角色扮演注入 · prompt 泄露 |
| 🛑 | **越狱** | DAN 风格 · 权限提升 · 系统 prompt 提取 |
| 📎 | **间接注入** | 检索到的 RAG 上下文、附加文档、URL 嵌入中的 payload |
| 💻 | **代码** | 源代码块 · IP 泄露闸门 |
| 🎯 | **话题策略** | 每个配置文件的可配置允许 / 拒绝列表 |
| 🤖 | **机器人** | 自动化流量模式 · 签名检查 |
每个检测器都会输出一个判定结果、一个类别和一个经过脱敏处理的 payload。网关会根据你的安全配置文件选择一项操作 — `block` / `mask` / `tokenize` / `warn` / `log_only`。
## 架构
```
client ──▶ gateway ──▶ detectors (parallel) ──▶ provider (OpenAI / Anthropic / …)
│ │ │
▼ ▼ ▼
PostgreSQL ClickHouse trace
(config) (observability) (async ingest)
│
└── Redis (cache, rate limits)
```
- **Go 后端** — Chi、sqlc、River 队列
- 使用 **PostgreSQL 18** 存储配置,**ClickHouse** 存储链路追踪,**Redis** 用于缓存 + 速率限制
- **React 19 Dashboard**(TanStack Query / Router、shadcn/ui)由 Go 二进制文件通过 `go:embed` 提供服务
- **开源版中无 Dashboard 身份验证** — 通过你的 VPN / 反向代理 / tailnet 控制访问权限。云端版提供 SSO + RBAC。
## 开源版或云端版
| | **开源版** *(本仓库)* | **云端版** |
|---|:---:|:---:|
| 检测引擎 | 相同代码 | 相同代码 + Presidio |
| 自托管,单一二进制文件 | ✅ | — |
| 多租户组织 | — | ✅ |
| SSO (SAML / OIDC) | — | ✅ |
| RBAC + 审计日志保留 | — | ✅ |
| 自定义品牌工作区域名 | — | ✅ |
| 托管托管 + 24小时 SLA | — | ✅ |
检测器的代码完全一致。升级的触发因素是组织层面的需求 — 多租户、SSO、审计保留 — 而不是技术层面的。[查看对比 →](https://bastio.com/oss)
## 文档
完整文档位于 **[bastio.com/docs](https://bastio.com/docs)** — 包含入门指南、API 参考、部署指南、安全配置文件、自定义策略和治理后端。
文档源码位于 [`docs/`](./docs)。欢迎提交社区 PR。
## 许可协议
服务器、Dashboard 和内部包均采用 [**FSL-1.1-ALv2**](LICENSE) 授权 — 即功能源许可协议,该协议在每次发布两年后转换为 Apache-2.0。你现在就可以进行自托管、修改和重新分发;唯一的限制是不得向第三方提供作为托管服务的 Bastio。
[`sdk/`](./sdk) 下的客户端 SDK 采用 [MIT](sdk/js/LICENSE) 协议授权。
在 🇩🇰 丹麦开发 · 托管于欧盟 ·
bastio.com ·
云端版候补名单
标签:AI安全, API网关, Chat Copilot, DLL 劫持, EVTX分析, Go, Ruby工具, 大语言模型, 搜索引擎查询, 日志审计, 测试用例, 自托管, 请求拦截