用于分析数据污染传播的方法、设备和计算机可读存储介质技术

技术编号:24517885 阅读:14 留言:0更新日期:2020-06-17 06:53
本发明专利技术涉及一种用于分析数据污染传播的方法、设备和计算机可读存储介质。该方法包括:步骤1:收集所有类内的全局变量和局部变量,以便得到所有变量的数据信息;步骤2:逐一分析所述数据信息,形成所述数据信息之间的关联关系。本发明专利技术解决了现有的数据污染传播只是理论上的描述并没有具体的实现方式的问题,使得完整地表达出来数据传播的流程,能够对任何一个节点进行查找,很快地定位节点,并且很快地溯源到数据的源头。

Methods, equipment and computer readable storage media for analyzing data pollution propagation

【技术实现步骤摘要】
用于分析数据污染传播的方法、设备和计算机可读存储介质
本专利技术涉及源代码安全检测的
,具体地涉及一种用于分析数据污染传播的方法、设备和计算机可读存储介质。
技术介绍
目前,数据流分析是软件源代码安全检测工具最重要的一种分析方法。数据流分析主要是分析数据在程序传播过程中使用不当或数据受到污染而引起的安全问题。数据污染传播理论由来已久,但是由于数据传播的复杂性和多样性导致数据流的表述和存储非常困难。首先现实中有多种多样的编程语言,有高级语言、脚本型语言、面向对象的语言和面向过程的语言等,每种语言对基础数据类型的定义又不一样。其次数据在传递过程中会经过不同的处理,最基本的对数据的append处理,在JAVA语言中表现为“+”或“buffer.append()”。第二种是对数据进行不同函数的处理,这个函数可以是引用第三方的,也可以是自定义的函数。但是在分析过程中要确定这个函数是否清理了数据,如果清理了,则污染传播到此结束。如果没有清理,则确定传播是不是继续往下。
技术实现思路
本专利技术所要解决的技术问题是提供一种用于分析数据污染传播的方法、设备和计算机可读存储介质,使得能够完整地表达数据传播的流程。具体地,如何将数据传播的流程完整地表达出来是进行数据流分析的重点,这种表达方式能满足对任何一个节点进行查找,能够很快地定位到这个节点,并且能够很快地溯源到数据的源头。这个节点的所有信息必须能满足分析的要求,这个节点所在的链路信息也必须能随时查找。需要一种数据存储方法和高效的算法来满足这些要求。通过本专利技术可以实现的技术目的不限于上文已经特别描述的内容,并且本领域技术人员将从下面的详细描述中更加清楚地理解本文中未描述的其他技术目的。本专利技术解决上述技术问题的技术方案如下:根据本公开的一方面,本专利技术提供一种用于分析数据污染传播的方法,其特征在于,所述方法包括:步骤1:收集所有类内的全局变量和局部变量,以便得到所有变量的数据信息;步骤2:逐一分析所述数据信息,形成所述数据信息之间的关联关系。可选地,在如上所述的方法中,在步骤1中,将所述全局变量和局部变量中的所有变量定义成多个数据节点,确定所述数据节点是否为污染源节点,然后获得所述多个数据节点中的每一个的属性,将所述多个数据节点组成最终数据信息表。可选地,在如上所述的方法中,所述数据节点的属性包括ID、所在函数名称、数据节点的变量名称、数据节点所在的行数、数据节点的引用节点、数据节点是否为全局变量以及数据节点是否为污染源节点。可选地,在如上所述的方法中,如果数据节点是局部变量,则所述数据节点的属性还包括所在方法名称;如果数据节点是全部变量,则所述数据节点的属性还包括所在类名称;如果数据节点是污染源节点,则将该数据节点标注为污染源节点,并且将该数据节点存储在污染源表中,该污染源节点也作为数据链表的第一个节点。可选地,在如上所述的方法中,在步骤2中,通过当前的数据节点所使用的数据节点,查找不同数据节点之间的上下文关系,其中将使用污染源节点的节点作为污染源节点的子节点。可选地,在如上所述的方法中,根据数据节点的名称,对最终数据信息表进行排序,遍历所述最终数据信息表中的每一个数据节点,找到所述数据节点的引用节点,将所述数据节点和其引用节点存储在数据链路中,同时记录所述数据节点所属于的数据链路Key,最终生成存储所有数据链路的Map对象,从而获得数据信息的数据传递过程。可选地,在如上所述的方法中,当前的数据节点能够引用多个数据节点,如果当前的数据节点引用多个数据节点,则当前的数据节点属于两个数据链路。根据本公开的一方面,本专利技术提供一种用于分析数据污染传播的设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的用于分析数据污染传播的方法的步骤。根据本公开的一方面,本专利技术提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现如上任一项所述的用于分析数据污染传播的方法的步骤。上述技术方案仅为本专利技术实施例的一些部分,本领域技术人员从以下本专利技术的详细描述中可以导出和理解包含了本专利技术的技术特征的各种实施例。本专利技术的技术方案采用数据节点的方式记录数据信息简单易于扩展,易于使用。数据信息表中的数据按名称排序,可以实现快速查找,使用起来更方便。数据信息表中存放所有的节点信息,后续所有数据方面的操作可以直接查找该表,不用再查找语法树,大大地提高了使用的效率。数据交叉的节点单独记录为多条数据链路,不容易产生混乱。以数组的方式记录数据链路,简单而易于使用。数据信息表可以作为数据字典表,也可以作为数据索引表来使用。数据污染点和数据传递过程记录详细,使用简单。本领域技术人员将会理解,通过本专利技术可以实现的效果不限于上文已经具体描述的内容,并且从以下详细说明中将更清楚地理解本专利技术的其他优点。附图说明被包括以提供对本专利技术的进一步理解的附图示出本专利技术的实施例,并且与说明书一起用于解释本专利技术的原理。图1为本专利技术实施例提供的一种用于分析数据污染传播的方法的流程图。图2-3为本专利技术实施例提供的一种用于分析数据污染传播的方法的示意图。图4为本专利技术实施例提供的一种用于分析数据污染传播的设备的示意图。具体实施方式现在将详细参考本专利技术的示例性实施例,其示例在附图中示出。下面将参考附图给出的详细描述旨在解释本专利技术的示例性实施例,而不是示出可以根据本专利技术实现的唯一实施例。以下详细描述包括具体细节以便提供对本专利技术的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本专利技术。在一些情况下,已知的结构和设备被省略或以框图形式示出,集中于结构和设备的重要特征,以免模糊本专利技术的概念。在整个说明书中将使用相同的附图标记来表示相同或相似的部分。以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。在本专利技术的描述中,需要理解的是,术语“上”、“下”、“中心”、“内”、“外”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。源代码是指计算机编程语言的源码。不同的源码由该语言的关键字和基本语法组成。缺陷是指源代码中出现的设计不合理,或使用不当等造成程序的缺陷。漏洞是指源代码中出现的由于代码设计不合理引起的安全威胁。数据流是指数本文档来自技高网...

【技术保护点】
1.一种用于分析数据污染传播的方法,其特征在于,所述方法包括:/n步骤1:收集所有类内的全局变量和局部变量,以便得到所有变量的数据信息;/n步骤2:逐一分析所述数据信息,形成所述数据信息之间的关联关系。/n

【技术特征摘要】
1.一种用于分析数据污染传播的方法,其特征在于,所述方法包括:
步骤1:收集所有类内的全局变量和局部变量,以便得到所有变量的数据信息;
步骤2:逐一分析所述数据信息,形成所述数据信息之间的关联关系。


2.根据权利要求1所述的方法,
其特征在于,在步骤1中,将所述全局变量和局部变量中的所有变量定义成多个数据节点,确定所述数据节点是否为污染源节点,然后获得所述多个数据节点中的每一个的属性,将所述多个数据节点组成最终数据信息表。


3.根据权利要求2所述的方法,
其特征在于,所述数据节点的属性包括ID、所在函数名称、数据节点的变量名称、数据节点所在的行数、数据节点的引用节点、数据节点是否为全局变量以及数据节点是否为污染源节点。


4.根据权利要求2所述的方法,
其特征在于,如果数据节点是局部变量,则所述数据节点的属性还包括所在方法名称;如果数据节点是全部变量,则所述数据节点的属性还包括所在类名称;如果数据节点是污染源节点,则将该数据节点标注为污染源节点,并且将该数据节点存储在污染源表中,该污染源节点也作为数据链表的第一个节点。


5.根据权利要求4所述的方法,
其特征在于,在步骤...

【专利技术属性】
技术研发人员:王小东
申请(专利权)人:思客云北京软件技术有限公司
类型:发明
国别省市:北京;11

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

1