本文指出,安全程序合成(Secure Program Synthesis,简称 SPS)之所以尚未解决,是因为当前的方法混淆了数学证明生成与软件工程。文章提出,要取得成功,必须解决规范获取(specification elicitation)、现实世界软件的复杂性以及开发者生产力等问题。
📝 详细摘要
本文探讨了安全程序合成(SPS)的现状与挑战,SPS 被定义为软件、安全规范和正确性证明的自动化生成。作者认为,尽管 LLM 彻底改变了代码生成,但 SPS 仍然是一个悬而未决的问题。他们批评了当前对“数学优先”自动形式化(autoformalization)的关注,指出软件验证由于上下文管理、证明规模以及现实世界软件的混乱本质,与数学定理证明有着根本的区别。作者强调,规范获取主要是一个人机交互(HCI)挑战,而非纯粹的技术挑战。最后,他们主张将形式化方法整合到智能体编码工作流中以提高开发者生产力,而不是将安全性视为一种孤立的“维生素”(即非必需品)。
💡 主要观点
- SPS 是一项需要软件、安全规范和证明的三重任务,目前尚未解决。 作者将 SPS 定义为软件、安全规范和正确性证明的合成,并指出安全性是一种社会建构,如果不预先假设用户对给定程序的哪些功能是期望的、哪些是不期望的,就无法在数学上定义安全性。
💬 文章金句
- 安全性是一种社会建构——如果不预先假设用户对给定程序的哪些功能是期望的、哪些是不期望的,就无法在数学上定义‘安全’与‘不安全’。
- 软件验证与大多数数学研究有着本质区别;即使它是正确的,SPS 也非常重要且具有时间敏感性,因此应该直接攻克,而不是通过代理方式解决。
- 我们需要构建能够利用形式化方法来提高工作速度(而不仅仅是提高工作质量)的智能体编码工具。
📊 文章信息
AI 评分:87
来源:LessWrong
作者:Max von Hippel
分类:人工智能
语言:英文
阅读时间:15 分钟
字数:3643
标签: 安全程序合成, 形式化方法, LLM, 软件工程, 自动形式化