生成式 AI 软件开发可提高生产力和风险
快速阅读: 据《安保大道》称,研究表明,随着人工智能编程助手如GitHub Copilot的广泛应用,开发者生产力显著提升,但同时也引发了安全隐患,如个人身份信息和支付数据泄露风险增加、缺少授权和输入验证的API增多等。专家建议加强风险检测和治理,确保代码质量和安全性。
人工智能编程助手的使用正在不断增加,最近一项分析数百万行代码的研究发现,虽然它们能够提升开发者的生产力,但也对软件开发的质量和安全性构成了威胁。根据Apiiro团队的研究,基于来自金融、工业制造和技术领域数十家企业的第一方数据,指出生成式人工智能编程助手如GitHub Copilot在过去两年中显著提高了代码创建速度——即便开发者的生产力保持稳定。然而,这种加速的速度也带来了显著的安全隐患,包括包含个人身份信息(PII)和支付数据的存储库增加了三倍,缺少授权和输入验证的API增加了十倍,以及暴露的敏感API端点数量也在增长。“随着AI生成的代码规模扩大,应用程序的安全风险也随之增加,这凸显了加强风险检测和治理的必要性,”报告指出。使用AI助手已成为开发者的常规操作。Black Duck Software的高级总监贝丝·林克指出,在Black Duck的2024年全球DevSecOps状态报告中,约九成的组织表示他们的开发者在使用或未经授权的情况下使用AI编程工具。Apiiro报告称,自2022年11月ChatGPT发布以来,已有超过1.5亿开发者使用GitHub Copilot作为AI代码助手。以下是关于平衡开发者生产力与AI助手带来风险的关键因素,包括下一代自主型AI的内容——合并请求与生产力:相互矛盾的信号。Apiiro报告发现,代码激增还伴随着合并请求数量的上升。自2022年下半年以来,合并请求数量增加了70%。SandboxAQ工程副总裁斯特凡·莱希瑙尔指出,这个增长率超过了AI存储库30%的增长率和开发者20%的增长率。虽然你可能会认为更多的合并请求意味着软件开发团队更高效,但莱希瑙尔表示,这仅仅意味着更多地使用AI助手。“除非有其他理由相信你的团队变得更有生产力,否则更多的合并请求可能意味着他们正在利用像AI助手这样的工具,”他说。StackAware的创始人兼首席执行官沃尔特·海多克表示,合并请求速度的增加并不一定意味着开发者广泛使用AI编程助手,但这是一种潜在的解释。“通过更快地生成代码,特别是对于样板代码或容易预测的功能,开发者可以比没有这些助手时更快地提交更改,”他说。另一方面,海多克表示,如果代码库的整体大小缩小且现有测试通过——表明功能没有损失或新错误没有添加——那么AI助手可能正在推动生产力的提高。AI编程助手的吸引力及风险上升的原因。云安全联盟的研究分析师乔什·布克尔解释说,AI编程助手通过提供一种交互方式快速生成样板代码来吸引开发者,通常节省编写必要但不新颖的代码的时间。SlashNext的现场首席技术官斯蒂芬·科斯基表示,AI助手通过自动化重复编码任务和生成原本需要大量研究的代码片段,极大地提升了生产力。杜克大学开设了一门关于AI辅助开发的课程,科斯基说。该课程从基础到高级概念教授Rust语言,并借助AI辅助。他说:“这些工具让开发者能够更快完成任务,让他们专注于软件开发中更具创造性和复杂性的方面。”但是,AI增强的生产力是有代价的。例如,根据Apiiro的报告指出,随着代码量激增,暴露敏感数据的API数量几乎翻了一倍。GitGuardian的开发者倡导者德韦恩·麦克丹尼尔对此并不感到意外,因为开发者信任AI助手的输出以加快工作速度,尽管这种信任是误置的。麦克丹尼尔的回答是:与大多数AI问题一样,给人类更多的监督,这次是为了改进合并请求过程。“当代码被推送时,正是自我反省和教学的最佳时机,”他说。“与其关注越来越多的[持续集成]推送,团队有机会使每次代码审查成为知识传递的事件,在这里我们看到真正的个人编码技能提升。”缺少授权和输入验证。Wallarm的安全策略师蒂姆·埃尔林表示,API中的敏感数据泄露是一个严重的问题,用AI自动化解决这一问题具有挑战性。虽然检测API中的敏感数据并不难,但理解这些敏感数据是否应该存在却很困难。根据Apiiro的调查还发现,过去一年中包含缺少授权和输入验证的API的存储库数量增加了十倍——这意味着存在高风险代码,KnowBe4的安全意识倡导者埃里克·克伦说。SlashNext的科斯基表示,AI代码助手经常生成功能性但不安全的代码,缺乏适当的授权检查和输入验证,因为它们被训练优先考虑工作解决方案而不是安全解决方案。科斯基表示,组织应考虑为AI生成的代码实施强制性安全审查,部署专门检查缺失授权和输入验证的自动化API安全测试工具,并向开发者提供针对性培训,以识别和修复这些特定漏洞。代码变动意味着PII麻烦。Apiiro研究人员还报告称,自2023年以来,包含个人身份信息(PII)和支付数据的存储库数量增加了三倍。SandboxAQ的莱希瑙尔表示,AI助手可能无法区分哪些类型的数据是敏感的,哪些不是,或者它们可能不了解所有PII泄露的方式。科斯基表示,AI助手经常低效处理敏感数据,将PII和支付信息存储在没有适当加密或访问控制的存储库中。使用这些工具的开发者可能无法识别生成的代码是否不恰当地存储或暴露敏感数据,尤其是在AI做出看似合理的建议但实际上违反数据保护最佳实践时,他说。在分析了2.11亿行代码后,软件工程平台GitClear得出结论:“代码比以往任何时候都更加变动和重复。”GitClear在其LinkedIn帖子中写道:正确平衡生产力和风险至关重要。Aquia的CISO兼联合创始人克里斯·休斯最近在LinkedIn上询问安全同行:“我们可能看到了生产力的飞跃,但如果是以牺牲质量和稳定性为代价,那值得吗?”他表示,考虑到这些模型主要是在开源代码库上进行训练,其中包含漏洞和缺陷,组织应预期漏洞将以指数级增长。“我们已经看到每年的CVE/漏洞增长达到两位数,在copilot工具爆炸之前,”他说。休斯的建议是:“系好安全带。”
(以上内容均由Ai生成)