CN106682514B - 基于子图挖掘的系统调用序列特征模式集生成方法 - Google Patents
基于子图挖掘的系统调用序列特征模式集生成方法 Download PDFInfo
- Publication number
- CN106682514B CN106682514B CN201611156874.1A CN201611156874A CN106682514B CN 106682514 B CN106682514 B CN 106682514B CN 201611156874 A CN201611156874 A CN 201611156874A CN 106682514 B CN106682514 B CN 106682514B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- candidate
- list
- system call
- graph
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机软件技术领域,具体涉及的是一种能够用于软件异常行为的监控及入侵检测的基于子图挖掘的系统调用序列特征模式集生成方法。本发明包括:(1)定义相关概念;(2)汇聚系统调用参数类型;(3)确定系统调用属性关系规则;(4)确定子图特征值;(5)系统调用序列预处理;(6)候选子图拓展;(7)冗余子图精简;(8)构造特征模式集。本发明子图特征值的设定能够依照系统调用序列自身的不同情况,自动衡量候选子图的取舍,从而减少后续子图拓展挖掘过程中的工作量,为冗余子图重要程度的量化精简提供了良好的基础。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及的是一种能够用于软件异常行为的监控及入侵检测的基于子图挖掘的系统调用序列特征模式集生成方法。
背景技术
随着信息技术的飞速发展,尤其是互联网广泛应用,软件日益成为现代产品和服务的核心构件,是关键基础设施建设和运用的重要依赖。由于软件的脆弱性和运行时功能的非预期性,这种高度复杂的非理性依赖关系对各个企业安全、可靠和稳定的运行形成了极大威胁。因此,迫切需要提出以软件系统运行状态为基础的软件行为特征模式集的获取,从而能够有效提高对未知程序行为的鉴别能力,以提高软件系统的安全性,以保证软件系统中各项功能的正常、安全使用。
对软件行为特征模式集进行分析是评估软件系统运行状态的一个重要方法,其主要是通过将软件运行过程中所产生的系统调用序列作为数据源,利用特定的数据挖掘方法挖掘出其中的特征模式,构成特征模式集。现有的特征模式集挖掘算法主要仅仅针对系统调用序列的上下文关系展开研究,当中仍有许多的特征模式尚未被完全发掘出来。
目前专门针对软件行为特征模式集生成的方法比较多,比如TEIRESIAS算法、PatternsMining算法等,但利用子图挖掘理论对系统调用序列进行特征模式集挖掘的研究较少。公开的《基于频繁子图挖掘的异常入侵检测方法》的申请号为CN201010285726.6的专利文件通过使用频繁子图挖掘理论在系统调用序列的特征模式集的构造方面比较成功,但是未充分考虑系统调用属性参数这一重要因素,未将单个特征模式集内部系统调用属性关系及不同特征模式间的系统调用属性关系进行综合考虑,由此得到的特征模式集是不完善的,这在利用特征模式集对程序行为进行检测的时候,会造成异常行为漏报、错报等情况出现,因此需要提出一种可以生成更加合理、完备的系统调用特征模式集的方法。
发明内容
本发明的目的在于提供一种基于子图挖掘的系统调用序列特征模式集生成方法。
本发明的目的是这样实现的:
(1)定义相关概念
系统调用序列S:系统调用的有序序列;
系统调用序列片段S’:系统调用短序列;
系统调用总图G:指系统调用序列S经数据预处理后产生的有向图;G为一个三元组,即G=<V,E,W>,其中:V为有穷节点集,E为系统调用总图G中有向边集,W为系统调用总图G中有向边的权值集,代表边在系统调用序列S中出现的次数;
候选子图GS:指在特征模式抽取过程中产生的任意连通子图;GS为一个四元组,即GS=<V′,E′,W′>;其中:其中:V′为有穷节点集,E′为候选子图GS中有向边集,W′为候选子图GS中有向边的权值集;
原生特征模式GN:具有系统调用序列S局部特性的某种调用关系相对应的,并以图结构形式表征的特征模式;
衍生特征模式GD:指以系统调用序列S在转换为有向图结构后所展现出的全局特性为基础,通过子图挖掘过程衍生出来的,并以图结构形式表征的特征模式;
设图G=<V,E>,如果有图G′=<V′,E′>,且E‘∈E、V′∈V,则称G′为G的子图;
设图G=<V,E>、G′=<V′,E′>,若存在对应映射g:vi→vi′,且e=(vi,vj)是G的一条边,当且仅当e′=(g(vi),g(vj))是G′的一条边,则称G与G′同构;
设图G=<V,E>、G′=<V′,E′>,若G′为G的子图,且G′与G同构,则称图G包含图G′,记作G′∈G;
(2)汇聚系统调用参数类型
汇聚后的5个宏类型以及它们的成员即原始定义的数据类型;
(3)确定系统调用属性关系规则
系统调用特征模式提供所需的上下文信息,用以区分执行不同上下文的同一系统调用;设定两种规则分别针对原生特征模式及衍生特征模式;
规则一
原生特征模式序列实质对应程序一个特定任务的执行:
Pi.Sj.Ak=Pi.Sj′.Ak′
其中Pi表示序列模式库中的一个模式,Pi.Sj.Ak即表示Pi模式第j个系统调用的第k个属性,Pi.Sj′.Ak′表示Pi模式第j′个系统调用的第k′个属性,A0表示返回值;
规则二
其中dist表示一个序列中Sj、Sj′之间的距离,maxdist为给定的Sj与Sj′之间的最大距离;
(4)确定子图特征值
(5)系统调用序列预处理
每条系统调用由系统调用名、系统调用各个参数值、系统调用返回值三个部分组成,每个系统调用名分别对应一个系统调用号;系统调用的符号化形式为:
No.(attr1,attr2,attr3,attr4,attr5)=attr0,
其中No.为所代表系统调用名所对应的系统调用号,attr1,attr2,attr3,attr4,attr5分别对应系统调用的5个属性值,attr0代表的是系统调用的返回值;
(6)候选子图拓展
按照深度优先搜索的方式进行候选子图的扩展:
6.1)在添加一个新的节点时,同时添加该节点与当前待扩展子图中的所有节点间存在的前趋或后继关系;
6.2)在进行子图扩展时,只考虑待扩展节点的出边;
进行对于任一候选子图的一次拓展,添加中任一节点nodei,由该点出发,沿着该节点的任一出边访问并添加其下一节点nodej,再从nodej出发,沿着其任一出边进行类似的方式进行节点的添加,直至当前节点的所有出边节点都已被访问过为止;
(7)冗余子图精简
7.1)计算出所有候选子图的平均权重;
7.2)遍历候选子图列表,将所有权重值低于平均权重或特征值为0的候选子图从候选子图列表中进行删除;
7.3)遍历候选子图列表,对表中的任意两个子图进行同构判断,删除链表中存在的多余同构子图;
(8)构造特征模式集
8.1)进行系统调用序列的预处理;
8.2)创建候选子图列表、原生特征模式集列表、衍生特征模式列表、子图特征值列表、权重值列表、属性关系集列表,并将其设置为空;
8.3)将经过预处理转换后获取的候选子图存入到候选子图列表中,以此完成对候选子图列表的初始化,其中的任意一项称之为候选父子图;
8.4)按照本发明中的子图特征值设定方法及权重值计算公式,对所有的候选父子图的特征值及权重值进行计算,并分别将其存储在特征值数组及权重值数组中;
8.5)根据本发明中的子图精简方法实现对候选子图列表中冗余子图的精简;
8.6)从精简后的候选父子图列表中移除头部的候选父子图;
8.7)依照本发明中的候选子图拓展方法进行候选父子图的一次扩展,扩展的结果称为候选子子图;
8.8)如果当前父子图在候选子图列表中不存在前子图或当前候选子子图不是当前父子图的第一个拓展子图,跳转到8.12);否则,转入8.9);
8.9)将两个候选子子图连接起来作为一个特征模式存入到衍生特征模式中;
8.10)若前一父子图的最后一个候选子子图与当前候选子子图节点之间不存在着如规则二所示关系,跳转到8.12);否则,转入8.11);
8.11)将这两个子子图之间的关系形式化存储到属性关系集列表中;
8.12)将当前候选子子图存入原生特征模式集列表中;
8.13)如果当前候选子子图内部节点之间不存在如规则一所示的关系,跳转到8.15);否则,转入8.14);
8.14)将此关系形式化存储到属性关系集列表中;
8.15)如果当前候选父子图能够继续拓展出新的子子图,返回8.7);否则,转入8.16);
8.16)如果候选父子图列表不为空,返回8.6);否则,转入8.17);
8.17)将原生特征模式集列表、衍生特征模式集列表及属性关系集列表作为最终结果返回,算法至此结束;
8.18)系统调用序列的特征模式集由原生特征模式集和衍生特征模式集中的特征模式构成;属性关系集列表作为系统调用序列间属性关系的存储,反映的是特征模式集当中特征模式中存在的关系。
本发明的有益效果在于:
子图特征值的设定能够依照系统调用序列自身的不同情况,自动衡量候选子图的取舍,从而减少后续子图拓展挖掘过程中的工作量,为冗余子图重要程度的量化精简提供了良好的基础。将子图特征值、权重值及子图同构理论结合起来,能够从候选子图的重要程度及点、边的重复程度上进行冗余子图的精简,在极大程度上减少候选子图列表当中冗余子图的数量,为后续特征模式的提取提供了良好的基础。将系统调用之间的属性规则用于特征模式的生成中,两个属性规则分别对应于原生特征模式、衍生特征模式,进一步提高特征模式集刻画程序行为的准确度及衍生特征模式的利用价值。
附图说明
图1是系统调用结构图;
图2是系统调用序列转换有向图;
图3是算法流程图;
图4是系统调用序列片段有向图;
图5是算法运行时间对比结果图;
图6是算法结果集对比结果图。
具体实施方式
下面结合附图对本发明做进一步描述。
由于现有的系统调用序列特征模式集生成方法通常仅考虑系统调用序列的上下文关系,导致生成的特征模式集并不是完备的,不能充分反映出软件行为的全部内在特征。本发明通过引入频繁子图挖掘理论,将系统调用序列转化为有向图结构,在对其进行频繁子图挖掘过程中加入系统调用属性关系,提出一个对系统调用序列特征模式集进行挖掘的新方法(PatternPSet)。解决了现有技术在系统调用序列特征模式集生成方面的局限性,具有以下优点:
传统的模式集生成方法主要是对原始的系统调用序列以各种预设的形式进行划分,最终将符合要求的序列片段(系统调用短序列)作为最基本的数据处理单位,并归入特征模式集。由此获得的特征模式仅仅能够反映出系统调用序列局部的特性,对于单个特征模式的系统调用内部属性关系及不同特征模式间的系统调用属性关系的则没有深入的研究。为此,本发明引入频繁子图挖掘理论,将系统调用序列转化为有向图结构,在对其进行频繁子图挖掘过程中加入系统调用属性关系,提出一个对系统调用特征模式集进行挖掘的新方法。该方法加大了对于系统调用序列转换形成的有向图的挖掘力度,提高了特征模式集对程序行为刻画的准确度及衍生特征模式的衍生价值。下面结合附图对本发明方法进行进一步的解释和说明。
本发明的方法描述:
1相关概念说明及定义
1)系统调用序列S:系统调用的有序序列。
2)系统调用序列片段S’:系统调用短序列。
3)系统调用总图G:指系统调用序列S经数据预处理后产生的有向图。G为一个三元组,即G=<V,E,W>,其中:V为有穷节点集,E为系统调用总图G中有向边集,W为系统调用总图G中有向边的权值集,代表边在系统调用序列S中出现的次数。
4)候选子图GS:指在特征模式抽取过程中产生的任意连通子图。GS为一个四元组,即GS=<V′,E′,W′>。其中:其中:V′为有穷节点集,E′为候选子图GS中有向边集,W′为候选子图GS中有向边的权值集。
5)原生特征模式GN:具有系统调用序列S局部特性的某种调用关系相对应的,并以图结构形式表征的特征模式。
6)衍生特征模式GD:指以系统调用序列S在转换为有向图结构后所展现出的全局特性为基础,通过子图挖掘过程衍生出来的,并以图结构形式表征的特征模式。
定义1设图G=<V,E>,如果有图G′=<V′,E′>,且E‘∈E、V′∈V,则称G′为G的子图。
定义2设图G=<V,E>、G′=<V′,E′>,若存在对应映射g:vi→vi′,且e=(vi,vj)是G的一条边,当且仅当e′=(g(vi),g(vj))是G′的一条边,则称G与G′同构。
定义3设图G=<V,E>、G′=<V′,E′>,若G′为G的子图,且G′与G同构,则称图G包含图G′,记作G′∈G。
2系统调用参数类型的汇聚
所有的类unix系统都定义了大量的数据类型,比如linux内核2.6.22共定义了111个数据类型和324个系统调用。检査分析这些系统调用发现,即使两个不同数据类型的参数或返回值之间也有相关可比性。将所有数据类型组织分组为宏类型,任何两个具有相同宏类型的系统调用参数或返回值者之间都具有可比性。表1显示了汇聚后的5个宏类型以及它们的成员即原始定义的数据类型。
表1宏类型分类
表2、表3中以三个不同的系统调用为例,显示类型汇聚前后加入参数及返回值的区别。由于linux的系统调用参数是在调用号中断前通过寄存器进行传递的,这一工作由库函数完成。传递的参数最多只能有6个。系统调用的6个属性中第一个属性表示返回值,其余5个属性表示系统调用的参数,不足5个参数的系统调用的用null表示。
表2汇聚前
表3汇聚后
3系统调用属性关系规则
系统调用特征模式提供了所需的上下文信息,用以区分执行不同上下文的同一系统调用。同一特征模式下的系统调用之间和不同特征模式下的系统调用之间均存在着强烈的关联性。为此本发明设定两种规则分别针对原生特征模式及衍生特征模式。
(一)规则一
原生特征模式序列实质对应程序一个特定任务的执行,因此系统调用是相继执行的,系统调用之间的数据流具有很强的关联性。其主要针对系统调用序列局部性的特征。该规则所要构建的是这些系统调用之间的关系,一个典型的例子如下:
Pi.Sj.Ak=Pi.Sj′.Ak′
其中Pi表示序列模式库中的一个模式,Pi.Sj.Ak即表示Pi模式第j个系统调用的第k个属性,Pi.Sj′.Ak′表示Pi模式第j′个系统调用的第k′个属性,A0表示返回值。
(二)规则二
衍生特征模式序列主要针对一个复杂任务的执行,该任务需要一系列时间顺序下的系统调用序列来完成,其针对的是系统调用序列全局性的特征。规则二就是要学这样的关系规则,可表达为如下类型的关系规则:
其中dist表示一个序列中Sj、Sj‘之间的距离,maxdist为给定的Sj与Sj‘之间的最大距离。
4子图特征值
为了便于在后续的子图挖掘及子图精简的过程中判断衍生的候选子图的价值,辅助特征模式的选取,根据多次试验分析,本发明采用如下公式进行子图特征值的计算:
本发明通过对子图节点数目最大值MaxSize及最小值MinSize的设定,针对节点数目在MinSize与MaxSize之间的子图按照上述公式进行特征值的设定。其中针对支持度大于等于min_sup有较高的子图特征值。针对支持度小于min_sup的子图的特征值则会相对较小。
5系统调用序列预处理
每条系统调用由系统调用名、系统调用各个参数值、系统调用返回值三个部分组成,每个系统调用名分别对应一个系统调用号。系统调用的符号化形式为:No.(attr1,attr2,attr3,attr4,attr5)=attr0,其中No.为所代表系统调用名所对应的系统调用号,attr1,attr2,attr3,attr4,attr5分别对应系统调用的5个属性值,attr0代表的是系统调用的返回值。对于系统调用序列的预处理就是首先将系统调用中所含的三部分内容转换为图1所表示的结构,其中根节点的值为系统调用号No.,根节点的六个分支分别对应系统调用的attr0,attr1,attr2,attr3,attr4,attr5;然后按照程序运行过程中系统调用的先后调用顺序将其转化为图2所示的有向图结构,其中每个节点代表的是图1的结构,任意根节点之间的有向连线表示的是系统调用API之间的前后调用顺序。
6候选子图拓展
由于特征模式集中的所有特征模式都是以单个子图节点为基础,本发明按照深度优先搜索的方式进行候选子图的扩展,以下两条为基本的原则:
①在添加一个新的节点时,同时添加该节点与当前待扩展子图中的所有节点间存在的前趋或后继关系;
②在进行子图扩展时,只考虑待扩展节点的出边。
在上述原则的基础之上,按照如下方式进行对于任一候选子图的一次拓展,具体的描述如下:添加中任一节点nodei,由该点出发,沿着该节点的任一出边访问并添加其下一节点nodei,再从nodej出发,沿着其任一出边进行类似的方式进行节点的添加,直至当前节点的所有出边节点都已被访问过为止。
本发明主要采取的是深度穷举遍历的方法,不仅仅能够防止在对节点或者边进行遍历时候出现丢失的情况,也可以避免不可序列化子图的出现。
7冗余子图精简
对于任意的子图挖掘方法而言,均会产生一定数量的冗余候选子图,这会在很大程度上增加特征模式挖掘的复杂度,因此对于冗余子图的精简是很有必要的。
本发明引入对子图权重值及子图特征值的考量,并结合子图同构的思想进行冗余子图的精简。这主要是由于:1)候选子图的权重值及特征值在一定程度上表明了子图的重要程度;2)两个候选子图若互为同构图,则两者的边、节点均有重复。具体精简步骤如下:
1)计算出所有候选子图的平均权重;
2)遍历候选子图列表,将所有权重值低于平均权重或特征值为0的候选子图从候选子图列表中进行删除;
3)遍历候选子图列表,对表中的任意两个子图进行同构判断,删除链表中存在的多余同构子图。
本发明利用子图特征值、权重值及子图同构思想,对候选子图中“不重要”的子图及冗余同构子图进行精简,从而冗余子图的数量得以大幅减少。
8特征模式集构造算法
目前,用于特征模式集生成的算法较多,但由于应用的对象及问题背景的不同,这些算法的实际效果也具有极大的差别。针对系统调用序列特征模式集生成的方法主要分为:定长模式和变长模式两类,两者均有固定的缺陷。本发明从图结构的基本特征出发,设计出适用于系统调用序列的特征模式集生成算法—FeaturePSet算法。FeaturePSet算法以符合参数MinSize、MaxSize、min_sup限定的所有候选子图的集合作为特征模式挖掘的起点,对初始候选子图集进行深度扩展、剪枝及衍生操作,并将获取的特征模式划分为原生特征模式和衍生特征模式两种。FeaturePSet算法的流程图如图3所示。
候选子图列表:存储系统调用特征模式抽取过程中产生的候选子图;
原生特征模式集列表:存储挖掘出的原生特征模式,
衍生特征模式集列表:存储挖掘出的衍生特征模式;
特征值数组:存储所有候选子图的特征值;
权重值数组:存储所有候选子图的权重值;
属性关系集列表:存储系统调用之间的属性关系;
具体的算法详细步骤描述如下:
1)进行系统调用序列的预处理;
2)创建候选子图列表、原生特征模式集列表、衍生特征模式列表、子图特征值列表、权重值列表、属性关系集列表,并将其设置为空;
3)将经过预处理转换后获取的候选子图存入到候选子图列表中,以此完成对候选子图列表的初始化,其中的任意一项称之为候选父子图;
4)按照本发明中的子图特征值设定方法及权重值计算公式,对所有的候选父子图的特征值及权重值进行计算,并分别将其存储在特征值数组及权重值数组中;
5)根据本发明中的子图精简方法实现对候选子图列表中冗余子图的精简;
6)从精简后的候选父子图列表中移除头部的候选父子图;
7)依照本发明中的候选子图拓展方法进行候选父子图的一次扩展,扩展的结果称为候选子子图;
8)如果当前父子图在候选子图列表中不存在前子图或当前候选子子图不是当前父子图的第一个拓展子图,跳转到12);否则,转入9);
9)将两个候选子子图连接起来作为一个特征模式存入到衍生特征模式中;
10)若前一父子图的最后一个候选子子图与当前候选子子图节点之间不存在着如规则二所示关系,跳转到12);否则,转入11);
11)将这两个子子图之间的关系形式化存储到属性关系集列表中;
12)将当前候选子子图存入原生特征模式集列表中;
13)如果当前候选子子图内部节点之间不存在如规则一所示的关系,跳转到15);否则,转入14);
14)将此关系形式化存储到属性关系集列表中;
15)如果当前候选父子图能够继续拓展出新的子子图,返回7);否则,转入16);
16)如果候选父子图列表不为空,返回6);否则,转入17);
17)将原生特征模式集列表、衍生特征模式集列表及属性关系集列表作为最终结果返回,算法至此结束。
18)系统调用序列的特征模式集由原生特征模式集和衍生特征模式集中的特征模式构成;属性关系集列表作为系统调用序列间属性关系的存储,反映的是特征模式集当中特征模式中存在的关系。
在本算法中,用到了双层循环,其中第一层循环主要是用来进行候选父子图的遍历,第二层循环用来拓展生成候选子子图,同时进行原生特征模式和衍生特征模式的挖掘。最终将挖掘的原生特征模式集、衍生特征模式集及特征模式之间的属性关系作为最终的返回结果。实现了对系统调用序列特征模式集的挖掘。
实验对比与总结
相对于传统的系统调用特征模式集生成方法,本发明方法主要具有如下特点:
1、依托特征值及权重值进行冗余候选子图精简
由于将系统调用序列转换的候选子图中节点数目及出现的频率均不相同,为了提高冗余子图的精简效率,从定量化分析的角度考虑,通过预设参数MinSize、MaxSize、min_sup的值;利用相关定义,将候选子图的特征值及权重值表示为具体的数字。在此基础之上利用子图权重值、特征值及子图同构理论进行冗余子图的精简。
2、子图的深度拓展
由于图结构具有丰富的语义表达能力及强大的衍生能力,本发明将有向图作为特征模式挖掘的载体,通过对有向图结构的深度遍历,进行子图的拓展,挖掘其中的特征模式。下面以图4所示的有向图(一个序列片段)为例,拓展后得到表4中所示的子图序列。
表4子图序列表
序号 | 子图序列 |
1 | 61 121 223 38 |
2 | 61 227 223 38 |
3 | 61 227 24 38 |
4 | 61 227 118 121 |
5 | 61 38 121 223 |
由上可以看出,依照图的深度优先搜索进行子图拓展,得到的子图序列中没有出现节点重复、序列重复的问题,避免了不可序列化子图的出现及节点或者边的丢失。
3、系统调用属性关系规则的引入
通过对系统调用序列的研究发现,系统调用属性间存在两种不同的关系,分别存在于原生特征模式内及原生特征模式之间。将这两种关系特征形式化表示为规则一和规则二。在对特征模式进行存储时候,将其中符合相应关系规则的系统调用属性进行相应的存储。
引入关系规则的意义在于:1)将系统调用序列内部属性的内部关系形式化表现出来,提高了特征模式集对软件行为运行时程序行为准确度的刻画;2)更加提高特征模式的价值。
最后给出实验的简要对比与总结。
在本发明方法中,实验中所用的数据出自UNM的计算机科学实验室的sendmailDeamon数据集,由sendmail邮件服务器在正常运行时产生的系统调用序列组成。数据集中所包含的系统调用总数为98180,进程数为26。
在试验验证阶段,利用两种常用的子图挖掘方法FFSM算法、gSpan和本发明中的FeaturePSet分别进行系统调用序列的特征模式集生成。由于在本方法的众多参数当中,最小支持度是本方法在实际应用中的一个关键问题,因此主要通过改变参数min_sup的大小从算法的执行效率与最终结果集尺寸两方面进行比较与分析。对于参数MinSize和MaxSize则分别设定为4、8,maxdist设置为16。
对于实验结果的比较通过图5和图6给出。图5是使用上述数据集的实验结果,图5是FFSM、gSpan和FeaturePSet这3种算法运行时间与支持度阈值的关系曲线,图6是3种算法结果集大小的比较。由于在min_sup较高时运行时间相差较小,为此采用对数坐标进行描述,使数据曲线更加清晰。
图5中横坐标表示min_sup的值,纵坐标表示运行时间,单位为秒。从图5中看到,FeaturePSet在运行时间上比FFSM和gSpan小得多。在min_sup为3%的时候,FeaturePSet的效率较TEIRESIAS和PatternsMining提高了2~3倍;当min_sup的值
从3%变为4%时,三种算法的运行时间均快速降低。随着支持度的逐步增加,3种算法的运行时间趋于一致,这主要是由于支持度增加后候选子图子图数量迅速降低所造成的。
图6中横坐标表示min_sup的值,纵坐标表示挖掘出的特征模式个数,显示了挖掘算法得到的结果集的大小。从图中可以看出,在min_sup小于4%时,FeaturePSet得到的结果集相对较大,这主要是因为衍生特征模式的增加。随着支持度的增加,3种算法产生的结果集均越来越小,且三者之间的差距逐步缩小。
下面以min_sup为4%时为例,对三个算法结果集中的特征模式进行统计,结果如表5所示。
表5特征模式集统计
由上述对比结果可以看出FeaturePSet在运行时间及结果集大小两个方面,相对于其余两种算法均有明显的优势,进一步提升了衍生特征模式衍生价值及其在特征模式集中所占的比例。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.基于子图挖掘的系统调用序列特征模式集生成方法,其特征在于,包括如下步骤:
(1)定义相关概念
系统调用序列S:系统调用的有序序列;
系统调用序列片段S’:系统调用短序列;
系统调用总图G:指系统调用序列S经数据预处理后产生的有向图;G为一个三元组,即G=<V,E,W>,其中:V为有穷节点集,E为系统调用总图G中有向边集,W为系统调用总图G中有向边的权值集,代表边在系统调用序列S中出现的次数;
候选子图GS:指在特征模式抽取过程中产生的任意连通子图;GS为一个四元组,即GS=<V′,E′,W′>;其中:其中:V′为有穷节点集,E′为候选子图GS中有向边集,W′为候选子图GS中有向边的权值集;
原生特征模式GN:具有系统调用序列S局部特性的某种调用关系相对应的,并以图结构形式表征的特征模式;
衍生特征模式GD:指以系统调用序列S在转换为有向图结构后所展现出的全局特性为基础,通过子图挖掘过程衍生出来的,并以图结构形式表征的特征模式;
设图G=<V,E>,如果有图G′=<V′,E′>,且E′∈E、V′∈V,则称G′为G的子图;
设图G=<V,E>、G′=<V′,E′>,若存在对应映射g:vi→vi′,且e=(vi,vj)是G的一条边,当且仅当e′=(g(vi),g(vj))是G′的一条边,则称G与G′同构;
设图G=<V,E>、G′=<V′,E′>,若G′为G的子图,且G′与G同构,则称图G包含图G′,记作G′∈G;
(2)汇聚系统调用参数类型
汇聚后的5个宏类型分别为:Integer;Integer*;String*;Struct*;Other;
汇聚后的5个宏类型与原始定义的数据类型之间的对应关系为:
Integer:Long,int,unsignedint,unsigned long,pid_t;
Integer*:Int_user*,time_t_user*,old_sigset_t_user*;
String*:Char_user*,constchar_user*;
Struct*:Struct_old_kernel_stat_user*,structtms_user*;
Other:Structpt_regs,void_user*,_sighandler_t.
(3)确定系统调用属性关系规则
系统调用特征模式提供所需的上下文信息,用以区分执行不同上下文的同一系统调用;设定两种规则分别针对原生特征模式及衍生特征模式;
规则一
原生特征模式序列实质对应程序一个特定任务的执行:
Pi.Sj.Ak=Pi.Sj′.Ak′
其中Pi表示序列模式库中的一个模式,Pi.Sj.Ak即表示Pi模式第j个系统调用的第k个属性,Pi.Sj′.Ak′表示Pi模式第j′个系统调用的第k′个属性,A0表示返回值;
规则二
其中dist表示一个序列中Sj、Sj′之间的距离,maxdist为给定的Sj与Sj′之间的最大距离;
(4)确定子图特征值
(5)系统调用序列预处理
每条系统调用由系统调用名、系统调用各个参数值、系统调用返回值三个部分组成,每个系统调用名分别对应一个系统调用号;系统调用的符号化形式为:
No.(attr1,attr2,attr3,attr4,attr5)=attr0,
其中No.为所代表系统调用名所对应的系统调用号,attr1,attr2,attr3,attr4,attr5分别对应系统调用的5个属性值,attr0代表的是系统调用的返回值;
(6)候选子图拓展
按照深度优先搜索的方式进行候选子图的扩展:
6.1)在添加一个新的节点时,同时添加该节点与当前待扩展子图中的所有节点间存在的前趋或后继关系;
6.2)在进行子图扩展时,只考虑待扩展节点的出边;
进行对于任一候选子图的一次拓展,添加中任一节点nodei,由该点出发,沿着该节点的任一出边访问并添加其下一节点nodej,再从nodej出发,沿着其任一出边进行类似的方式进行节点的添加,直至当前节点的所有出边节点都已被访问过为止;
(7)冗余子图精简
7.1)计算出所有候选子图的平均权重;
7.2)遍历候选子图列表,将所有权重值低于平均权重或特征值为0的候选子图从候选子图列表中进行删除;
7.3)遍历候选子图列表,对表中的任意两个子图进行同构判断,删除链表中存在的多余同构子图;
(8)构造特征模式集
8.1)进行系统调用序列的预处理;
8.2)创建候选子图列表、原生特征模式集列表、衍生特征模式列表、子图特征值列表、权重值列表、属性关系集列表,并将其设置为空;
8.3)将经过预处理转换后获取的候选子图存入到候选子图列表中,以此完成对候选子图列表的初始化,其中的任意一项称之为候选父子图;
8.4)按照子图特征值设定方法及权重值计算公式,对所有的候选父子图的特征值及权重值进行计算,并分别将其存储在特征值数组及权重值数组中;
8.5)根据子图精简方法实现对候选子图列表中冗余子图的精简;
8.6)从精简后的候选父子图列表中移除头部的候选父子图;
8.7)依照候选子图拓展方法进行候选父子图的一次扩展,扩展的结果称为候选子子图;
8.8)如果当前父子图在候选子图列表中不存在前子图或当前候选子子图不是当前父子图的第一个拓展子图,跳转到8.12);否则,转入8.9);
8.9)将两个候选子子图连接起来作为一个特征模式存入到衍生特征模式中;
8.10)若前一父子图的最后一个候选子子图与当前候选子子图节点之间不存在着如规则二所示关系,跳转到8.12);否则,转入8.11);
8.11)将这两个子子图之间的关系形式化存储到属性关系集列表中;
8.12)将当前候选子子图存入原生特征模式集列表中;
8.13)如果当前候选子子图内部节点之间不存在如规则一所示的关系,跳转到8.15);否则,转入8.14);
8.14)将此关系形式化存储到属性关系集列表中;
8.15)如果当前候选父子图能够继续拓展出新的子子图,返回8.7);否则,转入8.16);
8.16)如果候选父子图列表不为空,返回8.6);否则,转入8.17);
8.17)将原生特征模式集列表、衍生特征模式集列表及属性关系集列表作为最终结果返回,算法至此结束;
8.18)系统调用序列的特征模式集由原生特征模式集和衍生特征模式集中的特征模式构成;属性关系集列表作为系统调用序列间属性关系的存储,反映的是特征模式集当中特征模式中存在的关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611156874.1A CN106682514B (zh) | 2016-12-15 | 2016-12-15 | 基于子图挖掘的系统调用序列特征模式集生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611156874.1A CN106682514B (zh) | 2016-12-15 | 2016-12-15 | 基于子图挖掘的系统调用序列特征模式集生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106682514A CN106682514A (zh) | 2017-05-17 |
CN106682514B true CN106682514B (zh) | 2020-07-28 |
Family
ID=58868908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611156874.1A Active CN106682514B (zh) | 2016-12-15 | 2016-12-15 | 基于子图挖掘的系统调用序列特征模式集生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106682514B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107798146A (zh) * | 2017-12-01 | 2018-03-13 | 江苏理工学院 | 一种基于子图近似同构的学习资源本体匹配方法 |
CN110020087B (zh) * | 2017-12-29 | 2021-11-09 | 中国科学院声学研究所 | 一种基于相似度估计的分布式PageRank加速方法 |
CN108762908B (zh) * | 2018-05-31 | 2021-12-07 | 创新先进技术有限公司 | 系统调用异常检测方法及装置 |
CN112463848A (zh) * | 2020-11-05 | 2021-03-09 | 中国建设银行股份有限公司 | 检测用户异常行为的检测方法、系统、装置和存储介质 |
CN113239110A (zh) * | 2021-06-11 | 2021-08-10 | 国网甘肃省电力公司电力科学研究院 | 一种面向新能源大数据的异常检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308473A (zh) * | 2008-06-27 | 2008-11-19 | 浙江大学 | 一种基于序列模式挖掘的程序级操作系统调试方法 |
CN101951654A (zh) * | 2010-08-09 | 2011-01-19 | 哈尔滨工程大学 | 一种面向多水下机器人通信的节能路由方法 |
CN101976313A (zh) * | 2010-09-19 | 2011-02-16 | 四川大学 | 基于频繁子图挖掘的异常入侵检测方法 |
CN104536882A (zh) * | 2014-11-28 | 2015-04-22 | 南京大学 | 基于频繁子图挖掘的错误定位方法 |
CN104537025A (zh) * | 2014-12-19 | 2015-04-22 | 北京邮电大学 | 频繁序列挖掘方法 |
CN104899292A (zh) * | 2015-06-08 | 2015-09-09 | 哈尔滨工程大学 | 一种面向属性图集的频繁近似子图挖掘方法 |
-
2016
- 2016-12-15 CN CN201611156874.1A patent/CN106682514B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308473A (zh) * | 2008-06-27 | 2008-11-19 | 浙江大学 | 一种基于序列模式挖掘的程序级操作系统调试方法 |
CN101951654A (zh) * | 2010-08-09 | 2011-01-19 | 哈尔滨工程大学 | 一种面向多水下机器人通信的节能路由方法 |
CN101976313A (zh) * | 2010-09-19 | 2011-02-16 | 四川大学 | 基于频繁子图挖掘的异常入侵检测方法 |
CN104536882A (zh) * | 2014-11-28 | 2015-04-22 | 南京大学 | 基于频繁子图挖掘的错误定位方法 |
CN104537025A (zh) * | 2014-12-19 | 2015-04-22 | 北京邮电大学 | 频繁序列挖掘方法 |
CN104899292A (zh) * | 2015-06-08 | 2015-09-09 | 哈尔滨工程大学 | 一种面向属性图集的频繁近似子图挖掘方法 |
Non-Patent Citations (3)
Title |
---|
《Mining Distinguishing Patterns Based on Malware Traces 》;Xiaoyan Sun等;《2010 3rd International Conference on Computer Science and Information Technology》;20100907;第677-681页 * |
《Mining Frequent k-edge-Connected Subgraphs》;Jingdong Tan等;《2016 12th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD)》;20161024;第1312-1317页 * |
《基于频繁子图挖掘的异常入侵检测新方法》;刘辉等;《计算机应用研究》;20110331;第28卷(第3期);第1122-1126、1129页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106682514A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682514B (zh) | 基于子图挖掘的系统调用序列特征模式集生成方法 | |
CN112101562B (zh) | 机器学习建模过程的实现方法和系统 | |
Zou et al. | Finding top-k maximal cliques in an uncertain graph | |
Szárnyas et al. | IncQuery-D: A distributed incremental model query framework in the cloud | |
US8856060B2 (en) | Creating stream processing flows from sets of rules | |
Pigorsch et al. | An AIG-based QBF-solver using SAT for preprocessing | |
EP3674918B1 (en) | Column lineage and metadata propagation | |
CN109213843A (zh) | 一种垃圾文本信息的检测方法及装置 | |
Strejček et al. | Abstracting path conditions | |
CN105117430B (zh) | 一种基于等价类的重复任务过程发现方法 | |
CN111767547B (zh) | 一种基于复杂网络社团的软件漏洞检测方法 | |
Zeng et al. | Efficient search-based weighted model integration | |
CN105630797B (zh) | 数据处理方法及系统 | |
WO2023093689A1 (zh) | 一种计算图优化方法、装置及设备 | |
Ashraf et al. | WeFreS: weighted frequent subgraph mining in a single large graph | |
Deng et al. | Establishment of rule dictionary for efficient XACML policy management | |
CN106599122B (zh) | 一种基于垂直分解的并行频繁闭序列挖掘方法 | |
CN113505278A (zh) | 图匹配方法、装置、电子设备及存储介质 | |
Reza et al. | Scalable pattern matching in metadata graphs via constraint checking | |
CN112434831A (zh) | 故障排查方法、装置、存储介质及计算机设备 | |
Zhang et al. | A resolution calculus for the branching-time temporal logic CTL | |
Gentilini et al. | Symbolic graphs: Linear solutions to connectivity related problems | |
CN114706558A (zh) | 基于K-Truss的复杂软件关键模块识别方法 | |
He et al. | More efficient on-the-fly verification methods of colored petri nets | |
Song et al. | Nslpa: A node similarity based label propagation algorithm for real-time community detection |
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 |