生成式AI编码:创新与漏洞

生成式AI(GenAI)正在重塑软件开发方式。GitHub Copilot、ChatGPT等工具已迅速成为现代开发工具包中不可或缺的一部分,这些工具有助于提高开发效率、减少重复性工作并加快产品上市速度。这些工具能够给出代码片段建议、自动生成文档、预测漏洞,甚至指导架构决策。我们正进入一个开发者不再仅仅编写代码,而是与机器协作完成代码的时代。

然而:AI生成的代码中可能潜藏着越来越多可利用的安全漏洞。

这些推动快速创新的工具,同时也在重新引入历史遗留漏洞、传播不安全的代码模式,并在无意中为攻击者创造了可乘之机。随着开发周期缩短,攻击者的行动也在加速——他们利用AI扫描漏洞,并以惊人的速度将零日漏洞武器化。

企业团队需要重新审视期望、策略和开发者培训,确保GenAI在通往安全软件的道路上始终扮演“副驾驶”而非“自动驾驶”的角色。

人工智能加速开发的兴起

GenAI 从根本上改变了软件开发生命周期。从自动执行重复性任务到建议代码和生成文档,这些解决方案可以帮助开发人员提高效率,专注于高价值的问题解决。采用 GenAI 驱动的工作流程的组织通常会看到生产力的提高。

对许多人而言,GenAI已变得与版本控制或CI/CD管道一样重要。但正是这种普及化让风险开始滋生。

代码中的盲点

AI生成的代码往往缺乏上下文,尤其是在安全方面。这些工具基于包含缺陷、过时或不安全示例的大规模公共数据集进行训练。因此,GenAI可能会在未经警告或开发者未察觉的情况下复现已知的不良实践。

目前AI辅助代码中常见的一些漏洞包括:

跨站脚本(XSS)

跨站请求伪造(CSRF)

不安全的反序列化

硬编码凭证

开放重定向

随着攻击者也开始利用GenAI串联漏洞或创建多态恶意软件,零日漏洞从发现到被利用的时间窗口正在不断缩小。

信任的幻觉

开发人员中一个特别危险的假设是,人工智能建议的代码是“安全的”,因为它在语法上是正确的或来自可信的工具。但能编译通过的代码并不一定是安全的。

由于 GenAI 输出通常看起来很精美,因此开发人员可能会跳过关键步骤、代码审查、安全审计或必要的文档检查。这种虚假的安全感对于初级开发人员或处于交付压力下的快速团队来说尤其危险。

更糟糕的是人工智能幻觉,语法上有效的输出,但在语义上是无意义的。

GenAI 时代的实践

安全团队和开发人员应设计策略和工作流,以安全、负责任的方式整合GenAI。

推荐的做法包括:

始终使用 linter、静态代码检测工具和安全扫描工具验证AI生成的代码。

通过官方文档或经过审核的代码库交叉参考AI的建议。

避免未经人工审查直接将AI输出复制到生产环境。

开展明确针对GenAI工作流的安全编码培训。

将GenAI纳入DevSecOps流程,并设置安全与合规检查点。

法规政策

最近的政策变化凸显了负责任地使用人工智能的紧迫性。

我国的《生成式人工智能服务管理暂行办法》、欧盟《人工智能法案》和美国《第14110号行政命令》均强调对AI生成输出的人工监督和风险缓解,尤其是在关键基础设施和软件系统中。

这些政策明确表示:AI不能是一个黑盒。开发者和安全领导者必须能够解释、审计和验证AI生成的内容。对全球运营的企业而言,责任更为重大。未能实施监督可能导致漏洞和违规风险。

虽然人工智能功能强大,但人类开发人员仍然是质量和安全的最终评判者。这意味着组织必须投资于培训,教开发人员如何使用人工智能。

包括:

理解GenAI模型的训练方式及其局限性。

识别AI推荐代码中的常见安全问题。

实践防御性编程并对建议进行批判性评估。

在开发团队中嵌入安全专家,以指导和审查GenAI的使用。

安全在软件开发生命周期中始终是重中之重。因此,将监督、教育和安全检查点整合到AI辅助工作流中,才能确保GenAI在提高开发效率、减少重复性工作并加快产品上市速度的基础上,不以安全为代价。

 

参读链接:

https://devops.com/coding-at-the-speed-of-ai-innovation-vulnerability-and-the-genai-paradox/

posted @ 2025-09-08 11:42  中科天齐软件原生安全  阅读(17)  评论(0)    收藏  举报