一种软件漏洞特征操作序列的提取方法技术

技术编号:4269250 阅读:408 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种软件漏洞特征操作序列的提取方法,特别涉及一种基于闭合序列模式挖掘的软件漏洞特征操作序列的提取方法,属于信息安全技术领域。本发明专利技术利用函数调用关系分析技术,对软件漏洞程序进行处理,将软件漏洞程序抽象为软件漏洞程序操作序列的数据形式,然后采用加权闭合序列模式挖掘算法挖掘加权的闭合序列,提高了软件漏洞特征操作序列的提取效率。

【技术实现步骤摘要】

本专利技术涉及,特别涉及一种基于闭合序列模式挖掘的软件漏洞特征操作序列的提取方法,属于信息安全

技术介绍
随着黑客攻击事件数量的不断上升,蠕虫在Internet上的泛滥,信息安全逐渐成 为人们眼中的焦点。信息安全中的一个核心问题就是存在于计算机系统中的软件安全漏 洞,恶意的攻击者可以利用这些安全漏洞提升权限,访问未授权资源,甚至破坏敏感数据。 计算机软件的普遍应用带给人们越来越多的便捷,并日益影响人们的日常生活,但计算机 软件中存在大量的错误及漏洞,隐藏着巨大的风险。阻止系统攻击和入侵的根本解决途径 是在软件缺陷被利用之前发现并进行分析和研究。 任何系统或软件的运行都会假定一个安全域,这个安全域是由安全策略规定的,在该域内的任何操作都是安全的、可控的,一旦超出该域或者违反了安全策略,系统或软件的运行就是不可控的、未知的。漏洞是由安全域切换到非安全域的触发点。漏洞是静态的、被动的、可触发的。 一般而言,一条漏洞信息包括漏洞名称、漏洞级别、漏洞成因、漏洞影响、漏洞描述、受影响的系统、未受影响的系统、漏洞解决方案、漏洞利用类型和漏洞利用方法等,此外还要考虑漏洞来源、漏洞发布日期、漏洞参考信息等。 现有的用于软件漏洞特征操作序列的提取方法包括以下步骤 第1步将漏洞模型从数据库中载入流程即装入内存、建立漏洞模型的数据结构。所述漏洞模型载入流程漏洞模型由漏洞状态的状态结点、有向边的集合所构成;在内存中建立由有向边类型进行检索的操作转换表的流程;通过对软件漏洞程序抽象提取处理,过滤去除无关的操作,进行提取与漏洞模型相关的操作序列的流程。第2步提取软件漏洞特征操作序列,即根据漏洞模型的相关操作的信息,得到软件漏洞程序操作序列,然后对软件漏洞程序操作序列进行抽取,得到软件漏洞特征操作序列。 所述提取软件漏洞特征操作序列流程从软件漏洞程序控制流中提取软件漏洞程 序操作序列,并以函数为单位进行组织,每个函数组织一个软件漏洞程序操作序列链表,对 软件漏洞程序操作序列链表进行遍历,得到软件漏洞特征操作序列。 提取的软件漏洞特征操作序列可用于软件漏洞的分析,以判断软件漏洞产生的原 因。但是目前软件漏洞特征操作序列提取方法存在以下缺点 1.由于现有的软件漏洞特征操作序列提取方法提取出的软件漏洞特征操作序列 冗余性大,在抽取这些软件漏洞特征操作序列时存在大量的重复工作,从而影响特征相似 性匹配速度以及软件漏洞分析方法的适用性; 2.由于每一软件漏洞出现的频率不相同,即某些软件漏洞是经常出现的,某些软件漏洞出现的次数较少,现有方法中没有对这种情况区别对待,降低了软件漏洞分析的效 率; 3.由于软件漏洞程序操作序列集的增量性,现有的软件漏洞特征操作序列的提取 方法不能有效的利用已提取的软件漏洞特征操作序列,来加速提取新的软件漏洞特征操作 序列的过程,从而影响整个软件漏洞特征操作序列提取的效率。 本专利技术涉及到的另外一项重要的已有技术是闭合序列模式挖掘算法的CloSpan 算法。其算法描述如下 算法ClosedMining(DS, min-sup, L) 输入数据库DS和最小支持度min-sup 输出闭合序列集L (1)删除非频繁项集和空的序列,在待挖掘数据库DS中对序列中的每个项集进行 排序。 (2)对长度为1的频繁项集调用CloSpan算法。 (3)删除结果集中的非闭合序列。 CloSpan (s, Ds, min-sup, U算法描述如下 输入序列s,投影数据库Ds,最小支持度min_Sup 输出前缀搜索序列格L —个序列之所以称为序列模式,它必须是频繁的,即它在数据库中出现的次数至 少是min-sup次。最小支持度的取值视实际情况而定。本专利技术在软件漏洞特征操作序列的 提取中使用该算法时,DS表示软件漏洞程序操作序列数据库,L是挖掘到的频繁发生的软 件漏洞特征操作序列,min-sup是最小支持度。
技术实现思路
本专利技术的目的在于克服已有技术的缺点,提供一种软件漏洞特征操作序列提取方法。本专利技术利用函数调用关系分析技术,对软件漏洞程序进行处理,将软件漏洞程序抽象为软件漏洞程序操作序列的数据形式,然后采用加权闭合序列模式挖掘算法挖掘加权的闭合序列,提高了软件漏洞特征操作序列的提取效率。 本专利技术的目的是通过以下技术方案实现的。 本专利技术的一种软件漏洞特征操作序列提取方法的整体框架设计流程如图1所示, 其具体操作步骤如下 步骤一、收集已有的软件漏洞程序; 步骤二、对步骤一收集的软件漏洞程序进行预处理,过滤掉软件漏洞程序中与软 件漏洞分析无关的函数块和语句; 步骤三、从步骤二预处理过的软件漏洞程序中得到软件漏洞程序操作序列;其具 体操作步骤如下 第1步对经过步骤二预处理后的软件漏洞程序载入漏洞模型,由控制流提取算 法对软件漏洞程序进行处理,将其转换为软件漏洞程序控制流图; 第2步生成中间文件,中间文件包括所有子函数名称和每个子函数内单层调用关系;从中间文件提取软件漏洞程序中函数的调用关系,生成函数调用图。第3步采用深度优先的方法遍历函数调用图,得到软件漏洞程序操作序列。5 第4步给每一条软件漏洞程序操作序列赋予一个序列标识符,存入软件漏洞程 序操作序列数据库。 步骤四、对步骤三得到的软件漏洞程序操作序列采用加权闭合序列模式挖掘算法 WCSMining进行挖掘,得到软件漏洞特征操作序列集合。其具体操作步骤如下 第1步设置最小支持度阈值的初始值min—sup,并设置用于存储挖掘结果的加权 闭合序列树WClosedTree为空; 第2步扫描软件漏洞程序操作序列数据库SDB —次,通过软件漏洞程序操作序列 出现的频率和定义的权值度量方法,计算所有项的权值; 第3步计算软件漏洞程序操作序列数据库SDB基于最小支持度阈值min_SUp 长度为1的所有频繁序列l-sequence,并且记录它们的位置数据,把这些长度为1的频 繁序列1-sequence加入到加权闭合序列树WClosedTree中,即创建加权闭合序列树结点 Cnode, Cnode. i = l_sequence. i, Cnode. i_sup = l_sequence. i_sup, Cnode. i_weight = l_sequence. i_weight ; 第4步对于长度为1的每一个频繁序列,将它与所有的长度为1的频繁序列 1-sequence相连接,生成长度为2的频繁序列2-sequence和相应的位置数据,执行闭集 检查,把这些长度为2的频繁序列2-sequence加入到WClosedTree中,即创建加权闭合序 列树结点Cnode, Cnode. i = 2-sequence. i, Cnode. i_sup = 2-sequence. i_sup, Cnode. i_ weight =E l_sequence. i_weight ; 第5步设置两个新的集合P和P工为空集; 第6步通过加权闭合序列树WClosedTree对长度为2的每一个频繁序列Sl检查 逆向超模式和相同位置数据; 第7步如果它们符合逆向超模式或有相同的位置数据,更新加权闭合序列树 WClosedTree中相应的连接和结点信息,即如果长度为2的频繁序列2-sequence中本文档来自技高网
...

【技术保护点】
一种软件漏洞特征操作序列的提取方法,其特征在于:具体操作步骤如下:步骤一、收集已有的软件漏洞程序;步骤二、对步骤一收集的软件漏洞程序进行预处理,过滤掉软件漏洞程序中与软件漏洞分析无关的函数块和语句;步骤三、从步骤二预处理过的软件漏洞程序中得到软件漏洞程序操作序列;步骤四、对步骤三得到的软件漏洞程序操作序列采用加权闭合序列模式挖掘算法WCSMining进行挖掘,得到软件漏洞特征操作序列集合;其具体操作步骤如下:第1步:设置最小支持度阈值的初始值min_sup,并设置用于存储挖掘ee中相应的连接和结点信息,即如果长度为j的频繁序列中某一序列s↓[2]*s并且s↓[2]_sup=s_sup,将长度小于j的频繁序列s的节点的支持数记为0;第14步:把s↓[2]加入到集合P↓[1]中,置P=P↓[1],P↓[1]=φ。结果的加权闭合序列树WClosedTree为空;第2步:扫描软件漏洞程序操作序列数据库SDB一次,通过软件漏洞程序操作序列出现的频率和定义的权值度量方法,计算所有项的权值;第3步:得到软件漏洞程序操作序列数据库SDB基于最小支持度阈值min_sup长度为1的所有频繁序列1-sequence,并且记录它们的位置数据,把这些长度为1的频繁序列1-sequence加入到加权闭合序列树WClosedTree中,即创建加权闭合序列树结点;第4步:对于长度为1的每一个频繁序列,将它与所有的长度为1的频繁序列1-sequence相连接,生成长度为2的频繁序列2-sequence和相应的位置数据,执行闭集检查,把这些长度为2的频繁序列2-sequence加入到WClosedTree中,即创建加权闭合序列树结点;第5步:设置两个新的集合P和P↓[1]为空集;第6步:通过加权闭合序列树WClosedTree对长度为2的每一个频繁序列s↓[1]检查逆向超模式和相同位置数据;第7步:如果它们符合逆向超模式或有相同的位置数据,更新加权闭合序列树WClosedTree中相应的连接和结点信息,即如果长度为2的频繁序列2-sequence中某一序列s1*s并且s↓[1]_sup=s_sup,则将该长度为1的频繁序列s的结点的支持数s_sup记为0;否则把s↓[1]加入到一个新的集合P中以备扩展;第8步:如果步骤7操作以后,集合P为空,结束操作;否则对于集合P中的每个序列s↓[1]执行第9步到14步;第9步:用长度为2的频繁序列和它们的位置...

【技术特征摘要】
一种软件漏洞特征操作序列的提取方法,其特征在于具体操作步骤如下步骤一、收集已有的软件漏洞程序;步骤二、对步骤一收集的软件漏洞程序进行预处理,过滤掉软件漏洞程序中与软件漏洞分析无关的函数块和语句;步骤三、从步骤二预处理过的软件漏洞程序中得到软件漏洞程序操作序列;步骤四、对步骤三得到的软件漏洞程序操作序列采用加权闭合序列模式挖掘算法WCSMining进行挖掘,得到软件漏洞特征操作序列集合;其具体操作步骤如下第1步设置最小支持度阈值的初始值min_sup,并设置用于存储挖掘结果的加权闭合序列树WClosedTree为空;第2步扫描软件漏洞程序操作序列数据库SDB一次,通过软件漏洞程序操作序列出现的频率和定义的权值度量方法,计算所有项的权值;第3步得到软件漏洞程序操作序列数据库SDB基于最小支持度阈值min_sup长度为1的所有频繁序列1-sequence,并且记录它们的位置数据,把这些长度为1的频繁序列1-sequence加入到加权闭合序列树WClosedTree中,即创建加权闭合序列树结点;第4步对于长度为1的每一个频繁序列,将它与所有的长度为1的频繁序列1-sequence相连接,生成长度为2的频繁序列2-sequence和相应的位置数据,执行闭集检查,把这些长度为2的频繁序列2-sequence加入到WClosedTree中,即创建加权闭合序列树结点;第5步设置两个新的集合P和P1为空集;第6步通过加权闭合序列树WClosedTree对长度为2的每一个频繁序列s1检查逆向超模式和相同位置数据;第7步如果它们符合逆向超模式或有相同的位置数据,更新加权闭合序列树WClosedTree中相应的连接和结点信息,即如果长度为2的频繁序列2-sequence中某一序列 <mrow><msub> <mi>s</mi> <mn>1</mn></msub><mo>&Superset;</mo><mi>s</mi> </mrow>并且s1_sup=s_sup,则将该长度为1的频繁序列s的结点的支持数s_sup记为0;否则把s1加入到一个新的集合P中以备扩展;第8步如果步骤7操作以后,集合...

【专利技术属性】
技术研发人员:胡昌振任家东王崑声武群惠杨东旭
申请(专利权)人:北京理工大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1