本次分享论文:Artificial Intelligence Techniques for Security Vulnerability Prevention
基本信息
原文作者:Steve Kommrusch
作者单位:Colorado State University, Department of Computer Science, Fort Collins, CO, 80525 USA
关键词:artificial intelligence, machine learning, security, vulnerabilities, software
原文链接:https://arxiv.org/pdf/1912.06796
开源代码:暂无
论文要点
论文简介:计算机安全问题已存在数十年之久,人工智能技术在这一领域的应用亦有着漫长的历史。以往,多数技术主要用于检测运行系统中的攻击,然而,近期在机器学习(诸如自然语言处理)方面所取得的进步,让在系统部署前处理软件和规范以检测漏洞变为现实。此文针对运用人工智能技术(涵盖机器学习)于产品引入前检测或修复安全漏洞的方式展开了综述。在所调查的论文里,提出了诸如使用自然语言处理分析需求文档以保障安全标准的完整性、开展神经模糊测试、生成漏洞检测等技术。我们把现有技术划分为三类:漏洞检测、漏洞修复以及规范分析。总体来讲,尽管人工智能技术在该领域已极具效用,但其应用范畴依旧有限,提供了一系列能够辅助但无法取代系统开发的工具,以降低漏洞风险。
研究目的:本文的研究目的是通过总结和分析最新的人工智能技术在安全漏洞检测与预防中的应用,找出最有前景的研究方向,以期在系统部署前更有效地检测和修复软件漏洞。
引言
近年来,机器学习技术的应用范畴不断延展,已能够在自然语言处理、自动测试和代码分析方面发挥关键作用。此外,传统的人工智能技术(诸如支持向量机、遗传算法和推理引擎)也可用于代码分析,以防在系统部署前引入漏洞。据 Cybersecurity Ventures 的报告,全球每年生成的代码量多达 1110 亿行。凭借在系统部署前借助自动化机制检测漏洞,产品团队能够将更多精力集中于功能开发和性能优化上。尽管机器学习和人工智能技术于安全漏洞检测领域已取得显著成果,但仍需更进一步的研究来拓展其应用范围,提升检测的精度与效率。
漏洞检测
漏洞检测指的是通过对源代码或二进制代码加以分析,从而识别其中易受攻击的代码段的问题。表 1 呈现了运用人工智能技术进行漏洞检测的相关论文。其中有两篇论文重点研究了安卓应用,这凸显了机器学习应用在安全领域的一个主要原因。那些声誉取决于软件质量的公司也在提供平台,以供大量开发者贡献代码。自动处理所提交的应用程序的这种能力,极大地减轻了经过培训的专业人员进行质量保证的工作负担。
漏洞修复
漏洞修复意味着在检测到漏洞之后,借助人工智能技术对代码中的漏洞进行自动修复。代码修复的目标在于通过学习示例,把易受攻击的代码转变为安全的代码。伴随这一领域的发展,数百万行的遗留代码能够得到清理,从而大幅增强安全性。即便只是早期的进展,也可能极具价值。例如,倘若发现了新类型的漏洞(如 Spectre),能够迅速生成示例以训练如何将易受攻击的代码变更为受保护的代码。创建一个能够自动将包含漏洞的代码转化为安全代码的系统,能够有效地修复大型软件库中的代码。
规范分析
自然语言处理的进步为研究人员创造了自动处理漏洞描述或产品规范以评估安全风险的契机。在 2017 年,CVE 每周记录了将近300个漏洞,这给系统管理员带来了沉重的负担,他们需要对关键漏洞进行评估、优先处理以及修补。Bozorgi 等人运用机器学习来消化 CVE 漏洞标签和描述,并生成一个单一的分数,用于总结漏洞的可利用性和严重性。该分数能够辅助系统管理员优先开展新漏洞的补丁工作。
论文结论
尽管人工智能应用于安全漏洞的领域相对较窄,然而我们在此次调查中所讨论的论文展现出了研究的多样性。其中一些最为有趣的成果包含在新智能手机应用程序中检测代码和规范里的漏洞的能力,这在消费者群体中属于一个重要的风险领域。通过学习适当的代码转换来自动修复易受攻击的代码的潜力,在发现新漏洞时极为有用。另外,分析英文规范以察觉安全风险并参照安全标准文档的能力也颇具前景。鉴于全球每年约生成 1110 亿行软件代码,能够在系统部署前得以应用的自动化安全技术,对于技术能够继续被消费者、公司和政府安全使用将至关重要。
原作者:论文解读智能体
校对:小椰风