网络安全

提高代码安全性:使用大型语言模型进行主动漏洞检测的利弊

mm

在网络安全的动态环境中,威胁不断演变,预防代码中的潜在漏洞至关重要。一个有前途的方法是集成人工智能和大型语言模型(LLM)。利用这些技术可以为以前未发现的库中的漏洞提供早期检测和缓解,增强软件应用程序的整体安全性。或者,如我们所说,“找到未知的未知数。”

对于开发人员,使用人工智能来检测和修复软件漏洞有可能通过减少查找和修复编码错误的时间来提高生产力,帮助他们实现所期望的“流态。”然而,在组织将LLM添加到其流程之前,有一些需要考虑的问题。

解锁流态

添加LLM的一个好处是可扩展性。人工智能可以自动为多个漏洞生成修复,减少漏洞的积压,并实现更流畅和加速的流程。这对于处理多个安全问题的组织尤其有帮助。漏洞的数量可能会让传统的扫描方法不堪重负,从而导致解决关键问题的延迟。LLM使组织能够全面解决漏洞,而不会受到资源限制的阻碍。LLM可以提供一种更系统化和自动化的方式来减少缺陷和加强软件安全性。

这导致了人工智能的第二个优势:效率。当找到和修复漏洞时,时间至关重要。自动修复软件漏洞的过程有助于最小化漏洞窗口,使得那些希望利用漏洞的人更难找到机会。这种效率也带来了显著的时间和资源节省。对于拥有大量代码库的组织来说,这尤为重要,因为他们可以优化资源并更战略性地分配努力。这是特别重要的,因为它使他们能够优化资源和更战略性地分配努力。

LLM能够在大量安全代码数据集上进行训练,创造了第三个好处:生成修复的准确性。合适的模型利用其知识提供符合既定安全标准的解决方案,从而增强软件的整体弹性。这最小化了在修复过程中引入新漏洞的风险。但是,这些数据集也可能带来风险。

应对信任和挑战

使用人工智能来修复软件漏洞的最大缺点之一是可信度。模型可以在恶意代码上进行训练,并学习与安全威胁相关的模式和行为。当用于生成修复时,模型可能会利用其学习经验,意外地提出可能引入安全漏洞而不是解决它们的解决方案。这意味着训练数据的质量必须代表要修复的代码,并且必须没有恶意代码。

LLM还可能在其生成的修复中引入偏见,导致可能不涵盖所有可能性范围的解决方案。如果用于训练的数据集不多样化,模型可能会发展出狭隘的视角和偏好。当被要求为软件漏洞生成修复时,它可能会根据训练期间设置的模式来偏爱某些解决方案而不是其他解决方案。这可能会导致一种以修复为中心的方法,这种方法可能忽略了非传统但有效的软件漏洞解决方案。

虽然LLM在模式识别和基于学习模式生成解决方案方面表现出色,但当面临与其训练数据明显不同的独特或新颖挑战时,它们可能会表现不佳。有时,这些模型甚至可能“产生幻觉”,生成虚假信息或不正确的代码。生成式人工智能和LLM也可能对提示很挑剔,这意味着输入的微小变化可能会导致代码输出的显著差异。恶意行为者还可能利用这些模型,使用提示注入或训练数据中毒来创建额外的漏洞或访问敏感信息。这些问题通常需要对上下文有深刻的理解、复杂的批判性思维技能和对更广泛的系统架构的认识。这凸显了人工智能输出的指导和验证中的人类专业知识的重要性,并且组织应该将LLM视为增强人类能力的工具,而不是完全取代它们。

人类元素仍然至关重要

在整个软件开发生命周期中,特别是在利用高级人工智能模型时,人类的监督至关重要。虽然生成式人工智能和LLM可以处理繁琐的任务,但开发人员必须保持对其最终目标的清晰理解。开发人员需要分析复杂漏洞的细微差别,考虑更广泛的系统影响,并应用特定领域的知识来制定有效且适应性强的解决方案。这方面的专业知识使开发人员能够量身定制符合行业标准、合规性要求和特定用户需求的解决方案,这些因素可能无法被人工智能模型单独捕捉到。开发人员还需要对人工智能生成的代码进行严格的验证和验证,以确保生成的代码达到最高的安全性和可靠性标准。

将LLM技术与安全测试相结合,为增强代码安全性提供了一个有前途的途径。然而,采取平衡和谨慎的方法至关重要,既要认识到潜在的利弊。通过结合该技术和人类专业知识的优势,开发人员可以主动识别和缓解漏洞,增强软件安全性,并最大限度地提高工程团队的生产力,使他们能够更好地找到流态。

布鲁斯·斯内尔(Bruce Snell),网络安全战略师,Qwiet AI公司,拥有超过25年的信息安全行业经验。他的背景包括传统IT安全的管理、部署和咨询。过去10年中,布鲁斯转向了OT/IoT网络安全(拥有GICSP认证),参与了包括汽车渗透测试、石油和天然气管道、自动驾驶车辆数据、医疗IoT、智能城市等项目。布鲁斯还曾多次在网络安全和IoT会议上发言,并在沃顿商学院和哈佛商学院担任客座讲师,并且是获奖播客“Hackable?”的联合主持人。