Trustwave 的研究人员测试了 ChatGPT 对源代码进行分析和提高代码安全性建议的能力,结果显示 ChatGPT 可以提供一些有用的建议来改进代码安全性。测试包括探测 ChatGPT 是否能够找到代码中的缓冲区溢出等问题。研究人员提供了大量代码供 ChatGPT 分析,观察其反应。然而,他们发现 ChatGPT 的回应结果并不一致。
当被问及如何提高代码安全性时,研究人员表示,ChatGPT 建议增加缓冲区的大小。ChatGPT 提出的其他建议还包括使用更安全的输入数据函数和动态分配内存。研究人员发现,ChatGPT 可以根据其建议中的任何修复方法重构代码,例如使用动态内存分配。尽管存在限制,研究人员认为 ChatGPT 可以用于支持源代码分析。
他们表示,ChatGPT 对于生成基础代码和单元测试特别有用,因为这些任务需要最少的上下文并更关注传递的参数。然而,当提供更大的代码块或不太直观的问题时,ChatGPT 无法很好地识别它们。
Trustwave 的威胁情报经理 Karl Sigler 表示,ChatGPT 在代码方面表现良好且足够灵活,能够回应许多不同的请求。他认为 ChatGPT 可以成为「程序员的好朋友」,帮助他们了解新编程库中提供的应用程序编程接口和功能。由于 ChatGPT 可以理解人类语言,Sigler 认为有很多潜力可以利用 ChatGPT 来帮助检查规范文档和合规策略中的误解。
在未来的两到五年中,Sigler 预计 ChatGPT 和其他生成式 AI 系统将成为软件开发生命周期的一部分。