← 返回首页

越禁止越彰显:警惕AI在安全文档里的欲盖弥彰

核心结论先行:
1. 荒诞现场背后的致命漏洞:在一次实际工程协作中,我们让 AI 起草一份开源安全治理文档《AGENTS.md》,严令禁止泄露合作企业名称。AI 欣然领命,却在文档最显眼的“违规替换对照表”里,工整地把我们原本想保护的内容,作为反面教材端端正正地公开展出。
2. 直击认知机理:“欲盖弥彰”是 Transformer 架构的底层必然:很多开发者误以为大模型懂“否定逻辑”。实际上,模型底层是“高维概念激活机”而非“逻辑否定机”。就像人类著名的“白熊实验”,你越反复叮嘱“千万不要想”,脑海里的轮廓越清晰。Prompt 里的“严禁”、“切勿”,在向量空间里非但没有抹除敏感实体,反而赋予了极高注意力权重,最终诱导它亲自把受保护的内容“欲盖弥彰”地展示出来。
3. 回看你的代码库与文档,是否存在隐形泄密?:普通用户往往只盯着生成的核心业务代码,却极易忽略 AI 贴心补全的 README、CHANGELOG、测试用例与注释。很多时候,正是 AI 试图“示范合规”的对照表,出卖了真正的底牌。
4. 实践破局:认知层用“一眼假大厂”解耦,工程层用“物理断路器”兜底:认知层主动注入英伟达、苹果、谷歌等与自己无关但人尽皆知的公开标的,喂饱模型的结构化答题冲动;工程层放弃口头叮嘱,采用零大模型依赖的外部纯代码、正则门禁与 CI 断路器,把道德劝阻降维成物理上根本无法发生。

在真实的人机协作探索中,往往会发生很多比段子更荒诞的工程现场。

前不久,我们在开发一套工业开源知识提取系统。为了保证代码库推送到公共领域时不出现敏感合作企业的名字,工程师非常严肃地向 AI 下达了一条铁律指令:

“这个开源代码库属于公共领域,严禁泄露内部真实的合作企业名,所有厂区代号必须抽象化处理。”

AI 响应得极快,态度极其严谨,火速在仓库根目录新建了一份高规格的 Agent 行为准则文件《AGENTS.md》。

然而点开那份规范文件一看,让人哭笑不得:在【违规实体替换对照表】一栏,AI 极其工整、端正地写着:

“严禁出现真实合作方名字……必须替换为:某计算芯片厂、某手机消费电子厂……”

为了告诉你“千万不要提它们”,AI 必须在公开的文档里,先把它们一个个堂而皇之地“公开展出”。

这种场景在日常的人机协同中屡见不鲜:

这不仅仅是一个搞笑的失误,而是一个典型的机器版“欲盖弥彰”——你越是想用红线掩盖什么,它越是用最大的聚光灯去照亮什么。


01. 机器的“欲盖弥彰”:Transformer 架构的物理本能

为什么 AI 会陷入这种极其荒谬的“越禁止、越暴露”陷阱?

很多人习惯把大模型拟人化,以为它能听懂我们的“言下之意”,甚至以为只要加重语气(比如打上感叹号、用“绝对禁止”),模型就会心生敬畏。

但在物理层面上,大模型的数学结构决定了它根本没有人类常识里的“自我审查意识”。

▍ 1. Transformer 是“概念激活机”,而非“逻辑否定机”

人类心理学上有一个著名的“白熊实验”(或粉色大象实验):如果现在对你下达指令:“在接下来的三分钟内,你的脑海里绝对不能出现一只粉色的大象”,结果会怎样?几乎所有人脑海里瞬间浮现出的,就是那只粉色大象清晰无比的轮廓。因为为了执行“排查它在不在”的逻辑,你的大脑必须首先检索并激活关于它的神经信号。

Transformer 的自注意力(Self-Attention)机制在数学上是完全同构的:

工程师越是在 Prompt 里痛心疾首地反复叮嘱“切勿触犯”,模型在后续生成中把违规词端出来的概率反而越高。

▍ 2. “好学生”的答题冲动:为了论证合规,制造了最大的违规

在模型的训练数据中,充斥着大量的规范文档、立法条文与学术对比表。在人类的法律文本里,“定义违规”往往必须伴随着“违规特征列举”。

因此,当模型被要求编写一份《AGENTS.md》合规指南时,它的先验概率会疯狂促使它去完成一个标准规范的结构:

它不知道自己写的这份文件本身也是要被推送到外部公网的受限资产。在它眼中,它只是一个极其尽职的“好学生”,为了把【违规替换对照表】写得严谨翔实、滴水不漏,它顺理成章地把最不该见光的东西当作了最好的论据。

想藏起一片树叶,它却为这片树叶单独建了一座展览馆。


02. 自查提醒:回头看一眼你的代码库与文档

看到这里,不妨暂时停下来,翻开你最近用 AI 辅助开发的代码库、技术方案、甚至对外发布的 Prompt 模板。仔细检查一下这几个隐蔽的死角:

很多团队以为只要审查了业务核心逻辑就算安全,却不知道 AI 的“贴心示范”,往往在最不显眼的角落悄悄完成了“欲盖弥彰”。


03. 我的实战解法:两套组合拳化解“欲盖弥彰”

面对这种大模型的天然机制,靠发脾气或反复口头叮嘱是毫无意义的。在长期的工程实践中,我总结了两套极其朴素、却刀刀见血的实战组合拳:

▍ 1. 认知层妙手:主动喂给它“一眼假”的公开大厂

很多时候,模型不是故意作恶,而是必须有一个具体的实体来填补它对“举例论证”的结构渴望。如果你只告诉它“不要写真实名字”,它在上下文里找不到替罪羊,就极容易抓取上文里真实的影子。

我的实操经验是:主动给它指定“一眼即知与我完全无关、但公众人尽皆知”的超大体量标的。

比如在要求它编写合规规则、替换字典或测试用例时,我明确指定:

“示例中涉及的禁止项与替换示范,一律且只能使用英伟达、苹果、谷歌、特斯拉。”

这一招极其管用:

▍ 2. 工程层硬核:放弃口头叮嘱,构筑外部确定性断路器

认知层的技巧解决的是“示范”,而真正的工业底线,必须依靠零大模型依赖的外部纯代码构筑硬质防线:


04. 工程师的清醒认知

很多时候,我们容易把大模型拟人化,以为它能听懂我们的“言下之意”,甚至期待它能像资深老法师一样具备如履薄冰的合规意识。

但真实的机器没有心智,它只有前向传播的数学矩阵与注意力权重的此起彼伏。

理解工具的缺陷,远比夸大工具的无所不能更有价值。

别指望模型能自觉参透什么叫“适可而止”。用“一眼假”的智慧引导它的结构冲动,用外部确定性的工程断路器守住底线,才是平民开发者在人机协同时代最踏实的立身之本。


这里是「叩石寻径问路」,记录一线工程师的技术实践、避坑手记与认知工程。
保持清醒,结伴前行。