CN109308411A - 基于人工智能决策树的分层检测软件行为缺陷的方法和*** - Google Patents

基于人工智能决策树的分层检测软件行为缺陷的方法和*** Download PDF

Info

Publication number
CN109308411A
CN109308411A CN201810948790.4A CN201810948790A CN109308411A CN 109308411 A CN109308411 A CN 109308411A CN 201810948790 A CN201810948790 A CN 201810948790A CN 109308411 A CN109308411 A CN 109308411A
Authority
CN
China
Prior art keywords
software
attribute
defect
node
software action
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.)
Granted
Application number
CN201810948790.4A
Other languages
English (en)
Other versions
CN109308411B (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.)
State Grid Information and Telecommunication Co Ltd
China Electric Power Research Institute Co Ltd CEPRI
State Grid Shanghai Electric Power Co Ltd
Original Assignee
State Grid Information and Telecommunication Co Ltd
China Electric Power Research Institute Co Ltd CEPRI
State Grid Shanghai Electric Power Co Ltd
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 State Grid Information and Telecommunication Co Ltd, China Electric Power Research Institute Co Ltd CEPRI, State Grid Shanghai Electric Power Co Ltd filed Critical State Grid Information and Telecommunication Co Ltd
Priority to CN201810948790.4A priority Critical patent/CN109308411B/zh
Publication of CN109308411A publication Critical patent/CN109308411A/zh
Application granted granted Critical
Publication of CN109308411B publication Critical patent/CN109308411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种基于人工智能决策树的分层检测软件行为缺陷的方法和***,首先对软件进行测试,测试之后形成相应的数据,利用所述历史数据构建人工智能决策树,提取软件行为的分类规则,然后在软件运行过程中,针对软件运行时的软件行为,对信息***建立基于***层、状态层和功能层的分层检测软件行为缺陷的模型,先检测***层和状态的风险行为和异常行为,在所述***层和状态层中无软件行为缺陷时,再进行功能层检测。采用本发明的方法与传统的缺陷检测方法进行对比,在软件运行过程中发现缺陷后准确定位缺陷产生原因的时间比传统的检测方法有了明显提升。

Description

基于人工智能决策树的分层检测软件行为缺陷的方法和***
技术领域
本发明涉及软件缺陷检测领域,并且更具体地,涉及一种基于人工智能决策树的分层检测软件行为缺陷的方法和***。
背景技术
随着互联网应用需求的增加,软件规模急剧增加,***的层次架构越来越复杂,软件缺陷的种类与数量成为决定软件关键性能的决定性因素。
目前,缺陷检测领域均采用机器学习技术,对软件缺陷进行代码扫描或语义分析。传统的软件缺陷机器学习技术一般采用BP神经网络模型、朴素贝叶斯模型、指纹识别模型等算法。
现有软件缺陷检测技术分为静态检测与动态检测。基于代码测试的方法可以统称为静态检测方法,该类方法是对已知类型的代码缺陷进行查找和预防,其基本原理是扫描程序代码,提取程序关键语法,解释其语义,理解程序行为,根据预先设定的缺陷特征、安全规则等检测缺陷。主要包括以下技术:词法分析、规则学习、类型推导、约束解算器、元编译、变异语言和二进制代码的类型检查等。然而,软件的缺陷层出不穷,来自各方面的攻击手段也是***,而且还存在一些并非软件本身的缺陷,如来自操作***的缺陷等,其有效性较大程度的依托于软件开发和测试人员本身对软件安全的认识程度,属于被动防御措施。
现有技术中的静态检测技术中机器学习技术模型存在难以理解,可视化差,构建复杂等特点,而且所述检测技术不能很好地确定一段软件运行程序的重要属性,缺陷检测识报率高,不够精确。
发明内容
为了解决现有技术中存在的检测技术不能很好的确定一段程序的重要属性,检测误报率较高,不够精准的技术问题,本发明提供了一种基于人工智能AI决策树分层检测软件行为缺陷的方法,所述方法包括:
根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为进行分类,将软件行为划分为正常行为,风险行为和异常行为;
利用***层检测来检测风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成这种不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用应用程序获得产生的顺序序列;
利用状态层检测来检测风险行为和异常行为,将所述行为的状态图转换成Petri网后采用偏差密度技术对软件行为的状态序列进行检测,通过计算偏差行为在总体行为中所占的比例,确定所述软件行为的偏差密度值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
在针对风险行为和异常行为的检测中,当***层检测和状态层检测中未检测到软件行为缺陷时,促使功能层检测通过将软件运行时的功能执行顺序与预先设置的标准状态序列进行对比,并通过预先设置的功能语义树对软件的状态进行分析,功能语义树规定了软件的具体功能以及各功能间的逻辑关系,比较软件运行时的功能执行顺序与标准状态序列的偏差部分,根据功能语义树的定义分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,功能间的逻辑问题又分为功能设计缺陷问题和功能运行缺陷问题,经过具体分析后确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
进一步地,所述方法在根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类还包括:
根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层检测、状态层检测和功能层检测;
根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
进一步地,所述根据软件行为的历史数据,生成划分软件行为的初始AI决策树包括:
去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
对训练集进行训练,计算每个属性的信息增益和信息增益率;
根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
进一步地,所述对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
进一步地,所述正常行为集合S、风险行为集合P和异常行为集合的关系为:
根据本发明的另一方面,本发明提一种基于人工智能AI决策树分层检测软件行为缺陷的***,所述***包括:
AI决策树单元,其用于根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类,将软件行为划分为正常行为,风险行为和异常行为;
***层检测单元,其用于针对风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成所述不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用过程中产生的顺序序列,通过***中的应用程序获得;
状态层检测单元,其用于针对风险行为和异常行为,将所述行为的状态图转换成Petri网后采用偏差密度技术对软件行为的状态序列进行检测,确定所述软件行为的偏差值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
功能层检测单元,其用于针对风险行为和异常行为,在***层检测单元和状态层检测单元未检测到软件行为缺陷时,促使功能层通过预先设置的功能语义树中规定的软件功能以及各功能间的逻辑关系比较软件运行时的功能执行顺序与预先设置的标准状态序列的偏差部分,分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,以及功能间的逻辑连接出现问题是功能设计方面的原因还是运行方面的原因,确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
进一步地,所述***还包括:
AI决策树生成单元,其用于根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
分层单元,其用于根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层、状态层和功能层;
标准状态序列生成单元,其用于根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
进一步地,所述AI决策树生成单元包括:
训练集单元,其用于去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
计算单元,其用于对训练集进行训练,计算每个属性的信息增益和信息增益率;
规则提取单元,其用于根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
进一步地,所述计算单元对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
进一步地,所述规则提取单元中的正常行为集合S、风险行为集合P和异常行为集合的关系为:
本发明技术方案提供的基于人工智能决策树的分层检测软件行为缺陷的方法和***,首先对软件进行测试,测试之后形成相应的数据,利用所述历史数据构建人工智能决策树,提取软件行为的分类规则,然后在软件运行过程中,针对软件运行时的软件行为,对信息***建立基于***层、状态层和功能层的分层检测软件行为缺陷的模型,先检测***层和状态的风险行为和异常行为,在所述***层和状态层中无软件行为缺陷时,再进行功能层检测。采用本发明的方法与传统的缺陷检测方法进行对比,通过构建人工智能决策树,确定每段程序中的重要属性,进而确定决定软件行为的主属性,同时基于***层、状态层和功能层的架构分析构建基于多视点建模方法,实现三层体系的分层建模,针对不同层进行检测和分析,精准的定位软件缺陷原因,在软件运行过程中发现缺陷后准确定位缺陷产生原因的时间比传统的检测方法有了明显提升。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施方式的基于人工智能决策树的分层检测软件行为缺陷的方法的流程图;
图2为根据本发明优选实施方式的软件行为决策树模型;
图3为根据本发明优选实施方式的基于人工智能决策树的分层检测软件行为缺陷的***的结构示意图;
图4为根据利用本发明优选实施方式的基于人工智能决策树的分层检测***进行软件行为缺陷分层检测与传统方法进行软件行为缺陷检测的结果图;
图5为根据利用本发明优选实施方式的基于人工智能决策树的分层检测***进行软件行为缺陷分层检测与传统方法进行软件行为缺陷检测的另一个结果图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明优选实施方式的基于人工智能决策树的分层检测软件行为缺陷的方法的流程图。如图1所示,本优选实施方式所述的基本人工智能决策树的分层检测软件行为缺陷的方法100从步骤101开始。
在步骤101,根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为进行分类,将软件行为划分为正常行为,风险行为和异常行为;
在步骤102,利用***层检测来检测风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成这种不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用应用程序获得产生的顺序序列;
在步骤103,利用状态层检测来检测风险行为和异常行为,将所述行为的状态图转换成Petri网后采用偏差密度技术对软件行为的状态序列进行检测,通过计算偏差行为在总体行为中所占的比例,确定所述软件行为的偏差密度值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
在步骤104,在针对风险行为和异常行为的检测中,当***层检测和状态层检测中未检测到软件行为缺陷时,促使功能层检测通过将软件运行时的功能执行顺序与预先设置的标准状态序列进行对比,并通过预先设置的功能语义树对软件的状态进行分析,功能语义树规定了软件的具体功能以及各功能间的逻辑关系,比较软件运行时的功能执行顺序与标准状态序列的偏差部分,根据功能语义树的定义分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,功能间的逻辑问题又分为功能设计缺陷问题和功能运行缺陷问题,经过具体分析后确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
优选地,所述方法在根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类还包括:
根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层检测、状态层检测和功能层检测;
根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
优选地,所述根据软件行为的历史数据,生成划分软件行为的初始AI决策树包括:
去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
对训练集进行训练,计算每个属性的信息增益和信息增益率;
根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
图2为根据本发明优选实施方式的软件行为决策树模型。如图2所示,所述软件行为的第一级的主属性节点为是否正常完成行为指令,对于按照该属性生成的未正常完成指令的行为集合C,则以未正常完成指令的完成程度作为第二级的主属性特点,对于该属性生成的基本完成指令的行为集合D,则以是否非法调用***资源作为第三级的主属性节点,最终通过各主属性节点的***将软件行为划分为了正常行为集合S,异常行为集合A和风险行为集合P。
优选地,所述对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
优选地,所述正常行为集合S、风险行为集合P和异常行为集合的关系为:
图3为根据本发明优选实施方式的基于人工智能决策树的分层检测软件行为缺陷的***的结构示意图。如图3所示,本优选实施方式所述的基于人工智能决策树的分层检测软件行为缺陷的***300包括:
AI决策树生成单元301,其用于根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
分层单元302,其用于根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层、状态层和功能层;
标准状态序列生成单元303,其用于根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
AI决策树单元304,其用于根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类,将软件行为划分为正常行为,风险行为和异常行为;
***层检测单元305,其用于针对风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成所述不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用过程中产生的顺序序列,通过***中的应用程序获得;
状态层检测单元306,其用于针对风险行为和异常行为,将所述行为的状态图转换成Petri网后采用偏差密度技术对软件行为的状态序列进行检测,确定所述软件行为的偏差值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
功能层检测单元307,其用于针对风险行为和异常行为,在***层检测单元和状态层检测单元未检测到软件行为缺陷时,促使功能层通过预先设置的功能语义树中规定的软件功能以及各功能间的逻辑关系比较软件运行时的功能执行顺序与预先设置的标准状态序列的偏差部分,分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,以及功能间的逻辑连接出现问题是功能设计方面的原因还是运行方面的原因,确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
优选地,所述AI决策树生成单元301包括:
训练集单元311,其用于去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
计算单元312,其用于对训练集进行训练,计算每个属性的信息增益和信息增益率;
规则提取单元313,其用于根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
优选地,所述计算单元对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
优选地,所述规则提取单元中的正常行为集合S、风险行为集合P和异常行为集合的关系为:
图4为根据利用本发明优选实施方式的基于人工智能决策树的分层检测***进行软件行为缺陷分层检测与传统方法进行软件行为缺陷检测的结果图。图5为根据利用本发明优选实施方式的基于人工智能决策树的分层检测***进行软件行为缺陷分层检测与传统方法进行软件行为缺陷检测的另一个结果图。在利用传统方法和本优选实施方式的方法进行软件行为缺陷检测的过程中,将***运行、***设计和权限分配缺陷归为软件安全缺陷类,将功能设计、数据设计、功能运行和信息交互缺陷定义为软件的功能与性能缺陷。如图4、图5所示,无论是发现安全缺陷后准确定位产生原因,还是发现功能与性能缺陷后准确定位产生原因的时间,采用传统方法的对照组所需的时间均比采用本优选实施方式所述的方法的时间要长。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

Claims (10)

1.一种基于人工智能AI决策树分层检测软件行为缺陷的方法,其特征在于,所述方法包括:
根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为进行分类,将软件行为划分为正常行为,风险行为和异常行为;
利用***层检测来检测风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成这种不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用应用程序获得产生的顺序序列;
利用状态层检测来检测风险行为和异常行为,将所述行为的状态图转换成Petr i网后采用偏差密度技术对软件行为的状态序列进行检测,通过计算偏差行为在总体行为中所占的比例,确定所述软件行为的偏差密度值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
在针对风险行为和异常行为的检测中,当***层检测和状态层检测中未检测到软件行为缺陷时,促使功能层检测通过将软件运行时的功能执行顺序与预先设置的标准状态序列进行对比,并通过预先设置的功能语义树对软件的状态进行分析,功能语义树规定了软件的具体功能以及各功能间的逻辑关系,比较软件运行时的功能执行顺序与标准状态序列的偏差部分,根据功能语义树的定义分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,功能间的逻辑问题又分为功能设计缺陷问题和功能运行缺陷问题,经过具体分析后确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
2.根据权利要求1所述的方法,其特征在于,所述方法在根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类还包括:
根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层检测、状态层检测和功能层检测;
根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
3.根据权利要求2所述的方法,其特征在于,所述根据软件行为的历史数据,生成划分软件行为的初始AI决策树包括:
去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
对训练集进行训练,计算每个属性的信息增益和信息增益率;
根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
4.根据权利要求3所述的方法,其特征在于,所述对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
5.根据权利要求3所述的***,其特征在于,所述正常行为集合S、风险行为集合P和异常行为集合的关系为:
6.一种基于人工智能AI决策树分层检测软件行为缺陷的***,其特征在于,所述***包括:
AI决策树单元,其用于根据预先生成的基于软件行为的AI决策树,对软件运行中的软件行为数据进行分类,将软件行为划分为正常行为,风险行为和异常行为;
***层检测单元,其用于针对风险行为和异常行为,利用隐马尔可夫模型的学习问题为每个调用序列建立一个隐马尔可夫模型,通过所述隐马尔可夫模型确定***进行状态转换的概率,并根据所述进行状态转换的概率的大小判断所述软件行为是否有缺陷,以及根据软件行为实际状态转移的情况是由于***设计问题产生,还是在***运行过程中存在问题或者是软件运行时权限分配过程出现问题造成所述不正常的状态转移状况,以此确定软件行为缺陷是***设计缺陷、***运行缺陷或者权限分配缺陷,其中所述调用序列是***调用过程中产生的顺序序列,通过***中的应用程序获得;
状态层检测单元,其用于针对风险行为和异常行为,将所述行为的状态图转换成Petri网后采用偏差密度技术对软件行为的状态序列进行检测,确定所述软件行为的偏差值,当所述偏差值超过规定阈值时,确定软件行为缺陷是数据设计缺陷;
功能层检测单元,其用于针对风险行为和异常行为,在***层检测单元和状态层检测单元未检测到软件行为缺陷时,促使功能层通过预先设置的功能语义树中规定的软件功能以及各功能间的逻辑关系比较软件运行时的功能执行顺序与预先设置的标准状态序列的偏差部分,分析偏差出现的原因是由于运行时信息交互过程发生问题还是由于功能间的逻辑连接出现问题,以及功能间的逻辑连接出现问题是功能设计方面的原因还是运行方面的原因,确定所述软件行为的缺陷是信息交互缺陷、功能设计缺陷或者功能运行缺陷。
7.根据权利要求6所述的***,其特征在于,所述***还包括:
AI决策树生成单元,其用于根据软件行为的历史数据,生成划分软件行为的初始AI决策树,其中所述软件行为包括正常行为、风险行为和异常行为;
分层单元,其用于根据软件运行过程中生成的状态序列,将所述对软件行为缺陷的检测分为***层、状态层和功能层;
标准状态序列生成单元,其用于根据软件行为的历史数据生成的状态序列划分软件功能,建立功能语义集和语义树,采用语义状态图的形式对软件运行中的功能状态进行完整度量,统计软件正常运行过程中的所有状态序列,采用过程挖掘技术求出在软件正常运行时出现频率最大的状态集,将此状态序列作为唯一的可以表征软件功能的标准状态序列。
8.根据权利要求7所述的***,其特征在于,所述AI决策树生成单元包括:
训练集单元,其用于去掉软件行为的历史数据中与检测软件行为缺陷无关的属性的数据,将与检测软件行为缺陷相关的各个属性的数值进行归纳概化,形成人工智能AI决策树的训练集,其中所述与检测软件行为缺陷无关的属性的数据包括软件运行效率的数据,所述与检测软件行为缺陷相关的属性包括是否正常完成指令、未正常完成指令的完成程度和是否调用***资源;
计算单元,其用于对训练集进行训练,计算每个属性的信息增益和信息增益率;
规则提取单元,其用于根据每个属性的信息增益率,将信息增益率最高的属性是否正常完成指令的情况作为软件行为的第一级主属性节点,正常完成指令的行为节点均是正常行为集合S节点,将所述第一级主属性节点作为***节点,继续计算下一级每个属性的信息增益和信息增益率,将信息增益率最高的属性未正常完成指令的完成程度作为第二级的主属性节点,未正常完成指令的行为节点均是异常行为集合A节点,将所述第二级主属性节点作为***节点,继续计算下一级属性的信息增益和信息增益率,将信息增益率最高的属性是否调用***资源作为第三级的主属性节点,不断的为该主属性节点所包含的样本递归地执行属性节点***的过程,直到子集中的数据记录在主属性上取值都相同,或没有属性可供再划分使用为止,使没有非法调用***资源的行为节点均是风险行为集合P节点,而非法调用***资源的行为节点视作异常行为集合的节点以生成初始的AI决策树,并将其存储作为模板。
9.根据权利要求8所述的***,其特征在于,所述计算单元对训练集进行训练,计算每个属性的信息增益和信息增益率,其计算公式为:
Gain(A)=E(S)-E(A)
Gain ratio=Gain(A)/SplitInfo(S1,S2,…,Sv)
式中,S是训练数据集,v为根据属性A的属性值形成的主属性节点所具有的分支个数;Sv为第v个分支下所记录的数量,pj表示第v个分支下各个属性所记录的数量占***总数量的比例,E(S)为***之前训练数据集的类别信息熵,E(A)为样本集中每个属性的信息熵。
10.根据权利要求8所述的***,其特征在于,所述规则提取单元中的正常行为集合S、风险行为集合P和异常行为集合的关系为:
CN201810948790.4A 2018-08-20 2018-08-20 基于人工智能决策树的分层检测软件行为缺陷的方法和*** Active CN109308411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810948790.4A CN109308411B (zh) 2018-08-20 2018-08-20 基于人工智能决策树的分层检测软件行为缺陷的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810948790.4A CN109308411B (zh) 2018-08-20 2018-08-20 基于人工智能决策树的分层检测软件行为缺陷的方法和***

Publications (2)

Publication Number Publication Date
CN109308411A true CN109308411A (zh) 2019-02-05
CN109308411B CN109308411B (zh) 2022-08-30

Family

ID=65223757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810948790.4A Active CN109308411B (zh) 2018-08-20 2018-08-20 基于人工智能决策树的分层检测软件行为缺陷的方法和***

Country Status (1)

Country Link
CN (1) CN109308411B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413345A (zh) * 2019-07-26 2019-11-05 云湾科技(嘉兴)有限公司 程序验证方法、装置、计算设备及计算机存储介质
CN111177016A (zh) * 2020-04-14 2020-05-19 四川新网银行股份有限公司 软件测试缺陷的管理方法
CN111611150A (zh) * 2019-02-25 2020-09-01 北京搜狗科技发展有限公司 一种测试方法、装置、介质和电子设备
CN112181767A (zh) * 2020-09-27 2021-01-05 深圳前海微众银行股份有限公司 软件***异常的确定方法、装置和存储介质
CN112308120A (zh) * 2020-10-15 2021-02-02 国家电网公司华北分部 对继电保护装置缺陷进行定级的方法、装置及存储介质
CN113609022A (zh) * 2021-08-11 2021-11-05 中国银行股份有限公司 软件产品错误推测方法及装置
CN114625640A (zh) * 2022-03-04 2022-06-14 盐城金堤科技有限公司 软件测试项目管理方法和装置,以及存储介质和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040002838A1 (en) * 2002-06-27 2004-01-01 Oliver Nuria M. Layered models for context awareness
US20080071721A1 (en) * 2006-08-18 2008-03-20 Haixun Wang System and method for learning models from scarce and skewed training data
CN103500307A (zh) * 2013-09-26 2014-01-08 北京邮电大学 一种基于行为模型的移动互联网恶意应用软件检测方法
US20140188781A1 (en) * 2013-01-02 2014-07-03 Qualcomm Incorporated Methods and Systems of Using Boosted Decision Stumps and Joint Feature Selection and Culling Algorithms for the Efficient Classification of Mobile Device Behaviors
CN104238545A (zh) * 2014-07-10 2014-12-24 中国石油大学(北京) 一种石油炼化生产过程故障诊断和预警***及其建立方法
US20150235143A1 (en) * 2003-12-30 2015-08-20 Kantrack Llc Transfer Learning For Predictive Model Development
JP2018055294A (ja) * 2016-09-27 2018-04-05 Kddi株式会社 時系列のイベント群から異常状態を検知するプログラム、装置及び方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040002838A1 (en) * 2002-06-27 2004-01-01 Oliver Nuria M. Layered models for context awareness
US20150235143A1 (en) * 2003-12-30 2015-08-20 Kantrack Llc Transfer Learning For Predictive Model Development
US20080071721A1 (en) * 2006-08-18 2008-03-20 Haixun Wang System and method for learning models from scarce and skewed training data
US20140188781A1 (en) * 2013-01-02 2014-07-03 Qualcomm Incorporated Methods and Systems of Using Boosted Decision Stumps and Joint Feature Selection and Culling Algorithms for the Efficient Classification of Mobile Device Behaviors
CN103500307A (zh) * 2013-09-26 2014-01-08 北京邮电大学 一种基于行为模型的移动互联网恶意应用软件检测方法
CN104238545A (zh) * 2014-07-10 2014-12-24 中国石油大学(北京) 一种石油炼化生产过程故障诊断和预警***及其建立方法
JP2018055294A (ja) * 2016-09-27 2018-04-05 Kddi株式会社 時系列のイベント群から異常状態を検知するプログラム、装置及び方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NONG YE; YEBIN ZHANG; C.M. BORROR: "Robustness of the Markov-chain model for cyber-attack detection", 《IEEE TRANSACTIONS ON RELIABILITY》 *
陈信敏: "有色Petri网在入侵检测中的研究与应用", 《有色PETRI网在入侵检测中的研究与应用》 *
黄黎等: "支持复杂社会网络演化的过程挖掘技术综述", 《计算机工程与应用》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611150A (zh) * 2019-02-25 2020-09-01 北京搜狗科技发展有限公司 一种测试方法、装置、介质和电子设备
CN111611150B (zh) * 2019-02-25 2024-03-22 北京搜狗科技发展有限公司 一种测试方法、装置、介质和电子设备
CN110413345A (zh) * 2019-07-26 2019-11-05 云湾科技(嘉兴)有限公司 程序验证方法、装置、计算设备及计算机存储介质
CN111177016A (zh) * 2020-04-14 2020-05-19 四川新网银行股份有限公司 软件测试缺陷的管理方法
CN111177016B (zh) * 2020-04-14 2020-08-21 四川新网银行股份有限公司 软件测试缺陷的管理方法
CN112181767A (zh) * 2020-09-27 2021-01-05 深圳前海微众银行股份有限公司 软件***异常的确定方法、装置和存储介质
CN112308120A (zh) * 2020-10-15 2021-02-02 国家电网公司华北分部 对继电保护装置缺陷进行定级的方法、装置及存储介质
CN112308120B (zh) * 2020-10-15 2023-09-29 国家电网公司华北分部 对继电保护装置缺陷进行定级的方法、装置及存储介质
CN113609022A (zh) * 2021-08-11 2021-11-05 中国银行股份有限公司 软件产品错误推测方法及装置
CN114625640A (zh) * 2022-03-04 2022-06-14 盐城金堤科技有限公司 软件测试项目管理方法和装置,以及存储介质和电子设备
CN114625640B (zh) * 2022-03-04 2024-06-07 盐城天眼察微科技有限公司 软件测试项目管理方法和装置,以及存储介质和电子设备

Also Published As

Publication number Publication date
CN109308411B (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN109308411A (zh) 基于人工智能决策树的分层检测软件行为缺陷的方法和***
Baranyi et al. Interpretable deep learning for university dropout prediction
CN105677791B (zh) 用于分析风力发电机组的运行数据的方法和***
Wang et al. Fault recognition using an ensemble classifier based on Dempster–Shafer Theory
CN110703057A (zh) 基于数据增强和神经网络的电力设备局部放电诊断方法
CN114707571B (zh) 基于增强隔离森林的信用数据异常检测方法
CN108549817A (zh) 一种基于文本深度学习的软件安全漏洞预测方法
CN111401785A (zh) 一种基于模糊关联规则的电力***设备故障预警方法
Grzymala-Busse et al. Handling missing attribute values in preterm birth data sets
CN111046930A (zh) 一种基于决策树算法的供电服务满意度影响因素识别方法
CN110297469A (zh) 基于重采样的集成特征选择算法的生产线故障判断方法
CN115794803B (zh) 一种基于大数据ai技术的工程审计问题监测方法与***
CN111160329A (zh) 一种根因分析的方法及装置
Tonella et al. Finding the optimal balance between over and under approximation of models inferred from execution logs
CN110011990A (zh) 内网安全威胁智能分析方法
CN105868115A (zh) 软件密集型***软件测试模型的构建方法和***
CN116365519B (zh) 一种电力负荷预测方法、***、存储介质及设备
Becker et al. Rough set theory in the classification of loan applications
CN116776260A (zh) 基于机器学习的岩爆等级双模型分步预测方法
CN113722239B (zh) 机载嵌入式软件质量检测方法、装置、介质及电子设备
CN115470839A (zh) 一种电力变压器故障诊断方法
Bo Research on the classification of high dimensional imbalanced data based on the optimizational random forest algorithm
CN111325286B (zh) 一种基于随机森林的防洪***显效工程智能辨识方法
CN110942089B (zh) 一种基于多级决策的击键识别方法
CN103886007A (zh) 一种基于相互约束的模糊数据分类方法

Legal Events

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