Skip to content

源码与生态分析

AI 安全领域涌现了大量开源项目。理解它们的设计取舍,有助于在实际架构中做出正确选择。

1. OPA(Open Policy Agent)

  • 定位:通用策略引擎,用 Rego 语言描述策略,以 sidecar 或独立服务方式提供授权决策。
  • 核心概念:Policy、Data、Query。OPA 接收 JSON 输入,返回 allow/deny 决策。
  • AI 场景:LLM Gateway 中的路由/限流/授权、Agent 工具调用审批、RAG 多租户数据访问。
  • 源码入口cmd/run.go 启动 server,rego/rego.go 编译与执行 Rego。
  • 优势:与语言无关、高性能、生态丰富。
  • 劣势:Rego 学习曲线陡峭,复杂关系授权不如 OpenFGA 自然。
rego
package llm.auth

import future.keywords.if
import future.keywords.in

default allow := false

allow if {
    input.user.role == "developer"
    input.action == "llm:chat"
    input.model in ["gpt-mini", "claude-haiku"]
}

2. OpenFGA

  • 定位:Google 开源的 Relationship-Based Access Control(ReBAC)引擎。
  • 核心概念:Authorization Model、Tuples、Stores、Check API。
  • AI 场景:多用户共享项目/文档/RAG 集合、Agent 之间的 capability 委托。
  • 源码入口pkg/server 提供 gRPC/HTTP,pkg/tuple 处理关系元组。
  • 优势:天然表达“用户 U 是文档 D 的 editor”这类关系。
  • 劣势:相对年轻,生态不如 OPA 成熟。
python
# 伪代码:OpenFGA Check
body = {
    "tuple_key": {
        "user": "user:alice",
        "relation": "viewer",
        "object": "document:report-2025",
    }
}
response = openfga_client.check(body)

3. HashiCorp Vault

  • 定位:密钥与敏感数据管理平台。
  • 核心引擎:KV、PKI、Transit(加密即服务)、AWS/GCP/Azure 动态凭证、Database 动态凭证。
  • AI 场景
    • 存储 LLM provider API key,按租户/环境隔离。
    • Transit 引擎加密模型权重或 Embedding。
    • PKI 引擎签发服务间 mTLS 证书。
  • 源码入口vault/ 核心逻辑,builtin/ 各引擎实现。
  • 优势:功能全面、高可用、生态成熟。
  • 劣势:自托管运维复杂,cloud 托管版成本不低。

4. SPIFFE / SPIRE

  • 定位:工作负载身份标准(SPIFFE)与实现(SPIRE)。
  • 核心概念:SVID(SPIFFE Verifiable Identity Document)、Trust Domain、Workload Attestation。
  • AI 场景:为 K8s Pod、VM、容器颁发短期身份,服务间通过 mTLS 互相认证。
  • 源码入口pkg/serverpkg/agent
  • 优势:与云厂商无关,解决“服务账号泛滥”问题。
  • 劣势:需要改造服务调用方式,落地周期较长。

5. Istio / Envoy

  • 定位:Service Mesh,提供服务间 mTLS、授权策略、可观测。
  • 核心安全资源:PeerAuthentication、RequestAuthentication、AuthorizationPolicy。
  • AI 场景
    • 推理服务与向量库之间强制 mTLS。
    • 按 namespace/service account 限制访问。
    • egress gateway 控制外部模型 API 访问。
  • 源码入口:Istio pilot/pkg/security、Envoy source/extensions/filters/http
  • 优势:无需修改应用代码即可实施零信任网络。
  • 劣势:引入延迟与运维复杂度。

6. Microsoft Presidio

  • 定位:PII 识别与脱敏框架,支持文本与图像。
  • 核心组件:Analyzer(NER + 正则)、Anonymizer(替换/遮蔽/哈希/加密)。
  • AI 场景:训练数据清洗、Prompt/Response 日志脱敏、RAG 片段 PII 处理。
  • 源码入口presidio-analyzerpresidio-anonymizer
  • 优势:可扩展、支持自定义识别器。
  • 劣势:纯本地部署对多语言支持有限,性能不如专用云服务。
python
from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine

analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()
results = analyzer.analyze(text="My email is alice@example.com", language="en")
print(anonymizer.anonymize(text="My email is alice@example.com", analyzer_results=results).text)

7. Llama Guard / NeMo Guardrails

  • Llama Guard:Meta 发布的输入/输出安全分类模型,基于 LLM 做 fine-grained 有害内容检测。
  • NeMo Guardrails:NVIDIA 开源的 Guardrails 框架,通过 YAML/Colang 定义对话策略与护栏。
  • AI 场景:内容安全、话题限制、防止越狱、输出合规。
  • 优势:可本地部署、可针对场景微调。
  • 劣势:增加推理成本与延迟,需持续更新安全类别。

8. Sigstore / cosign / SLSA

  • Sigstore:开源软件签名与透明日志生态。
  • cosign:容器镜像与 blob 签名工具。
  • SLSA:供应链安全框架,定义 provenance 与构建等级。
  • AI 场景
    • 对训练镜像、模型文件、推理镜像签名。
    • 验证模型来源与构建 provenance。
  • 源码入口sigstore/cosign
  • 优势:降低密钥管理负担,提供公开可验证性。

9. HuggingFace Safetensors

  • 定位:安全的模型权重序列化格式,替代 pickle-based .bin
  • 优势:避免 pickle 反序列化远程代码执行风险,加载更快,支持内存映射。
  • AI 场景:模型仓库、模型分发、推理服务加载权重。

10. 工具对比表

项目主要能力最佳场景学习曲线运维复杂度
OPA通用策略引擎Gateway/Runtime 授权
OpenFGAReBAC文档/项目/集合共享
VaultSecrets/加密/PKIAPI Key、模型加密
SPIRE工作负载身份服务间 mTLS
Istio/Envoy零信任网络K8s 微服务安全
PresidioPII 识别/脱敏数据清洗、日志脱敏
Llama Guard内容安全分类输入/输出过滤
NeMo Guardrails对话策略Agent 行为约束
Sigstore/cosign签名/溯源镜像/模型签名
Safetensors安全权重格式模型存储分发

小结

开源生态覆盖了 AI 安全的大部分层面,但没有单一工具能替代体系设计。下一章通过 Mini Demo 展示如何把这些控制点串成一个可运行的最小闭环。

Released under CC-BY-SA-4.0 License.