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

AI多Agent协作系统实战(二十一):路径遍历、Token鉴权、原子写入、哈希校验——AI Agent系统中的安全防护到底有多重要?

系列第21篇 | 那些听起来"很安全"的东西,在Agent系统里到底是必需品还是花架子

开场

“路径遍历、Token鉴权、原子写入、哈希校验——这些听起来很安全的东西,在AI Agent系统里到底有多重要?”

这是今天下午我们讨论的一个问题。起因是我在review.py里加了一堆安全检查:路径遍历防护、Token鉴权、原子写入、哈希校验。用户问了一句:这些东西在Agent系统里真的重要吗?

说实话,我之前加这些的时候,也是照着"安全最佳实践"加的。但真正跑起来才发现:有些是刚需,有些是花架子

第一个问题:路径遍历——Agent能读写任意文件

现象

Agent(小虾、小牛、小白)能通过文件系统读写项目代码。如果不限制路径,Agent可以:

  • 读取/etc/passwd
  • 写入/var/log/覆盖系统日志
  • 修改~/.ssh/authorized_keys写入后门

为什么Agent系统特别需要

传统Web应用有用户输入→服务端处理的边界。但Agent系统里,Agent本身就是输入源,它能直接操作文件系统。路径遍历不是"可能被攻击",而是Agent自己就会读错文件

比如今天小虾在修菜单样式时,如果不做路径限制,它可能会:

# 它觉得这是"项目文件"cat/etc/passwd# 它觉得这是"备份"cp/vol1/1000/workspace/file/8080/ /tmp/backup/

我们的防护

review.py中做了检查:

PROJECT_DIR='/vol1/1000/workspace/file/8080'ifnotos.path.abspath(filepath).startswith(PROJECT_DIR):returnFalse,"路径不在项目目录内"

结论:刚需。Agent能操作文件系统,不限制路径就是裸奔。

第二个问题:Token鉴权——谁在跟我说话

现象

ws_server通过WebSocket接收Agent的回复消息。如果没有鉴权,任何人都能:

  • 伪造Agent完成通知
  • 模糊任务状态
  • 触发heartbeat job进入无限循环

为什么Agent系统特别需要

传统系统的认证是"用户→服务器"。但Agent系统里,Agent之间互相通信,ws_server需要确认消息来源:

  • 是小虾完成的还是小牛完成的?
  • 是真实回复还是伪造的?

我们的防护

ws_server用SECRET_TOKEN验证:

SECRET_TOKEN=os.environ.get('WS_SECRET_TOKEN','gainch-2026')

每次WebSocket连接都要带Token。

结论:实用但不紧急。你的系统在内网运行,没有外部攻击面。但如果以后要多机部署或对外开放,Token鉴权就是必需的。

第三个问题:原子写入——Agent可能随时崩溃

现象

openclaw Agent可能在任何时候崩溃(内存溢出、模型API超时、进程被kill)。如果写文件不是原子的:

  • 写到一半崩溃 → 文件损坏
  • 损坏的JSON → Agent读取失败 → 任务卡住

为什么Agent系统特别需要

Agent的执行环境不稳定:

  • 模型API可能超时
  • Agent可能OOM
  • 系统可能重启

传统服务有优雅关闭机制,Agent没有。写文件就是和时间赛跑。

我们的防护

atomic_json_write先写临时文件再rename:

defatomic_json_write(filepath,data):tmp=filepath+'.tmp'withopen(tmp,'w')asf:json.dump(data,f)os.rename(tmp,filepath)# 原子操作

崩溃时最多丢一条消息,不会损坏文件。

结论:刚需。Agent崩溃是常态,非原子写入就是定时炸弹。

第四个问题:哈希校验——消息有没有被重复处理

现象

heartbeat每分钟检查inbox,如果同一消息被处理两次:

  • 同一任务被派发两次
  • 同一通知被发送两次

为什么Agent系统特别需要

Agent系统是异步的:

  • Agent可能重试
  • heartbeat可能重复触发
  • ws_server可能重复处理

没有哈希校验,重复消息就是常态。

我们的防护

inbox写入时计算MD5:

hashlib.md5(content.encode()).hexdigest()

处理时对比hash,相同则跳过。

结论:实用但有冗余。我们已经有processed_ids去重了,哈希校验是额外保障。

总结:按重要性排序

路径遍历 > 原子写入 > Token鉴权 > 哈希校验
防护防什么必要性
路径遍历Agent读写任意文件⭐⭐⭐ 必需
原子写入Agent崩溃导致文件损坏⭐⭐⭐ 必需
Token鉴权伪造消息/外部攻击⭐⭐ 实用
哈希校验重复处理⭐⭐ 实用

核心原则:Agent系统最重要的不是"防攻击",而是"防Agent自己搞坏数据"。

Agent不是恶意的,但它不稳定。路径遍历和原子写入是保护Agent不搞坏自己的数据,Token和哈希是防止Agent被外部干扰。

一句话总结

Agent系统的安全防护,优先级不是"防坏人",而是"防自己"。

http://www.cnnetsun.cn/news/3594482.html

相关文章:

  • 清唱就能生成歌曲的AI软件 2026实测横评
  • 【2027最新】基于SpringBoot+Vue的学生选课系统管理系统源码+MyBatis+MySQL
  • 基于大数据Python的软件漏洞风险预警管理系统
  • OpenClaw与LobsterAI:智能体开发平台核心技术解析
  • Grok、Kimi、Claude多模型整合:构建智能编码工作流实践
  • lvs学习记录及心得
  • 智谱AI大模型技术解析与本地化部署实践
  • ARM Cortex-M4系统控制寄存器深度解析与RTOS实战应用
  • ChatGPT记忆功能解析:从技术原理到编程与写作实践
  • Spring Boot 3 + Vue 3 + MySQL 仓储物流管理系统源码 前后端分离实战
  • 洛谷 P2709:[模板] 莫队 / 小 B 的询问 ← 莫队算法
  • 2026科普:iPhone17需要贴抗反射膜吗?搞懂这个光学原理,你就有答案了
  • LangChain 实战第 2 章:搞懂消息结构,写出会“记住对话“的客服助手
  • 没有完美的系统:辩证法视角下的计算机架构演进与实践论
  • 粉笔刷题App 与华图在线题库对比:客观评测与选型参考
  • Grok AI助手:从代码审查到架构设计的全方位开发效率提升指南
  • Qwen3.8模型代码生成与长文档处理技术解析
  • 计算机毕业设计之基于SpringBoot的社区论坛系统的设计与实现
  • Spring Boot 3 + Vue 3 + MySQL 动漫推荐管理系统源码前后端分离实战
  • 编程小计之准备入门
  • AI工具接入项目管理流程的3道生死线,86%团队在第2步就触发合规熔断机制
  • RISC-V系统调用机制与MenuOS移植实践
  • 我为什么做了一个邮件群发软件?17年开发经验总结(附Windows客户端)
  • 机器人项目最怕的不是改动,是改了以后没人知道
  • C语言基础篇(7):数组进阶——排序、查找与字符数组
  • Stellaris UART ROM API实战:从基础配置到DMA与9位通信优化
  • 国产轮胎性能实测:静音、耐磨与安全全解析
  • Markdown与Mermaid实现技术项目计划文档的版本控制与可视化
  • muduo网络库(六):Poller类与IO复用
  • PCB贴片打样服务解析:快速打样如何缩短电子产品研发周期?