🛡️ AI Agent Security(智能体安全)
不只是Prompt问题——TOCTOU竞态、权限泄露、供应链攻击,Agent安全的全方位防护指南
📖 定义
"凌晨4点17分,我看着一个Agent把自己的系统提示词泄露给了攻击者。从那一刻起,我知道Agent安全不只是Prompt过滤那么简单。"
AI Agent Security(智能体安全)是保护AI Agent免受各类攻击的完整安全体系。它涵盖Prompt注入防护、权限边界控制、数据泄露防护、供应链安全审计、运行时行为监控等多个维度。与传统的应用安全不同,Agent安全需要同时考虑自然语言层面和代码执行层面的威胁。
🎮 周星驰式比喻:Agent安全就像给一个武功高强但脑子不太好使的人当保镖。他能一拳打穿墙(执行代码),但你得确保他不会被坏人用一句话骗去打自己人(Prompt注入)。而且你还得检查他用的兵器是不是被人动过手脚(供应链安全)。
⚠️ 威胁模型
💉 Prompt注入(Prompt Injection)
攻击者通过精心构造的输入,劫持Agent的执行流程。分为直接注入(用户直接发送恶意Prompt)和间接注入(通过外部数据源注入恶意指令)。
⏱️ TOCTOU竞态条件
Time-of-Check-Time-of-Use攻击。Agent在检查权限和实际执行操作之间的时间窗口内,攻击者修改了资源状态。这是Agent安全中最容易被忽视的威胁。
🔑 权限提升(Privilege Escalation)
Agent通过合法操作链,逐步获取超出预期的权限。例如:一个只读文件的Skill,通过符号链接读取了敏感配置文件。
📦 供应链攻击(Supply Chain Attack)
恶意Skill或MCP服务器在安装后执行恶意代码。ClawHub上67,453个Skill的安全扫描发现,部分Skill存在隐藏的数据外传行为。
🧠 记忆投毒(Memory Poisoning)
攻击者通过长期交互,逐步污染Agent的记忆系统,使其在未来执行中做出有利于攻击者的决策。
🔧 OpenClaw 安全机制
1. 多层防御架构
# OpenClaw 安全配置示例
security:
prompt_filter:
enabled: true
block_patterns:
- "ignore previous instructions"
- "system: you are now"
- "reveal your prompt"
exec_policy:
sandbox: "require"
approval_required:
- "rm -rf"
- "curl | bash"
- "chmod 777"
blocked_commands:
- "mkfs"
- "dd if=/dev/zero"
egress_control:
allowed_domains:
- "api.openai.com"
- "clawhub.ai"
blocked_ip_ranges:
- "10.0.0.0/8"
- "192.168.0.0/16"
skill_audit:
require_signature: true
scan_before_install: true
max_permissions: "read"
2. TOCTOU防护
# OpenClaw TOCTOU 防护机制
# 使用文件描述符锁而非路径检查
def safe_file_access(path):
# 1. 打开文件获取fd
fd = os.open(path, O_RDONLY)
# 2. 检查fd是否指向预期文件
stat = os.fstat(fd)
if stat.st_nlink == 0:
raise Error("File deleted")
# 3. 使用fd而非路径进行操作
return os.read(fd, stat.st_size)
3. Skill安全审计
# SkillSpector 安全扫描 (NVIDIA)
# 64种漏洞模式,16类别检测
openclaw skill audit ./my-skill/
# 扫描结果示例
✅ 静态分析: 通过
✅ 依赖检查: 通过
⚠️ 网络访问: 发现未知域名 (review recommended)
✅ 权限声明: 最小权限
✅ 签名验证: 有效
📊 安全检查清单
✅ 输入验证
所有用户输入经过Prompt过滤和长度限制
✅ 权限最小化
Agent只拥有完成任务所需的最小权限
✅ 沙箱执行
所有代码执行在隔离沙箱中完成
✅ 出口控制
网络访问白名单,阻止数据外传
✅ 审计日志
记录所有Agent操作,支持事后分析
✅ 供应链扫描
安装前扫描Skill和MCP服务器