LLMs + Security = Trouble
本文认为,依靠概率性 AI 进行代码安全检测或修复难以应对长尾漏洞,且神经符号方法因难以融入“氛围编程(vibe coding)”工作流而存在人为失效风险,因此主张通过约束解码等手段在生成过程中直接强制执行安全约束,以实现“构建即安全(secure-by-construction)”。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇文章的核心观点可以用一句话来概括:“用AI去修补AI写的烂代码,就像是用一把漏水的筛子去接雨水,永远填不满漏洞。”
为了让你轻松理解,我们可以把这篇文章的内容想象成一个**“智能建筑工地”**的故事。
1. 现状:一个“快但粗糙”的智能建筑队
想象一下,现在有一个超级高效的“机器人建筑队”(这就是 LLM/大模型)。你只要对它说:“给我盖一栋带游泳池的别墅”,它几秒钟就能把图纸和框架搭好。
但问题来了:这个机器人队虽然干活快,但它们是靠“直觉”和“概率”在干活。它们可能觉得“这里放块砖看起来很顺眼”,但它们并不真正理解物理定律。结果就是:房子盖得很快,但地基可能没打稳,电线可能乱接,甚至窗户可能没装锁。 这就是论文里说的:AI生成的代码虽然能跑,但充满了安全隐患(漏洞)。
2. 错误的应对方案:“以火攻火”(Fighting Fire with Fire)
面对这些不安全的房子,现在的流行做法是:再请一个“机器人质检员”(AI Checker/Attacker)去检查。
这就像是:你雇了一个只会“凭感觉”找茬的机器人,去检查另一个“凭感觉”盖房的机器人。
- 逻辑漏洞: 盖房机器人漏掉了一个隐蔽的排水管,质检机器人因为“直觉”没注意到,就说“没问题”。
- 概率陷阱: 这种检查是“概率性”的。就像你在黑夜里用手电筒扫地,手电筒照到的地方看起来很干净,但手电筒照不到的阴影里,可能藏着致命的陷阱(零日漏洞/Zero-day)。
- 不对称战争: 坏人(黑客)不需要像质检员那样“守规矩”。质检员要保证检查过程不破坏房子,而坏人可以拿着锤子,对着房子的每一个缝隙疯狂猛砸,直到砸出一个洞为止。
结论: 这种“用AI对付AI”的方法,只能解决表面问题,永远解决不了那些隐藏在角落里的深层隐患。
3. 论文提出的新思路:从“事后修补”转向“先天防范”
作者认为,我们不应该等房子盖好了再去检查,而应该在机器人动笔画图纸的那一刻,就给它戴上“紧箍咒”。
思路 A:给机器人装上“模具”(Constrained Decoding)
与其让机器人随心所欲地画线,不如给它一套**“标准模具”。
比如,规定机器人如果要画“门”,必须按照“带锁、有门框、有合页”的标准模具来画。如果它想画一个没锁的门,模具就会直接拦截这个动作,让它无法生成。这叫“构造即安全”(Secure-by-construction)**。
思路 B:引入“数学老师”(Neurosymbolic/Formal Methods)
现在的机器人是“文科生”,靠感觉说话;我们需要给它配一个“理科老师”。
这个老师不看感觉,只看数学逻辑和严密的公式。当机器人说“我觉得这样连线是对的”时,理科老师会拿出一套严密的逻辑推导,证明“这样连线会导致电路短路”。虽然这会让干活的速度变慢一点(因为要反复推导),但房子绝对不会塌。
思路 C:利用“扩散模型”进行“整体雕刻”(Diffusion Models)
作者特别提到了一个很酷的技术——扩散模型。
传统的机器人是“从左往右”一笔一划写代码(像写字),写到一半发现后面要出问题,它也回不去。
而“扩散模型”更像是**“雕刻家”**。它先给你一个模糊的整体轮廓,然后通过不断的“打磨”和“修正”,从全局的角度把细节雕刻出来。这种“全局观”让它在处理复杂的安全约束时,比“一笔一画”的机器人更有优势。
总结一下
这篇文章其实是在给现在的AI开发热潮泼一盆冷水,同时也指明了方向:
- 过去的做法(危险): 盖房子 盖完 请个机器人来巡逻 发现漏水 补漏。(漏洞依然存在)
- 未来的方向(安全): 制定严格的建筑标准 机器人必须套用模具 结合数学逻辑实时校验 盖出来的房子天生就是安全的。(安全由内而外)
一句话总结:别再指望用“概率”去对抗“风险”,我们要用“规则”和“逻辑”去驯服“概率”。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。