一种基于聚类的软件漏洞序列特征的分析方法技术

技术编号:4269248 阅读:446 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种基于聚类的软件漏洞序列特征的分析方法,属于信息安全技术领域。本发明专利技术首先利用已有的软件漏洞序列,创建软件漏洞序列数据库;然后应用聚类技术分析数据库中的软件漏洞序列,产生多个软件漏洞序列聚类簇;通过相似度计算,找到与待测软件的疑似漏洞序列最相近的软件漏洞序列聚类簇;并采用序列比对方法将待测软件的疑似漏洞序列与最相近的软件漏洞序列聚类簇中的所有软件漏洞序列进行比对,进一步找到此软件漏洞序列聚类簇中与待测软件的疑似漏洞序列最相似的软件漏洞序列;最终,将此最相似的软件漏洞序列在软件漏洞序列数据库中所对应的相关漏洞信息作为安全报告输出。本发明专利技术提高了软件漏洞序列的分析效率。

【技术实现步骤摘要】

本专利技术涉及,属于信息安全

技术介绍
随着黑客攻击事件数量的不断上升,蠕虫在Internet上的泛滥,信息安全逐渐成 为人们眼中的焦点。信息安全中的一个核心问题就是存在于计算机系统中的软件安全漏 洞,恶意的攻击者可以利用这些安全漏洞提升权限,访问未授权资源,甚至破坏敏感数据。 计算机软件的普遍应用带给人们越来越多的便捷,并日益影响人们的日常生活,但计算机 软件中存在大量的错误及漏洞,隐藏着巨大的风险。阻止系统攻击和入侵的根本解决途径 是在软件缺陷被利用之前发现并进行分析和研究。 任何系统或软件的运行都会假定一个安全域,这个安全域是由安全策略规定的, 在该域内的任何操作都是安全的、可控的,一旦超出该域或者违反了安全策略,系统或软件 的运行就是不可控的、未知的。漏洞是由安全域切换到非安全域的触发点。漏洞是静态的、 被动的、可触发的。 一般而言,一条漏洞信息包括漏洞名称、漏洞级别、漏洞成因、漏洞影响、 漏洞描述、受影响的系统、未受影响的系统、漏洞解决方案、漏洞利用类型和漏洞利用方法 等,此外还要考虑漏洞来源、漏洞发布日期、漏洞参考信息等。 现有的软件漏洞序列特征的分析方法有Petri网分析法,故障树分析法,粗糙集 理论分析法,神经网络分析法等。但是,由于软件漏洞序列数据库中的软件漏洞序列特征是 相当庞大的,这使得针对待测软件的疑似漏洞序列的特征分析很困难,而传统软件漏洞序 列特征分析方法没有对软件漏洞序列数据库中的软件漏洞序列进行聚类分析,因此,针对 待测软件的疑似漏洞序列的特征分析效率较低。 本专利技术使用的重要的已有技术有K-means算法和Needleman-Wunsch算法。 K-means算法是J. B. MacQueen于1967年提出的一种经典的基于分区的聚类算法,该算法利用K划分策略对数据集进行分区,得到的每个分区代表一个聚类。在科学和工业等应用领域产生了深远影响。 K-means算法的实现步骤如下 1.任意选择K个数据序列作为初始聚类簇中的数据序列的中心序列; 2.根据聚类簇中数据序列的中心序列,计算中心序列与序列数据库D中序列的相似度,将每个序列分配给最相似的聚类簇结构; 3.更新每个聚类簇的中心序列,重复步骤二,直到聚类结果不再变化,获得最终的 聚类簇结构。 Needleman-Wunsch算法是Needleman和Wunsch于1970年提出的串行求解双序列 全局比对问题的经典算法。该算法基于动态规划算法并在其基础上进行改进,在序列全长 范围内将序列的相似度进行比对,为全局序列比对提供了可行的操作方案。 Needleman-Wunsch算法的实现步骤如下 1.首先构建得分矩阵; 2.根据所建得分矩阵,求解序列S和T的前缀子序列的最优值; 3.然后求解更大规模的子序列的最优值,直到求得序列S和T的最优值; 4.其次利用各阶段最优比对得分矩阵构造最优比对; 5.最终获得最优比对的两条序列。
技术实现思路
本专利技术的目的是提出。本专利技术首先 利用已有的软件漏洞序列,创建软件漏洞序列数据库;然后应用聚类技术分析数据库中的 软件漏洞序列,产生多个软件漏洞序列聚类簇;通过相似度计算,找到与待测软件的疑似漏 洞序列最相近的软件漏洞序列聚类簇;并采用序列比对方法将待测软件的疑似漏洞序列与 最相近的软件漏洞序列聚类簇中的所有软件漏洞序列进行比对,进一步找到此软件漏洞序 列聚类簇中与待测软件的疑似漏洞序列最相似的软件漏洞序列;最终,将此最相似的软件 漏洞序列在软件漏洞序列数据库中所对应的相关漏洞信息作为安全报告输出。 本专利技术的目的是通过下述技术方案实现的。 首先给出相关概念的定义定义1软件漏洞序列是指会导致漏洞产生的一个有序的程序操作序列。 定义2待测软件的疑似漏洞序列是指程序经过静态分析后,疑似为软件漏洞序 列、需分析其漏洞原因的序列。定义3项集是组成软件漏洞序列的最小元素的集合;软件漏洞序列的最小元 素(也称为项)是形式化表述漏洞特征的符号;形式化表示为L = {lply…,1J,其中, L为项集,lp 12,…,lm为组成软件漏洞序列的最小元素。定义4序列对从项集中任意选取两个项,并且选取的两个项的排列顺序与其 在项集中的先后顺序保持一致,则称这两个项的组合为序列对;形式化表示为ek = < j)。 本专利技术的的具体操作步骤如下 步骤一、利用已有的软件漏洞序列数据,创建软件漏洞序列数据库。 收集已有漏洞检测工具检测到的软件漏洞序列数据,创建软件漏洞序列数据库。 软件漏洞序列数据库用D表示,包含已确定的软件漏洞产生时的运行序列。D是元 组〈SID,S, INF,CID〉的集合,其中SID是该软件漏洞序列的序列号,S是软件漏洞序列,INF 是该软件漏洞序列的相关漏洞信息,CID是该软件漏洞序列的聚类号,是为了对软件漏洞序 列进行聚类分析而设定的字段,以实现用不同的聚类号来表示漏洞序列属于不同的类。 步骤二、采用聚类技术对软件漏洞序列数据库中的软件漏洞序列进行分类。 其具体操作步骤如下 第1步对步骤一建立的软件漏洞序列数据库中的软件漏洞序列进行预处理;其 具体操作步骤为 ①根据软件漏洞序列数据库D包含的项集L,获得软件漏洞序列数据库中包含的 序列对的集合E = {ei, e2,…,ek}, ek = l山.(i < j); ②对于每个软件漏洞序列,用一组与序列对的集合E等长的向量进行描述,如果软件漏洞序列中包含序列对ek,其对应的向量值为1 ;否则,其对应的向量值为0 ; 第2步采用聚类技术对第1步预处理后获得的软件漏洞序列进行聚类。采用K-means算法的具体操作如下 ①定义软件漏洞序列聚类簇结构每个软件漏洞序列聚类簇结构&由一个三维数 组表示&= {Xi, (countn, counti2,…,countin) , ;其中,i为正整数,1《i《K,是软 件漏洞序列聚类簇的编号,K为人为定义的聚类簇的数量;Xi = {xn, xi2,, xin}是软件 漏洞序列聚类簇的中心序列,是一个n维向量,n为正整数,取值为项集中的序列对的数量; co皿tik是每个软件漏洞序列聚类簇中包含序列对ek的序列的个数A为该软件漏洞序列 聚类簇中包含的软件漏洞序列。 ②任意选择K个软件漏洞序列作为初始软件漏洞序列聚类簇中软件漏洞序列的 中心序列; ③根据软件漏洞序列聚类簇中软件漏洞序列的中心序列,计算软件漏洞序列的中 心序列与软件漏洞序列数据库中软件漏洞序列的相似度,将每个软件漏洞序列分类给最相 似的软件漏洞序列聚类簇结构; ④应用软件漏洞序列聚类簇的中心序列的获取方法,获取新的更新中心序列,更 新每个软件漏洞序列聚类簇的中心序列,重复③,直到聚类结果不再变化,获得最终的软件 漏洞序列聚类簇结构。 所述软件漏洞序列聚类簇的中心序列的获取方法为为每个序列对ek定义一个最 小支持度阈值9 j (1《j《n),若软件漏洞序列聚类簇&内序列对ek的平均支持度大于等于9 j,认为序列对ek是软件漏洞序列聚类簇Ci内软件漏洞序列的特征属性,Xik取l ;否则,认为属性ek是软件漏洞序列聚类簇&内软件漏洞序列的非特征属性,Xik取0 ;如公式1所 示。=<本文档来自技高网
...

【技术保护点】
一种软件漏洞特征操作序列的提取方法,其特征在于:具体操作步骤如下:步骤一、利用已有的软件漏洞序列数据,创建软件漏洞序列数据库;软件漏洞序列数据库含有软件漏洞序列的相关漏洞信息;步骤二、采用聚类技术对软件漏洞序列数据库中的软件漏洞序列进行分类;其具体操作步骤如下:第1步:对步骤一建立的软件漏洞序列数据库中的软件漏洞序列进行预处理;其具体操作步骤为:①根据软件漏洞序列数据库D包含的项集L,获得软件漏洞序列数据库中包含的序列对的集合E={e↓[1],e↓[2]…,e↓[k]},e↓[k]=l↓[i]l↓[j],其中i<j;②对于每个软件漏洞序列,用一组与序列对的集合E等长的向量进行描述,如果软件漏洞序列中包含序列对e↓[k],其对应的向量值为1;否则,其对应的向量值为0;第2步:采用聚类技术对第1步预处理后获得的软件漏洞序列进行聚类;步骤三、从待测软件的源程序中抽取待测软件的疑似漏洞序列;步骤四、寻找与待测软件的疑似漏洞序列最相似的软件漏洞序列聚类簇:对待测软件的疑似漏洞序列与每个软件漏洞序列聚类簇的中心序列计算相似度,找到与其最相似的软件漏洞序列聚类簇C↓[j],1≤j≤K;如果该疑似漏洞序列不属于任何一个软件漏洞序列聚类簇,说明该待测软件的疑似漏洞序列序列是一个安全的运行序列,结束操作;如果该疑似漏洞序列属于软件漏洞序列聚类簇C↓[j],转到步骤五;步骤五、应用序列比对技术将待测软件的疑似漏洞序列和软件漏洞序列聚类簇C↓[j]中的每个软件漏洞序列进行序列比对,得到与其最相似的软件漏洞序列S↓[j];步骤六、将软件漏洞序列数据库中与待测软件的疑似漏洞序列最相似的软件漏洞序列S↓[j]所对应的漏洞信息作为安全报告输出。...

【技术特征摘要】
一种软件漏洞特征操作序列的提取方法,其特征在于具体操作步骤如下步骤一、利用已有的软件漏洞序列数据,创建软件漏洞序列数据库;软件漏洞序列数据库含有软件漏洞序列的相关漏洞信息;步骤二、采用聚类技术对软件漏洞序列数据库中的软件漏洞序列进行分类;其具体操作步骤如下第1步对步骤一建立的软件漏洞序列数据库中的软件漏洞序列进行预处理;其具体操作步骤为①根据软件漏洞序列数据库D包含的项集L,获得软件漏洞序列数据库中包含的序列对的集合E={e1,e2…,ek},ek=lilj,其中i<j;②对于每个软件漏洞序列,用一组与序列对的集合E等长的向量进行描述,如果软件漏洞序列中包含序列对ek,其对应的向量值为1;否则,其对应的向量值为0;第2步采用聚类技术对第1步预处理后获得的软件漏洞序列进行聚类;步骤三、从待测软件的源程序中抽取待测软件的疑似漏洞序列;步骤四、寻找与待测软件的疑似漏洞序列最相似的软件漏洞序列聚类簇对待测软件的疑似漏洞序列与每个软件漏洞序列聚类簇的中心序列计算相似度,找到与其最相似的软件漏洞序列聚类簇Cj,1≤j≤K;如果该疑似漏洞序列不属于任何一个软件漏洞序列聚类簇,说明该待测软件的疑似漏洞序列序列是一个安全的运行序列,结束操作;如果该疑似漏洞序列属于软件漏洞序列聚类簇Cj,转到步骤五;步骤五、应用序列比对技术将待测软件的疑似漏洞序列和软件漏洞序列聚类簇Cj中的每个软件漏洞序列进行序列比对,得到与其最相似的软件漏洞序列Sj;步骤六、将软件漏洞序列数据库中与待测软件的疑似漏洞序列最相似的软件漏洞序列Sj所对应的漏洞信息作为安全报告输出。2. 如权力要求1所述的一种软件漏洞特征操作序列的提取方法,其特征在于步骤二第2步采用K-means算法对第1步预处理后获得的软件漏洞序列进行聚类的具体操作步骤 如下① 定义软件漏洞序列聚类簇结构每个软件漏洞序列聚类簇结构Ci由一个三维数组表示:Ci = {Xi, (countn, counti2,…,countin) , Sj ;其中,i为正整数,1《i《K,是软件漏 洞序列聚类簇的编号,K为人为定义的聚类簇的数量;Xi二 {Xil,xi2,…,xj是软件漏洞序 列聚类簇的中心序列,是一个n维向量,n为正整数,取值为项集中的序列对的数量;co皿tik 是每个软件漏洞序列...

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

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

1