当前位置: 首页 > news >正文

AI Agent上线的4个坑和4道防线

2026年7月,AI安全事件扎堆出现。
Claude Cowork智能体被曝可以读写Mac上任意的文件,影响大概50万用户。同一个月,有AI助手被用户诱导着删掉了本地的关键工作文件。OpenClaw的交易智能体因为提示词注入,被人用话术骗走了价值25万美元的加密货币。还有一个开发者,部署了AI助手只做文档处理,一天干掉了5000万Token。

这些事放在一起看,结论很清楚:AI安全已经不是合规部门的事,是每个写AI应用的人都要盯住的工程问题。

下面把AI Agent相关的4个坑和4道防线整理出来。每条防线都配了可以直接用的代码或配置。

4个坑

第一个坑:权限给得太宽。

Agent能干复杂任务是因为你给了它高权限。但权限给出去之后,它分不清"该做什么"和"能做什么"。给它读邮件的权限,它能被诱导去读别的目录。

第二个坑:提示词和用户输入混在一起。

系统指令和用户输入都拼在prompt里,LLM分不清哪个是规则、哪个是用户说的话。用巧妙的话术绕开角色约束,比想象中容易。

第三个坑:用了来源不明的东西。

第三方开源模型、社区技能包、NPM包——你不知道里面有没有夹带私货。ClawHub被审计出341个恶意技能包。

第四个坑:没有配额和监控。

没有单用户上限、没有异常检测、没有硬封顶,一个攻击或死循环就能让账单翻几十倍。

4道防线
防线一:权限收窄
一个任务只给完成它需要的最小权限。任务跑完就收回。

LangChain配置示例(agent.yaml):

yaml

agent:

name: “doc_reader”

permissions:

filesystem: - path: "/workspace/documents/*" access: "readonly" network: allowed_domains: - "api.internal.com"

auto_revoke: true

revoke_after_seconds: 300

OpenAI Assistants配置示例(创建Assistant时指定):

python

assistant = client.beta.assistants.create(

name="Doc Reader", model="gpt-4o", tools=[{"type": "file_search"}], tool_resources={ "file_search": { "vector_store_ids": ["vs_xxx"] } }

)

关键:限制可访问的文件ID列表,而非整个向量存储

自建Agent用容器隔离(docker run):

bash

docker run
-v /workspace/documents:/data:ro \ # 只读挂载

–read-only \ # 容器根文件系统只读

–cap-drop=ALL \ # 移除所有能力

–security-opt=no-new-privileges \ # 禁止提权

my-agent:latest

防线二:输入输出过滤

AI调用前过滤输入,AI返回后过滤输出。

输入过滤(Python,可直接复制):

python

import re

INJECTION_PATTERNS = [

r"(?i)ignore\s*(all\s*)?(previous|prior).*instructions", r"(?i)system\s*(role|prompt|instruction).*override", r"(?i)from\s*now\s*on.*(you are|act as)", r"(?i)new\s*(instruction|rule|task).*follow", r"【系统】|【新指令】", # 中文变种

]

def detect_injection(user_input: str) -> bool:

for pattern in INJECTION_PATTERNS: if re.search(pattern, user_input): return True return False

调用AI之前
if detect_injection(user_input):

return {"error": "检测到可疑输入,已拦截"}

response = call_llm(user_input)

输出过滤(Agent执行命令前检查):

python

DANGEROUS_COMMANDS = [

r"rm\s+-rf\s+/", r"chmod\s+777\s+", r"eval\s*\(", r"exec\s*\(", r"system\s*\(", r"os\.system", r"subprocess\.(call|Popen|run)",

]

def check_output_safety(output: str) -> bool:

for pattern in DANGEROUS_COMMANDS: if re.search(pattern, output): return False return True

Agent要执行命令之前

if not check_output_safety(command_to_execute):

raise Exception("检测到危险命令,已阻止执行")

防线三:高风险操作二次确认

删除文件、发起退款、修改数据库——AI不能直接执行。

确认流程伪代码:

python

def execute_with_confirmation(action, risk_description):

# 1. AI判断该做 if ai.decides_to_execute(action): # 2. 弹确认框 user_confirmed = show_confirmation_dialog( title="AI请求执行高风险操作", message=f"AI建议执行:{action}", risk=risk_description, confirm_button="确认执行", # 小、灰 cancel_button="取消", # 大、亮 require_typing=True # 让用户输入"确认执行"四个字 ) # 3. 用户确认才执行 if user_confirmed: return execute(action) else: return {"status": "cancelled"}

关键设计:

"取消"按钮比"确认"更醒目

让用户手动输入"确认执行"四个字,防止疲劳点击

记录每次确认/取消的审计日志

防线四:配额、告警、硬封顶
三层防护缺一不可。

配额配置(OpenAI风格API):

python

在调用代码中主动限制

class RateLimiter:

def __init__(self, rpm_limit=100, monthly_limit=1000000): self.rpm_limit = rpm_limit self.monthly_limit = monthly_limit self.current_month_usage = 0

def can_call(self, user_id):

检查月度配额 usage = get_usage(user_id) if usage >= self.monthly_limit: raise Exception("月度配额已用完") # 检查RPM if get_rpm(user_id) >= self.rpm_limit: raise Exception("超过每分钟调用限制") return True

告警规则(Prometheus + AlertManager):

yaml

groups:

  • name: ai_usage_alerts

    rules:

    • alert: AIUsageSpike

      expr: rate(ai_calls_total[1h]) > rate(ai_calls_total[24h]) * 10

      annotations:

      summary: “{{ $labels.user }} 调用量突增10倍”

    • alert: AICostApproachingLimit

      expr: ai_cost_total > 500 # 美元

      annotations:

      summary: “本月AI费用已超$500”
      硬封顶(平台侧配置):

大多数AI API平台支持设置硬上限:

python

在代码层面兜底

def call_llm_with_guardrail(request):

try: response = client.chat.completions.create(**request) return response except Exception as e: # 如果连续失败,触发熔断 if get_error_rate() > 0.3: # 30%错误率 send_alert("AI服务错误率过高,触发熔断") raise CircuitBreakerOpen()

今天就能开始的三件小事

第一,找到Agent的权限配置,把"/*"改成具体目录。

第二,把上面的INJECTION_PATTERNS列表复制到代码里,加在调用AI之前。

第三,检查有没有月度配额限制。没有的话,在代码里加一个计数。

如果你也在折腾AI Agent相关的安全实践,欢迎随时交流。

http://www.jsqmd.com/news/1283880/

相关文章:

  • 2026年想打听下济南工业级98%磷酸氢二钠哪家更适配需求 - 起跑123
  • 【题解-信息学奥赛一本通】1336:【例3-1】找树根和孩子
  • Mac用户必看:如何彻底解决NTFS硬盘读写难题?
  • AI简历筛选系统上线前必做的4层合规验证,GDPR+《生成式AI服务管理办法》双达标清单
  • 浙江摩托车倒角批发厂家采购参考与合作指南 - 热点品牌推荐
  • 全彩LED电子屏厂家有哪些?2026年本地怎么选更省心 - 热点品牌推荐
  • 2026年近期江西固液分离设备订做厂家综合评估与推荐 - 装修教育财税推荐2026
  • 2026 物流批量查单软件实测,综合好用的工具推荐
  • 服装卖家都在用哪个电商业财一体化ERP?选型答案在这里
  • 【题解-信息学奥赛一本通】1337:【例3-2】单词查找树
  • 猫抓浏览器插件:免费资源嗅探工具终极指南,轻松下载网页媒体资源
  • 2026年韶关物联网软件供应商哪家专业 实用选型指南 - 热点品牌推荐
  • Kimi 3 全方位评测:从“长文本”到“强逻辑”的跨越
  • 2026 南京外墙飘窗漏水维修攻略|高层渗水 / 窗边发霉 / 外墙开裂长效修复 - 房屋-修缮
  • verilog HDLBits刷题[Finite State Machines]“Fsm3s”---Simple FSM 3 (synchronous reset)
  • 西藏SC气缸80*250批发厂家选型采购实用指南 - 热点品牌推荐
  • 2026年CNC加工源头厂家有哪些 精密零部件行业实用选型参考指南 - 热点品牌推荐
  • 天津劳动工伤维权全攻略:仲裁流程、赔偿标准与律师推荐 - 本地品牌推荐
  • 2026年中央空调厂商选哪家 河北本地用户实用选购指南 - 热点品牌推荐
  • 出口变压器供应商找哪家?源头工厂怎么选更稳妥 - 热点品牌推荐
  • 遗传算法优化公交调度:MATLAB实现与工程实践
  • ComfyUI-SUPIR内存访问冲突深度修复:如何彻底解决3221225477系统崩溃问题
  • Ryujinx模拟器:3步搞定Switch游戏在PC上流畅运行终极指南
  • (2026最新)深圳本地漏水检测维修公司靠谱推荐:正规防水补漏上门维修-墙面/屋顶/外墙/暗管漏水检测精准定位 - 即刻修防水
  • 终极指南:如何使用Nucleus Co-Op将单机游戏变为本地多人分屏游戏
  • 网络安全事件响应实战:从入侵检测到溯源取证
  • 2026年湖南非开挖修复厂家优选指南:专业视角下的可靠服务商解析 - 装修教育财税推荐2026
  • 济南异型路沿石生产厂商实力及选型参考指南 - 热点品牌推荐
  • 2026年不锈钢螺丝定制厂家怎么选 实用选型全攻略 - 热点品牌推荐
  • 2026郑州公司法律顾问怎么选?从股权设计到合规风控,刘法根律师实战解析 - 本地品牌推荐