利用代码知识图谱实现Bug定位

VSole2022-05-05 07:26:07

给定软件项目中缺陷的自然语言描述,缺陷定位可以自动定位相关的源文件。最近,基于深度学习的模型被用于提取代码的语义信息,对缺陷定位有显著的改进。然而,编程语言是一种高度结构化和逻辑化的语言,它包含源文件内部和跨源文件的各种关系。在本文中,作者提出了一个名为KGBugLocator的模型,利用知识图谱来提取代码内部的关系,使用基于关键字监督的双向注意力机制正则化模型,挖掘源代码文件和缺陷报告间的内在关联。 基于深度学习的缺陷定位存在两个问题:

1. 如何表示编程语言以更好地匹配自然语言。

2. 如何更好地提取特征以降低编程语言和自然语言之间的语义鸿沟。

文章所提模型的框架如图1所示,分为四个部分:

  • 代码知识图谱嵌入
  • 预编码
  • 基于关键词监督的双向注意力机制
  • Bug定位

Fig. 1 模型框架 

文章所构建的代码知识图谱示例如图2所示。代码知识图谱基于AST构建,节点和边分别对应代码实体和代码实体间关系。代码实体有5种类型:class、property、method、parameter和variable;对应的关系实体也是5类:class间的inheritance关系,class和property、class和method、method和parameter、method和variable之间的has关系,property和class、variable和class之间的instance_of关系,method和class之间的return type关系,method和method间的call关系。文章使用LSTM捕捉Bug报告的语义信息,使用CNN捕捉代码的语义信息,得到预处理的文本和代码表示。然后使用关键字监督帮助注意力机制更好地关注关键信息。具体来说,作者将既在代码中出现,又在报告中出现的token进行标记,将其所在的代码标记为关键代码行,关键代码行的权重高于非关键代码行。

Fig. 2 代码知识图谱

Fig. 3 数据集结构

本作品采用《CC 协议》,转载必须注明作者和本文链接
给定软件项目中缺陷的自然语言描述,缺陷定位可以自动定位相关的源文件。最近,基于深度学习的模型被用于提取代码的语义信息,对缺陷定位有显著的改进。然而,编程语言是一种高度结构化和逻辑化的语言,它包含源文件内部和跨源文件的各种关系。在本文中,作者提出了一个名为KGBugLocator的模型,利用知识图谱来提取代码内部的关系,使用基于关键字监督的双向注意力机制正则化模型,挖掘源代码文件和缺陷报告间的内在关
网络攻防对抗不断演化升级,人工智能因其具备自学习和自适应能力,可为自动化网络攻防提供助力,已成为网络攻防的核心关键技术之一。
Github渗透测试文档资料集合
国内很多公司相继声称做类ChatGPT的产品,也有公司公布了其产品的上线时间表。国内外这些事件导致ChatGPT几个月的热度不降,话题数量与文章数量均于2023年2月14号达到顶峰,目前开始有所回落。目前,无论是绿盟科技还是相关从业人员均发布了许多案例测试ChatGPT恶意软件生成以及撰写网络钓鱼电子邮件等功能。
国内很多公司相继声称做类ChatGPT的产品,也有公司公布了其产品的上线时间表。国内外这些事件导致ChatGPT几个月的热度不降,话题数量与文章数量均于2023年2月14号达到顶峰,目前开始有所回落。目前,无论是绿盟科技还是相关从业人员均发布了许多案例测试ChatGPT恶意软件生成以及撰写网络钓鱼电子邮件等功能。其中,影响力最大的发言来自于图灵奖得主Yann LeCun。LeCun表示LLM在实现人类水平AI方面扮演的角色有限。
一年前,ChatGPT问世,以强大的信息整合推理和语言对话能力惊艳全球,随后,以大语言模型LLM(以下简称“大模型”)为代表的AI技术应用全面席卷,赋能千行百业,重构业务流程,加速产业升级。
RSAConference2022将于旧金山时间6月6日召开。大会的Innovation Sandbox(沙盒)大赛作为“安全圈的奥斯卡”,每年都备受瞩目,成为全球网络安全行业技术创新和投资的风向标。 前不久,RSA官方宣布了最终入选创新沙盒的十强初创公司:Araali Networks、BastionZero、Cado Security、Cycode、Dasera、Lightspin、Neos
元数据描述数据资产各个方面的信息,以便在整个生命周期中提高其可用性。元数据现代数据架构中的连接粘合剂,是企业数字化建设的基石。“元数据驱动”的安全体系是以安全资源的元模型思想,构建覆盖网络安全各维度的元数据体系,实现安全要素的规范化、模型化、资源化。
SAMPLE服务器的行为及其漏洞取决于一段时间内交换的一系列消息,这些消息决定了服务器的状态。客户端发送的消息序列以红色突出显示。AFLNET读取响应报文并提取协议指定的状态码,确定当前的执行状态。所出现了新的状态序列哈希值则认为当前的测试用例是Interesting的。
伴随着人工智能技术的发展,人们的生产方式、生活方式、思维方式及交往方式逐步发生着巨大而深远的变化。企业级机器学习平台逐渐形成交通银行机器学习技术应用的智慧大脑,为交通银行深化数字化经营成就核心竞争力。为发掘数据之间的关联性,交通银行打造“全栈式”知识图谱平台。创建人工智能实验室的主要目的就是加快新技术的探索和AI能力的落地,提升我行感知智能的水平。
VSole
网络安全专家