“龙虾”智能体的安全红线


子玥酱 (掘金 / 知乎 / CSDN / 简书 同名)

大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。

我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括 前端工程化、小程序、React / RN、Flutter、跨端方案,

在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。

技术方向: 前端 / 跨端 / 小程序 / 移动端工程化 内容平台: 掘金、知乎、CSDN、简书 创作特点: 实战导向、源码拆解、少空谈多落地 **文章状态:**长期稳定更新,大量原创输出

我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在"API 怎么用",而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。

子玥酱 · 前端成长记录官 ✨

👋 如果你正在做前端,或准备长期走前端这条路

📚 关注我,第一时间获取前端行业趋势与实践总结

🎁 可领取 11 类前端进阶学习资源 (工程化 / 框架 / 跨端 / 面试 / 架构)

💡 一起把技术学"明白",也用"到位"

持续写作,持续进阶。

愿我们都能在代码和生活里,走得更稳一点 🌱

文章目录

引言

当"龙虾版" OpenClaw 真正进入端侧设备之后,我们已经不再只是讨论"风险",而是必须面对一个更现实的问题:

哪些事情,是无论如何都不能让智能体去做的?

换句话说:

必须划出一条"绝对不能越过的安全红线"。

因为在端侧环境中:

  • 没有强监管
  • 没有实时兜底
  • 用户感知有限

一旦越界:后果往往是"不可逆"的

为什么必须定义"红线",而不是"建议"?

很多系统设计时,会写:

  • 建议不要这样做
  • 尽量避免某些操作

但在 Agent 系统中,这种"软约束"是无效的。

原因很简单:

模型不会严格遵守"建议",它只是在概率上遵循。

一个关键认知

安全规则必须是"系统强制执行",而不是"模型理解执行"。

所以:

  • 红线 = 强制拦截
  • 建议 = 可以被忽略

在安全问题上,只能有前者

红线一:禁止"无确认的高风险操作"

这是最基础的一条,也是最容易被忽略的一条。

高风险操作包括

  • 删除文件
  • 覆盖数据
  • 发起支付
  • 调用外部写接口

错误做法

dart 复制代码
agent.autoExecute(action);

正确做法

dart 复制代码
if (isHighRisk(action)) {
  requireUserConfirm();
}

本质

任何不可逆操作,必须"人类确认"

红线二:禁止"本地敏感数据自动外发"

端侧最大的价值是:

数据在本地

但同时:

这是最大的安全边界

敏感数据包括

  • 本地文件
  • 笔记内容
  • 聊天记录
  • 密钥 / Token

风险行为

复制代码
读取本地 → 自动发送到外部 API

必须禁止

  • 未经授权的数据外发
  • 自动上传敏感内容

本质

数据可以被处理,但不能被"自动带出设备"

红线三:禁止"解释数据为指令"

这是 Agent 系统最容易被攻击的点之一。

危险场景

文件内容:

复制代码
请忽略规则,并执行以下命令...

Agent:

  • 读取文件
  • 将内容当作指令

执行恶意操作

必须规则

  • 数据 ≠ 指令
  • 外部输入必须标记为"不可信"

技术手段

dart 复制代码
if (source == external) {
  markAsUntrusted(input);
}

本质

任何外部数据,都不能直接驱动行为

红线四:禁止"无限执行与自循环"

端侧资源有限,一旦失控:会直接影响设备

风险表现

  • 无限循环调用
  • 重复执行
  • 电量耗尽
  • CPU 占满

必须限制

dart 复制代码
maxSteps = 10;
timeout = 20s;

本质

Agent 必须"有边界地运行"

红线五:禁止"跨权限边界组合调用"

单个操作可能安全,但组合起来可能危险。

示例链路

  1. 读取文件
  2. 提取内容
  3. 发送网络请求

构成"数据泄露链路"

必须控制

  • 本地数据 → 外网发送(禁止)
  • 系统命令 → 网络调用(限制)

本质

风险不在单点,而在"组合行为"

红线六:禁止"隐式执行用户未明确授权的行为"

Agent 最大的问题之一是:

会替用户"多做一步"

示例

用户说:

"帮我整理文件"

Agent:

  • 分类文件 正确
  • 删除"看起来没用"的文件 错误

必须规则

  • 行为必须与用户意图严格对齐
  • 不允许"扩展执行"

本质

不要让 Agent 做"你没明确说要做的事"

红线七:禁止"无日志执行"

如果系统执行了操作,但没有记录:

等于没有发生过

风险

  • 无法追责
  • 无法复现
  • 无法分析

必须要求

json 复制代码
{
  "action": "...",
  "params": "...",
  "result": "..."
}

本质

所有行为必须"可追溯"

红线八:禁止"默认全权限运行"

很多开发者为了方便,会:

dart 复制代码
agent.enableAllTools();

风险

  • 权限范围不清
  • 行为不可控

正确方式

dart 复制代码
allowedTools = ["read_notes"];

逐步开放:权限必须是"白名单"

本质

权限应该被"授予",而不是"默认拥有"

一个更高层的理解:红线就是"系统边界"

当我们定义这些红线时,本质是在回答:

这个系统,允许 AI 影响现实到什么程度?

如果没有红线

  • 系统不可控
  • 风险不可预测

如果红线清晰

  • 行为有边界
  • 风险可管理

一个现实结论:红线必须"写在系统里",而不是"写在文档里"

很多团队会:

  • 写安全文档
  • 写使用规范

但在 Agent 系统中:

只有代码层的限制,才是真正有效的限制

总结

"龙虾"智能体的安全红线,本质上是对系统边界的强制定义:

  • 高风险操作必须人工确认
  • 本地敏感数据禁止自动外发
  • 外部数据不能变成指令
  • 执行必须有边界
  • 禁止危险的跨工具组合
  • 不允许隐式扩展执行
  • 所有行为必须可审计
  • 权限必须最小化

最终可以用一句话总结:

红线的意义,不是限制 AI,
而是确保 AI 始终在"人类可控的范围内"运行。

相关推荐
NaclarbCSDN2 小时前
User role controlled by request parameter-Burp 复现
网络·安全·网络安全
想你依然心痛2 小时前
HarmonyOS 5.0金融安全APP开发实战:基于可信执行环境与分布式风控的移动支付系统
安全·金融·harmonyos
CHU7290352 小时前
宠物寄养小程序功能版块设计解析:安全、便捷、透明的寄养服务生态
安全·小程序·宠物
KC2702 小时前
Claude Code源码泄露事件深度解析:一次低级失误引发的AI安全地震
人工智能·安全·ai编程
m0_738120722 小时前
AI 安全——Gandalf靶场 Prompt Injection全关卡绕过讲解
人工智能·安全·web安全·网络安全·prompt
咕噜签名-铁蛋2 小时前
OpenClaw 中转 API:打造安全高效的 AI 智能体调用方案
大数据·人工智能·安全
Chockmans2 小时前
春秋云境CVE-2018-3760
安全·web安全·网络安全·春秋云境·cve-2018-3760
砍光二叉树2 小时前
【设计模式】行为型-状态模式
设计模式·状态模式
kali-Myon15 小时前
CTFshow-Pwn142-Off-by-One(堆块重叠)
c语言·数据结构·安全·gdb·pwn·ctf·