Vibe Coding and Web Application Security: A Twin-Prompt Study
这项初步研究表明,在自然语言提示词中显式地附加安全需求,能显著减少 AI 生成的 Web 应用程序中被确认的漏洞,与基准版本相比,具备安全意识的变体版本不包含任何严重或高危漏洞。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在现代数字世界中,软件通常是通过要求计算机为我们编写而构建的。我们输入一段关于我们想要什么的描述——一个博客、一个商店或一个任务管理器——然后一个经过数百万行代码训练的强大人工智能,就会生成使之运行所需的指令。这种实践有时被称为“氛围编程”(vibe coding),它依赖于这样一种理念:机器不仅理解软件的功能,还理解维持其安全的隐藏规则。然而,存在着一种挥之不去的疑虑:机器是自然地包含了必要的锁和警报,还是仅仅造了一扇能用的门,却并不关心谁可能会试图破门而入?软件的安全不仅仅在于让程序运行起来;它还在于确保秘密保持机密,确保用户不能冒充他人,以及确保系统不会意外地让陌生人闯入。随着这些人工智能工具变得越来越普遍,问题从它们是否能构建代码,转向了它们是否能在没有被明确告知的情况下,构建出安全的代码。
萨格勒布大学的一位研究人员着手回答这个问题,他将人工智能视为一名可能需要特定指令才能做正确事情的学生。这项研究涉及创建六个不同的 Web 应用程序,范围从简单的博客到带有管理仪表板的商店。对于每个应用程序,研究人员都要求人工智能将其构建两次。第一次请求是对软件应做什么的标准描述。第二次请求在各方面都完全相同,唯独增加了一点:一份清晰的安全规则列表,例如“不要以明文形式存储密码”以及“验证每一位用户是否确实是其声称的身份”。这种设置允许在保持其他所有要素(AI 模型、使用的工具和生成过程)完全相同的情况下,对使用通用提示词构建的版本与使用特定安全提醒构建的版本进行直接比较。
为了了解发生了什么,研究人员并不仅仅是查看代码;他们对所有十二个应用程序进行了一系列严格的测试。他们使用了自动扫描器来读取源代码中的危险模式,使用了在软件运行时检查其是否会被欺骗的工具,以及最后一轮人工测试,由人类专家尝试使用机器可能忽略的创造性方法来攻破系统。结果令人震惊。带有安全提醒的版本包含的问题显著少于基准版本。事实上,安全版本没有任何关键或高层级的安全缺陷,而没有提醒的版本则遭受了严重的问题,包括可能允许攻击者接管用户账户或访问私密数据的漏洞。提醒并没有让软件变得完美;它留下了一些在两个版本中都常见的轻微配置问题,但它成功消除了最危险的错误。
研究还表明,发现这些缺陷并不是单一工具的工作。读取代码的自动扫描器发现了许多运行中扫描器错过的缺陷,反之亦然。最值得注意的是,整个实验中发现的最严重的单一漏洞——一个允许攻击者伪造数字身份并接管账户的缺陷——并没有被任何自动化工具发现。它仅在人类对系统进行手动测试时才被发现。这表明,虽然要求人工智能保持安全有所帮助,但它并不能取代人工监督和多层检查的需求。研究人员指出,由于这是一个每种应用程序仅运行一次的小型实验,因此结果是一个强有力的暗示而非最终证明,但这一模式在每一个案例中都是一致的。这项工作是一项初步的研究,表明即使人工智能无法完全靠自己捕捉到每一个错误,一个简单、明确的安全请求也能显著提高其生成的软件的安全性。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。