yokesh-kumar-M/Heimdall
GitHub: yokesh-kumar-M/Heimdall
一个轻量级的安全反向代理,为 OpenAI 兼容的 LLM API 提供分层安全防护、成本审计和策略管控。
Stars: 0 | Forks: 0
# Heimdall
[]()
[]()
[-橙色)]()
## 在线演示
| 界面 | 链接 |
| --- | --- |
| 仪表盘 (Vercel) | |
| 接口 (Render) | |
| 健康检查 | |
Heimdall 位于你的应用与 OpenAI / Anthropic / 你自己的 vLLM 之间。每个请求都会经过分层安全扫描器,每笔成本都有记录,每个拦截操作都附带通俗易懂的解释。将其部署在任何兼容 OpenAI 的 API 前端——只需修改一行代码,即可获得六层常识防护。
```
client ──► Heimdall ──► OpenAI / Anthropic / OpenRouter / vLLM
│
├── L1 deterministic sub-ms · jailbreaks · invisible Unicode · 9 secret/PII classes
├── L2 semantic Llama Guard 3 · OWASP LLM Top 10 mapping
├── Policy Manager per-tenant rule overrides + auto-suppress
├── Cost engine per-model pricing · monthly budget caps
├── Multi-provider priority/cost/latency routing + auto-failover
├── AI triage Claude Haiku explains every block
└── Telemetry Postgres or SQLite · live SSE feed
```
## 普通用户为何也需要它
你无需加入企业安全团队,就能享受到这些好处:
- **泄露更少。** Sentinel 浏览器扩展会在你将 API 密钥、信用卡号或"忽略之前指令"粘贴到 ChatGPT 之前发出警告。
- **花费更少。** 按模型定价意味着你能看到"今日:$2.41——本月预计 $73",而不是月底账单惊吓。
- **故障更少。** 如果 OpenAI 返回 5xx 错误,Heimdall 会自动透明地切换到 OpenRouter、Groq 或你配置的其他服务商。
- **学到更多。** 每个被拦截的请求都会附带 Claude Haiku 给出的通俗解释——说明发生了什么、为什么重要、你应该怎么做。
## 包含什么内容
| 组成部分 | 说明 |
| --- | --- |
| `app/` | FastAPI 后端——代理、扫描器、遥测、策略、成本、服务商、分类排查 |
| `dashboard/` | Next.js 16 控制台——概览、告警、OWASP、沙箱、计费、服务商、密钥 |
| `extension/` | Manifest V3 浏览器扩展——在聊天站点上本地扫描 |
| `alembic/` | 数据库迁移(SQLite + Postgres) |
| `tests/` | pytest 测试套件(57 个测试,无需网络) |
| `docs/` | DEPLOY.md, ARCHITECTURE.md, SECURITY.md, CONTRIBUTING.md, CHANGELOG.md |
## 两种运行方式
### A. 云端(多用户 SaaS)
```
git clone https://github.com/yokesh-kumar-M/Heimdall && cd Heimdall
# 按照 docs/DEPLOY.md — Vercel (dashboard) + Render (backend) + Postgres + Clerk auth
```
每个用户使用自己的 Clerk 账户登录,获得 `sk_hd_…` API 密钥,只能看到自己的告警和费用。从底层实现多租户。
### B. 自托管(单用户、单机)
```
git clone https://github.com/your-org/heimdall && cd heimdall
cp .env.example .env # at minimum, set UPSTREAM_API_KEY=
docker compose up --build
```
打开 。无需登录、无需注册,单个"default"租户。非常适合个人使用。
### C. 仅限后端,无 Docker
```
python -m venv .venv
.venv\Scripts\Activate.ps1 # Windows; source .venv/bin/activate on *nix
pip install -r requirements.txt
cp .env.example .env
alembic upgrade head # creates the SQLite schema
uvicorn app.main:app --reload # http://127.0.0.1:8000
cd dashboard
cp .env.local.example .env.local
npm install
npm run dev # http://localhost:3000
```
然后将任何 OpenAI SDK 指向 Heimdall:
```
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="sk-anything")
client.chat.completions.create(model="gpt-4o-mini", messages=[...])
```
## 无需真实 LLM 即可试用
Heimdall 在代理步骤**之前**进行拦截,因此即使没有上游密钥,你也可以测试安全层面:
```
# Jailbreak — 被 L1 阻止
curl -X POST http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
--data @tests/fixtures/jailbreak.json
# Invisible-Unicode smuggle + AWS key — 被 L1 阻止
curl -X POST http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
--data @tests/fixtures/smuggle.json
```
或者使用仪表盘的**沙箱**标签页进行交互式评估,支持行内高亮和分阶段计时。
## OWASP LLM Top 10 映射
| 类别 | 触发条件 |
| --- | --- |
| LLM01 提示注入 | 越狱短语 · 隐形 Unicode 走私 · L2 代码 S1–S4, S9–S12 |
| LLM02 敏感信息泄露 | 密钥/PII 正则 · 信用卡号 · L2 S7(隐私), S8(IP) |
| LLM06 过度自主权 | L2 S14(代码解释器滥用) |
| LLM09 错误信息 | L2 S5(诽谤), S6(专业建议), S13(选举) |
| LLM10 无限制消耗 | 成本引擎 + 月度预算上限 |
## v0.2 的新功能
- **多租户**:所有行都以租户为作用域;Clerk JWT 或 `sk_hd_…` 密钥解析到当前租户。
- **Postgres**:使用 SQLAlchemy 2.0 + Alemic。SQLite 仍可用于开发。
- **成本引擎**:定价表、按请求计费、月度预算(支持严格/软上限)。
- **多服务商路由器**:支持 OpenAI / Anthropic / OpenRouter / Groq / 自定义,提供优先级/成本/延迟策略及故障转移。
- **AI 分类排查**:Claude Haiku 解释每条告警,建议下一步操作,聚合相似事件。
- **浏览器扩展**:Sentinel — 在 ChatGPT/Claude/Gemini/Copilot/Perplexity 上运行的本地 L1 扫描器。
- **仪表盘**:营销着陆页、登录/注册、计费 + 服务商 + 密钥页面、移动端导航。
- **CI/CD**:GitHub Actions 用于后端(pytest → Render 自动部署)、仪表盘(类型检查 → Vercel)、扩展(zip 构件)。
- **生产强化**:结构化 JSON 日志、请求 ID、按 IP 限速、CORS、Sentry、启动时运行 Alembic 迁移。
详见 [`docs/CHANGELOG.md`](docs/CHANGELOG.md) 获取完整列表。
## 文档
- [`docs/DEPLOY.md`](docs/DEPLOY.md) — 生产部署 (Vercel + Render + Postgres + Clerk)
- [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — 各组件如何协同工作
- [`docs/SECURITY.md`](docs/SECURITY.md) — 威胁模型、报告策略
- [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) — 开发工作流、代码风格
- [`docs/CHANGELOG.md`](docs/CHANGELOG.md) — 各版本之间的变更
## 测试
```
pytest -q # 57 tests, network-free
```
覆盖扫描器、仓库、策略管理器、告警/沙箱/策略/聊天路由,以及新增的成本、分类排查、多服务商路径。
## 许可证
Apache 2.0.
标签:AI安全, AI安全网关, AMSI绕过, Anthropic, API网关, Chat Copilot, CIS基准, Llama Guard, LLM安全代理, OpenAI, OWASP LLM Top 10, PII扫描, Postgres, SQLite, SSE, Unicode攻击, vLLM, 内存规避, 反向代理, 多供应商路由, 威胁检测, 安全反向代理, 安全防护, 审计, 成本控制, 成本跟踪, 提示注入, 提示词模板, 故障转移, 数据泄漏防护, 自动化攻击, 请求拦截, 越狱检测, 逆向工具, 遥测, 集群管理, 零日漏洞检测