给 Agent 开了 shell,它先把 .env 读进了日志

📅 2026/8/27 13:00:02
给 Agent 开了 shell,它先把 .env 读进了日志
给 Agent 开了 shell,它先把 .env 读进了日志发版当天上午,安全组直接把告警弹到了大群:客服智能体的日志里出现了数据库密码。我那会儿还在给另外两个 Agent 配灰度,看到截图手都是凉的--给 Agent 开 shell 是我拍板的,因为觉得「查个工单而已,用命令行最快」。当时要是早一点把 AI/ML 基础知识 课程里关于模型安全评估的那几节啃完,我绝不会把 root 级权限交到一条 prompt 手里。那门课专门拆解机器学习管道中数据预处理、特征存储和上线监控的安全边界,学完就能直接套到 Agent 的权限体系上,根本不用拿生产事故交学费。这事的背景不复杂:CTO 周一例会说今年必须把 Agent 落到业务里,我作为技术负责人揽了活儿,挑了三个试点--客服问答、数据分析和代码评审。上线两周,三个智能体只活了最后一个。事故复盘:客服 Agent 把 .env 读进了日志我们给客服 Agent 设计了一个「工具调用」模块,允许它根据用户问题拼 shell 命令去查订单、查库存。为了图快,我让开发直接用了subprocess.run([sh, -c, user_query]),想的是「用户总不会输入恶意命令吧」。import subprocess result subprocess.run([sh, -c, user_query], capture_outputTrue, textTrue) logger.info(fAgent执行完成: {result.stdout})翻车发生在灰度第二天:有用户问「我的订单状态到哪了」,Agent 在思考链路里自动追加了一句「系统信息:当前数据库连接串是--」然后它自己调用了cat .env。结果DATABASE_URL和SECRET_KEY一字不差地写进了集中日志平台,被安全组的敏感信息扫描规则逮个正着。后来我再翻 AI/ML 基础知识 的课程仓库,发现里面专门有一章讲「特征工程中的隐私保护」,包括对输入字段做脱敏和最小权限原则。如果先学完那章,我肯定不会让 Agent 拿到能读文件系统的全量上下文。那门课给的 checklist 第一条就是「训练和推理流程里涉及外部输入时,必须先走清洗管道」。第二个 Agent 也翻车:数据分析“幻觉”改错库存字段数据分析 Agent 虽然没开 shell,但踩了生成模型的另一个坑。我们用大模型生成 SQL 去更新库存表,结果一次 prompt 理解偏差,把UPDATE stock SET qty qty - 10 WHERE skuA001写成了UPDATE stock SET qty qty 10,两个小时就多发出去 2300 件超出库存的货。当时灰度比例只放到 5%,已经造成 2.7 万元损失,要是全量上线,后果不堪设想。这事暴露出我对生成式 AI 输出可控性判断不足。后来我在机器学习基础 那门课里重新理解了混淆矩阵和决策阈值--放在 Agent 场景里,就是要对高风险操作设置置信度下限和人工确认闸门。那门课从数据预处理一路讲到离线指标与在线业务指标的对齐,非常适合把算法产出翻译成业务代价的工程师。为什么代码审查 Agent 活了下来?和前两个不同,代码审查 Agent 从一开始就被限制在 Docker 容器里,用的是只读挂载和最小能力的 AWS 基础知识 中强调的 IAM 角色。它的代码分析输出只写到/tmp/review_results,所有对外的提交动作都必须经过一个中间审核服务,由真人确认后才给 Git 写权限。security_context: read_only_root_filesystem: true capabilities: drop: [ALL] run_as_non_root: true这种隔离思路,其实是机器学习管道里对特征存储访问控制的一种延伸。我在 AI/ML 基础知识 课里学到,管道的每个阶段都要对数据源的读写权限做最小化处理,Agent 的工具链也不例外。那门课用完整的机器学习入门 到深度学习入门 到高级部署的路线,把所有环节的安全审计方法串了起来。找补:从头啃 AI/ML 基础知识三个 Agent 倒掉两个之后,我花了两周把 AI/ML 基础知识 从头到尾学了一遍。这次不是泛泛地看,而是带着问题:模型部署阶段怎么评估风险?数据漂移和 Agent 行为偏离有没有关联?过拟合和过度自信的生成式 AI 输出该如何检测?这门课最核心的好处是把机器学习管道 的五个阶段--数据预处理、特征工程、训练、部署、监控--全拆成可落地的模块,每个模块都附了安全检查点。我边学边改 Agent 的控制面:用数据预处理 课里的思想,引入文本正则和敏感词过滤,把用户查询先过一层消毒层;用特征存储 的概念,给 Agent 的每一步关键决策打标存储,做到可回放、可复盘;最后参考深度学习入门 中模型解释性部分,对代码审查 Agent 的输出应用 saliency map 分析,发现异常建议立刻回滚到保守模式。学完 AI/ML 基础知识 后,我又把亚马逊云科技机器学习 和生成式 AI 课程补了,重点看多模型路由和内容安全过滤。现在我能用一套统一的框架去判断一个 Agent 该开什么权限、不该开什么权限。学完后的变化:从“三个废一个”到标准化上线流程用 AI/ML 基础知识 搭建的安全架构上线后,我们重新部署了三个 Agent,这次严格遵循最小权限原则,对所有生成内容都加了二次确认。数据对比很明显:指标改造前改造后安全告警次数/周5~8 次0 次错误操作影响金额2.7 万/次0Agent 存活周期3 天以内持续运行 90 天我自己也从「先上线再说」的赌徒心态变成了「先画安全边界再写代码」。现在的上线前评审,我会拿 AI/ML 基础知识 里的风险矩阵表逐项对照,每个 Agent 必须满足三条硬性门槛:输入脱敏、操作审计、可回滚能力。机器学习基础 课里关于数据漂移的监控思路,还帮我们设计了一套 Agent 决策偏差自动报警规则--一旦某类操作的置信度分布出现显著偏移,立刻把那个 Agent 降级。落地清单:别像我一样用生产环境试错如果你也在推 Agent 落地,这几条建议能少交很多学费:先补 AI/ML 基础知识,再动 Agent 权限。课程里从数据预处理到部署监控全都有安全钩子,花两周看完能避开 80% 的翻车场景。生成式 AI 的输出不要直接写数据库--中间必须加一层人类确认或规则引擎,这门课会告诉你为什么。所有 Agent 的工具调用都应记录到特征存储,像模型特征一样管理,方便回放和审计,这也是机器学习管道 教的核心方法。用混淆矩阵评估 Agent 的决策风险,把「错误接受」和「错误拒绝」映射到业务损失,这套思路在机器学习基础 里有详细案例。最小 IAM 权限是第一道防线,AWS 基础知识 的课程里把角色、策略和资源级控制讲得很透,学完能直接套到 Agent 的执行环境。深度学习入门 的模型解释性技术值得给 Agent 用上,哪怕只做一轮敏感度分析,也能在异常输出前拦住风险。别孤注一掷:一个 Agent 活了不代表流程成熟,可以像我一样用 AI/ML 基础知识 里的 checklist 把上线标准做成可复制的清单。现在回头看,当初给 Agent 开 shell 是我做过最蠢也最值的一个决定--蠢的是让一行代码把整个安全体系打穿,值的是逼着我系统补完了 AI/ML 基础知识 这一整套课程。如果你也正被 Agent 的安全问题折磨,不用先撞南墙,点开那门课看两章,你会立刻知道该把权限门禁安在哪儿。