🌐 Egress Security(网络出口安全)
管住Agent的"嘴"——控制它能跟谁说话,说什么话
📖 定义
"Mythos安全团队发现,一个被攻破的Agent平均有两周的dwell time。两周,够它把你的数据传遍全世界了。"
Egress Security(网络出口安全)是控制AI Agent对外网络访问的安全机制。它决定了Agent能访问哪些域名、IP地址和端口,以及能传输什么类型的数据。在Agent安全体系中,出口控制是防止数据泄露的最后一道防线。
🎮 周星驰式比喻:出口安全就像给Agent装了一个"翻译官"——它想跟外面说话,必须先经过翻译官审核。翻译官手里有一份白名单,只有名单上的人才能对话。而且翻译官还会检查Agent说的话里有没有泄露秘密。如果Agent想跟一个陌生人说"我家保险箱密码是1234",翻译官会直接把这句话吞掉。
⚙️ 核心机制
1. 域名白名单
# OpenClaw 出口控制配置
egress:
mode: "allowlist" # allowlist | denylist | proxy
allowed_domains:
- "api.openai.com"
- "api.anthropic.com"
- "clawhub.ai"
- "github.com"
blocked_domains:
- "*.pastebin.com"
- "*.ngrok.io"
- "*.requestbin.com"
blocked_ip_ranges:
- "10.0.0.0/8" # 内网
- "172.16.0.0/12" # 内网
- "192.168.0.0/16" # 内网
2. 数据泄露防护(DLP)
# 数据泄露防护规则
dlp:
patterns:
- name: "API Key"
regex: "sk-[a-zA-Z0-9]{48}"
action: "block"
- name: "Credit Card"
regex: "\\d{4}[- ]?\\d{4}[- ]?\\d{4}[- ]?\\d{4}"
action: "block"
- name: "SSN"
regex: "\\d{3}-\\d{2}-\\d{4}"
action: "block"
max_upload_size: "10mb"
log_all_outbound: true
3. 协议级控制
🔒 HTTPS Only
强制所有出站连接使用TLS加密,阻止明文HTTP请求
🚫 DNS过滤
在DNS层面阻止Agent解析恶意域名
📊 流量审计
记录所有出站请求的URL、大小、频率
⏱️ 速率限制
限制Agent的请求频率,防止数据批量外传
🔧 OpenClaw 实战配置
场景1:MCP服务器出口控制
# MCP服务器的出口策略
mcp_servers:
filesystem:
egress: "none" # 文件系统不需要网络
web_search:
egress: "restricted"
allowed:
- "api.search.brave.com"
- "search.yahoo.com"
github:
egress: "restricted"
allowed:
- "api.github.com"
- "github.com"
场景2:Skill级别的出口策略
# SKILL.md 声明网络需求
## Network Requirements
- egress: restricted
- required_domains:
- api.example.com (HTTPS, GET/POST)
- cdn.example.com (HTTPS, GET only)
- max_requests_per_minute: 30
- data_upload: false
🎯 最佳实践
- 默认拒绝:所有出站流量默认被阻止,只允许白名单域名
- 内网隔离:Agent永远不应该访问内网资源(除非明确授权)
- DLP扫描:所有出站数据必须经过敏感信息扫描
- 日志审计:记录所有出站请求,支持事后溯源
- 分层控制:不同信任级别的Agent使用不同出口策略
- 定期审查:定期审查白名单,移除不再需要的域名