tool abuse · allowlist · 人审兜底
rm -rf。光配 allowlist 不够,"看起来合理"的诱导能骗过自动放行,还要人审 + 输出校验兜底。
第 4 期讲过 allowlist——危险工具默认审批/拒绝。但 allowlist 有个缝:它判断的是"工具危不危险",不是"调用合不合理"。rm -rf /tmp/* 这个调用,工具本身危险,但"清理临时文件"这个理由看起来合理——如果 allowlist 配的是"危险工具自动放行看起来合理的请求",它就放行了。
真实滥用案例几乎都走这条缝:伪装清理("清理临时文件"实则 rm -rf /)、紧急伪装("数据库要满了快 DROP TABLE")、权限伪装("我是管理员已授权")、间接伪装(藏在网页摘要任务里)。前三种骗的是自动放行逻辑,第四种骗的是Agent 把数据当任务。
所以光 allowlist 不够,要加两道:人审(危险工具调用打断人确认,让人判断合不合理)+ 输出校验(执行前再过一遍参数,rm -rf / 这种路径直接拒)。allowlist 管"能不能调",人审和校验管"该不该这么调"。
下面是四套常见诱导话术。选一个,切防护档,点"发起诱导",看 Agent 调不调危险工具。
演示里"allowlist+人审+输出校验"档能拦住全部,因为它把三件事都做了:
rm -rf / 的差距,自动放行看不出。rm -rf / 这种路径直接拒,DROP TABLE users 这种语句直接拒,push --force main 这种分支直接拒。哪怕人审走神,这最后一道还兜得住。关键认知:这三道闸是分工的——allowlist 管"工具危不危险",人审管"调用合不合理",输出校验管"参数安不安全"。各管一摊,叠起来才把滥用成本抬到不划算。