CN106294162B - 一种基于数据挖掘的第三方构件安全性测试方法 - Google Patents

一种基于数据挖掘的第三方构件安全性测试方法 Download PDF

Info

Publication number
CN106294162B
CN106294162B CN201610664467.5A CN201610664467A CN106294162B CN 106294162 B CN106294162 B CN 106294162B CN 201610664467 A CN201610664467 A CN 201610664467A CN 106294162 B CN106294162 B CN 106294162B
Authority
CN
China
Prior art keywords
component
test
sequence
security
party
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
CN201610664467.5A
Other languages
English (en)
Other versions
CN106294162A (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.)
Jiangsu University
Original Assignee
Jiangsu University
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 Jiangsu University filed Critical Jiangsu University
Priority to CN201610664467.5A priority Critical patent/CN106294162B/zh
Publication of CN106294162A publication Critical patent/CN106294162A/zh
Application granted granted Critical
Publication of CN106294162B publication Critical patent/CN106294162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于数据挖掘的第三方构件安全性测试方法,包括:1、根据有效的构件方法名称、方法前置条件和后置条件,采用序列生成算法生成方法执行序列集;2、读取参数边界值文件,使用测试用例生成算法为方法执行序列中方法的参数赋值,生成测试用例集;3、根据已经生成的测试用例集对构件进行测试,记录构件运行时的状态信息,产生监测日志集;4、采用安全漏洞检测算法对监测日志进行分析,得到最终的构件安全漏洞测试结果集;本发明为构件安全漏洞的测试提供了模型基础和测试准则,能够更好地适用于构件安全性测试;此外,本发明还设计实现了基于数据挖掘的第三方构件安全性测试系统,该系统很好地实现了自动化测试,提高测试效率。

Description

一种基于数据挖掘的第三方构件安全性测试方法
技术领域
本发明属于第三方构件安全性测试领域,涉及一种基于数据挖掘的第三方构件安全性测试方法。
背景技术
随着软件工程技术的大力发展,构件由于具有可复用以及“即插即用”的特点,因此得到了广泛应用。基于构件的软件工程(Component-based Software Engineering,CBSE)也应运而生,极大地提高了软件开发的效率,软件开发的周期不仅被缩短,开发及维护的成本也被大大地降低。如今,构件在各个行业的软件系统中发挥着至关重要的作用。因此,构件的质量显得尤为重要,质量低下的构件可能会使软件系统崩溃,给各行业带来不可挽回的后果。为保证构件的安全性和可靠性,必须对其进行测试。而当前的构件测试研究主要是为了发现构件的功能缺陷,安全性测试相关的研究还很少。尤其是第三方组织开发的第三方构件,由于缺少源代码和详细的开发文档等信息,故难以采取传统的测试方式保障其安全性,给安全性测试工作带来了很大的困难。
当前构件安全性测试的研究主要包括:构件功能行为测试、基于错误注入的安全性测试、构件健壮性测试、构件安全性测试模型等。Khan和Han提出了用户数据安全保护模型、构件软件安全描述框架及构件安全性评估模型。雷斌等人提出了一种基于状态机模型的构件健壮性测试方法。伍建焜基于抽象状态机理论,提出了一种网构软件系统的形式化模型。Naseer等人提出了一种基于元数据和扩展的构件接口规约模型,并提出了测试数据生成算法对构件进行黑盒测试。我们也曾提出了构件安全性测试错误注入模型及相关测试方法。还有学者研究制定有效的构件安全模型如访问控制模型,基于评估的可信实体模型。但这些测试方法主要针对有源代码或有详细需求规约的普通构件,不适用于第三方构件,或者无法测试构件的一些与功能行为相关的安全问题,达不到理想的效果。
目前,数据挖掘方法在软件工程领域已得到了一些应用,主要是先把数据处理成可挖掘的形式,然后通过数据挖掘算法进行挖掘,最终得到频繁项集、序列模式和关联规则等潜在的信息用以指导软件工程活动。通过数据挖掘相关算法,可以得到有效的构件需求规约及构件接口方法执行序列等测试信息,处理庞大而复杂的测试日志,因此能够有效地对第三方构件进行安全性测试。
发明内容
为了能够有效地对第三方构件进行安全性测试,本发明提出了一种基于数据挖掘的第三方构件安全性测试方法。另外。本发明还与其他构件安全性测试方法进行了比较,验证了提出方法的有效性和先进性。本发明的技术方案包括如下步骤:
步骤1,根据有效的构件方法名称、方法前置条件和后置条件,采用序列生成算法生成方法执行序列集;
步骤2,读取参数边界值文件,使用测试用例生成算法为方法执行序列中方法的参数赋值,生成测试用例集;
步骤3,根据已经生成的测试用例集对构件进行测试,记录构件运行时的状态信息,产生监测日志集;
步骤4,采用安全漏洞检测算法对监测日志进行分析,得到最终的构件安全漏洞测试结果集。
上述步骤1的具体步骤如下:
步骤1.1,扫描方法集合中每一个方法的前置条件和后置条件,找出每一个方法所有可能执行的后续方法,并构成一个后续方法集合;
步骤1.2,将当前方法和每一个后续方法进行两两组合,组合成如(当前方法,后续方法)的形式;方法组合的左方法是当前方法,右方法是后续方法;
步骤1.3,判断所有方法组合是否被标记,如果没有,则从首个执行方法开始,在该方法的方法组合中随机挑选一个,并对所有被挑选过的方法组合都进行标记;
步骤1.4,判断是否存在下一个方法组合,如果存在,则根据这个被挑选的方法组合的右方法,优先随机挑选下一个未被标记过的方法组合;
步骤1.5,重复步骤1.4,直到找不到下一个方法组合为止,并将生成的方法序列加入到方法序列集中;
步骤1.6,重复步骤1.3-1.5,直至所有的方法组合都被标记过;
步骤1.7,对方法序列集进行检验,删除不符合条件的方法序列,得到最终的方法执行序列集。
上述步骤2的具体步骤如下:
步骤2.1,提取构件接口信息并读取边界值配置信息,生成各个参数的取值集合;
步骤2.2,根据参数取值集合,采用测试用例生成算法生成测试用例集;
步骤2.3,遍历方法序列中每个序列,为每一条方法序列生成测试脚本文件。
上述步骤3的具体步骤如下:
步骤3.1,利用调试API函数来获得对测试驱动进程的控制,对其运行状态进行监测;
步骤3.2,选择关键的运行时刻设置断点并开始执行程序;
步骤3.3,当程序产生中断,通过对目标程序内存空间进行扫描获得程序运行时堆、栈空间的详细信息;
步骤3.4,重复步骤3.3,直到程序执行完毕;
步骤3.5,记录监测日志,并将消息返回。
上述步骤4的具体步骤如下:
步骤4.1,对监测日志进行处理,删除非有效的构件方法所对应的日志;
步骤4.2,将异常信息在安全规则集中进行字符串匹配,得到异常信息所对应的异常规则名,得到构件显式异常方法集以及各方法的异常规则名,即得到显式安全漏洞结果;
步骤4.3,结合序列模式挖掘算法对方法执行序列和实际执行序列进行序列模式挖掘,得到隐式安全漏洞结果;
步骤4.4,将显式安全漏洞结果和隐式安全漏洞结果输出,即最终的构件安全漏洞测试结果集。
进一步,本发明还设计实现了基于数据挖掘的第三方构件安全性测试系统CSTS-DM(Component Security Testing System based on Data Mining),所述测试系统主界面包括7个菜单项:项目文件、接口分析、频繁项集挖掘、方法序列生成、测试用例生成、构件测试、安全漏洞检测;
其中项目文件菜单项的下拉菜单项包括:新建项目,保存项目,打开项目,用于获取待测构件的路径,为其创建测试项目,并提供保存和打开的功能;
其余6个菜单项分别代表6个功能模块:接口分析模块用于获取构件类型信息并将类型信息写入XML文件,将类型信息XML文件以树形视图显示;频繁项集挖掘模块用于在需求规约和初始方法集合中找出构件有效的方法集合,排除一些构件开发时自动生成的系统方法;方法序列生成模块用于根据有效的构件方法和方法的前置条件和后置条件,生成方法序列;测试用例生成模块用于获取参数取值集合,生成测试用例数据,生成测试脚本;构件测试模块用于对构件进行测试,动态监测构件运行信息,生成监测日志;安全漏洞检测模块用于分析监测日志得到构件安全漏洞测试结果集。
本发明的有益效果:
1、本发明建立了基于数据挖掘方法的第三方构件安全性测试模型,形成了一系列测试方法、规则、算法及结果的的集合。为构件安全漏洞的测试提供了模型基础和测试准则。
2、在第三方构件安全性测试模型的基础上提出了一个测试框架,用于指导构件安全性测试模型,使其能够更好地适用于构件安全性测试。
3.设计实现了一个基于数据挖掘的第三方构件安全性测试原型系统,该系统很好地实现了自动化测试,提高了测试效率,会在构件安全性测试领域发挥重要作用。
附图说明
图1是基于数据挖掘的第三方构件安全性测试方法流程图。
图2是方法序列生成流程图。
图3是测试用例生成流程图。
图4是动态监测流程图。
图5是日志处理流程图。
图6是基于数据挖掘的第三方构件安全性测试系统界面图。
具体实施方式
下面结合附图和实施案例对本发明作进一步说明,应指出的是,所描述的实施案例仅旨在便于对本发明的理解,而对其不起任何限定作用。
本发明以解决第三方构件安全性测试问题为目的,提供一种基于数据挖掘的第三方构件安全性测试方法,有效地检测第三方构件的隐式安全漏洞和显式安全漏洞,提供了完善的测试框架和算法,并且进行了充分的实验,证明了方法的可行性和有效性。
首先,定义本发明所涉及到的几个概念定义如下。
定义1前置条件:方法被调用前必须满足的一系列约束条件,该约束条件由关系表达式和逻辑运算符构成。
定义2后置条件:方法调用结束后应该满足的条件,约束了当前执行方法可以转换到哪个后序方法,该约束条件由关系表达式和逻辑运算符构成。
定义3构件方法集合:M表示构件中所有方法的集合,M={m1,m2,m3,...,mn},其中mi表示构件中的某一方法。
定义4方法执行序列集:TS={S1,S2,S3,…,Sn},其中Si是由若干方法组成的一个测试序列,可形式化地表示为Si=(ma,mb,mc,…,mx),其中ma,mb,mc…mx∈M,Si表示测试时先执行方法ma,再执行方法mb,接着执行方法mc,……,最后执行方法mx
定义5监测日志集:ML=<TI,M,CC,FN,P,RV,EI>,TI为方法执行的时间,M为方法名,CC为方法执行的约束条件,FN为下一步调用方法名,P为函数参数集,RV为返回值,EI为异常信息。ML={mL1,mL2,mL3,…,mLn},其中mLi表示一条监测日志,若当前执行的方法为mk,mk∈M,则mLi=(testTime,mk,preAk,mk.postAk,pk,mk(pk),mk.err);其中,testTime:时间,mk:方法名,preAk:约束条件即当前执行方法的前置条件,mk.postAk:当前执行方法的下一步调用方法名,Pk:方法的参数,mk(pk):方法执行后的返回值,mk.err:方法发生异常的描述。
定义6构件安全漏洞测试结果集:TR=<EV,IV>,其中EV为构件显式安全漏洞信息,IV为构件隐式安全漏洞信息。EV,IV由一条或多条字符串构成。
显式安全漏洞信息EV主要的表现形式如“方法m有异常,异常为存取越界”,隐式安全漏洞信息IV主要的表现形式如“(m1,m3,m5,m2,m4)是不安全执行序列”。EV和IV构成了整个安全漏洞测试结果集TR。
定义7安全规则集:安全规则集Cr=<N,E>,其中N={n1,n2,n3,…,nm}是异常规则名集合,E={e1,e2,e3,…,em}是异常规则描述内容。
如图1所示,本发明的基于数据挖掘的第三方构件安全性测试方法,包括:
步骤1,根据有效的构件方法名称、方法前置条件和后置条件,采用序列生成算法生成方法执行序列集。
上述步骤1中,参照图2,方法执行序列集生成步骤如下:
步骤1.1,首先针对方法集合M中的每一个方法mi,扫描方法mi的后置条件和其它方法的前置条件,找出mi的所有可能执行的后续方法并构成一个后续方法集合,即每一个方法mi都有一个后续方法集合nextMethodsi
步骤1.2,将方法mi和它的每一个后续方法进行组合,组合成如(mi,nextmethod)的形式。若方法mi有n个后续方法,则方法mi有n个方法组合。方法组合(mi,nextmethod)的左方法是mi,右方法是nextmethod,代表的意义是在方法序列中方法mi的后续方法是nextmethod。
步骤1.3,判断所有方法组合是否被标记,如果没有,则从首个执行方法开始,在该方法的方法组合中随机挑选一个,被挑选过的方法组合都进行标记。
步骤1.4,判断是否存在下一个方法组合,如果有,则根据这个被挑选的方法组合的右方法,优先随机挑选下一个未被标记过的方法组合。
步骤1.5,重复步骤1.4,直到找不到下一个方法组合为止,并将生成的方法序列加入到方法序列集中。
步骤1.6,步骤1.3-1.5只是生成了一条方法序列,必须还要从首个执行方法开始,循环上述流程,重复步骤1.3-1.5,直至所有的方法组合都被标记过。
步骤1.7,由于构件运行时会对方法的前置条件和后置条件中的因素产生影响,所以最后还需要对方法序列集进行检验,去除掉一些不符合条件的方法序列,得到最终的方法执行序列集。
步骤2,读取参数边界值文件,使用测试用例生成算法为方法执行序列中方法的参数赋值,生成测试用例集;
上述步骤2中,参照图3,测试用例集生成步骤如下:
步骤2.1,首先提取构件接口信息,接口信息存储在XML文件中,构件的类型信息主要包括四个层次:对象层、接口层、方法层、参数层,然后读取已有的XML形式的参数边界值文件,获得边界值配置信息,生成方法序列中各个参数的取值集合。
步骤2.2,根据参数取值集合,遍历TS中每一条序列,每条序列Si中每一个接口方法,方法mi的所有参数信息,并为各个参数赋值,最终产生测试用例集。
步骤2.3,通过CodeDom技术,遍历方法执行序列TS中每个序列Si,为每一条方法序列生成测试脚本文件。
步骤3,根据已经生成的测试用例集对构件进行测试,记录构件运行时的状态信息,产生监测日志集;
上述步骤3中,参照图4和图5,监测日志集产生步骤如下:
步骤3.1,首先,利用windows操作系统中的调试API函数来获得对测试驱动进程的控制,对其运行状态进行监测。
步骤3.2,程序是在进程的地址空间中运行,运行时其地址空间中特别是堆栈中的内容是动态变化的,因此没有办法实时对其进行输出,只能选择关键的运行时刻(通过设置断点)让程序暂停运行以使其地址空间处于静止状态。所述关键的运行时刻是指程序可能会出现异常或者错误的时刻,可以根据程序的代码判断出哪些语句会出现异常,例如,如果程序中有数组,那可能就会出现数组访问越界异常,可以在数组出现的地方设置关键时刻。
步骤3.3,当程序产生中断,通过对目标程序内存空间进行扫描,读取线程上下文获得线程运行栈区标识等数据进而读取整个堆栈数据。结合各主要监测点数据变化情况,可以分析说明程序运行的情况。
步骤3.4,重复步骤3.3,直到程序执行完毕。
步骤3.5,日志内容以文本形式保存,日志文件名形式为*.log。每一行为一日志单项,记录一个事件。监测日志信息ML格式如下:时间:日/月/年时分秒,方法名:当前执行的方法名称,约束条件:当前执行方法的前置条件,调用方法名:当前执行方法的下一步调用方法名,返回值:方法执行后的返回值,异常信息:方法发生异常的描述,参数值x(1-n):当前执行方法的n个参数值。日志处理流程:增加日志记录,设置WM_COPYDATA消息结构变量,发送消息给主界面。
步骤4,采用安全漏洞检测算法对监测日志进行分析,得到最终的构件安全漏洞测试结果集。
上述步骤4中,构件安全漏洞测试结果集产生步骤如下:
步骤4.1,在前面我们已经定义了监测日志的形式,每一条日志信息mL=(testTime,m,preA,m.postA,p,m(p),m.err)。首先我们对监测日志进行处理,排除掉其中方法的日志信息,即剩下的每一条日志信息中的方法m∈M'。
步骤4.2,针对第三方构件显式安全漏洞,采用字符串匹配的方式,对处理后的监测日志进行了分析。扫描监测日志中的每一条异常信息,其中异常信息所对应的方法就是构件显式异常方法。然后将异常信息在安全规则库中进行字符串匹配,得到异常信息所对应的异常规则名。最终得到构件显式异常方法集以及各方法的异常规则名。
步骤4.3,针对第三方构件隐式安全漏洞,本发明结合了序列模式挖掘算法,将监测日志中的序列和方法执行序列作为数据集进行挖掘,判断监测日志中是否存在不安全的测试序列,得到隐式安全漏洞结果。
步骤4.4,将显式安全漏洞结果和隐式安全漏洞结果输出,得到最终的构件安全漏洞测试结果集。
本发明还设计实现了基于数据挖掘的第三方构件安全性测试系统CSTS-DM(Component Security Testing System based on Data Mining)。系统主界面如图6所示。主界面上方菜单栏主要有7个菜单项:项目文件、接口分析、频繁项集挖掘、方法序列生成、测试用例生成、构件测试、安全漏洞检测。其中项目文件菜单项有下拉菜单项:新建项目,保存项目,打开项目等,主要是获取待测构件的路径,为其创建测试项目,并提供保存和打开的功能。其余6个菜单项分别代表6个功能模块。接口分析模块:获取构件类型信息并将类型信息写入XML文件,将类型信息XML文件以树形视图显示;频繁项集挖掘模块:在需求规约和初始方法集合中找出构件有效的方法集合,排除一些构件开发时自动生成的系统方法;方法序列生成模块:根据有效的构件方法和方法的前置条件和后置条件,生成方法序列;测试用例生成模块:获取参数取值集合,生成测试用例数据,生成测试脚本;构件测试模块:对构件进行测试,动态监测构件运行信息,生成监测日志;安全漏洞检测模块:分析监测日志得到构件安全漏洞测试结果集。
为了验证本方法的可行性,基于此系统,我们分别对ThunderAgent_005.dll、GLItemCom.dll、Calculate.dll、OnlineShoppingCom.dll这4个构件进行了测试。这4个构件的信息如表1所示。经过测试,最终得到了构件安全漏洞测试结果,构件测试结果汇总如表2所示。
表1
表2
由于当前缺乏有效的可获得的第三方构件安全性测试工具或开源框架,故本方法无法和其它方法进行直接的对比实验。因此将本方法和其它的构件安全测试相关技术作一分析比较。当前构件安全性测试涉及的主要技术和方法有:Khan和Han研究的安全测试描述和安全评估模型、Lei等人提出的基于状态机模型的构件健壮性测试方法、Naseer等人提出的基于元数据和扩展的构件接口规约模型、Chen等人提出的基于错误注入模型的构件安全性测试方法。比较结果如表3所示,表3数据表明本方法能够有效地对第三方构件进行安全性测试,体现了本方法的先进性。
表3
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于数据挖掘的第三方构件安全性测试方法,其特征在于,包括如下步骤:
步骤1,根据有效的构件方法名称、方法前置条件和后置条件,采用序列生成算法生成方法执行序列集;
步骤2,读取参数边界值文件,使用测试用例生成算法为方法执行序列中方法的参数赋值,生成测试用例集;
步骤3,根据已经生成的测试用例集对构件进行测试,记录构件运行时的状态信息,产生监测日志集;
步骤4,采用安全漏洞检测算法对监测日志进行分析,得到最终的构件安全漏洞测试结果集;
所述步骤1的具体过程如下:
步骤1.1,扫描方法集合中每一个方法的前置条件和后置条件,找出每一个方法所有可能执行的后续方法,并构成一个后续方法集合;
步骤1.2,将当前方法和每一个后续方法进行两两组合,组合成(当前方法,后续方法)的形式;方法组合的左方法是当前方法,右方法是后续方法;
步骤1.3,判断所有方法组合是否被标记,如果没有,则从首个执行方法开始,在该方法的方法组合中随机挑选一个,并对所有被挑选过的方法组合都进行标记;
步骤1.4,判断是否存在下一个方法组合,如果存在,则根据这个被挑选的方法组合的右方法,优先随机挑选下一个未被标记过的方法组合;
步骤1.5,重复步骤1.4,直到找不到下一个方法组合为止,并将生成的方法序列加入到方法序列集中;
步骤1.6,重复步骤1.3-1.5,直至所有的方法组合都被标记过;
步骤1.7,对方法序列集进行检验,删除不符合条件的方法序列,得到最终的方法执行序列集;
所述步骤2的具体过程如下:
步骤2.1,提取构件接口信息并读取边界值配置信息,生成各个参数的取值集合;
步骤2.2,根据参数取值集合,遍历方法执行序列集TS中每一条序列,以及每条序列Si中每一个接口方法mi的所有参数信息,并为各个参数赋值,最终产生测试用例集;
步骤2.3,通过CodeDom技术,遍历方法序列中每个序列,为每一条方法序列生成测试脚本文件;
所述步骤3的具体过程如下:
步骤3.1,利用调试API函数来获得对测试驱动进程的控制,对其运行状态进行监测;
步骤3.2,选择关键的运行时刻设置断点并开始执行程序;
步骤3.3,当程序产生中断,通过对目标程序内存空间进行扫描获得程序运行时堆、栈空间的详细信息;
步骤3.4,重复步骤3.3,直到程序执行完毕;
步骤3.5,记录监测日志,并将消息返回;
所述步骤4的具体过程如下:
步骤4.1,对监测日志进行处理,删除非有效的构件方法所对应的日志;
步骤4.2,将异常信息在安全规则集中进行字符串匹配,得到异常信息所对应的异常规则名,最终得到构件显式异常方法集以及各方法的异常规则名,即得到显式安全漏洞结果;
步骤4.3,结合序列模式挖掘算法对方法执行序列和实际执行序列进行序列模式挖掘,判断监测日志中是否存在不安全的测试序列,得到隐式安全漏洞结果;
步骤4.4,将显式安全漏洞结果和隐式安全漏洞结果输出,为最终的构件安全漏洞测试结果集。
2.根据权利要求1所述的一种基于数据挖掘的第三方构件安全性测试方法,其特征在于,还包括设计实现了基于数据挖掘的第三方构件安全性测试系统;所述测试系统主界面包括7个菜单项:项目文件、接口分析、频繁项集挖掘、方法序列生成、测试用例生成、构件测试、安全漏洞检测;
其中项目文件菜单项的下拉菜单项包括:新建项目,保存项目,打开项目,用于获取待测构件的路径,为其创建测试项目,并提供保存和打开的功能;
其余6个菜单项分别代表6个功能模块:接口分析模块用于获取构件类型信息并将类型信息写入XML文件,将类型信息XML文件以树形视图显示;频繁项集挖掘模块用于在需求规约和初始方法集合中找出构件有效的方法集合,排除一些构件开发时自动生成的系统方法;方法序列生成模块用于根据有效的构件方法和方法的前置条件和后置条件,生成方法序列;测试用例生成模块用于获取参数取值集合,生成测试用例数据,生成测试脚本;构件测试模块用于对构件进行测试,动态监测构件运行信息,生成监测日志;安全漏洞检测模块用于分析监测日志得到构件安全漏洞测试结果集。
CN201610664467.5A 2016-08-12 2016-08-12 一种基于数据挖掘的第三方构件安全性测试方法 Active CN106294162B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610664467.5A CN106294162B (zh) 2016-08-12 2016-08-12 一种基于数据挖掘的第三方构件安全性测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610664467.5A CN106294162B (zh) 2016-08-12 2016-08-12 一种基于数据挖掘的第三方构件安全性测试方法

Publications (2)

Publication Number Publication Date
CN106294162A CN106294162A (zh) 2017-01-04
CN106294162B true CN106294162B (zh) 2019-03-05

Family

ID=57669874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610664467.5A Active CN106294162B (zh) 2016-08-12 2016-08-12 一种基于数据挖掘的第三方构件安全性测试方法

Country Status (1)

Country Link
CN (1) CN106294162B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844421B (zh) * 2017-10-31 2020-08-14 平安科技(深圳)有限公司 接口测试方法、装置、计算机设备和存储介质
US10073763B1 (en) * 2017-12-27 2018-09-11 Accenture Global Solutions Limited Touchless testing platform
CN109828906B (zh) * 2018-12-15 2023-07-04 中国平安人寿保险股份有限公司 Ui自动化测试方法、装置、电子设备及存储介质
CN111367806A (zh) * 2020-03-06 2020-07-03 深圳前海微众银行股份有限公司 一种测试参数的生成方法及装置
CN111770053B (zh) * 2020-05-28 2022-12-16 江苏大学 一种基于改进的聚类与自相似性的恶意程序检测方法
CN112019544B (zh) * 2020-08-28 2022-10-11 支付宝(杭州)信息技术有限公司 网络接口的安全扫描方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539978B1 (en) * 2001-11-01 2009-05-26 Cigital, Inc. Method for understanding and testing third party software components
CN103617114A (zh) * 2013-10-23 2014-03-05 江苏大学 基于条件与参数变异的第三方构件脆弱性测试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539978B1 (en) * 2001-11-01 2009-05-26 Cigital, Inc. Method for understanding and testing third party software components
CN103617114A (zh) * 2013-10-23 2014-03-05 江苏大学 基于条件与参数变异的第三方构件脆弱性测试方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
An Improved String-Searching Algorithm and Its Applicationin Component Security Testing;Jinfu Chen;《TSINGHUASCIENCE AND TECHNOLOGY》;20160630;第1-14页
COM组件测试用例生成及测试脚本自动生成方法研究;王平;《万方数据库》;20091231;第2章-第5章
基于条件、参数与状态变异的第三方构件安全性测试方法研究;陈加梅;《万方数据库》;20140917;第二章-第四章
基于错误注入的构件安全性测试理论与技术研究;陈锦富;《万方数据库》;20090518;第3章-第6章

Also Published As

Publication number Publication date
CN106294162A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106294162B (zh) 一种基于数据挖掘的第三方构件安全性测试方法
Nunes et al. phpSAFE: A security analysis tool for OOP web application plugins
Okun et al. Report on the static analysis tool exposition (sate) iv
Fontana et al. Impact of refactoring on quality code evaluation
US11550923B2 (en) Systems and/or methods for static-dynamic security testing using a test configurator to identify vulnerabilities and automatically repair defects
Ghabi et al. Code patterns for automatically validating requirements-to-code traces
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
US10681076B1 (en) Automated security analysis of software libraries
CN111523784A (zh) 自动执行路径的监控方法及装置
Bozic et al. Security testing based on attack patterns
Stivalet et al. Large scale generation of complex and faulty PHP test cases
CN104766015A (zh) 一种基于函数调用的缓冲区溢出漏洞动态检测方法
Gauthier et al. Fast detection of access control vulnerabilities in php applications
Dia et al. An empirical evaluation of the effectiveness of smart contract verification tools
Thomé et al. Security slicing for auditing XML, XPath, and SQL injection vulnerabilities
Homaei et al. Athena: A framework to automatically generate security test oracle via extracting policies from source code and intended software behaviour
Al-Ghamdi A survey on software security testing techniques
Calvagna et al. Automated conformance testing of Java virtual machines
Corradini et al. Automated black-box testing of mass assignment vulnerabilities in RESTful APIs
Black Static analyzers: Seat belts for your code
Shahriar et al. Early detection of SQL injection attacks
Vidal et al. Advancing Blockchain Security: from Vulnerability Detection to Transaction Revocation
Avancini Security testing of web applications: A research plan
Kothari et al. A “Human-in-the-loop” approach for resolving complex software anomalies
Avancini et al. Circe: A grammar-based oracle for testing cross-site scripting in web applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant