思想领袖9 months ago
AI生成的代码将长期存在。我们因此变得更不安全了吗?
2025年的编码不再是关于埋头苦干于代码片段或花费长时间进行调试。这是一种完全不同的氛围。AI生成的代码将成为未来产品中代码的主体,并且已成为现代开发人员必不可少的工具包。被称为“氛围编码”的使用由Github Copilot、Amazon CodeWhisperer和Chat GPT等工具生成的代码,将成为减少构建时间和提高效率的常态而非例外。但是,AI生成代码的便利性是否潜藏着更黑暗的威胁?生成式AI是否会增加安全架构中的漏洞,或者开发者是否有方法安全地进行“氛围编码”? “由AI生成代码中的漏洞导致的安全事件是当今最少被讨论的话题之一,”DeepSource的创始人Sanket Saurav表示。“目前仍有大量由Copilot或Chat GPT等平台生成的代码未经人工审查,而对于受影响的公司来说,安全漏洞可能是灾难性的。” Saurav是一家采用静态分析进行代码质量和安全性的开源平台的开发者,他引用了2020年的SolarWinds黑客攻击作为公司如果在使用AI生成代码时没有安装正确的安全护栏可能面临的那种“灭绝事件”。“静态分析能够识别不安全的代码模式和不良的编码实践,”Saurav说。 通过库进行攻击 针对AI生成代码的安全威胁可能采取创新的形式,并且可以针对库。编程中的库是有用的可重用代码,开发人员使用它们来节省编写时间。 它们通常解决常规的编程任务,如管理数据库交互,帮助程序员不必从头开始重写代码。 针对库的一种此类威胁被称为“幻觉”,即AI生成代码通过使用虚构的库来显示漏洞。另一种最近出现的针对AI生成代码的攻击被称为“slopsquatting”,攻击者可以直接针对库来渗透数据库。 正面应对这些威胁可能需要比“氛围编码”这个词所暗示的更多的审慎。来自魁北克大学乌塔韦校区办公室的Rafael Khoury教授一直在密切关注AI生成代码安全性的发展,并相信新技术将改善其安全性。 在2023年的一篇论文中,Khoury教授研究了要求ChatGPT在没有任何更多上下文或信息的情况下生成代码的结果,这种做法导致了不安全的代码。那是Chat GPT的早期阶段,Khoury现在对未来的道路持乐观态度。“自那时以来,目前已有大量研究正在审查中,未来着眼于一种使用LLM的策略,这可能会带来更好的结果,”Khoury说,并补充道“安全性正在变得更好,但我们还没有达到可以直接给出提示并获得安全代码的地步。” Khoury接着描述了一项有前景的研究,他们生成代码,然后将此代码发送给一个分析其漏洞的工具。该工具使用的方法被称为“使用生成式AI查找行异常”(简称FLAG)。 “这些工具会发送FLAG,例如,可能识别出第24行存在漏洞,然后开发人员可以将此信息反馈给LLM,并要求它检查并修复问题,”他说。 Khoury建议,这种来回往复对于修复易受攻击的代码可能至关重要。“这项研究表明,通过五次迭代,你可以将漏洞减少到零。” 话虽如此,FLAG方法并非没有问题,特别是因为它可能产生误报和漏报。除此之外,LLM能创建的代码长度也存在限制,并且将片段连接在一起的行为可能会增加另一层风险。 保持人在循环中 “氛围编码”领域内的一些参与者建议将代码碎片化,并确保人类在代码库最重要的编辑中保持核心和中心地位。“编写代码时,要以提交为单位来思考,”Windsurf的产品工程负责人Kevin Hou说,他推崇小规模代码块的智慧。 “将大型项目分解成通常会是提交或拉取请求的较小块。让代理一次构建较小规模、一个独立的功能。这可以确保代码输出经过充分测试和充分理解,”他补充道。 在撰写本文时,Windsurf(通过其前身Codeium)已经处理了超过50亿行AI生成的代码。Hou表示,他们正在回答的最紧迫问题是开发者是否意识到这个过程。 “AI能够同时跨多个文件进行大量编辑,那么我们如何确保开发者真正理解并审查正在发生的事情,而不是盲目地接受一切?”Hou问道,并补充说他们在Windsurf的用户体验上投入了大量精力,“提供了大量直观的方法,让用户完全同步了解AI正在做什么,并让人类完全保持在循环中。”...