CN104866417B - 路径敏感检测方法和装置 - Google Patents

路径敏感检测方法和装置 Download PDF

Info

Publication number
CN104866417B
CN104866417B CN201410064881.3A CN201410064881A CN104866417B CN 104866417 B CN104866417 B CN 104866417B CN 201410064881 A CN201410064881 A CN 201410064881A CN 104866417 B CN104866417 B CN 104866417B
Authority
CN
China
Prior art keywords
sentence
variable
mistake
path
control node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410064881.3A
Other languages
English (en)
Other versions
CN104866417A (zh
Inventor
衷璐洁
霍玮
李丰
张兆庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201410064881.3A priority Critical patent/CN104866417B/zh
Publication of CN104866417A publication Critical patent/CN104866417A/zh
Application granted granted Critical
Publication of CN104866417B publication Critical patent/CN104866417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Abstract

本发明实施例提供一种路径敏感检测方法和装置,本发明路径敏感检测方法,包括:根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。

Description

路径敏感检测方法和装置
技术领域
本发明实施例涉及领域计算机技术,尤其涉及一种路径敏感检测方法和装置。
背景技术
程序中存在的值流错误是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在,值流错误是指在定值点存在错误定值,且错误定值随值流到达引用点时引发的错误。为保障计算机系统安全运行,消除值流错误非常重要。
目前主要采用静态方法检测值流错误。静态方法不需要运行程序,仅需静态扫描源程序即可发现程序中的错误能够尽早地发现程序中的错误。而为了提高错误检测的精度,通常是通过逐一分析程序中所有可能执行的路径,然后检测值流错误。此类方法具有高检测精度,但由于路径空间的指数级膨胀问题,该分析方法的可扩展性并不理想,无法有效应用于大规模的应用程序。
发明内容
本发明实施例提供一种路径敏感检测方法和装置,从而解决现有技术中检测值流错误的方案存在的可扩展性不理想,无法有效应用于大规模的应用程序的问题。
第一方面,本发明实施例提供一种路径敏感检测方法,包括:
根据值流错误类型为变量设置初始的与错误相关的属性;
沿着定值引用链传播所述初始的与错误相关的属性,所述定值引用链为所有可能流经所述定值点的引用点所组成的集合;
在潜在错误语句处识别所述变量的与错误相关的属性;
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,所述可能错误语句表示所述变量的定值语句经由部分路径到达会导致错误的引用语句;
根据所述可能错误语句获得路径敏感检测的语句输入集;
根据所述路径敏感检测的语句输入集进行路径敏感检测。
在第一方面的第一种可能的实现方式中,所述根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,包括:
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述变量的与错误相关的属性是否为不安全的属性;
若所述变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句,所述控制节点为所述潜在错误语句相对于所述变量的定值语句的控制流图上的控制节点;
若存在检查语句,则查找是否存在特殊控制流;
若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤;
在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定所述潜在错误语句为可能错误语句。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤。
根据第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,还包括:
若存在特殊控制流,则确定所述潜在错误语句为一定不错语句。
根据第一方面、第一方面的第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述根据所述可能错误语句获得路径敏感检测的语句输入集,包括:
对所述可能错误语句进行程序切片,以获得与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述对所述可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,包括:
对所述可能错误语句进行后向切片,以获得语句集合SBT
对所述变量的定值语句进行前向切片,以获得语句集合SFS
计算所述SBT与所述SFS的交集STS,并对所述变量的定值语句进行后向切片,以获得对所述变量的定值语句进行后向切片的结果;
计算获得的对所述变量的定值语句进行后向切片的结果与所述STS的并集,并将所述对所述变量的定值语句进行后向切片的结果与所述STS的并集作为与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
第二方面,本发明实施例提供一种路径敏感检测装置,包括:
设置模块,用于根据值流错误类型为变量设置初始的与错误相关的属性;
传播模块,用于沿着定值引用链传播所述初始的与错误相关的属性,所述定值引用链为所有可能流经所述定值点的引用点所组成的集合;
识别模块,用于在潜在错误语句处识别所述变量的与错误相关的属性;
确定模块,用于根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,所述可能错误语句表示所述变量的定值语句经由部分路径到达会导致错误的引用语句;
获得模块,用于根据所述可能错误语句获得路径敏感检测的语句输入集;
检测模块,用于根据所述路径敏感检测的语句输入集进行路径敏感检测。
在第二方面的第一种可能的实现方式中,所述确定模块,具体用于根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述变量的与错误相关的属性是否为不安全的属性;若所述变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句,所述控制节点为所述潜在错误语句相对于所述变量的定值语句的控制流图上的控制节点;若存在检查语句,则查找是否存在特殊控制流;若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤;在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定所述潜在错误语句为可能错误语句。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定模块,还用于若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤。
根据第二方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述确定模块,还用于若存在特殊控制流,则确定所述潜在错误语句为一定不错语句。
根据第二方面、第二方面的第一种至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述获得模块,具体用于对所述可能错误语句进行程序切片,以获得与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述获得模块,具体用于对所述可能错误语句进行后向切片,以获得语句集合SBT;对所述变量的定值语句进行前向切片,以获得语句集合SFS;计算所述SBT与所述SFS的交集STS,并对所述变量的定值语句进行后向切片,以获得对所述变量的定值语句进行后向切片的结果;计算获得的对所述变量的定值语句进行后向切片的结果与所述STS的并集,并将所述对所述变量的定值语句进行后向切片的结果与所述STS的并集作为与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
本发明实施例路径敏感检测方法和装置,通过根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的路径敏感检测方法的流程图;
图2为本发明实施例二所提供的路径敏感检测方法的流程图;
图3为本发明实施例三所提供的路径敏感检测装置300的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一所提供的路径敏感检测方法的流程图。本实施例的方法能够有效应用于大规模的应用程序。该方法由值流错误检测装置执行,该装置通常以硬件和/或软件的方式来实现。本实施例的方法包括如下步骤:
步骤110、根据值流错误类型为变量设置初始的与错误相关的属性。
步骤120、沿着定值引用链传播初始的与错误相关的属性,定值引用链为所有可能流经定值点的引用点所组成的集合。
需要说明的是,程序中的一个“点”,是指一个中间语言语句(如四元式)在其代码序列中的位置。从动态上看,当刚要执行此语句时,我们就说控制正到达它之前的点;而当此语句刚被执行完毕时,则说控制到达了它之后的点。例如,设Q是程序中变量A的定值点,即Q点上的语句执行对A赋值或对A输入其值的操作,则对程序中的某些点P,如果在流程图中有一条从Q到P的通路,且在此通路上不再含有A的其它定值点,那么,我们就说A在点Q的定值能到达点P。如果在程序的某些点引用了变量A的值(即以A为操作对象),则把流程图中所有可能流经Q的引用点所组成的集合称为定值引用链。
步骤130、在潜在错误语句处识别变量的与错误相关的属性。
步骤140、根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,可能错误语句表示变量的定值语句经由部分路径到达会导致错误的引用语句。
步骤150、根据可能错误语句获得路径敏感检测的语句输入集。
步骤160、根据路径敏感检测的语句输入集进行路径敏感检测。
具体的,根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。
本实施例提供的路径敏感检测方法,通过根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。
本实施例以上述实施例一为基础,进一步进行了优化,图2为本发明实施例二所提供的路径敏感检测方法的流程图。参照图2,本实施例的方法可以包括:
步骤201、根据值流错误类型为变量设置初始的与错误相关的属性。
步骤202、沿着定值引用链传播初始的与错误相关的属性,定值引用链为所有可能流经定值点的引用点所组成的集合。
步骤203、在潜在错误语句处识别变量的与错误相关的属性。
步骤204、根据在潜在错误语句处识别的变量的与错误相关的属性,确定变量的与错误相关的属性是否为不安全的属性。在变量的与错误相关的属性为不安全的属性时,执行步骤205。
步骤205、通过检查当前的控制节点确定当前的控制节点中是否存在检查语句。若是,则执行步骤206,否则执行步骤208。
控制节点为潜在错误语句相对于变量的定值语句的控制流图上的控制节点。
步骤206、查找是否存在特殊控制流。若是,则执行步骤207,否则执行步骤208。
特殊控制流指的是诸如exit和return这样的语句在控制流图中的表现。
步骤207、确定潜在错误语句为一定不错语句。
步骤208、将下一个控制节点作为当前控制节点,并执行通过检查当前的控制节点确定当前的控制节点中是否存在检查语句的步骤。
步骤209、在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定潜在错误语句为可能错误语句。
步骤210、对可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,并将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
举例来说,对可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合可以通过如下方式实现:
对可能错误语句进行后向切片,以获得语句集合SBT;对变量的定值语句进行前向切片,以获得语句集合SFS;计算SBT与SFS的交集STS,并对变量的定值语句进行后向切片,以获得对变量的定值语句进行后向切片的结果;计算获得的对变量的定值语句进行后向切片的结果与STS的并集,并将对变量的定值语句进行后向切片的结果与STS的并集作为与可能错误语句相关的语句集合,并将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
需要说明的是,对可能错误语句进行程序切片后获得的与可能错误语句相关的语句集合,将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集,能够进一步降低路径敏感检测的语句输入,从而进一步降低了路径敏感检测开销。
步骤211、根据路径敏感检测的语句输入集进行路径敏感检测。
本实施例提供的路径敏感检测方法,通过根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,并对可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,并将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。
图3为本发明实施例三所提供的路径敏感检测装置300的结构示意图。该装置通常以硬件和/或软件的方式来实现。参照图3,该装置包括如下模块:设置模块310、传播模块320、识别模块330、确定模块340、获得模块350和检测模块360。
设置模块310用于根据值流错误类型为变量设置初始的与错误相关的属性;传播模块320用于沿着定值引用链传播初始的与错误相关的属性,定值引用链为所有可能流经定值点的引用点所组成的集合;识别模块330用于在潜在错误语句处识别变量的与错误相关的属性;确定模块340用于根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,可能错误语句表示变量的定值语句经由部分路径到达会导致错误的引用语句;获得模块350用于根据可能错误语句获得路径敏感检测的语句输入集;检测模块360用于根据路径敏感检测的语句输入集进行路径敏感检测。
进一步的,确定模块340,具体用于根据在潜在错误语句处识别的变量的与错误相关的属性,确定变量的与错误相关的属性是否为不安全的属性;若变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定当前的控制节点中是否存在检查语句,控制节点为潜在错误语句相对于变量的定值语句的控制流图上的控制节点;若存在检查语句,则查找是否存在特殊控制流;若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行通过检查当前的控制节点确定当前的控制节点中是否存在检查语句的步骤;在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定潜在错误语句为可能错误语句。
进一步的,确定模块340,还用于若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行通过检查当前的控制节点确定当前的控制节点中是否存在检查语句的步骤。
进一步的,确定模块340,还用于若存在特殊控制流,则确定潜在错误语句为一定不错语句。
进一步的,获得模块350,具体用于对可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,并将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
进一步的,获得模块350,具体用于对可能错误语句进行后向切片,以获得语句集合SBT;对变量的定值语句进行前向切片,以获得语句集合SFS;计算SBT与SFS的交集STS,并对变量的定值语句进行后向切片,以获得对变量的定值语句进行后向切片的结果;计算获得的对变量的定值语句进行后向切片的结果与STS的并集,并将对变量的定值语句进行后向切片的结果与STS的并集作为与可能错误语句相关的语句集合,并将与可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
本实施例提供的路径敏感检测装置,通过根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种路径敏感检测方法,其特征在于,包括:
根据值流错误类型为变量设置初始的与错误相关的属性;
沿着定值引用链传播所述初始的与错误相关的属性,所述定值引用链为所有可能流经定值点的引用点所组成的集合;
在潜在错误语句处识别所述变量的与错误相关的属性;
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,所述可能错误语句表示所述变量的定值语句经由部分路径到达会导致错误的引用语句;
根据所述可能错误语句获得路径敏感检测的语句输入集;
根据所述路径敏感检测的语句输入集进行路径敏感检测;
所述根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,包括:
根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述变量的与错误相关的属性是否为不安全的属性;
若所述变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句,所述控制节点为所述潜在错误语句相对于所述变量的定值语句的控制流图上的控制节点;
若存在检查语句,则查找是否存在特殊控制流;
若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤;
在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定所述潜在错误语句为可能错误语句。
2.根据权利要求1所述的方法,其特征在于,还包括:
若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若存在特殊控制流,则确定所述潜在错误语句为一定不错语句。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述可能错误语句获得路径敏感检测的语句输入集,包括:
对所述可能错误语句进行程序切片,以获得与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
5.根据权利要求4所述的方法,其特征在于,所述对所述可能错误语句进行程序切片,以获得与可能错误语句相关的语句集合,包括:
对所述可能错误语句进行后向切片,以获得语句集合SBT
对所述变量的定值语句进行前向切片,以获得语句集合SFS
计算所述SBT与所述SFS的交集STS,并对所述变量的定值语句进行后向切片,以获得对所述变量的定值语句进行后向切片的结果;
计算获得的对所述变量的定值语句进行后向切片的结果与所述STS的并集,并将所述对所述变量的定值语句进行后向切片的结果与所述STS的并集作为与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
6.一种路径敏感检测装置,其特征在于,包括:
设置模块,用于根据值流错误类型为变量设置初始的与错误相关的属性;
传播模块,用于沿着定值引用链传播所述初始的与错误相关的属性,所述定值引用链为所有可能流经定值点的引用点所组成的集合;
识别模块,用于在潜在错误语句处识别所述变量的与错误相关的属性;
确定模块,用于根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述潜在错误语句为可能错误语句,所述可能错误语句表示所述变量的定值语句经由部分路径到达会导致错误的引用语句;
获得模块,用于根据所述可能错误语句获得路径敏感检测的语句输入集;
检测模块,用于根据所述路径敏感检测的语句输入集进行路径敏感检测;
所述确定模块,具体用于根据所述在潜在错误语句处识别的所述变量的与错误相关的属性,确定所述变量的与错误相关的属性是否为不安全的属性;若所述变量的与错误相关的属性为不安全的属性,则通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句,所述控制节点为所述潜在错误语句相对于所述变量的定值语句的控制流图上的控制节点;若存在检查语句,则查找是否存在特殊控制流;若不存在特殊控制流,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤;在检查过的所有控制节点中都不存在检查语句和特殊控制流的情况下,确定所述潜在错误语句为可能错误语句。
7.根据权利要求6所述的装置,其特征在于,所述确定模块,还用于若不存在检查语句,则将下一个控制节点作为当前控制节点,并执行所述通过检查当前的控制节点确定所述当前的控制节点中是否存在检查语句的步骤。
8.根据权利要求6或7所述的装置,其特征在于,所述确定模块,还用于若存在特殊控制流,则确定所述潜在错误语句为一定不错语句。
9.根据权利要求6或7所述的装置,其特征在于,所述获得模块,具体用于对所述可能错误语句进行程序切片,以获得与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
10.根据权利要求9所述的装置,其特征在于,所述获得模块,具体用于对所述可能错误语句进行后向切片,以获得语句集合SBT;对所述变量的定值语句进行前向切片,以获得语句集合SFS;计算所述SBT与所述SFS的交集STS,并对所述变量的定值语句进行后向切片,以获得对所述变量的定值语句进行后向切片的结果;计算获得的对所述变量的定值语句进行后向切片的结果与所述STS的并集,并将所述对所述变量的定值语句进行后向切片的结果与所述STS的并集作为与所述可能错误语句相关的语句集合,并将所述与所述可能错误语句相关的语句集合作为路径敏感检测的语句输入集。
CN201410064881.3A 2014-02-25 2014-02-25 路径敏感检测方法和装置 Active CN104866417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410064881.3A CN104866417B (zh) 2014-02-25 2014-02-25 路径敏感检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410064881.3A CN104866417B (zh) 2014-02-25 2014-02-25 路径敏感检测方法和装置

Publications (2)

Publication Number Publication Date
CN104866417A CN104866417A (zh) 2015-08-26
CN104866417B true CN104866417B (zh) 2018-01-02

Family

ID=53912263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410064881.3A Active CN104866417B (zh) 2014-02-25 2014-02-25 路径敏感检测方法和装置

Country Status (1)

Country Link
CN (1) CN104866417B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901188A (zh) * 2010-07-23 2010-12-01 哈尔滨工程大学 一种基于可达路径的软件测试方法
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法
CN102279800A (zh) * 2011-08-31 2011-12-14 中国信息安全测评中心 处理路径敏感符号定义的源代码静态缺陷分析器及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901188A (zh) * 2010-07-23 2010-12-01 哈尔滨工程大学 一种基于可达路径的软件测试方法
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法
CN102279800A (zh) * 2011-08-31 2011-12-14 中国信息安全测评中心 处理路径敏感符号定义的源代码静态缺陷分析器及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于传播引擎的指针引用错误检测";衷璐洁等;《计算机学报》;20130228;第36卷(第2期);第432-444页 *

Also Published As

Publication number Publication date
CN104866417A (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
US10983902B2 (en) Collaborative computer aided test plan generation
US7971193B2 (en) Methods for performining cross module context-sensitive security analysis
US8762961B2 (en) Methods for selectively pruning false paths in graphs that use high-precision state information
US8645761B2 (en) Precise fault localization
US20150220332A1 (en) Resolving merge conflicts that prevent blocks of program code from properly being merged
US20200265044A1 (en) Path searching method, storage medium and path searching apparatus
CN111104335A (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN104899147A (zh) 一种面向安全检查的代码静态分析方法
CN104090798B (zh) 动静态结合的中断驱动程序数据竞争检测方法
US10572371B2 (en) Generating valid use cases from a parsed configuration file describing use case options
CN105808438B (zh) 一种基于函数调用路径的测试用例复用方法
JP6245006B2 (ja) テストケース生成装置、方法、及びプログラム
CN104133768A (zh) 一种程序代码复查方法和装置
KR102114547B1 (ko) 대상 프로그램에 포함된 대상 함수를 테스트하는 방법 및 장치
CN102508766A (zh) 一种航天嵌入式c语言软件运行时错误的静态分析方法
US20150074652A1 (en) Avoiding similar counter-examples in model checking
CN104866417B (zh) 路径敏感检测方法和装置
US10108525B2 (en) Optimizing automated interactions with web applications
CN106649315A (zh) 处理路径导航的方法和装置
US8495542B2 (en) Automated management of verification waivers
CN109242168A (zh) 确定最短路径的方法、装置、设备和计算机可读存储介质
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
US10216613B2 (en) Reserved process and thread identifiers for tracing
CN105306295B (zh) 一种网速检测的方法及装置
Hagal et al. A systematic approach to generate and clarify consistent requirements

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220906

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Patentee after: Institute of Computing Technology, Chinese Academy of Sciences

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences