CN110598417B - 一种基于图挖掘的软件漏洞检测方法 - Google Patents

一种基于图挖掘的软件漏洞检测方法 Download PDF

Info

Publication number
CN110598417B
CN110598417B CN201910838321.1A CN201910838321A CN110598417B CN 110598417 B CN110598417 B CN 110598417B CN 201910838321 A CN201910838321 A CN 201910838321A CN 110598417 B CN110598417 B CN 110598417B
Authority
CN
China
Prior art keywords
graph
subgraph
edge
frequency
edges
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
CN201910838321.1A
Other languages
English (en)
Other versions
CN110598417A (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201910838321.1A priority Critical patent/CN110598417B/zh
Publication of CN110598417A publication Critical patent/CN110598417A/zh
Application granted granted Critical
Publication of CN110598417B publication Critical patent/CN110598417B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于图挖掘的软件漏洞检测方法,属于软件技术领域,能够解决数据集中的数据冗余问题,并有效提高软件漏洞检测的准确率和精度。包括如下步骤:步骤1、分析软件的源代码,按照源代码中的功能模块划分代数构件,以代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图。将软件系统拓扑图按照功能划分为子图,所有子图构成一个图数据库G。步骤2、采用bitcode编码方法对子图中的每一条边在整个图数据库G中出现的情况进行编码表示,构建边层次编码结构BitEdgeLevel。步骤3、对所有簇进行层内扩展,通过层内扩展获得所有的父子关系。步骤4、构建BitEdgeTree搜索树。步骤5、执行图匹配检测漏洞算法。

Description

一种基于图挖掘的软件漏洞检测方法
技术领域
本发明涉及软件技术领域,具体涉及一种基于图挖掘的软件漏洞检测方法。
背景技术
随着软件产业的不断发展,计算机软件的规模与代码数量也在不断增长,其中潜在的漏洞问题不但严重影响了软件系统的安全性,甚至严重威胁着人们的财产安全,然而目前的软件漏洞检测理论还并不完善,一部分检测需要人工手动完成,找到漏洞纯粹靠的是检测者的个人经验,具有耗时耗力的缺陷,现有的一些自动化漏洞检测方法还在研究中,在漏判、误判、运行效率上各有长短。因此运用新的技术辅助开发者检测软件中存在的安全漏洞问题显得尤其重要。随着漏洞检测的不断发展,图挖掘技术在挖掘系统隐式规则方面具有很好的适用性。本专利提出了一种软件代数拓扑图模型和基于bitcode的MFGTM最大频繁子图挖掘算法。基于软件代数拓扑图模型,对生成的图集通过最大频繁子图挖掘算法检测出软件系统中可能存在漏洞的代数构件模块。
传统漏洞的内涵是指系统在软件系统的硬件与软件环境,还有各种计算机网络协议的实现过程,以及安全策略中潜在的缺陷,它的存在会在软件系统执行时影响系统功能的实现,或者令系统出现“后门”,让攻击者在没有获得系统管理员权限的情况下趁机对系统进行访问,窃取具有价值的信息,甚至破坏系统的操作运行。漏洞检测技术是提高软件质量和安全性、减少软件安全漏洞的重要方法和基本手段,随着技术与理论的不断完善,将结构性描述与图论等代数学科知识结合起来,使用代数拓扑原理对图进行处理也成为新的研究方向。喻梓峻在“基于复杂网络的java系统漏洞发现研究”中提供了一种将软件系统抽象为代数构件,采用复杂网络的研究方法,通过比较特征值的不同找出软件系统中潜在的漏洞,该方法具有很好的创新性,但是其准确率并没有获得更多验证。R.Chang等人提出了一种启发式的扎根于程序过程依赖图的图挖掘算法,用于检测软件漏洞。但其最大缺点就是求解需要消耗大量的系统资源。
随着信息技术的迅速发展,尤其是Internet的广泛应用,基于目前软件是人工手动开发的,软件开发过程中难以避免地会出现编程人员未曾注意的漏洞,然而随着软件安全的地位日益重要,为了保障计算机软件系统的安全性,必须改进计算机软件的检测技术,并提升计算机软件性能,才能从基础上保障计算机系统的安全。Benoit等人提出了一种基于UML类图定位系统潜在的可测试性弱点的研究方法,但该方法并不足以完全支持安全漏洞的检测,检测的准确率还有待提升。杨阳在R.Chang的研究基础上提出了一种基于闭频繁子图挖掘的过滤性最大频繁子图挖掘算法MCFSM,他虽然优化了前者的算法,但并未对输入数据集中的冗余数据进行处理,生成的PDG图还不够准确,对后续的检测精度和算法的精简存在影响。
因此,目前亟需一种能够应对数据集中的数据冗余问题,并提高软件漏洞检测准确率与精度的方法。
发明内容
有鉴于此,本发明提供了一种基于图挖掘的软件漏洞检测方法,能够解决数据集中的数据冗余问题,并有效提高软件漏洞检测的准确率和精度。
为达到上述目的,本发明的技术方案包括如下步骤:
步骤1、分析软件的源代码,按照源代码中的功能模块划分代数构件,以代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图。
将软件系统拓扑图按照功能划分为子图,所有子图构成一个图数据库G。
步骤2、采用bitcode编码方法对子图中的每一条边在整个图数据库G中出现的情况进行编码表示,构建边层次编码结构BitEdgeLevel,包括如下步骤:
S201、扫描图数据库G构建边链表EdgeList用于存储边频繁度大于设定阈值的边及其编码,边频繁度为所边在整个图数据库中所有子图中出现的次数。
S202、根据获得的边链表EdgeList将编码相同的边集中为一个簇Cluster,将簇中包含的边的集合以及簇频繁度存储到簇链表ClusterList中;簇频繁度为簇中边的边频繁度。
S203、将簇频繁度相同的不同簇集中为一个支持度层EdegeLevel,将不同频繁度的支持度层EdegeLevel按照其对应簇频繁度降序排列,形成边层次编码结构BitEdgeLevel。
步骤3、对所有簇进行层内扩展,层内扩展具体为:对同一频繁度层中的簇,对于簇中的边频繁度大于设定阈值的边的编码两两做与操作,获得层内扩展的结果,若层内扩展的结果与其中一个簇A中边的编码相同,则层内扩展的结果对应的做与操作的边与簇A具有父子关系。
通过层内扩展获得所有的父子关系。
步骤4、构建BitEdgeTree搜索树,具体为:边层次编码结构BitEdgeLevel和最小支持度MinSup为输入参数,最小支持度MinSup为预先设定的支持度阈值,0≤MinSup≤1;从频繁度最低的支持度层向上遍历,对于频繁度最高的频繁度层,其上的所有簇都以搜索树的根节点为父亲,对于其他频繁度层,从叶子节点开始向上寻找其父亲节点,并连接在一起,从而生成一个搜索树,其中每一个节点表示一个边,从顶点向下遍历所产生的一条独立路径即为一个频繁子图。
步骤5、在图数据集G的所有频繁子图中,如果图H不是其他任何频繁子图的子图,则可称图H为最大频繁子图,由此获得最大频繁子图集合Graph。
对于最大频繁子图集合Graph中的每个最大频繁子图g′,判断频繁子图g是否与最大频繁子图g′能构成子图同构,如果能,删除最大频繁子图g′,否则,将频繁子图g中与最大频繁子图g′不同的边或点加入频繁子图g″,如果频繁子图g″与最大频繁子图g′能构成子图同构,则记录下新加入的边或点的位置,并从最大频繁子图集合Graph中删除最大频繁子图g′,将频繁子图g″加入可能存在漏洞的图集M中。
子图同构:如果一个图k1与图k2的子图同构,则可称k1为k2的子图,图k1可以通过在图k2中添加或删除边来获得。
进一步地,步骤1包括:
以设定的xml模式将源代码转换成xml文件的格式。
按照xml文件中的<component></component>标签中的结构为代数构件。
以代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图。
连接关系包括三种,分别为:包含、嵌套和调用。
将节点间存在的多个边合并,并按照边对应的连接关系赋予权值并相加作为边权值,则子图成为加权有向图。
进一步地,按照边对应的连接关系赋予权值,具体为:设置包含的权值大于嵌套的权值,嵌套的权值大于调用的权值。
有益效果:
本发明提供的一种基于图挖掘的软件漏洞检测方法,提出了边的权值这一概念,并将带有权值的有向软件代数拓扑图模型与基于bitcode的MFGTM最大频繁子图挖掘算法相结合,解决数据集数据冗余问题,准确率与精度都有效地提高了。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明实施例选择了spring-shiro-training以及Apeche http server这两个软件系统进行漏洞检测。
Spring-shiro-training是一个基于springmvc、spring、mybatis-plus、shiro、easyui、Log4j2简单实用的权限系统,界面基于EasyUI,图标采用较为开放的“FoundationIcon”(MIT协议),运行环境要求jdk7+tomcat7以上。系统主要包含权限管理、日志监控、登录退出三大基本的功能,其中对于权限管理可细分为角色管理、用户管理、部门管理以及资源管理几个次一级功能,日志监控也可分为图标管理、登录日志以及Druid监控三个功能,能够进一步细分。
Apache http server是Apache软件基金会开发的一个开放源代码的中小型网页服务器,它能够在目前绝大部分主流操作系统中运行,由于其本身拥有良好的跨平台性和安全性,因此被国内外编程人员广泛地运用,也是目前最流行的Web服务器端软件之一。Spring-shiro-training和Apache http server信息如表1所示。
Figure BDA0002192890370000051
表1 Spring-shiro-training和Apache http server信息
本发明提供了一种基于图挖掘的软件漏洞检测方法,包括如下步骤:
步骤1、分析软件的源代码,按照源代码中的功能模块划分代数构件,以代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图。
将软件系统拓扑图按照功能划分为子图,所有子图构成一个图数据库G。
步骤1包括如下步骤:
以设定的xml模式将源代码转换成xml文件的格式。
按照xml文件中的<component></component>标签中的结构为代数构件。
以代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图。
连接关系包括三种,分别为:包含、嵌套和调用。设置包含的权值大于嵌套的权值,嵌套的权值大于调用的权值。
将节点间存在的多个边合并,并按照边对应的连接关系赋予权值并相加作为边权值,则子图成为加权有向图。
本发明实施例中,按照实验的步骤,通过分析源代码,按照功能模块划分代数构件,从而以设定的xml模式将源代码转换成xml文件的格式。随后按照xml文件中的<component></component>标签中的结构为节点,不同构件间的三种连接关系为边,生成软件系统拓扑图,限于图的规模大小,可以按照功能将整体的系统结构图划分为多个子图,共同构成一个图数据库,对于图数据库中的各个子图进行预处理,将两个节点之间存在的多个边进行合并,按照其不同的连接关系赋予权值,再将权值相加,作为边的权值,从而形成加权有向图集,构件软件代数拓扑图模型,作为图挖掘的输入图集。
在此设置按照优先级设置三种连接关系的权值,规定不同运算的优先级为包含大于嵌套,嵌套大于调用,设置包含关系权值为3,嵌套关系为2,调用关系为1,各个边的权值计算如公式(1)。其中weight表示在两个构件之间的边的权值,表示两个构件之间的一种连接关系所代表的的权值。
Figure BDA0002192890370000061
本发明基于MFGraphsuanfa的思想进行扩展,提出了MFGTM(Maximum FrequencysubGraph Tree Miner)算法。其前提是,针对软件系统的特点,可知一个完整的软件系统中不会具有重复的功能或服务模块,每个单独的服务可以重复使用,因此之前获得的软件系统拓扑图中不包含相同的两个节点,各个节点间的连接关系可以采取该连接关系的出发节点与结束节点进行唯一的描述。因此可以对这些图数据库各子图进行编码。采用bitcode(现有的编码)对子图中的每一条边在整个图数据库中出现的情况(出现次数)进行编码表示,降低了图操作的复杂性,同时提出了三个剪枝策略,针对生成的子图进行连通性检测,从而保证生成子图为最大频繁子图的正确性。
具体地,通过步骤2~步骤5实现。
步骤2、采用bitcode编码方法对子图中的每一条边在整个图数据库G中出现的情况进行编码表示,构建边层次编码结构BitEdgeLevel,包括如下步骤:
S201、扫描图数据库G构建边链表EdgeList用于存储边频繁度大于设定阈值的边及其编码,边频繁度为所边在整个图数据库中所有子图中出现的次数。
S202、根据获得的边链表EdgeList将编码相同的边集中为一个簇Cluster,将簇中包含的边的集合以及簇频繁度存储到簇链表ClusterList中;簇频繁度为簇中边的边频繁度。
S203、将簇频繁度相同的不同簇集中为一个支持度层EdegeLevel,将不同频繁度的支持度层EdegeLevel按照其对应簇频繁度降序排列,形成边层次编码结构BitEdgeLevel;
步骤3、对所有簇进行层内扩展,层内扩展具体为:对同一频繁度层中的簇,对于簇中的边频繁度大于设定阈值的边的编码两两做与操作,获得层内扩展的结果,若层内扩展的结果与其中一个簇A中边的编码相同,则层内扩展的结果对应的做与操作的边与簇A具有父子关系;通过层内扩展获得所有的父子关系。
本发明实施例中,在扩展过程中提出了三种剪枝策略提高计算效率。
剪枝策略1对于频繁度低于用户指定阈值(用户定义的最小支持度MinSup×图数据库中子图个数)的边,在构建BitEdgeLevel层次编码结构时可不做考虑。
剪枝策略2在进行层内扩展时只需要对高于用户指定阈值的频繁度层进行操作,在同层中无需进行三个及以上的簇之间的扩展,只需将编码相同的簇两两相互进行与运算。
剪枝策略3在进行层内扩展运算时,若簇之间存在扩展关系,则将现有的子簇扩展为子簇与父簇的集合。在构建BitEdgeTree时可直接对新生成的子簇进行操作,利用父子关系省略重复的运算和操作过程。
步骤4、构建BitEdgeTree搜索树,具体为:边层次编码结构BitEdgeLevel和最小支持度MinSup为输入参数,最小支持度MinSup为预先设定的支持度阈值,0≤MinSup≤1;从频繁度最低的支持度层向上遍历,对于频繁度最高的频繁度层,其上的所有簇都以搜索树的根节点为父亲,对于其他频繁度层,从叶子节点开始向上寻找其父亲节点,并连接在一起,从而生成一个搜索树,其中每一个节点表示一个边,从顶点向下遍历所产生的一条独立路径即为一个频繁子图;
步骤5、由于最大频繁子图本身是从图数据库中挖掘出的规则,其与图数据库中的各个子图之间的关联性必然不低,在对获得的最大频繁子图与原本的图数据库中的图进行比较时需要匹配出与最大频繁子图十分相似但无法构成完全子图同构的子图。十分相似的含义代表着最大频繁子图与该子图之间缺少一个顶点或者一条边。
本发明实施例中图匹配检测漏洞算法:该算法的时间复杂度为O(n2),以图数据库G和经过排序的最大频繁子图集合Graph为输入参数,
在图数据集G的所有频繁子图中,如果图H不是其他任何频繁子图的子图,则可称图H为最大频繁子图,由此获得最大频繁子图集合Graph;
对于最大频繁子图集合Graph中的每个最大频繁子图g′,判断频繁子图g是否与最大频繁子图g′能构成子图同构,如果能,删除最大频繁子图g′,否则,将频繁子图g中与最大频繁子图g′不同的边或点加入频繁子图g″,如果频繁子图g″与最大频繁子图g′能构成子图同构,则记录下新加入的边或点的位置,并从最大频繁子图集合Graph中删除最大频繁子图g′,将频繁子图g″加入可能存在漏洞的图集M中。
子图同构:如果一个图k1与图k2的子图同构,则可称k1为k2的子图,图k1可以通过在图k2中添加或删除边来获得。
对于一个实际的软件系统而言,软件系统中的每个代数构件都是从具体的软件代码中抽象出来的,各个代数构件之间的依赖关系构成了连接代数构件的边,一个模块能够顺利执行的前提是与之相互联系的其他模块都能够顺利执行,提供其所需要的服务,对应到软件代数拓扑图中,则可以理解为若一个顶点能够顺利执行,则与这个顶点相互关联的其他顶点都将要能够顺利执行,在进行图匹配的过程中,如果将规则子图的某个节点或者是边缘删除之后,如果能与原本的软件系统拓扑图形成图同构,则证明此顶点在缺少某一个重要顶点或边的支持下就完成了执行的过程,这样的执行显然存在着潜在的风险,也可以理解为一种条件忽略漏洞的具体表现。所有与规则子图符合相似但不能构成图同构条件图即为存在潜在漏洞的。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于图挖掘的软件漏洞检测方法,其特征在于,包括如下步骤:
步骤1、分析所述软件的源代码,按照源代码中的功能模块划分代数构件,以所述代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图;
将所述软件系统拓扑图按照功能划分为子图,所有子图构成一个图数据库G;所述步骤1包括:
以设定的xml模式将所述源代码转换成xml文件的格式;
按照xml文件中的<component></component>标签中的结构为代数构件;
以所述代数构件为节点,代数构件之间的连接关系为边,生成软件系统拓扑图;
所述连接关系包括三种,分别为:包含、嵌套和调用;
将节点间存在的多个边合并,并按照边对应的连接关系赋予权值并相加作为边权值,则所述子图成为加权有向图;
步骤2、采用bitcode编码方法对所述子图中的每一条边在整个图数据库G中出现的情况进行编码表示,构建边层次编码结构BitEdgeLevel,包括如下步骤:
S201、扫描所述图数据库G构建边链表EdgeList用于存储边频繁度大于设定阈值的边及其编码,所述边频繁度为边在整个图数据库中所有子图中出现的次数;
S202、根据获得的所述边链表EdgeList将编码相同的边集中为一个簇Cluster,将簇中包含的边的集合以及簇频繁度存储到簇链表ClusterList中;所述簇频繁度为簇中边的边频繁度;
S203、将簇频繁度相同的不同簇集中为一个支持度层EdegeLevel,将不同频繁度的支持度层EdegeLevel按照其对应簇频繁度降序排列,形成边层次编码结构BitEdgeLevel;
步骤3、对所有簇进行层内扩展,所述层内扩展具体为:对同一频繁度层中的簇,对于簇中的边频繁度大于设定阈值的边的编码两两做与操作,获得层内扩展的结果,若所述层内扩展的结果与其中一个簇A中边的编码相同,则所述层内扩展的结果对应的做与操作的边与簇A具有父子关系;
通过所述层内扩展获得所有的父子关系;
步骤4、构建BitEdgeTree搜索树,具体为:边层次编码结构BitEdgeLevel和最小支持度MinSup为输入参数,最小支持度MinSup为预先设定的支持度阈值,0≤MinSup≤1;从频繁度最低的支持度层向上遍历,对于频繁度最高的频繁度层,其上的所有簇都以搜索树的根节点为父亲,对于其他频繁度层,从叶子节点开始向上寻找其父亲节点,并连接在一起,从而生成一个搜索树,其中每一个节点表示一个边,从顶点向下遍历所产生的一条独立路径即为一个频繁子图;
步骤5、在图数据集G的所有频繁子图中,如果图H不是其他任何频繁子图的子图,则可称图H为最大频繁子图,由此获得最大频繁子图集合Graph;
对于最大频繁子图集合Graph中的每个最大频繁子图g′,判断频繁子图g是否与最大频繁子图g′能构成子图同构,如果能,删除最大频繁子图g′,否则,将频繁子图g中与最大频繁子图g′不同的边或点加入频繁子图g″,如果频繁子图g″与最大频繁子图g′能构成子图同构,则记录下新加入的边或点的位置,并从最大频繁子图集合Graph中删除最大频繁子图g′,将频繁子图g″加入可能存在漏洞的图集M中;
所述子图同构:如果一个图k1与图k2的子图同构,则可称k1为k2的子图,图k1可以通过在图k2中添加或删除边来获得。
2.如权利要求1所述方法,其特征在于,所述按照边对应的连接关系赋予权值,具体为:设置包含的权值大于嵌套的权值,嵌套的权值大于调用的权值。
CN201910838321.1A 2019-09-05 2019-09-05 一种基于图挖掘的软件漏洞检测方法 Active CN110598417B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910838321.1A CN110598417B (zh) 2019-09-05 2019-09-05 一种基于图挖掘的软件漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910838321.1A CN110598417B (zh) 2019-09-05 2019-09-05 一种基于图挖掘的软件漏洞检测方法

Publications (2)

Publication Number Publication Date
CN110598417A CN110598417A (zh) 2019-12-20
CN110598417B true CN110598417B (zh) 2021-02-12

Family

ID=68857720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910838321.1A Active CN110598417B (zh) 2019-09-05 2019-09-05 一种基于图挖掘的软件漏洞检测方法

Country Status (1)

Country Link
CN (1) CN110598417B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158676A (zh) * 2019-12-31 2020-05-15 山东蚁动网络科技有限公司 基于变量传播技术的构件关联性分析方法及设备、介质
CN111581446B (zh) * 2020-05-09 2023-02-03 北京金山云网络技术有限公司 一种图关系生成方法、装置、系统、设备及存储介质
CN111767547B (zh) * 2020-06-24 2022-08-19 北京理工大学 一种基于复杂网络社团的软件漏洞检测方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727391A (zh) * 2009-12-14 2010-06-09 北京理工大学 一种软件漏洞特征操作序列的提取方法
CN101950271A (zh) * 2010-10-22 2011-01-19 中国人民解放军理工大学 一种基于建模技术的软件安全性测试方法
CN103020529A (zh) * 2012-10-31 2013-04-03 中国航天科工集团第二研究院七○六所 一种基于场景模型的软件漏洞分析方法
CN103838671A (zh) * 2014-01-26 2014-06-04 北京理工大学 一种基于复杂网络的软件缺陷度量方法
CN103914374A (zh) * 2012-12-31 2014-07-09 梁彬 基于程序切片和频繁模式提取的代码缺陷检测方法及装置
CN106970803A (zh) * 2017-04-25 2017-07-21 北京理工大学 一种软件系统演化的分析方法和装置
CN107229563A (zh) * 2016-03-25 2017-10-03 中国科学院信息工程研究所 一种跨架构的二进制程序漏洞函数关联方法
CN107798245A (zh) * 2017-11-02 2018-03-13 北京理工大学 一种基于组件依赖图的软件安全漏洞预测方法
CN109670318A (zh) * 2018-12-24 2019-04-23 中国科学院软件研究所 一种基于核控制流图循环验证的漏洞检测方法
CN110012037A (zh) * 2019-05-21 2019-07-12 北京理工大学 基于不确定性感知攻击图的网络攻击预测模型构建方法
CN110147322A (zh) * 2019-04-19 2019-08-20 北京航空航天大学 一种基于软件网络的缺陷数据集构建与处理方法
CN111767547A (zh) * 2020-06-24 2020-10-13 北京理工大学 一种基于复杂网络社团的软件漏洞检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113549A1 (en) * 2007-10-24 2009-04-30 International Business Machines Corporation System and method to analyze software systems against tampering

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727391A (zh) * 2009-12-14 2010-06-09 北京理工大学 一种软件漏洞特征操作序列的提取方法
CN101950271A (zh) * 2010-10-22 2011-01-19 中国人民解放军理工大学 一种基于建模技术的软件安全性测试方法
CN103020529A (zh) * 2012-10-31 2013-04-03 中国航天科工集团第二研究院七○六所 一种基于场景模型的软件漏洞分析方法
CN103914374A (zh) * 2012-12-31 2014-07-09 梁彬 基于程序切片和频繁模式提取的代码缺陷检测方法及装置
CN103838671A (zh) * 2014-01-26 2014-06-04 北京理工大学 一种基于复杂网络的软件缺陷度量方法
CN107229563A (zh) * 2016-03-25 2017-10-03 中国科学院信息工程研究所 一种跨架构的二进制程序漏洞函数关联方法
CN106970803A (zh) * 2017-04-25 2017-07-21 北京理工大学 一种软件系统演化的分析方法和装置
CN107798245A (zh) * 2017-11-02 2018-03-13 北京理工大学 一种基于组件依赖图的软件安全漏洞预测方法
CN109670318A (zh) * 2018-12-24 2019-04-23 中国科学院软件研究所 一种基于核控制流图循环验证的漏洞检测方法
CN110147322A (zh) * 2019-04-19 2019-08-20 北京航空航天大学 一种基于软件网络的缺陷数据集构建与处理方法
CN110012037A (zh) * 2019-05-21 2019-07-12 北京理工大学 基于不确定性感知攻击图的网络攻击预测模型构建方法
CN111767547A (zh) * 2020-06-24 2020-10-13 北京理工大学 一种基于复杂网络社团的软件漏洞检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"软件执行图中子图模式挖掘算法的研究";王浩;《中国优秀硕士学位论文全文数据库 信息科技辑》;20080515;第I138-66页 *
A Vulnerability Detection Model for Java Systems Based on Complex Networks;Ling Xiong et.al.;《2019 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI)》;20200409;第1339-1347页 *

Also Published As

Publication number Publication date
CN110598417A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN110598417B (zh) 一种基于图挖掘的软件漏洞检测方法
Herzig et al. Predicting defects using change genealogies
Choudhury et al. A selectivity based approach to continuous pattern detection in streaming graphs
CN103336790B (zh) 基于Hadoop的邻域粗糙集快速属性约简方法
US8626835B1 (en) Social identity clustering
CN102034042A (zh) 基于函数调用关系图特征的恶意代码检测新方法
Liu et al. Efficient mining of large maximal bicliques
Yang et al. Index-based optimal algorithm for computing k-cores in large uncertain graphs
CN103336791A (zh) 基于Hadoop的粗糙集快速属性约简方法
CN111767547B (zh) 一种基于复杂网络社团的软件漏洞检测方法
CN105630797B (zh) 数据处理方法及系统
CN104866764A (zh) 一种基于对象引用图的Android手机恶意软件检测方法
Gao et al. An exact algorithm with new upper bounds for the maximum k-defective clique problem in massive sparse graphs
WO2018095539A1 (en) Efficient data propagation in a computer network
Acampora et al. A fuzzy clustering-based approach to study malware phylogeny
CN115756929A (zh) 一种基于动态服务依赖图的异常根因定位方法及系统
CN107579944B (zh) 基于人工智能和MapReduce安全攻击预测方法
CN114816517A (zh) 一种层次语义感知的代码表示学习方法
Tran et al. Simultaneous mining of frequent closed itemsets and their generators: Foundation and algorithm
Lakshmi et al. A comparative study of frequent subgraph mining algorithms
Tinnes et al. Learning domain-specific edit operations from model repositories with frequent subgraph mining
Savić et al. Characteristics of class collaboration networks in large Java software projects
Zhang et al. Network alarm flood pattern mining algorithm based on multi-dimensional association
CN115455417A (zh) 一种基于属性图的同源性代码检测方法及系统
CN115048298A (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