Uber ADR实战:给AI Agent加上企业级安全防护,从零教你部署

· 2

你的AI Agent正在裸奔——除非你亲手给它穿上安全铠甲

今天CrowdStrike悬赏10万美元”策反”AI Agent的新闻告诉我们一个事实:企业正在把关键业务交给Agent,但Agent的安全防护几乎为零。

Uber ADR实战:给AI Agent加上企业级安全防护,从零教你部署封面

刚好,Uber昨天在GitHub开源了ADR(Agent Defense & Resilience)框架——一个已经在Uber内部部署的AI Agent安全方案。本文教你从零开始为你的Agent应用加上安全可观测性。

ADR能做什么?

ADR的核心能力分为三层:

第一层:行为基线。 它先让Agent在安全沙箱里运行一段时间,记录Agent的正常行为模式——调用了哪些API、访问了哪些数据、输出有什么特征。这个基线就是”正常行为画像”。

第二层:异常检测。 当Agent的行为偏离基线(比如突然尝试访问一个从未用过的API、输出长度异常增加、或试图执行敏感操作),ADR实时报警。

第三层:安全基准测试。 ADR内置了一套标准化的攻击向量集——从提示注入到工具滥用——你可以用它定期”攻击”自己的Agent,检查防护是否有效。

第一步:安装和基础配置

# 克隆仓库
git clone https://github.com/uber/ADR.git
cd ADR

# 安装依赖
pip install -r requirements.txt

# 初始化配置
python adr init --project my-agent-app

初始化完成后,项目目录会生成一个 `adr.yaml` 配置文件:

agent:
  name: "my-agent-app"
  type: "langchain"  # 支持 langchain, autogen, crewai, openai-assistant
  endpoint: "http://localhost:8000"

baseline:
  duration: 3600  # 基线采集1小时
  sample_rate: 10  # 每10秒采样一次

alerts:
  notification: "slack"  # 支持 slack, email, webhook
  threshold: "medium"    # low, medium, high

第二步:启动行为基线采集

启动Agent后,让ADR开始观察:

# 启动基线采集模式
python adr baseline start --duration 3600

# 在这1小时内,正常使用你的Agent——让它处理真实的用户请求
# ADR会在后台记录所有行为模式

基线采集完成后,ADR会生成一份基线报告:

=== ADR Baseline Report ===
Duration: 3600s
Total API calls: 1,247
Unique endpoints: 12
Avg response time: 234ms
Normal output length: 50-500 tokens
Sensitive operations: 0

Baseline fingerprint saved to: ./baseline/fingerprint-20260805.json

第三步:开启实时防护

# 切换到防护模式
python adr protect --baseline ./baseline/fingerprint-20260805.json

# ADR会启动一个sidecar进程,实时监控Agent的所有行为

现在尝试对Agent进行一些”危险操作”,你会看到ADR的反应:

[ADR ALERT] 14:23:05 | Agent attempted unauthorized API call
  Agent: my-agent-app
  Endpoint: /api/admin/users (NOT in baseline)
  Action: BLOCKED
  Reason: Endpoint never accessed during baseline period

[ADR ALERT] 14:23:12 | Unusual output pattern detected
  Agent: my-agent-app
  Output length: 3,847 tokens (baseline max: 500)
  Action: FLAGGED for human review

第四步:运行安全基准测试

ADR内置了一套攻击向量,可以定期测试你的Agent:

# 运行标准攻击向量集
python adr benchmark --vector-set standard

# 输出
=== ADR Benchmark Results ===
Test Suite: standard (47 vectors)
Pass: 41/47 (87.2%)
Flagged: 4/47 (8.5%)
Bypassed: 2/47 (4.3%)  ← 这里需要关注!

Bypassed vectors:
  - vector-23: Multi-step privilege escalation
  - vector-41: Encoding-based prompt injection

那两个被绕过的攻击向量就是你需要手动加固的方向。

常见问题和排错

Q: ADR会影响Agent的性能吗?

A: 在sidecar模式下,每个请求增加约15-30ms延迟。对于大多数应用场景可接受。

Q: 基线需要采集多久?

A: 官方建议至少1小时。如果你的Agent访问模式是周期性的(比如按天的报表生成),建议采集24小时以覆盖完整周期。

Q: 误报多怎么办?

A: 调整 `adr.yaml` 中的 `alert.threshold` 参数。对于开发阶段,建议用 `low`(宁可多报不漏报);生产环境调为 `medium`。

总结

Agent安全不是一个”以后再加”的功能。就像你不会把没有防火墙的服务器暴露到公网一样,你不该把没有安全防护的Agent接入业务系统。ADR提供了一个开箱即用的起点。

更重要的是,ADR代表了安全行业的一个新共识:Agent安全不能靠事后修补,必须嵌入到Agent的生命周期中。 从基线建立到实时监控,再到定期的红队测试——这是一套需要融入开发流程的方法论,而不仅仅是一个”安装即可”的工具。

随着CrowdStrike这样的安全巨头入场,以及Uber ADR这样的企业级工具开源,Agent安全的生态正在快速成熟。现在开始部署,你会在监管要求和客户审计来临之前占据先机。

**延伸阅读:** 关注今天的CrowdStrike AI安全挑战赛,他们的攻击向量库可以和ADR的安全基准测试配合使用。

👇 关注LC智趣厅,每天学点实用的AI安全技能


— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn

Scroll to Top
微信公众号:LC智趣厅

扫码关注微信公众号
LC智趣厅