当前位置: 首页 > 专利查询>英特尔公司专利>正文

确定用于软件漏洞检测和纠正的细化上下文的方法和装置制造方法及图纸

技术编号:37915765 阅读:22 留言:0更新日期:2023-06-21 22:38
公开了确定用于软件漏洞检测和纠正的细化上下文的方法和装置。至少一种非暂态机器可读介质包括指令,所述指令当被执行时,使得至少一个处理器至少:对图上的节点分类,该图表示计算机程序,该节点包含与计算机程序相对应的部分漏洞上下文;识别计算机程序中的软件漏洞的位置,该位置是基于该节点的;使用软件漏洞的位置确定软件漏洞的静态漏洞上下文;使用软件漏洞的位置确定软件漏洞的动态漏洞上下文;并且基于静态漏洞上下文和动态漏洞上下文的合并,确定细化漏洞上下文。确定细化漏洞上下文。确定细化漏洞上下文。

【技术实现步骤摘要】
确定用于软件漏洞检测和纠正的细化上下文的方法和装置


[0001]本公开概括而言涉及计算机,更具体而言,涉及确定用于软件漏洞检测和纠正的细化上下文的方法和装置。

技术介绍

[0002]近年来,软件开发的使用在各行各业都有显著增加。软件开发者使用编程语言来编写软件代码。软件代码,或者说代码,包括计算机可读指令,这些指令由计算机执行,以完成任务。在编写代码时,软件开发者可能不经意间包括了软件漏洞。软件漏洞是代码中的错误、缺陷或故障,其导致代码产生不正确或者意外的结果,或者以非预期的方式行事。

技术实现思路

[0003]本公开的一个方面提供了一种确定用于软件漏洞检测的细化上下文的装置。该装置包括:接口电路,用来访问计算机程序;以及处理器电路,包括以下各项中的一个或多个:中央处理单元、图形处理单元或者数字信号处理器中的至少一者,中央处理单元、图形处理单元或者数字信号处理器中的至少一者具有:控制电路,用来控制数据在处理器电路内的移动,算术和逻辑电路,用来执行与指令相对应的一个或多个第一操作,以及一个或多个寄存器,用来存储一个或多个第一操作的结果,指令在装置中;现场可编程门阵列(FPGA),FPGA包括逻辑门电路、多个可配置互连、以及存储电路,逻辑门电路和互连执行一个或多个第二操作,存储电路用来存储一个或多个第二操作的结果;或者专用集成电路(ASIC),包括逻辑门电路,用来执行一个或多个第三操作;处理器电路执行第一操作、第二操作或者第三操作中的至少一者,以使得以下项实例化:节点分类器电路,用来对图上的节点分类,图表示计算机程序,节点表示与计算机程序相对应的部分漏洞上下文;位置识别器电路,用来识别计算机程序中的软件漏洞的位置,位置是基于节点的;静态分析器电路,用来使用软件漏洞的位置确定软件漏洞的静态漏洞上下文;动态分析器电路,用来使用软件漏洞的位置确定软件漏洞的动态漏洞上下文;以及上下文细化器电路,用来基于静态漏洞上下文和动态漏洞上下文的合并,确定细化漏洞上下文。
[0004]本公开的另一方面提供了一种机器可读介质。该介质包括指令,指令当被执行时,使得可编程电路至少:对图上的节点分类,图表示计算机程序,节点表示与计算机程序相对应的部分漏洞上下文;识别计算机程序中的软件漏洞的位置,位置是基于节点的;使用软件漏洞的位置确定软件漏洞的静态漏洞上下文;使用软件漏洞的位置确定软件漏洞的动态漏洞上下文;并且基于静态漏洞上下文和动态漏洞上下文的合并,确定细化漏洞上下文。
[0005]本公开的另一方面提供了一种确定用于软件漏洞检测的细化上下文的方法。该方法包括:对图上的节点分类,图表示计算机程序,节点表示与计算机程序相对应的部分漏洞上下文;识别计算机程序中的软件漏洞的位置,位置是基于节点的;使用软件漏洞的位置确定软件漏洞的静态漏洞上下文;使用软件漏洞的位置确定软件漏洞的动态漏洞上下文;并且基于静态漏洞上下文和动态漏洞上下文的合并,确定细化漏洞上下文。
[0006]本公开的另一方面提供了一种装置,包括用于执行上述方法的组件。
附图说明
[0007]图1是由示例漏洞检测器电路处理来确定用于软件漏洞检测和/或纠正的细化上下文的示例数据集。
[0008]图2是使用图1的示例漏洞检测器电路来执行任务的示例系统的框图。
[0009]图3是图1的示例漏洞检测器电路的示例实现方式的框图。
[0010]图4是示出图3的示例节点分类器电路如何训练模型以检测具有部分漏洞上下文的节点的代码的图表示的说明性示例。
[0011]图5是示出图3的示例上下文验证器电路如何验证细化漏洞上下文包含软件漏洞的代码的图表示的说明性示例。
[0012]图6是代码片段中的静态漏洞上下文和动态漏洞上下文的说明性示例。
[0013]图7是代码片段的细化漏洞上下文的说明性示例。
[0014]图8的流程图代表了可被示例处理器电路执行来实现图1的示例漏洞检测器电路以确定漏洞状态和细化漏洞上下文的示例机器可读指令。
[0015]图9的流程图代表了可被示例处理器电路执行来实现图3的示例静态分析器电路和示例动态分析器电路以如图8中所述确定静态和动态漏洞上下文的示例机器可读指令。
[0016]图10的流程图代表了可被示例处理器电路执行来实现图3的示例上下文细化器电路以如图8中所述细化漏洞上下文的示例机器可读指令。
[0017]图11的流程图代表了可被示例处理器电路执行来实现图1的漏洞检测器电路以确定用于软件漏洞检测的细化上下文的示例机器可读指令。
[0018]图12是包括被构造来执行图7、图8、图9和/或图10的示例机器可读指令以实现图1的示例漏洞检测器电路的处理器电路的示例处理平台的框图。
[0019]图13是图12的处理器电路的示例实现方式的框图。
[0020]图14是图12的处理器电路的另一示例实现方式的框图。
[0021]图15是示例软件分发平台(例如,一个或多个服务器)的框图,示例软件分发平台用于将软件(例如,与图7、图8、图9和/或图10的示例机器可读指令相对应的软件)分发到与最终用户和/或消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、再销售、许可和/或次级许可)和/或原始设备制造商(OEM)(例如,用于包括在要被分发到例如零售商和/或诸如直接购买客户之类的其他最终用户的产品中)相关联的客户端设备。
[0022]一般而言,相同的标号将在全部(一或多幅)附图和伴随的书面描述的各处被用于指代相同或相似的部件。附图不是按比例的。
[0023]除非另有具体声明,否则本文使用诸如“第一”、“第二”、“第三”等等之类的描述语,而不输入或以其他方式表明任何优先级、物理顺序、在列表中的排列和/或以任何方式排序的含义,而只是用作标签和/或任意名称来区分元素,以便易于理解所公开的示例。在一些示例中,描述语“第一”在详细描述中可用于提及某一元素,而同一元素在权利要求中可以用不同的描述语来提及,例如“第二”或“第三”。在这种情况下,应当理解,这种描述语仅仅用于明确地标识那些元素,这些元素例如可能在其他情况下共享同一名称。
[0024]如本文所使用的,“大致”和“大约”指的是由于制造容差和/或其他现实世界不完
美而可能不确切的尺寸。如本文所使用的,“基本上实时”指的是以近乎瞬时的方式发生,承认现实世界中可能存在计算时间、传输等等方面的延迟。从而,除非另有指明,否则“基本上实时”指的是实时+/

1秒。
[0025]如本文所使用的,短语“与
……
通信”——包括其变体——涵盖了直接通信和/或通过一个或多个中间组件进行的间接通信,而不要求直接物理(例如,有线)通信和/或不断的通信,而是还包括按周期性间隔、排定的间隔、非周期性间隔和/或一次性事件的选择性通信。
[0026]如本文所使用的,“处理器电路”被定义为包括(i)一个或多个专用电气电路,其被构造为执行(一个或多个)特定的操作,并且包括一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种确定用于软件漏洞检测的细化上下文的装置,该装置包括:接口电路,用来访问计算机程序;以及处理器电路,包括以下项中的一个或多个:中央处理单元、图形处理单元或者数字信号处理器中的至少一者,所述中央处理单元、所述图形处理单元或者所述数字信号处理器中的至少一者具有:控制电路,用来控制数据在所述处理器电路内的移动,算术和逻辑电路,用来执行与指令相对应的一个或多个第一操作,以及一个或多个寄存器,用来存储所述一个或多个第一操作的结果,所述指令在所述装置中;现场可编程门阵列(FPGA),所述FPGA包括逻辑门电路、多个可配置互连、以及存储电路,所述逻辑门电路和互连执行一个或多个第二操作,所述存储电路用来存储所述一个或多个第二操作的结果;或者专用集成电路(ASIC),包括逻辑门电路,用来执行一个或多个第三操作;所述处理器电路执行所述第一操作、所述第二操作或者所述第三操作中的至少一者,以使得以下项实例化:节点分类器电路,用来对图上的节点分类,所述图表示所述计算机程序,所述节点表示与所述计算机程序相对应的部分漏洞上下文;位置识别器电路,用来识别所述计算机程序中的软件漏洞的位置,所述位置是基于所述节点的;静态分析器电路,用来使用所述软件漏洞的位置确定所述软件漏洞的静态漏洞上下文;动态分析器电路,用来使用所述软件漏洞的位置确定所述软件漏洞的动态漏洞上下文;以及上下文细化器电路,用来基于所述静态漏洞上下文和所述动态漏洞上下文的合并,确定细化漏洞上下文。2.如权利要求1所述的装置,其中,所述节点分类器电路生成所述节点包含所述软件漏洞的概率,所述概率是基于神经网络的,所述神经网络是使用代码存储库中的已提交代码来训练的。3.如权利要求2所述的装置,其中,如果所述概率满足阈值,则所述节点分类器电路将所述节点分类为包含所述软件漏洞。4.如权利要求1或2中任一项所述的装置,其中,所述位置识别器电路基于映射规则来识别所述位置。5.如权利要求1所述的装置,其中,所述节点分类器电路将多个节点分类为包含所述软件漏洞,并且所述位置识别器电路将代码位置的并集确定为所述软件漏洞的位置,所述代码位置的并集表示所述多个节点。6.如权利要求1所述的装置,其中,所述静态漏洞上下文是所述计算机程序的一部分,该部分影响所述软件漏洞的位置的行为。7.如权利要求1所述的装置,其中,所述动态分析器电路利用测试条件来运行所述计算机程序,所述动态漏洞上下文表示所述测试条件的执行路径,所述执行路径包括所述软件漏洞的位置。
8.如权利要求1所述的装置,其中,所述动态分析器电路确定第一动态漏洞上下文和第二动态漏洞上下文,所述上下文细化器电路从所述第一动态漏洞上下文和所述第二动态漏洞上下文确定所述动态漏洞上下文,所述动态漏洞上下文是基于所述第一动态漏洞上下文和所述静态漏洞上下文之间的第一重叠大于所述第二动态漏洞上下文和所述静态漏洞上下文之间的第二重叠而确定的。9.如权利要求1所述的装置,还包括上下文验证器电路,用来验证所述细化漏洞上下文包含所述软件漏洞,所述验证是基于二元分类器的,所述二元分类器是使用代码存储库中的已提交代码来训练的。10.至少一种机器可读介质,该介质包括指令,所述指令当被执行时,使得可编程电路至少:对图上的节点分类,所述图表示计算机程序,所述节点表示与所述计算机程序相对应的部分漏洞上下文;识别所述计算机程序中...

【专利技术属性】
技术研发人员:周圣天贾斯汀
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1