基于垂直搜索及语义标注获取软件安全缺陷的方法

文档序号:6602090阅读:188来源:国知局
专利名称:基于垂直搜索及语义标注获取软件安全缺陷的方法
技术领域
本发明属于可信计算领域,涉及一种获取软件安全缺陷的方法。
背景技术
在计算机迅速发展的今天,计算机软件的安全特性已经不仅仅是软件的附加属性,更是本质特性。并且当今网络的迅速发展,软件的可靠性与安全性的要求更是越来越高,这是因为网络使得计算机应用程序和计算机系统呈现出高度互联的发展趋势,这种趋势在给IT行业带来惊人机会的同时,也意味着这些高度互联的计算机受到攻击的可能性也越大。计算机系统被破坏而瘫痪,关键信息泄漏而导致巨额经济损失以及其他无形的损失,软件的维护和故障恢复费用变得愈来愈昂贵,从中都可以看出对计算机的攻击造成的损失十分惨重。
计算机面临的安全问题越来越严重,人们对安全的关注和要求也越来越高。2002年I月15日,微软首席架构师比尔盖茨先生提出了“可信计算”的概念,概括地说明了一种高级策略,也即是如何向用户提供更加安全、可靠的新型计算机系统,并且能使这些设备和服务时刻为人们提供便利的同时也让人们感觉不到它们的存在。这一概念的提出,意味着微软将安全这一衡量软件产品的一个重要指标提高到了显著的位置。为了向用户提供更加安全可靠的应用程序和系统,微软进行了 Windows安全活动主题的一系列安全活动,旨在向广大的开发人员传授分析,设计,开发,测试,注释,发布和维护安全的软件——为了抵挡恶意代码攻击而设计和开发健壮安全的软件代码,而不再仅仅是实现安全特性的软件代码。
目前,国内外领域研究安全缺陷分类的方法各不相同。缺陷分类要根据组织自身的开发对象与环境来制定。随着软件工程学的发展,特别是在学术界开始研究软件开发过程时,缺陷就已不再局限于程序和代码了,软件开发过程中,组织的管理结构都对软件质量产生了重要影响。研究人员开始越来越关注软件开发过程对缺陷的影响。承担大型、复杂软件开发的组织、公司需要较高级别的软件能力成熟度。为满足软件开发组织实施缺陷预防、改善软件过程和提高软件能力成熟度的需要,一个紧急重要的工作就是建立一个软件缺陷库,动态搜集和管理软件缺陷。软件缺陷库的内容应包含软件开发生命周期各个阶段产生的缺陷并对其分类、从攻击角度研究的攻击模式、以及缓和缺陷或攻击的缓和方案。
国内外的研究成果层出不穷,同时也不断地发现新的软件安全缺陷;随着网络的迅速发展,很多组织、公司将发现的软件安全缺陷发布到万维网上。如何将这些分布在万维网上零星的软件安全缺陷信息收集起来?如何对这些包含信息广而又分散的安全缺陷信息进行数据挖掘、信息抽取?这也是本发明试图解决的核心问题。

发明内容
鉴于上述现有技术存在的问题,本发明提出一种获取现有已公布的软件安全缺陷的方法,本发明将垂直搜索、语义标注信息抽取技术的研究成果应用到可信计算领域中,采用垂直搜索技术从万维网上获取软件安全缺陷信息,并进一步基于语义标注对其信息抽取,可用于从Internet上搜索挖掘已公布的软件安全缺陷,包括软件开发生命周期各个阶段产生的缺陷分类、从攻击角度研究的攻击模式、以及缓和缺陷或攻击的缓和方案。为此,本发明采用如下的技术方案 —种基于垂直搜索及语义标注获取软件安全缺陷的方法,包括下列步骤 I)使用基于垂直搜索技术的搜索爬虫从安全缺陷信息相关网页里爬取一组或一组以上的网页,其中包含有足够多的安全缺陷相关网页,再将这些网页分成与此领域相关和不相关两类,得到两类训练网页集安全领域相关训练网页集和安全领域不相关训练网页集; 2)从安全领域相关训练网页集里选择潜在的关键词,在听取专家意见的情况下添加潜在的关键词,并根据下列的几率比公式选取关键词

潜在的关键词,c表示安全领域相关网页训练集,e表示安全领域无关网页训练集,设定一个选择关键词的阈值,将应当选择Pw为正且值大于设定的阈值的词作为关键词,值越大赋予越大的权值; 3)利用所选取的关键词建立安全缺陷领域过滤训练器; 4)使用基于垂直搜索技术的搜索爬虫,自动从internet上的其他安全缺陷信息相关网页里下载网页; 5)利用安全缺陷领域过滤训练器,采用下列基于关键词权值的网页过滤方法进行网页过滤将网页分为〈title〉和〈body〉两个部分,对这两个部分分别给于不同的权重titleweight,bodyweight,从〈title〉和〈body〉两个部分里分别提取各个关键词,Tvaltte为〈title〉部分出现的某个关键词的权值,Bvalm为< body)部分出现的某个关键词的权值,将在两个部分里出现的各个关键词按照公式网页权重=titleweight* Σ Tvalue+bodyweight*EBvallffi进行加权求和,得到网页权重,若该值大于预先设定的阈值,则认为该网页是领域相关的,否则,滤掉该网页; 6)对过滤后的网页进行语义标注; 7)解析标注并抽取安全缺陷相关的信息。
本发明以搜索获取在网络上已公布的软件安全缺陷为目标,为构建软件安全缺陷知识库和软件安全漏洞分析奠定基石。秉承挖掘安全缺陷、开发安全可靠软件的理念,利用垂直搜索和语义标注技术的研究成果,提供了一种垂直搜索网络安全缺陷信息并挖掘数据、抽取信息,以获得网络中零星分散的安全缺陷信息,为构建软件安全缺陷知识库和软件安全漏洞分析提供大量的数据和有力的支持。本发明具有如下的有益效果 I.利用垂直搜索技术自动寻找并下载万维网上发布的软件安全缺陷网页,有效过滤安全领域无关网页。
2.自动训练安全缺陷领域关键词并计算其权值,为网页过滤算法提供准确的基础数据。
3.自动发现新公布的软件安全缺陷并更新下载,增量式的获取软件安全缺陷。
4.半自动完成安全缺陷信息的语义标注,实现对其进一步的信息抽取、数据挖掘。
5.自动得到大量的格式化的软件安全缺陷信息,包括缺陷分类、攻击模式、缓和方案;为构建安全缺陷知识库和软件安全漏洞分析提供数据支持。


附图I :系统原理图。
附图2 :垂直搜索爬虫下载示意图。
附图3 :领域过滤关键词生成过程。
附图4 :语义标注信息抽取结构图。
具体实施例方式如图I所示,本发明的总体技术方案流程为,首先使用领域搜索爬虫爬取万维网上已公布的安全缺陷信息网页,安全缺陷领域过滤训练器则为搜索爬虫完成该任务提供有力的过滤支持;其次针对这些下载的网页进行语义标注,使得网页带有语义信息并让机器可以理解;然后设计标注解析工具对标注的信息进行进一步信息抽取;最后为软件安全缺陷知识库以及软件安全漏洞分析使用这些信息提供接口,为它们提供数据支持。下面对本发明进行详细说明。
I.垂直搜索 如图2所示垂直搜索爬虫下载示意图。垂直搜索是专业或专用搜索,是针对某个行业或某一主题的专业搜索,本垂直搜索爬虫的目标是获取软件安全缺陷信息网页。首先由管理员指定初始的URL并加入待下载的阻塞队列中;其次采用多线程下载URL对应的网页,对于下载下来的网页进行过滤,储存领域内所需要的网页,删除领域不相关的网页;然后分析下载的页面提取页面中其他链接并加入待下载的阻塞队列中;垂直搜索爬虫组件在待下载的阻塞队列中没有URL时终止,也可以人为中断。最后爬虫结束或中断时记录已下载的网页和未下载的网页并写入日志。
2.建立安全领域相关训练网页集 在前面设计的搜索引擎爬虫中,先不引入过滤机制,从我们需要的属于安全缺陷领域的初始URL开始下载一组网页,这组网络文献包含了足够多的相关网页,再将文献分成与此领域相关和不相关两类,便得到训练网页集,包括两大类安全领域相关训练网页集和安全领域不相关训练网页集。对于安全领域不相关训练网页集也可以由其他的方式比如直接下载一些新闻等页面来构成。
3.选择过滤关键词 经过一系列的网页预处理,去除HTML页面标签等,选择潜在的关键词。潜在的安全缺陷关键词包括两个方面一、安全领域相关训练网页集中出现的每一个单词,二、在听取专家意见的情况下提供尽可能多的词组。然后是在这些潜在关键词中通过几率比(P)方法选择真正的关键词,去除不具有区分性的潜在关键词,几率比为一个字或词在某领域中出现的概率与在其他非该领域中出现的概率的比值的对数,几率比能很好的描述某个字词对领域的区分能力。几率比方法特别适用于二元分类器。在二元分类中我们希望能识别出尽可能多且准的正类,而不关心识别出负类。几率比方法如下
其中
在上面两个公式中,w表示潜在的关键词,c表示安全领域相关网页训练集,c表示安全领域无关网页训练集。
IpJ越大,说明单词w区分两类训练网页集的能力越强。当?,0且较大时,包含单词W的页面大部分属于此领域,应选择作为关键词;当Pw < O时,包含单词w的页面大部分不属于此领域,不作为该关键词;IpwI越小,说明单词w区分领域页面的能力越弱,不能作为关键词。所以设定一个选择关键词的阈值,将应当选择Pw为正且值大于设定的阈值的词作为关键词,值越大赋予越大的权值。
4.构建领域过滤训练器 如图3所示领域过滤关键词生成过程。目标是为垂直搜索爬虫提供安全缺陷领域关键词及其权值。网页过滤是基于领域关键词权值分析网页内容实现的;关键词权值是指一个能代表领域特征的关键词或者词组keyword,及其表征领域能力也即是区分领域与非领域的水平值value。这两者组成的〈keyword, value〉二元实体对。计算网页权值时通过查找网页中包含的关键词,将这些关键词对应的权值相加即是网页的权值,但是由于网页的不同部分具有不同的重要程度,本发明在设计网页过滤算法时充分考虑了这点,将网页分成两个不同的部分,一个为网页〈title〉部分,一个为〈body〉部分,对于这两部分分别给不同的重要程度titleweight, bodyweight。网页的权重则转变成在title部分出现的关键词权值Tvalue和乘以titleweight再加上在body部分出现的关键词权值Bvalue和乘以bodyweight的和。如下公式所示 网页权重=titleweight*Σ Tvalue+bodyweight* Σ Bvalue 读入已下载网页文本和〈keyword, value〉二元实体对文件。对于每个关键词若其在在title中,则相应的Tvalue加上keyword对应的value ;若其出现在body中,相应的Bvalue加上keyword对应的value。按照上面的公式计算网页权重,将结果与根据经验或实验得到的预设阈值filterValue进行比较。如果网页权重大于阈值,则认为是领域相关的,否则认为是领域无关的。
5.使用搜索爬虫下载安全缺陷信息相关网页 使用第一步骤中设计的垂直搜索爬虫在Internet上爬取安全缺陷领域相关的网页;再利用前一步骤构建的安全缺陷领域过滤训练器对所有已下载网页进行过滤,目的是将安全缺陷领域无关的网页过滤掉。
6.语义标注 如图4所示语义标注信息抽取结构图。为了获取满足软件安全缺陷知识库和软件安全漏洞分析使用的要求,需对垂直搜索爬取下载的网页进行语义标注信息抽取。这一模块则用于完成从这些没有固定结构的机器不可理解的网页中抽取信息。语义标注(Semantic Annotation)就是对原始数据作标记(文字的或符号的),使其具有语义信息,不仅人可以理解,而且使机器也可以理解。本模块基于GATE标注工具,通过设计GATE可理解的标注规则库和词表,并根据Gate标注原理将其应用于安全缺陷信息网页的标注。GATE标注是使用基于规则方法的英文信息抽取系统ANNIE实现的,ANNIE对一篇或者一组待处理的文档,经过类似流水线的处理,严格按照规定顺序进行语义标注,包括英文分词、英文词表查询、英文分句、英文词性标注、英文标注规则定义、英文命名实体识别和英文共指消解处理之后,实现对整篇或者整组文档的信息抽取。词表库用于建立类型列表集,每种类型列表包括该类型所包含的实例,标注规则一JAPE规则包括左右两部分,左边用于匹配文本发明件中的字段,右边为具体标注类型。
词表用于查找处理文档中需要的有含义的词组短语,本模块采用软件安全缺陷组成成分的属性,即攻击模式、缺陷类别实例、缓和方案的属性作为词表内容。这些软件安全缺陷的具体属性在安全缺陷领域定义、描述中已经给出并描述了它们的含义。JAPE (a JavaAnnotationPatterns Engine)的功能是建立规则库,用正则表达式匹配文本中的信息的规则,用于实现分词分句和较准确的命名实体标注。JAPE建的规则为一组规则语法文件,根据需要找到的各种类型安全缺陷信息设计各种类型的JAPE规则。
语义标注操作后得到的是含有语义信息同时也含有网页中其他无关信息的XML格式文档。
7.信息抽取 标注解析使用JAXP的DOM技术对上一步骤生成的XML文档进行解析,完成安全缺陷的信息抽取,为安全缺陷信息的使用提供无噪音的格式化数据。最后提供安全缺陷信息的使用接口,目标是使得到的格式化数据按照数据库的存储结构进行存储。
权利要求
1.一种基于垂直搜索及语义标注获取软件安全缺陷的方法,包括下列步骤 1)使用基于垂直搜索技术的搜索爬虫从安全缺陷信息相关网页里爬取一组或一组以上的网页,其中包含有足够多的安全缺陷相关网页,再将这些网页分成与此领域相关和不相关两类,得到两类训练网页集安全领域相关训练网页集和安全领域不相关训练网页集; 2)从安全领域相关训练网页集里选择潜在的关键词,在听取专家意见的情况下添加潜在的关键词,并根据下列的几率比公式选取关键词
式中,w表不潜在 的关键词,c表示安全领域相关网页训练集,e表示安全领域无关网页训练集,设定一个选择关键词的阈值,将应当选择Pw为正且值大于设定的阈值的词作为关键词,值越大赋予越大的权值; 3)利用所选取的关键词建立安全缺陷领域过滤训练器; 4)使用基于垂直搜索技术的搜索爬虫,自动从internet上的其他安全缺陷信息相关网页里下载网页; 5)利用安全缺陷领域过滤训练器,采用下列基于关键词权值的网页过滤方法进行网页过滤将网页分为〈title〉和〈body〉两个部分,对这两个部分分别给于不同的权重titleweight,bodyweight,从〈title〉和〈body〉两个部分里分别提取各个关键词,Tvaltte为〈title〉部分出现的某个关键词的权值,Bvalm为< body)部分出现的某个关键词的权值,将在两个部分里出现的各个关键词按照公式网页权重=titleweight* Σ Tvalue+bodyweight*EBvallffi进行加权求和,得到网页权重,若该值大于预先设定的阈值,则认为该网页是领域相关的,否则,滤掉该网页; 6)对过滤后的网页进行语义标注; 7)解析标注并抽取安全缺陷相关的信息。
全文摘要
本发明属于可信计算领域,涉及一种基于垂直搜索及语义标注获取软件安全缺陷的方法首先使用领域搜索爬虫爬取万维网上已公布的安全缺陷信息网页,安全缺陷领域过滤训练器则为搜索爬虫完成该任务提供有力的过滤支持;其次针对这些下载的网页进行语义标注,使得网页带有语义信息并让机器可以理解;然后设计标注解析工具对标注的信息进行进一步信息抽取;最后为软件安全缺陷知识库以及软件安全漏洞分析使用这些信息提供接口。本发明能够为构建软件安全缺陷知识库和软件安全漏洞分析提供大量的数据和有力的支持。
文档编号G06F17/30GK101814098SQ20101016880
公开日2010年8月25日 申请日期2010年5月11日 优先权日2010年5月11日
发明者李晓红, 刘丰煦, 杜洪伟, 许光全, 徐超 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1