← 最新论文
💻 computer science

From Preventive to Reactive: How AI Coding Assistants Transform Developers' Security Awareness

通过对专业开发人员的访谈和观察,本文揭示,AI 编程助手通过将安全意识与行为脱钩,促使开发人员依赖缺乏支持的应对策略,而非将安全性融入其初始编码提示,从而将安全实践从预防性转向反应性。

原作者: Faisal Haque Bappy, Tahrim Hossain, Sidratul Muntaher Meheraj, Annoor Sharara Akhand, Tasfia Tabassum, Tarannum Shaila Zaman, Raiful Hasan, Tariqul Islam

发布于 2026-05-25
📖 1 分钟阅读☕ 轻松阅读

原作者: Faisal Haque Bappy, Tahrim Hossain, Sidratul Muntaher Meheraj, Annoor Sharara Akhand, Tasfia Tabassum, Tarannum Shaila Zaman, Raiful Hasan, Tariqul Islam

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

将软件开发想象成建造一座房屋。多年来,建筑师和建造者必须亲自仔细规划每一块砖、每一根电线和每一根管道,以确保房屋不会倒塌或起火。他们是预防性专家,在建造过程中就思考安全问题。

现在,AI 编程助手登场了。将这种 AI 想象成一个速度极快、才华横溢的施工队,它能在几秒钟内砌好墙壁、安装窗户并接通电路。它在速度方面令人惊叹。但本文认为,虽然 AI 擅长构建结构,但它已悄然改变了人类建造者思考安全的方式。

以下是研究人员发现的要点分解,使用了简单的类比:

1. 转变:从“安全建造”到“检查工作”

在 AI 出现之前,开发者在编写代码时就会考虑安全性(预防性)。“在安装这扇门之前,我需要确保门锁足够坚固。”

有了 AI,流程发生了反转。AI 瞬间建好了门。人类开发者现在只在门建成后、检查阶段才考虑安全性(反应性)。

  • 问题:AI 将“使其运行”视为唯一目标。除非你明确指示,否则它不会自动思考“使其安全”。
  • 结果:安全变成了事后考虑。人类现在变成了“审查者”而非“建造者”,如果审查者匆忙或对建造者过于信任,往往会遗漏问题。

2. “初级同事”的错觉

研究中的开发者对 AI 有一种有趣的看法。他们将其视为一位聪明但缺乏经验的初级员工

  • 他们所说的:“我信任 AI,但我必须双重检查它的工作,因为它并非 100% 可靠。”
  • 他们实际做的:当他们开始一项任务时,他们会要求 AI“构建一个登录页面”或“修复这个错误”。他们从未添加这样的指令:“确保此登录页面能抵御黑客攻击。”
  • 类比:想象你告诉一位初级木匠“给我造一扇门”,并期望他知道你同时也想要一把高安全性的锁,尽管你从未提及锁。木匠造出了一扇漂亮的门,但没有锁。人类随后仅仅因为门看起来不错,就假设它是安全的。

3. 经验不等于安全

你可能会认为,拥有 20 年编程经验的开发者(AI 前时代)会比仅使用 AI 的新手开发者(AI 原生代)更安全。

  • 发现:研究发现没有差异
  • 现实:无论你是资深专家还是新手,如果你没有专门向 AI 询问安全性,你们最终都会得到同样充满风险的代码。“多年的经验”并未帮助任何人发现 AI 的错误。只有那些恰好具备特定安全知识并记得询问 AI“你检查过安全问题了吗?”的人,才发现了安全漏洞。

4. “信任陷阱”

AI 非常自信。它说话时充满权威。

  • 陷阱:开发者倾向于信任 AI 输出的所有内容——无论是简单枯燥的姓名列表(样板代码),还是处理信用卡号码的关键系统(安全敏感)。
  • 类比:这就像一辆 GPS,它为你去杂货店的驾驶提供了完美的路线,然后却自信地为你穿越雷区的驾驶提供了错误的路线。因为 GPS 之前是对的,你第二次便盲目信任它,尽管风险等级完全不同。AI 不会告诉你:“嘿,这部分很危险,需要额外检查。”

5. 开发者正在发明自己的“变通方法”

由于工具和他们的老板没有提供安全手册,开发者正在制定自己的规则以保持安全。

  • 变通方法
    • “我不会让 AI 直接触碰我的文件;我只让它读取它们。”
    • “我会创建一个特殊的‘规则书’文件,告诉 AI 如何行事。”
    • "AI 完成后,我会问它:‘这里有什么危险是你遗漏的吗?’"
  • 问题:这些是绝妙的想法,但它们是非正式的。它们没有内置于软件中,公司也不强制要求。如果开发者感到疲惫或匆忙,他们可能会跳过这些自创的安全步骤。

核心结论

该论文得出结论:AI 并没有让开发者变得“愚蠢”或“粗心”。相反,是系统的设计方式将安全推到了次要位置。

  • AI 被设计为快速且功能性强。
  • 人类 被设计为审查者。
  • 差距:系统假设人类会记得添加安全性,但工具的工作方式(请求任务、获取结果)鼓励人类遗忘。

提出的解决方案
我们不能仅仅告诉开发者“更努力尝试”。我们需要改变工具和规则:

  1. 工具:AI 在开始构建之前应询问:“这段代码是用于安全系统吗?”它应自动标记危险模式。
  2. 公司:公司需要将教导开发者如何安全地使用 AI 作为核心技能,而不仅仅是生产力技巧。他们需要提供检查清单和规则,这样开发者就不必临场发明自己的安全变通方法。

简而言之:AI 是一台强大的引擎,但我们目前驾驶它时没有系安全带,只是希望司机记得系上。 这篇论文指出,我们需要将安全带直接安装在汽车本身。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →