赋予LLMs exec()能力是一场安全噩梦。我构建了一个基于AST的开源防护机制来阻止恶意代理执行。

Reddit r/AI_Agents 工具

摘要

介绍ast-guard,一个开源的基于AST的安全工具,它通过将LLM生成的Python字符串解析为抽象语法树,并应用节点级白名单和上下文感知安全检查,防止恶意代码执行。

大家好,我们都希望AI代理能够编写并执行自己的代码。但实话实说:盲目地将LLM生成的Python字符串传入exec()或解释器是一个巨大的风险。提示工程可以被绕过,正则表达式过滤也容易被混淆代码规避。为了解决这个问题,我花了最近几周时间深入研究编译器层面,构建了ast-guard。它不是分析代码的外在形式(字符串/提示),而是在代码触及解释器之前,通过将LLM输出解析为抽象语法树(AST)来分析代码的实际行为。它是如何确保执行安全的: •节点级白名单:在解析器层面动态阻止危险的语言结构、未授权的内置函数以及风险导入(如隐藏的subprocess或os调用)。 •上下文感知安全:它不仅仅屏蔽关键词,还能理解库是否被结构性滥用。 •纵深防御:设计为在您需要启动沉重的Docker容器或WASM沙箱之前,充当即时的轻量级软件层防护。 关于我:我完全是自学成才的工程师。6个月前,没有任何IT背景,纯粹出于对AI架构的好奇,我从零开始学习。因为我还在学习中,所以我希望得到诚实的反馈。该项目完全开源。链接在评论区。
查看原文

相似文章

PropGuard:通过传播感知的探索与修复保障LLM-MAS安全

arXiv cs.LG

PropGuard是一种传播感知框架,用于保护基于LLM的多智能体系统(LLM-MAS)免受跨智能体和轮次传播的恶意指令的影响。它构建了一个双视角时空图,并使用经过GE-GRPO训练的检查器来检测和修复可疑的传播子图。