在过去的几年里,人工智能已经大规模地融入了开发者的工具包。GitHub Copilot、ChatGPT 以及各种 AI 代码助手等工具有望提高生产力、自动执行繁琐的任务,甚至还能发现安全漏洞。然而,就在我们欣喜这些强大的新功能的同时,一个根本性的问题却笼罩着应用程序安全 (AppSec) 领域:
人工智能真的能帮助我们编写安全的代码吗?还是它只是让我们更容易更快地发布不安全的代码?
让我们深入研究一下等式的两边。
生产力繁荣:人工智能作为编码副驾驶
毫无疑问,人工智能工具正在帮助开发者更快地发展。你可以让人工智能构建 REST API、转换 SQL 查询,甚至编写正则表达式,几秒钟内就能得到相当可靠的响应。尤其对于初级开发者来说,这可以说是一个巨大的学习加速器。
人工智能辅助编码有可能减少认知负荷并提高常见任务的一致性——当开发人员承受压力或频繁切换上下文时,这两个因素通常会导致安全漏洞。
一些人工智能工具还内置了安全意识。它们可以标记常见漏洞,例如 SQL 注入或硬编码密码。基于机器学习的静态分析引擎在识别海量代码库中的不安全模式方面也越来越出色。
所以,是的——人工智能绝对可以帮助编写更安全的代码,尤其是与适当的护栏配合使用时。
但速度并不总是好事
这就是硬币的另一面。
帮助您快速编写代码的人工智能也可以帮助您同样快速地生成易受攻击的代码——甚至更快。
为什么?因为人工智能不像人类那样理解安全。它无法推理威胁,也无法了解特定应用程序的上下文。它根据所见的模式生成代码,包括来自公共代码库的