关闭菜单 参考资料…… William & 玛丽
w m菜单 关闭 William & 玛丽

W&M团队设计的人工智能可以发现软件中的安全漏洞

Team of computer scientists stands in front of whiteboard
与团队见面: William & 玛丽计算机科学家团队构建了一种人工智能,可以自动识别软件问题是否与安全相关。从左至右:兼职讲师Chris shenefield,副教授Denys Poshyvanyk,博士后Kevin Moran和研究生David Palacio。丹尼尔·麦克克里斯托和研究生卡洛斯·贝尔纳-卡德纳斯不在照片中。Adrienne Berard摄

为未来开发安全技术的关键可能在于让今天的软件工程师的生活更轻松一点。

很难找到一个现代社会没有被软件改变的方面。从医疗保健到娱乐再到银行,计算机化几乎已经进入了每一个行业。随着公众享受软件的好处,我们的数据越来越多地被包含未被发现的漏洞的程序管理。

一个由William & 玛丽计算机科学家组成的团队开发了一种方法,可以在黑客利用这些漏洞之前发现它们。他们建立了一种人工智能,可以自动识别软件问题是否与安全有关。该人工智能以人类语言为模型,在数千个开源程序上进行测试,成功率达到96%。

“对我来说,一个完全自动化的系统能够学习自然人类语言的语义,这一事实非常惊人,”威廉玛丽大学(William & 玛丽)计算机科学博士后凯文·莫兰(Kevin Moran)说。“我们建立了一个基于人工智能的系统,它可以真正理解软件问题的文本,从而确定是否描述了软件的安全相关方面。”

本周,Moran和研究小组的其他成员在克利夫兰举行的第35届软件维护与发展国际会议(ICSME)上发表了一篇关于他们工作的论文。该团队由W&M的研究生David Palacio和Carlos Bernal-Cardenas、本科生Daniel McCrystal、博士后Moran和副教授Denys Poshyvanyk组成。

莫兰开玩笑说:“我们实际上跨越了学术界不同生命周期的范围。

不仅仅是学术界。该项目诞生于与总部位于硅谷的跨国科技集团思科系统(Cisco Systems)的合作。该公司为该团队提供了研究经费,以资助他们的工作。这是合作发表的第一篇论文,第二篇正在审查中。

思科(Cisco)高级安全研究小组首席工程师、威廉玛丽大学(William & 玛丽)计算机科学兼职讲师克里斯·谢尼菲尔(Chris shenefield)说:“我找到了丹尼斯,喜欢他所做的工作,所以我们合作了。”

“这是一次非常好的合作,”shenefield补充道。“我们的目标是将研究带入开发阶段,在那里它可以被用作工业工具——而这正在发生。”

Moran解释说,这个名为SecureReqNet的人工智能系统旨在帮助开发人员优先考虑安全关键任务,这使得思科成为理想的合作伙伴。该公司为研究人员提供了一个正在开发的软件项目的访问权限,因此该团队可以在实际的商业风险中实时评估SecureReqNet。

“在典型的软件开发过程中,工程师经常在一个叫做‘问题跟踪器’的东西中跟踪任务,你可以把它想象成一个大的待办事项列表,”莫兰说。“每个任务被称为一个‘问题’,这些问题可能与许多不同的事情有关,例如修复错误或实现软件中的新功能。我们的主要目标是自动识别与软件安全相关的任务,比如描述处理用户登录凭证或执行加密操作的任务。”

Poshyvanyk说,标记软件的安全方面将有助于开发人员优先考虑最重要的任务。他说,开发团队在开发过程的早期关注安全性是至关重要的,因为随着软件的发展,修复错误只会变得更具挑战性。

“为了使这些开发团队能够实现主动的软件安全实践,需要新的工具来自动执行重复的或智力密集型的任务,否则这些任务将在典型的软件开发和维护周期中被延迟或放弃,”论文指出。

William & 玛丽研究生David Palacio担任项目负责人,是该论文的第一作者,为人工智能的设计和实现做出了贡献,并进行了实验来说明其有效性。他澄清说,SecureReqNet是为开发人员设计的工具,而不是让他们自动离开工作的工具。

他说:“即使是我们最先进的人工智能也仍然很幼稚,我们能达到的自动化程度非常有限。”“作为研究人员,我们的工作还远远不能取代软件工程师。我们让软件工程师的生活更轻松。”

让工程师的生活更轻松的第一步是教人工智能像工程师一样说话。研究人员使用嵌入的数据集来教人工智能阅读,这些数据集包括从国家漏洞数据库(National Vulnerability Database)的52908个条目中提取的文本、从GitHub挖掘的项目中描述的53214个问题以及从维基百科(Wikipedia)挖掘的1万篇一般文章。

然后,研究人员训练人工智能分辨出安全和非安全关键软件问题之间的区别。该团队评估了人工智能在公开软件中1032个未见问题上的有效性。SecureReqNet在一组开源问题上的准确率达到了96%。

此外,研究人员还与思科系统公司合作,在一个闭源商业软件项目上评估了SecureReqNet。在私人程序测试中,人工智能的成功率为71.6%。该团队表示,这显示了商业应用的巨大潜力。

帕拉西奥解释说,工业界的失败率较低,因为人工智能没有接受思科开发团队使用的非正式语言的专门培训。AI需要追踪的问题也更少了。数据集越大,就像该团队用来评估开源问题的数据集一样,SecureReqNet发现漏洞的能力就越强。

“直接的答案是数据,我们的方法依赖于数据来提取具有期望行为的模式,”帕拉西奥说。“在未来,我们的目标是进行更深入的实证评估,将SecureReqNet与不同的基线进行比较,并应用我们的方法来帮助实现其他与安全相关的软件工程任务。”