shrehs/llm-security-gateway

GitHub: shrehs/llm-security-gateway

基于FastAPI构建的企业级LLM安全网关,通过可插拔扫描器和策略引擎在prompt到达模型前执行安全检查、访问控制和响应脱敏。

Stars: 0 | Forks: 0

# LLM 安全网关 一个企业级 API 网关,位于用户和大型语言模型(LLM)之间,用于在 prompt 到达模型之前执行安全、治理和策略决策。 该网关基于 FastAPI、Docker 和模块化插件架构构建,可执行 prompt 检查、策略评估、支持 RBAC 的访问控制、响应脱敏以及 OWASP LLM Top 10 映射,同时保持与提供商无关。 ## 架构 ``` Client │ ▼ FastAPI Gateway API │ Request Validation │ ▼ ┌──────────────────────────┐ │ Scanner Registry │ └──────────────────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ Secrets PII Prompt URL Scanner Scanner Scanner Injection │ ▼ Risk Engine │ ▼ Policy Engine (RBAC) │ ┌─────────────┴─────────────┐ │ │ BLOCK ALLOW │ │ ▼ ▼ Audit Logger LLM Provider │ ▼ Response Redaction │ ▼ Audit Logger │ ▼ API Response ``` ``` API Layer -> Request Validation -> Gateway Orchestrator -> Scanner Registry -> Async Security Scanners -> Risk Engine -> YAML Policy Engine -> LLM Provider Registry -> Response Scanner -> Redaction Stage -> Structured Audit Log -> Response ``` ## 企业级功能 - 通过共享的 `BaseScanner` 接口实现可插拔的 scanner 框架 - 通过 `configs/policies.yaml` 启用 scanner - 通过 `ALLOW`、`WARN`、`REDACT` 和 `BLOCK` 实现“策略即代码” - 使用 `user_id`、`role`、`department` 和 `clearance` 进行支持 RBAC 的决策 - 使用 `X-Request-ID` 进行请求追踪 - 包含延迟和违规元数据的结构化审计事件 - 在每个网关响应中提供每个 scanner 的执行指标 - OWASP LLM Top 10 类别映射 - 用于 server-sent event 检查的模拟流式 endpoint - 针对敏感模型输出的响应脱敏 ## 当前 Scanner - `SecretScanner` - `PIIScanner` - `PromptInjectionScanner` - `URLScanner` - `MalwareURLScanner` 每个 scanner 均实现: ``` async def scan(self, text: str) -> list[Finding]: ... ``` ## 策略配置 策略位于 `configs/policies.yaml` 中。 ``` scanners: enabled: - secret - pii - injection - url - malware_url policies: PII: HIGH: BLOCK MEDIUM: REDACT LOW: WARN thresholds: warn: 30 redact: 60 block: 80 ``` ## 端点 ### GET /health 返回服务健康元数据。 ### POST /gateway/chat 接受可选的 `X-Request-ID` 标头。如果省略,网关将创建一个 UUID,并将其在响应主体和响应标头中返回。 ``` { "prompt": "Hello, how are you?", "model": "llama3", "user_id": "demo-user", "role": "employee", "department": "general", "clearance": "public" } ``` 示例响应: ``` { "request_id": "req-123", "decision": "ALLOW", "risk_score": 0, "risk_level": "NONE", "violations": [], "owasp": [], "scanner_metrics": [], "llm_response": "Mock response from llama3." } ``` ### POST /gateway/chat/stream 返回 server-sent event,其中包含网关元数据,随后是安全的模型输出。 ## 运行 ``` .\.venv\Scripts\python.exe -m pip install -e ".[dev]" .\.venv\Scripts\python.exe -m pytest -q .\.venv\Scripts\python.exe -m uvicorn app.main:app --reload ```
标签:AI安全, API网关, AV绕过, Chat Copilot, Docker, FastAPI, LLM应用防火墙, Streamlit, 安全防御评估, 数据脱敏, 访问控制, 请求拦截, 逆向工具, 零日漏洞检测