安全漏洞信息集成系统研究

安全漏洞信息集成系统研究

ID:33800108

大小:3.74 MB

页数:74页

时间:2019-03-01

上传者:U-22107
安全漏洞信息集成系统研究_第1页
安全漏洞信息集成系统研究_第2页
安全漏洞信息集成系统研究_第3页
安全漏洞信息集成系统研究_第4页
安全漏洞信息集成系统研究_第5页
资源描述:

《安全漏洞信息集成系统研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

南京信息工程大学硕士学位论文安全漏洞信息集成系统研究姓名:李佩申请学位级别:硕士专业:计算机应用技术指导教师:顾韵华20100501 摘要随着信息技术在日常工作和生活中发挥着越来越重要的作用,网络安全问题也逐渐开始成为社会中极需要关注的问题之一。根据研究发现,系统漏洞对系统安全性具有重要影响。大部分的网络入侵都是通过系统中存在的漏洞而引发的。系统漏洞的修补和防范会对系统安全性的提高有着重要的积极作用。因此,越来越多的研究组织和机构开始建立漏洞数据库,对漏洞进行深入的分析和研究。本文首先对目前漏洞数据库建立方面的研究现状进行了研究,从数据库的设计目的,采用的架构、组建模式、数据交换等多个方面入手,总结了当前的研究成果。然后对当今世界上已经存在的各成熟漏洞数据库系统进行了研究,对其隶属的组织或机构、数据库的特点,漏洞信息具有的属性,提供的服务等方面进行了深入讨论。其次,详细介绍了通用漏洞评分系统,对该系统的组织结构,评分计算方法,取值方法进行了详细的说明。通用评分系统是通过对漏洞本身固有属性、系统环境及漏洞存在的生命周期为架构,对漏洞进行评分的一种系统。采用这种评分系统,可以科学的结合系统环境和时间环境对漏洞可能会产生的影响进行科学的,实时的评价。最后,深入研究了漏洞的属性,初步确定了漏洞信息应该包括哪些属性。基于CVE标准,建立了命名统一的漏洞样本库,使得存在于不同数据库中的相同漏洞能够在本库中不重复出现,漏洞信息更为完整,形成了一个更为完善的漏洞数据库系统,并通过及时的更新,保证数据库与其他数据库之间数据的同步性。在此基础上,设计了更为开放,便捷的数据交互接口。关键字:系统安全,漏洞,漏洞数据库,CVE,CVSS,WebServices AbstractWiththedevelopmentoftheinformationtechnology,computerplaysmoreimportantroleinworkandlife.Thenetworksecuritystandsonanimportantlevel,then。Researchesonsecuritysystemshowthatthevulnerabilityhasgreateffectonit.Mostofthenetworkintrusionsareeansedbythevulnerabilitiesinthesystem.Preventionandremediationonvulnerabilityishelpfultoenhancethesystemsecurity.Therefore,thereismoreandmoreorganizationspayattentiontotheestablishmentofdatabasesystemfortheresearchonvulnerabilities.Themainpointsofthepaperalefollows:Study011thecurrentresearchonthevulnerabilitydatabase,consideringitinaspectsofpropose,framework,model,dataexchangeandSOon.DescribetheCVE,NVDvulnerabilitydatabase,aswellasUS-CERTandX·Force.Makeadeepstudyontheirfeature,thepropertiesofthevulnerability,affordingservicesandSOOn.DescribethedetailoftheCVSS,includingthescoringarchitecture,calculatingmethod,andvalues.CVSSismadeofbasemetricgroup,temporalmetricgroupandenvironmentalmetric.Thebasemetricexplainthenaturecharacter,thetemporalmetricexplainthechangedsituationbydifferentterms,theenvironmentalmetricexplainthesystemenvffonment.Createamoreconsummatevulnerabilitydatabasebyanalyzingandintegratingthevulnerabilitiesfromdifferentdatabases,unifyingthe/lame,updatingintime,andkeepingthedataassameasotherdatabases.Inaddition,designthewebservicesinterfacefordataexchange.Keywords:systemsecurity,vulnerability,vulnerabilitydatabase,CVE,CVSS,WebServices.Ⅱ 图1.1图1.2图1.3图2.1图2.2图2.3图3.1图3.2图3.3图3.4图4-1图5.1图5.2图5.3图5.4图5.5图6-1图每2图6.3图6.4图昏5图6.6图6-7图6.8图6.9图目录2000.2008年中国网民规模与增长率⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.12000.2009年新发现漏洞的数量⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.31998.2009年Web应用程序漏洞的增长情况⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4漏洞属性结构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16CVSS群组关系结构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。20CvSS评分机制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23系统总体运行示意图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.27数据库结构图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯29信息采集过程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯30信息发布过程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯31漏洞库逻辑结构示意图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯34信息采集流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯43SgmlReader处理前后文档对照⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯48US.CERT漏洞信息页面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯50Securityfocus漏洞信息⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5lNVD漏洞库数据信息⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..51漏洞信息页面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯54漏洞查询页面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.54漏洞更新列表页面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。55WebService接口截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。55CVSS评分页面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..56更新示例⋯⋯⋯⋯⋯⋯⋯⋯更新列表示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.57漏洞示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯58CVSS评分示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。58HI 表目录表1.12009年新发现漏洞数量最多的软件厂商排名⋯。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5表2.1按软件设计生命周期对漏洞进行分类⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.17表2.2MicrosoR漏洞分类方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18表2.3CVSS公式表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.24表4.1基本信息属性与数据库字段对应表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.35表4.2参考信息属性与数据库字段对应表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯36表4.3影响软件信息与数据库字段对应表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯36表4.4评分信息与数据库字段对应表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.37表5.1漏洞信息采集字段⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.49IV 独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。本论文除了文中特别加以标注和致谢的内容外,不包含其他人或其他机构已经发表或撰写过的研究成果,也不包含为获得南京信息工程大学或其他教育机构的学位或证书而使用过的材料。其他同志对本研究所做的贡献均已在论文中作了声明并表示谢意。学位论文作者签名:埠签字日期:汕Io一6一牙关于论文使用授权的说明南京信息工程大学、国家图书馆、中国学术期刊(光盘版)杂志社、中国科学技术信息研究所的《中国学位论文全文数据库》有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文,并通过网络向社会提供信息服务。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。论文的公柿(包括刊登)授权南京信息工程大学研究生部办理。口公丌口保密(——年——月)(保密的学位论文在解密后应遵守此协议)学位论文作者签名:型鞋指导教师签名:签字日期:pfo二色坚签字日期:乏唑_生}——一 1.1安全漏洞概述第一章绪论随着信息化技术在人们日常生活中不断的发展与渗透.互联网已经成为当今社会重要的组成韶分。中国互聪网信息中心在09年1月发布的《中国互联网络发展状况统计报告》中,对我们最近时间的且联网规模进行了介绍,报告指出,截至2008年底,中国网民规模达到298亿人,较2007年增长419%.互联网普及率达到226%,略高于全球平均水平的219%。继2008年6月中国网民规模超过美国,成为全球第一之后,中国的互联网普及再次实现飞跃,赶上并超过了全球平均水平⋯。图1.1为2000—2008年的中国两民规模与增长形式图。20002031200220032004200520062007200SI列民规模(万人)+增长率(%)图1-t2000-2008年中国阿民规模与增长率”i与此同时.网络安全问题也成为了大家关注的焦点。病毒、木马、系统漏洞等各种危害都对计算机系统的安全发起了挑战,对社会和个人的财产和利益造成了极大的威胁。各种机构和组织也都在针对这一粪问题进行着深入的研究和分析。姗㈣姗㈣洲㈣姗。 1.1.1安全漏洞的概念通常人们会将漏洞理解为系统或软件中存在的缺陷,但这种表述并不能从专业的角度去解释清楚漏洞的具体含义。ISS(IBMIntemetSecuritySystems)将漏洞描述为:与计算机相关的,会造成计算机系统的机密性、完整性和可靠性降低或崩溃的弱点、暴露或者配置设置[21。从该定义中,可以了解到漏洞对计算机产生危害的原因:计算机漏洞,或由于系统设计时的缺陷,或由于系统配置不当,使得计算机系统可能会遭遇到攻击,这些攻击,可能会导致系统中机密信息的泄露,也可能会导致系统中所必须的要素的缺失,或者可能会导致系统本身安全性的降低,而使得使用该计算机的用户的信息得不到安全性保障。这三个方面的内容,正是计算机安全的三个要素:机密性、完整性、可靠性。DenningD.E.(美国计算机学会,普渡大学)从另一个方面对漏洞进行了定义。他首先将系统的状态定义为三大要素的集合(S、O、A),其中S表示操作主体集合,O表示操作客体集合,A表示规则集合。对A的设置就是对主体S相对于对象0的访问权限的设置,它决定了S能够做什么,不能做什么。而计算机的漏洞就是S对于O的操作和A的规则设置之间相冲突的所有因烈引。MattBishop(加州大学戴维斯分校计算机科学系)和DavidBailey(银河计算机服务公司)提出的漏洞的定义是:计算机系统是由一系列描述该系统各个组成实体的当前状态所构成。系统通过状态转换来改变它的状态。所有状态都可以从初始状态通过一系列的状态转换到达,这些过程状态可以分为授权状态和非授权状态,而根据已定义的安全策略,所有这些状态转换又可以分为授权的或是非授权的转换。一个有漏洞状态是一个授权状态,从有漏洞状态经过授权的状态转换可以到达一个非授权状态,这个非授权状态称为最终危及安全状态。攻击就是从授权状态经过状态转换到达最终危及安全状态。因此,攻击是从有漏洞状态开始的。漏洞就是区别于无漏洞状态的有漏洞状态的特性[41。DennisL0心cy(昆士兰理工大学)和MichaelShain(通用电气)提出的对漏洞的定义是:在计算机安全中,漏洞是指系统安全过程、管理控制以及内部控制等存在的缺陷,它能够被攻击者利用,从而获得对信息的非授权访问或者破坏关键数据处理。在计算机安全中,漏洞是指在物理设施、管理、程序、人员、软件或硬件方面的缺陷,它能够被利用而导致对系统造成损害。漏洞的存在并不能导致损害,漏洞只有被攻击者利用,才成为对系统进行破坏的条件。在计算机安全中,漏洞是指系统中存在的任何错误或缺陷【5】.2 由此,本文对漏洞进行定义:计算机漏洞就是在系统软硬件中。由于设计失误或配置错误,而造成的可以通过非正规授权方法,获取系统访问权限,从而可能造成系统机密性、完整性、可用性受到影响的系统的缺陷的总称。1.1.2安全漏洞的危害通过对漏洞定义的研究.可咀了解到漏洞对系统造成危害的方式。漏洞本身不具有攻击的性质.它的危害在于可能会被攻击者利用,进而造成攻击者成功实旖攻击。通常把漏洞对系统造成的危害分为以下五个方面:(1)破坏系统的完整性。攻击者可以利用漏洞入侵系统,对系统数据进行非法篡改,达lⅡ破坏数据完整性的目的。(2)破坏系统的可用性。攻击者利用漏洞破坏系统或者网络的正常运行,导致信息或网络服务不可用,合法用户的正常服务要求得不到满足。(3)破坏系统的机密性。攻击者利用漏洞给非授权的个人和实体泄露受保护信息。有些时候,机密性和完整性是交叠的。(4)破坏系统的可控性。攻击者利用漏洞对授权机构控制信息的机密性造成危害,使这些合法的用户处于“失控”状态。(5)破坏系统的可靠性。攻击者利用漏洞对用户认可的质量特性信息传递的迅速性、准确性以及连续地转移等造成危害岬】。200120022003200420052006200720。82009图1-22000-2009年新发现漏洞的鼓量p13姗枷跏姗舢姗舢呦。 在ISS最近两年的研究报告中可以了解到,2008年新增漏洞7406个,新增漏洞数量第一次超过了7000个,与2007年相比,新增漏洞数量增长了135%Ⅲ。2009年新增漏洞6601个,占目前所有已发现漏洞总量的19%(如图l-2)。与前一年相比虽有所减少,但是漏洞数量本身仍然很大137J。与Web应用程序有关联的漏洞是当今各种漏洞中最为普遍的.每年此类型的新增漏洞以惊人的速度增长。在2009年,Web应用程序漏洞占所有类型漏洞的49*.4,报告指出,Web应用程序漏洞目前已经进入了急剧增长之后第一个较为稳定的时期(如图1-3)。也就是说,增长的趋势减慢了,但是实质上增长的数量依然如最近几年一样保持着很高的数额【2】。现如今,互联网已经普遍深入每个家庭中,大家对于网络的依赖性逐步加大.也就决定了Web应用程序漏洞具有非常重要的影响,会给我们每个使用相关web应用程序的用户带来巨大的安全隐患。199819992∞O200120022003200420052066200720082009田I.31’,}2舯,年web应用程序嗣滴的增长情况舯对于备个软件开发商来说,漏洞的存在也直接影响着它们旗下各类产品的使用。很多漏洞都是基于软件产品中的不足而产生的,用户使用这一类产品的时候,就有可能造成不安全事件的发生,因此,各种软件产品中的漏洞对计算机安全也有着举足轻重的影响.据最新统计,2009年新发现的漏洞中.捧名前lO位的软件厂商旗下的各类产品中存在的漏洞,占有全部漏洞数的23%的比例.表1-1列举了这10种软件产品的生产商.可以看到这些生产商下属的各种产品几乎关系每个计算机用户的日常使用””。哪跏舢舢姗㈣舢㈣舢舢。 表1.12009年新发现漏河数量最多的软件厂商捧名鲫操作系统百分比Apple3.8%Sun3.3%Microsott3.2%ⅢM2.7%Oracle2.2%Mozilla2.O%Linux1.7%Cisco1.5%Adobe1.4%唧1.2%Others77%1.2国内外相关研究鉴于漏洞在网络安全领域的重要影响,有许多的研究人员和专门的机构,都在从事漏洞数据库、漏洞分类等相关技术的研究。美国早在70年代,就是开始了操作系统保护计划,也叫PA计划,是计算机安全研究工作的重要里程碑。研究人员提出了基于模式匹配的漏洞检测技术,并将系统的漏洞分为范围错误、校验错误、命名错误、序列化错误四类。同时还进行的有RISOS计划,着重分析了操作系统中的安全问题,并对操作系统中的完整性错误进行了分类。另外,SDC公司采用了渗透分析的方法,形成了错误假设方法学。1990年,BrianMarick发表了关于软件漏洞的调查报告,对软件漏洞的形成特点进行了统计分析。之后,越来越多的组织加入到漏洞的分析研究中,漏洞数据库也逐步建立起来,比较著名的有Mitre公司负责管理的CVE漏洞数据库、mMISS负责维护管理的X.Force漏洞数据库、隶属于美国国土安全部的NVD漏洞数据库及美国国家互联网应急响应中心下属的US=CERT漏洞数据库等。5 国内在此方面的研究相比国外要稍微晚一点。比较著名的组织有国家互联网络应急响应中心、启明星辰、绿盟科技等等。他们也都建立了自己的漏洞数据库。而在个人研究方面也逐渐了有了不少的成绩。如:在漏洞数据库的建立方面,文献【9】【10】【11】做了比较详细的说明,这些研究中,漏洞数据库都是基于当今的Web技术建立起来的。采用B/S架构的模式,在漏洞的统一化方面,都选择了CVE作为标准。这样,用户和研究人员可以通过访问web站点的方式浏览漏洞具体信息,而在不同数据库之间,可以通过CVE编号来索引到不同库中的同一条信息。但这些研究也存在着一些不足之处:一方面,漏洞信息的来源过于单一,仅仅是通过对CVE的支持来实现,使得漏洞信息过于依靠CVE,不能集合众多研究组织的特点;另一方面,并未提供良好的调用接121,不方便研究人员的使用[9-11l。另外,在漏洞数据库的建立模式方面,文献【12】做了一定的研究,文中将漏洞数据库的建立分为开放、集中、联邦和割据四种模式,这些模式的区别,主要是从使用和维护管理方面进行区分的。通过对该研究的详细分析,了解到想要建立适应自己需求的数据库,如何选取建立模式也是至关重要的因素之一【121。在对漏洞信息的理论研究方面,文献【13】【14】中都做了详细的描述,文献【13】在其研究中,主要对漏洞数据库中,各数据字段的设计进行了详细的研究和阐述,将漏洞相关的属性字段分为基本信息、分类分级信息和参考资源三大类。基本信息中包含有漏洞的名称,CVE编号,发布日期和更新日期等基本属性。分类分级信息包含漏洞级别,威胁等级,攻击效果等方面。其漏洞信息的来源,相比前人有了扩展,不仅从CVE中获取数据,还从国内一些公开的漏洞库及CERT库中获取,在一定程度上丰富了漏洞数据IbJ。王磊在其研究中,将漏洞信息的具体属性分为漏洞、操作系统、补丁、软件四个类别,进而在各个类中细化出各个具体指标。这种研究方法,可以让人非常清晰的理解在众多的漏洞属性中,各自之间的相互关系。对于漏洞数据库的建立,也提供了强大的支持【141。在漏洞信息的采集、挖掘方面,文献【15】做了较好的研究。其中,研究人员设计了一种漏洞信息自动收集系统。这个系统通过自动收集与人工收集的结合,不仅可以使得自动收集的准确度有明显提高,也使人工收集信息速度较慢,花费时间较长的不利方面得到了一定程度的改善【l引。从以上这些研究中,可以看出漏洞数据库方面的研究已经越来越成熟,但也可以明显的发现其中存在的问题,其中比较制约其进一步发展的,就是在其开放性方面。目前所有这些漏洞数据库主流的信息获取方法,都是通过Web站点,进行漏洞信息的浏览,这对于计算机智能分析是一个巨大的阻碍,而漏洞信息的量又非常的巨大,不可能完全的依靠人6 工专家的模式来进行研究和维护。因此,建立一个井放式的使用环境,提供各种使用简便的调用接口,方便各个研究人员和机构使用数据库中的资源就显得尤为重要。1.3论文的研究背景本文的研究内容,是在本信息安全实验室对漏洞进行分析研究课题的背景下,对漏洞的属性信息进行深入分析,为研究工作建立一个充分满足研究需要的漏洞样本资源数据库。同时,又能够提供良好的调用接口,方便进一步的研究工作的使用。1.4论文的主要工作和结构安排本文的主要工作,是对现在比较成熟的几个漏洞数据库进行深入分析,了解它们在数据库的结构、功能,以及对外提供的服务方面具有的特点,分析各个数据库之间存在的关系。同时,分析各数据库所具有的优势,以及不足的地方,最终,考虑多方面的因素,设计一套更为完备的漏洞数据库。新设计的数据库除了具有现有漏洞数据库已经具备的功能外,还将综合各个数据库的优势之处,为漏洞的分析研究,提供强大的数据库支持。本论文的结构安排如下:第一章绪论,介绍并分析当今互联网发展的情况,网络安全及安全漏洞的情况,介绍论文研究背景,并对相关领域的研究现状进行分析。第二章对当前世界上比较成熟的几种漏洞数据库进行详细分析,研究并初步确定了漏洞的属性,并对漏洞评分系统做了详细说明。第三章对安全漏洞信息集成系统的框架做详细阐述,说明系统设计的目标,框架具体情况,系统设计中涉及的关键问题及对策等.第四章对漏洞库的设计与实现做具体阐述,说明漏洞库的设计目标,逻辑机构与存储结构,并介绍了系统中漏洞库管理的方法。第五章对漏洞采集系统的设计与实现做了具体说明,介绍了采集系统的目标,工作流程,及具体实现方法。第六章对漏洞发布系统的设计与实现做详细介绍,包括发布系统的设计目标,具体实现方法等。第七章是对本论文的总结,以及对以后的进一步研究进行展望。7 第二章安全漏洞库研究现在已经有很多机构和组织建立了漏洞数据库,研究性机构主要是为了分析漏洞数据,而产品厂商建立的数据库主要是为了自己的产品更新,另外一些专门从事信息安全的机构是为了给自己的产品和研究积累丰富的样本。通过对这些机构所建立的数据库的分析,可以对漏洞信息有初步了解,并对数据库的建立提供强大的支持。本章将着重对现在世界上比较知名的几个漏洞数据库进行简要说明,并分析其中漏洞数据的具体内容。2.1安全漏洞数据库2.1.1CVE漏洞数据库CVE(CommonVulnerabilitiesandExposures)是一个在国际范围内,可供免费使用的公用数据库,它由MITRE公司负责组织和维护,目前,它已经包含正式和候选条目,总共40492项。作为一个数据字典列表,它通过定义通用的名称来规范不同厂商之间的各种安全漏洞信息,使得各种独立的网络安全数据库和网络安全工具之间,能够方便的进行数据共享,并且为各种漏洞扫描工具或服务提供基本的指标点来认定这些工具或服务所能够覆盖的漏洞的范卧16J。在CVE的官方网站上,对CVE的特点进行了归纳,主要包括以下的特点:每个漏洞信息都有一个唯一的CVE编号及一个标准的描述:CVE本身是一个数据字典,它协调不同的数据库和工具,使它们能够拥有统一的“语言”进行交流;它是一个基本评价标准,也是一个工业标准,免费为公众提供下剃17】。对一个漏洞进行CVE命名的过程,是从发现一个可能成为网络安全隐患的漏洞开始的。而后,CNA(CVECandidateNumberingAuthority)将给这个漏洞信息指派一个CVE标识编号,并将该条信息标记为候选状态(candidate)。然后,将该条信息公布在CVE网站上,同时,提议给CVE编辑部进行审议。MITRE公司除了负责对CVE进行管理外,也负责CVE的编辑工作,是CAN的主要成员之一。漏洞信息最后将由编辑部进行讨论、投票,决定是否将该条漏洞由候选状态提升为正式状态(entry)。如果该条漏洞被讨论通过,成为正式漏洞,它的状态将会由“candidate”变为“entry”,同时添加在CVE列表中。反之,如果没有通过,编辑部将会把拒绝的原因发布在CVE网站上,供大家审阅【181。8 通过分析CVE提供的信息资源,并参照它给出的XIVlLSchema,可以知道CVE信息包括四个方面的主要信息:CVE编号、状态、信息描述、相关引用。下面是一段CVE漏洞信息内容:Entry</status>BufferoverflowinNFSmountdgivesrootaccesstoremoteattaekers。mostlyinLinuxsystems.</desc>19981006-01.I</ref>CA.98.12.mountd</ret)J-006</ref>121</ref>linux-mountd.bo</ref></!refs></item></cve>可以看出,作为一个数据字典,CVE给出了最基本也是最重要的几个漏洞属性。CVE编号用以统一漏洞信息的名称。如“CVE.1999.0002”这条漏洞信息,中间的四位数字,表示该条漏洞信息被提议的年份,后四位数字,表示该条漏洞信息所在年中的排序编号,所以此编号的意义为:1999年第2条被提议的漏洞信息:状态用以表示该条信息的可靠性以及是否通过了CVE编辑部的认定,如果漏洞经过CVE编辑部审议讨论、投票,确定为正式漏洞条目,则其状态为“entry”,如果未通过讨论、投票,其状态则人“candidate”:信息描述给出了漏洞信息的精确说明,主要描述的内容包括漏洞的类型,受影响的软件名称,漏洞的成因,可能会受到攻击的情况,以及攻击的方法等方面;相关引用给出了该条信息的各种来源及解决方法等。因此,可以说,要建立一个通用的漏洞信息数据库,符合9 CVE的标准是一个基本原则。漏洞信息必须要包含以上各个方面的内容,才能够和其他的漏洞数据库和漏洞服务进行信息共享。同时,也能够更好的为漏洞扫描工具提供支持。2.1.2NVI)漏洞数据库NVD(NationalVulnerabilityDatabase)是隶属于美国政府的基于漏洞管理数据标准的一个组织。是NIST(NationalInstituteofStandardsandTechnology)的计算机安全部,信息安全实验室的一个产物。同时由国家安全局的国家电脑安全分部赞助。NVD数据库包括的内容有:查询列表、涉及安全性的软件缺陷、错误的配置、产品名称以及漏洞影响。其基于的漏洞管理数据标准能够实现漏洞管理、安全检测和法规的自动运行。目前,NVD数据库共包含40985个CVE漏洞信息,131个安全目录,192个US.CERT警报,2375条US.CERT漏洞信息,以及2517个OVAL查询£聊。NVD提供了多种与漏洞信息相关的服务,首先是漏洞查询,在这里可以通过漏洞信息关键字或CVE编号进行查询,同时也可以直接查看最近三个月来的漏洞信息,以及最近三年的漏洞信息。其次是查询列表,安全目录是将现有的各种系统软件和应用软件进行目录分类,用户可以通过对不同的系统平台版本、软件版本、系统服务包版本等目录,下载所需要的查询列表目录[20i。第三是产品字典,NVD数据库对现有比较通用的软件产品,定义了产品字典,其中每个软件产品还按照不同的版本号,给出了发布的时间【211。第四是漏洞影响评估,也就是漏洞威胁性评估,NVD采用了CVSS对漏洞进行分值评估,给出漏洞的安全级别。目前所使用的CVSS版本为2.O【221。第五是数据订阅,NVD为用户提供了漏洞信息更新的订阅服务,用户可以从这里得到最新的漏洞增补信息以补充自己的数据资源,订阅包括新增CVE漏洞信息订阅,CPE产品字典订阅,CVSS评估订阅等。同时还有CVE漏洞信息数据XML文件格式的Schema可供下载。对于NVD本身的漏洞数据库,这里给出了多个按年份分类的XML文件可供下载,用户可以按照漏洞被发现的年份,下载每个相应的XML格式的漏洞信息文件1231。由此可以看出,NVD数据库为用户提供了较为全面的漏洞信息服务,为用户进行漏洞研究,系统安全检测,防范,以及扫描工具数据库的应用都做了很强大的支持。对NVD数据库中漏洞信息进行分析,可以了解到,NVD的漏洞信息主要包括:CVE编号、首次公布时间、最后修订时间、信息来源、信息总体描述、影响程度(CVSS评分)、相关的建议,解决方法、存在漏洞的软件及其版本、以及一些漏洞信息本身的技术细节等。下面是一段NVD漏洞信息:10 <'?xrnlversion=”1.0”encoding=”UI下·8”?></cpe-lang:logieal·test></vuln.'vulnerable-configuration>cpe:/a:joomlabiblestudy:com_biblestudy:6.1</vuln:product></vuln:vulnerable..software..1ist>CVE.2010.0157</vuln:cve-id>2010-01-06T17:00:12.450-05:00</vuln:published-datefime>2010-01-07T00:00:00.000-05:00</vuln:last-modified-datetime>7.5</cvss:score>NETWORK</cvss:access-vector>LOW</cvss:aceess-complexity>ll NONE</cvss:authenticmion>.PARTIAL</cvss:confidentiality.-impact>PARTIAL</cvss:integrity-impaet>PARTIAL</cvss:availability-.impact>http://nvd.,nist,.gov</evss:sourc胗2010-01-07T09:58:00.000-05:00</evss:genemted.。on-datctime></cvss:base_metrics></vuln:cvss>BlD</vuln:source爹37583</vuln:refe】rence></ruin:references>37896</vuln:refe:rence></vuln:referenees>MIISC</vuln【:souroe>http://packetstormsecurity.o叫1001·exploits/joomlabiblestudy。4fi.txt</vuln:reference,></vuln:references>DirectorytraversalvulnerabilityintheBibleStudy(com_biblestudy)component6.1forJoomla[allowsremoteattackerstoincludeandexecutearbitrarylocalfilesviaa..(dotdot)inthecontrollerparameterinasmdieslistactiontoinder.php.</vuln:summary> </entry></nvd>CVE编号是与CVE工业标准相兼容的漏洞信息编号方法,用户可以方便的在CVE数据库与NVD数据库中进行漏洞的检索。首次公布时间为该条漏洞信息第一次被公开发布在网上的时间,最后修订时间为某条漏洞信息最近一次修改的时间,这个时间越近,说明这条漏洞信息在最近一段时间内被利用的可能性就越大,而在最近很长一段时间内都没有在有修改的漏洞,也就是最近威胁相对较弱的漏洞。信息来源给出了某条漏洞信息在其他站点或机构所发布的地址,从这里可以链接到这些外部地址,查看漏洞信息在各种不同机构是如何进行说明的。信息总体描述是NVD对某条漏洞所进行的语言描述,这种描述可以使用户了解漏洞信息相关的信息点,如漏洞的性质,影响的平台,可能产生威胁的情况等。影响程度,就是CVSS评估,NVD采用这样一种可以量化的分值来对漏洞的危险程度进行评估,这样的评估首先可以从一个量化数值上让用户了解漏洞威胁的等级,其中BASESCORE主要从访问途径,访问复杂度,是否要经过授权这三个方面对漏洞的威胁进行了评估。通过这三个方面的评估分值,用户可以了解到漏洞具体影响的情况。相关建议和解决方法,对漏洞如何进行补救和防范给予了NVD官方的意见,所涉及的软件或平台版本对漏洞在作用域进行了说明,这些可以帮助用户通过NVD官方意见,或采用补丁修补方法,或采用软件或平台升级的办法,来对漏洞进行补救和防范。可以看到,NVD数据库也是一个与CVE工业标准兼容的数据库,而且从信息初次产生到以后的修补都有跟踪维护,信息的来源多是来自于大型的信息安全产品企业以及权威组织,信息可靠性很高,并提供了一些漏洞修补的方法和建议。更为重要的是,NVD还提供了漏洞信息的CVSS评估结果,对信息的危害及影响给予了一定得评价。详细的评分记录中,给出了基本群各属性值的评分依据,而这些依据本身也对漏洞的研究工作有着重要的意义。2.1.3X-Force漏洞数据库X-Force数据库是由mM的ISS组织负责构建和维护的,是世界上最全面的漏洞数据库之一。该组织每年度,或者每个季度,都会发布信息安全报告,公布过去一年或者一个季度的各种安全情况,其中系统或软件中的漏洞发现情况是最为重要的一部分。ISSX.Force在安全漏洞方面的工作,主要是对系统存在的漏洞进行分析研究,并提出主动监测的技术。ISS开发出针对网络系统、操作系统和数据库管理系统三个层次的漏洞扫描评估系统,使13 得管理员可以通过对系统的漏洞扫描,发现漏洞,得到漏洞报告,根据漏洞的等级和报告中的修补建议,及时的改进系统的安全性洲。ISS提出了p2DR安全模型,该模型包括四个主要部分:Policy(安全策略)、Protection(防护)、Detection(监测)、Response(相应)。防护、监测和相应组成了一个完整的、动态的安全循环。在安全策略的指导下,保证信息系统的安全【l川。X.Force提供的服务包括安全管理与重点保护服务、应急反应服务、安全咨询服务、政策规范调整服务和X-Force威胁分析服务五大类【251。X.FORCE的漏洞信息属性包括:漏洞名称、CVE编号、BID编号、危险级别、漏洞信息描述、受影响平台、补救方案、漏洞性质、相关引用,以及信息的报告时间等。就X.FORCE本身来说,信息属性还是比较充分的,能够将一条漏洞信息的关键属性涵盖起来。漏洞名称是X-Force对某一漏洞信息的语言名称定义。如X.Force数据库中的某条漏洞被命名为“cisco-ios-ospf-bo(11373)”,可以看出,该条漏洞是CISCO的网络操作系统软件中,与OSPF协议相关联的一条漏洞信息。后面的编号“l1373”是该条漏洞信息在X-Force数据库中的BID编号。X.Force数据库为每条漏洞信息进行了自己的编号,同时也支持CVE编号,用户可以在网站上,通过这两个编号查询到该条漏洞信息,同时,也可以通过关键字搜索,如“cISCO”、“OSPF”。危险级别是ISS通过自己的评估系统对该条漏洞信息的风险评估,共分为“mgh”、“low”和“medium”三个等级。漏洞信息描述就是ISS对该条漏洞较为详细的文字说明,主要指出了该漏洞信息的作用原因,涉及的平台、软件,可能会造成的影响,属于哪一种性质漏洞等信息。受影响的平台主要说明了漏洞作用的平台及详细版本号,有对多个平台或版本影响的,会分别列举。补救方案说明了针对该漏洞的解决方法,有的是对应用程序进行漏洞补丁的修补,有的则是对应用软件或者操作系统进行升级。漏洞性质主要说明了该条漏洞的威胁方式,如获取未经授予的权限、远程控制等。相关引用是将该漏洞与其他较为知名的漏洞数据库中的信息进行索引、关联,可以通过这里的链接,查看其他漏洞数据库对这一漏洞的说明情况。信息报告时间就是这个漏洞被发现,并提请报告的时间。可以看出ISS的X.Force漏洞数据库是一个比较完善的数据库,各个属性的说明也很详细,更新也较为及时,主要被应用在ISS开发的漏洞扫描产品中。2.1.4US.CERT漏洞数据库US.CERT是由美国国家安全局下属的国家计算机安全部负责运作,承担应急响应支持,防御计算机受到攻击。以及与政府,工业机构和国际性合作组织之间的信息共享与协14 作的一个组织。CERT/CC(于1988年在卡内基梅隆大学建立)及美国国家安全局(DHS)共同在这里进行信息安全方面的研究。此外,它与各种中介代理机构,工业机构,研究团体,地方政府,以及其他一些机构合作,为公众发布可靠的、合法的计算机安全信息。同时,它也为民众,商业组织,以及其他一些机构提供平台进行直接的进行交流与合作【261。US.CERT会发布众多的漏洞信息,威胁严重的漏洞会在US.CERTTechnicalAlerts中进行描述。US.CERT为各种机构和个人都提供了便捷的通道,进行漏洞的研究工作。另外,该机构会提供每月的安全报告、季度安全报告;为不同用户提供相应等级的信息安全参考标准指南;对各种信息安全事件、攻击的方法进行官方可靠的解释说明。此外,其官方网站提供各种查询方法,方便用户进行漏洞信息的检索,并可以通过邮件形式得到漏洞列表,或者通过RSS订阅实时的漏洞安全信息。对于有信息安全可疑问题,需要申报的用户,可以通过其官方网站进行申报,申报分为安全事故申报,钓鱼网站申报和漏洞申报三种。最后,US.CERT提供了当前信息安全级别的提醒,用户可以清晰明了的知道当前状况下,信息安全的危险级别。及时更改自己系统的安全配置,应对各种实时事件的发生【271.对US-CERT数据库中的漏洞信息进行分析,可以了解到漏洞主要包含以下属性:CERT编号、漏洞名称、概述、详细描述、影响、解决方案、受影响的系统、引用信息、信用声明及其他信息等。通过以上的分析,可以得知,US-CERT拥有自己强大的漏洞分析整理团队,并对漏洞信息进行了必要的整理,虽然编号不同于CVE和NVD的编号规则,但在最后给出了同一漏洞在另外两个数据库中的链接地址,做到了与CVE标准的兼容。2.1.5其他除了以上四种主要介绍的漏洞数据库之外,国内外还有其他一些比较著名的数据库,如国外的SYMANTEC公司负责管理的漏洞数据库,普渡大学COAST实验建立的漏洞数据库等,国内的绿盟科技负责的漏洞数据库,启明星辰负责维护的漏洞数据库,CNCERT/CC负责管理的漏洞数据库等。相比之下,国外各机构组织在漏洞数据库的建立方面较为先进,数据库中的漏洞记录较为完善,时间跨度也较长。国内相对来说起步较晚,从数量、时间跨度和全面性方面都有所欠缺,但受到当前网络安全的发展的影响,国内的各个机构也都在不断的快速发展当中。他们不仅从事漏洞发掘、报告方面的研究,也在逐步完善着自己维护的漏洞数据库系统12s-291。15 2.2安全漏洞的属性漏洞,即是一系列属性信息的集合组成的复杂信息模型。对于一个漏洞信息的研究,归结到底其实是对其各个属性的分析。在上一小节中,对各个数据库中的漏洞信息进行了详细的分析,可以发现在各个数据库中对漏洞信息的存储,都是通过对漏洞各个属性信息的存储实现的,也就是说,漏洞的属性是研究漏洞的基础。文献[141qb对漏洞的属性有较为详细的分析,作者在其研究中将漏洞属性分为四个方面的内容,分别是:(1)漏洞信息:CVE编号、信息来源、公布时间、分析描述、漏洞类型、严重程度、利用程度、利用需求、造成后果。(2)操作系统:厂商、名称、版本。(3)软件:描述、厂商、名称、版本。(4)补丁:适应的漏洞、描述、编号【14J。由于操作系统和软件其实从根本上将都是属于软件范畴,只是一般在系统中,操作系统的重要性和关联性要比软件更强些。对于补丁这一部分,虽然不同的软件版本可能有不同的修补方案,但通过研究可以发现.大部分的解决方案都是通过版本的升级及补丁包的发布来解决的,具有一定的规律性。因此,借鉴其研究,并结合自身需要,将漏洞的属性重新明确为以下方面的内容(如图2.1):图2-l蒲洞属性结构图(1)基本属性:CVE编号、状态、发现时间、更新时间、描述、解决方案;(2)参考信息:参考来源、URL地址、参考名称;(3>影响软件:软件厂商、软件名称、版本号;(4)评分系统:AV、AC、AU、ConiI、IntegI、AvaiH:16 确定后的这四部分漏洞信息的属性,也就确定了本系统中,漏洞信息内容的标准。这个标准同时确立了在系统数据库中漏洞信息存储的各个字段。在对漏洞进行分析、融合、评分、分类以及其他相关的研究时,也同时细化为对漏洞各个对应相关属性信息研究。附录2给出了本系统的漏洞属性与四个漏洞数据库和文献【14】中提出的属性对比的情况。可以看出,本系统中定义的漏洞属性不但包含的信息量更加的丰富,也剔除掉了类似属性或者可以合并的属性。2.3安全漏洞的分类漏洞分类是漏洞研究的一个重要组成部分,现在已经有大量的学者和研究人员对漏洞的分类做了深入研究,漏洞分类的方法也多种多样。Bishop在经过大量的分析研究后认为:不存在最好的漏洞分类方法,不同分类目的就会有不同的最优分类方法130l。可见,如果要做到对漏洞适当的合理的分类,首先要明确漏洞分类的目的,将分类方法、结果与研究过程中对漏洞的理解结合起来。表2-1按软件设计生命周期对漏洞进行分类缺乏风险分析分析阶段偏颇的风险分析未预见的风险依赖不安全的抽象层安全性与易用性或功能的折中设计阶段缺少日志记录残留风险没有检查输入参数非原子检查实现阶段访问控制验证不安全的异常处理软件的重用配置阶段复杂的或者不必要的配置默认配置的安全性特征冲突维护阶段向后兼容性李淼,吴世忠在其研究中,从软件开发生命周期的角度,把漏洞分为分析阶段、设计阶段、实现阶段、配置阶段和维护阶段共五大阶段,并又在每个阶段中细分出共十六个种17 类的漏洞(如表2-I)。从软件设计角度来看,这种分类方法涵盖了软件设计所有的环节,较为全面的考虑到了开发过程中有可能会造成的各类系统漏洞,对于在软件开发过程中。尽可能的减少漏洞,提供更好的系统安全性能有着非常重要的意义【311。另外一种较有特点的漏洞分类方法是微软公司的分类方法,它是将漏洞在两个维度上进行分类,一方面是根据产品类别对漏洞分类,另一方面是根据漏洞所产生的影响和利用方法对漏洞分类(如表2.2)。他这种分类方法,是根据自身特点和安全策略来制定的,能够有效的保证软件产品的安全性。缺点是这种分类方法只适用于微软公司自己的产品,对漏洞的分类也就不会非常的全面。表2-2Microsoft漏洞分类方法分类方法软件漏洞类型操作系统漏洞、Office软件漏洞、服务产品类别器软件漏洞、开发软件漏洞等严重等级严重、重要、中等、低漏洞的影响欺骗身份、篡改数据、否认、信息泄露、和利用方法威胁类型拒绝服务、特权提升等还有的分类方法是按照漏洞所基于的网络协议进行分类的,如CGI漏洞、POP漏洞、IIS漏洞、FTP漏洞等。这种分类方法,考虑的是对漏洞进行攻击所依靠的网络传输协议。上述的这几种分类方法,都有着自身的特点和优势,但并非主流的分类方法。现在在对漏洞进行分类时,主要将漏洞按照以下几种方式进行分类:(1)根据漏洞被攻击者利用的方式分类,漏洞可以分为:本地攻击。攻击者是系统本地的合法用户或者通过其他方法获得本地用户权限的用户;远程攻击。攻击者是通过网络。对连接在网络上的任意一台主机进行攻击。可分为入侵攻击与破坏攻击两种方式13到。(2)根据漏洞成因分类,漏洞可以分为:输入验证错误。未对用户输入数据的合法性进行验证,使攻击者非法进入系统;缓冲区溢出。向程序的缓冲区中录入的数据超过其规定长度,造成缓冲区溢出,破坏程序正常的堆栈,使程序执行其他命令;设计错误。程序设计错误而导致的漏洞。意外情况处理错误。程序处理逻辑中,考虑不够周全,面对突发事件处理不当而导致的漏洞;访问验证错误。访问权限控制验证环节的设计失误,导致攻击者可以绕过访问控制系统直接进入系统;配置错误。系统或应用程序配置错误,或者安全策略,系统参数等配置错误而导致的漏洞;竞争冬件。程序处理中在时序和同步过程中lS 存在的问题,导致攻击者有机会影响系统;环境错误。一些环境变量的错误或恶意设置造成的漏洞。其他p习。(3)根据漏洞攻击触发条件分类,漏洞可以分为:主动型。不需要触发条件的漏洞;被动型。需要触发条件才会产生影响的漏洞。(4)根据漏洞对系统造成的直接威胁分类,漏洞可以分为:普通用户访问权限,权限提升,本地管理员权限,远程管理员权限,本地拒绝服务。远程拒绝服务,服务器信息泄露,远程非授权文件存取,读取受限文件,口令恢复,欺骗等p31。(5)根据危险级别分类,漏洞可以分为:严重、高威胁、中等、低等几种类别。这种分类方法,多数应用于各大漏洞数据库系统中。危险级别的高低,直接说明了漏洞对系统所可能带来的危害的严重程度。严重的漏洞通常意味着可能会给系统带来非常可怕的攻击威胁,给用户带来巨大的损失。威胁等级低的漏洞可能带来的威胁相对较小一些。但是这里需要注意的是,并不能因为威胁相对较小就对低危险级别的漏洞不予管理和修补,漏洞本身对系统就是一种危害,这里的危险等级,也只是研究人员根据不同漏洞的影响所进行的划分。是一种科学研究的方法。实际应用中,不应该忽视任何一种漏洞。2.4安全漏洞的评级通用漏洞评分系统CVSS(CommonVulnerabilityScoringSystem)是由NIAC开发、FIRST维护的一个开放并且能够被产品厂商免费采用的标准[341。利用该标准,可以对漏洞进行评分,进而判断修复不同漏洞的优先等级。CVSS最新的版本是在2007年7月20日由FIRST(ForumofIncidentResponseandSecurityTeams)和CVSS.SIG(CommonVulnerabilityScoringSystem—SpecialInterestGroup)一起发布的。当前V2版本是在V1版本的基础上,通过对漏洞不断的测试,并结合广大研究人员的反馈而提出的。因此,相比于前一个版本,V2版的CVSS减少了冲突,增加了评分的细粒度,对漏洞的评级也更加的精确【351。CVSS主要有三个特点:(1)标准化的漏洞评级。通过对整个系统软硬件平台的综合测评,而规范漏洞评级,从而产生一个漏洞管理机制。这个机制,类似于SLA(ServiceLevelAgreement),将有利于快速建立漏洞信息的验证和修补。(2)开放化架构。任何用户都可以明确的了解漏洞评级的标准,看到评分的来源及影响这些分值的漏洞本身的属性,并且能够清楚的判断不同漏洞之间的不同之处。19 (3)威胁等级划分。当环境影响分值被计算在内时,漏洞将被看作关系化的模型。就是说,这个时候的漏洞,相对于某个机构来说可能变成了一种现在存在的威胁。用户可以通过这些因素去判断与其他漏洞相比,这个漏洞的重要性【361。2.4.1CVSSCVSS由三个部分组成,分别是基本群(BaseMetricGroup)、生命周期群(TemporalMetricGroup)和环境群(EnvironmentalMetricGroup)。从图2-2可以清楚看到CVSS模型的构成。厂⋯⋯。i赢夏⋯⋯~jo—p}回;:厂弋可降蕊嘲i:L』堑匣进旦划L—』里胆垡—_J:l囤巴圈ii厂百可r踊唧j:L—j堡垡堡——JL—j到望堕—-j:~⋯⋯⋯。j⋯⋯⋯⋯’●/:、呵图2-2CVSS群组关系结构图,⋯⋯⋯⋯⋯‘’~Eavironme岫dMegicG唧厂—1铘属磊厂]L坠墅婪巨!堕塑笪Ijr1硒r]iI垒趔§西塑I基本群描述的是漏洞固有的、基础的属性特征。这些特征不会因为用户环境和时间的变化而改变。生命周期群描述的是会因为时间的发展而改变的漏洞的一些属性特征,这类特征不会因用户环境变化而发生改变。环境群描述的是因为用户环境的不同而存在的一些特殊的漏洞属性特征。CVSS基本群是对漏洞信息的基本特征方面去定义,这些基本特征能够为用户提供关于漏洞的直接的描述。使得用户可以清晰的对漏洞进行了解。在此基础上,用户可以将自20@~~二圈 己所处的时间和环境因素结合起来,利用生命周期群和环境群的评测,进行更加复杂的漏洞威胁等级划分。这种结果是为自己独有的系统进行更加符合自身实际的评估,因此更加准确,相关性更好,也更有利于用户去针对漏洞采取相应的措施来降低或消除漏洞所可能会带来的各种危害。2.4.2基本群基本群分值,是通过漏洞的本质特征评价得出的,已经知道,这些本质的特征不会随着时间和用户环境的变化而改变。访问途径、访问复杂度和身份认证授权三个属性,描述了漏洞是通过什么方法被利用的,是否还需要额外的条件等因素。这三种影响的分值表现了漏洞如果被利用,将会对信息资源在机密性、完整性和可用性等方面造成什么样的损失.如:某个漏洞会对信息的机密性和可用性造成部分损失,但对完整不会造成任何的损失。(1)访问途径(AccessVec锄·AV)描述漏洞是如何被利用的。攻击途径越远,分值越高。(2)访问复杂度(AccessComplexit)卜一AC)描述攻击者在获取漏洞系统访问权限后,实现攻击的复杂度。如:互联网服务中的变量溢出漏洞,一旦攻击者能够定位到漏洞系统的位置,就可以成功进行攻击。复杂度越低,分值越高。(3)身份认证授权(Authentication-------AU)描述攻击者利用漏洞,对系统进行攻击时,所需要进行身份认证授权的次数。对于已经成功获取权限之后的认证将视为无效。系统要求认证的次数越少,分值越高。特别的,对于本地攻击途径的漏洞,只能取值为“单一认证”或者“多重认证”。(4)机密性影响(ConfidentialityInlpa赍——C)描述对漏洞的成功攻击在机密性方面带来的影响。机密性指对受限信息的访问,获取授权用户权限,受保护的访问以及未授权的用户等情况。对机密性的影响越大,分值越高。(5)完整性影响(IntegrityImpa盼—.I)描述对漏洞的成功攻击给系统完整性方面带来的影响。完整性指保证信息的准确性和可靠性。对完整性的影响越大,分值越高。(6)可用性影响(AvailabilityImpac卜一A)描述对漏洞的成功攻击给系统可用性方面带来的影响。可用性指信息资源的是否可利用。攻击所产生的对网络带宽、处理器运行和磁盘空间占用的影响也属于对系统可用性的影响。对可用性的影响越大,分值越高。2l 2.4.3生命周期群漏洞给系统带来的威胁通常会因为时间的影响而有所变化。CVSS将这种影响归结为三类因素:漏洞技术细节的确认、漏洞补丁的情况、漏洞代码或技术的可用性。这个群的分值可以作为可选条件,当用户认为可以忽略这方面的影响时,可以将这三个因素都表示为无影响而直接跳过。(1)漏洞技术可用性(Exploitabili妒——E)描述当前状态下,漏洞代码或技术的可用性评价分值。越容易被利用的漏洞代码技术,就会造成越大的危害。甚至于某些漏洞是非常的简单易用,既是没有相关技术的人也可以通过这些漏洞实施攻击,那么这种漏洞的威胁就相当的大。(2)补丁等级(RemediafionLeve卜—_RI,)漏洞补丁程序的等级是漏洞评分中一个重要的因素。一个漏洞在刚刚被发布出来的时候,往往是没有修补程序供用户使用的。此时需要的是一个临时性的解决方法,直到官方正式修补程序或升级程序发布出来。这整个过程中的各个阶段,都会使得漏洞的生命周期分值不断的降低。因此,官方的补丁或长期有效的修补方法会有较低的评分。(3)报告可信度(ReportConadcnc扩--RC)描述对漏洞的存在以及已知技术细节的报告的可靠性。某些时候,只有对漏洞的记载,但没有对其技术性细节的记载。经过一段时间之后,相关的厂商和组织才可能会将漏洞的详细技术信息发布出来。因此,紧急性的漏洞的威胁要高于已确认技术细节的漏洞。2.4.4环境群环境群中的三个因素分别是附加损害潜在威胁,目标分布状况和系统安全性要求。系统安全性需求指的是系统在机密性、完整性和可用性三个方面的安全性需求情况。对于不同的系统环境,漏洞往往会有不同程度的影响。环境群分值使得用户可以结合自身系统环境的特点,对漏洞进行评分。环境群是CVSS中的一个可选分值,因此,各个因素的取值中都有一个无影响的值,用户可以选择是否考虑这些因素的影响,或者直接忽略这些因素。(1)附加损害潜在威胁(CollateralDamagePotI咖ia卜—℃DP)描述由于财产或设备的损坏或者失窃,可能会带来的物理财产的损失,同时也包括对生产力和税收带来的经济损失。各个组织机构可以根据自己的实际情况来确定如何定义各种损失的程度和尺度。显然,损失越大,分值越高。 (2)目标分布状况(TargetDistribution—TD)描述漏洞对于整个环境中可能会产生影响的系统的比例。即,在某个特定的环境下,有多少比例的系统处于漏洞的威胁下。这个分值类似一个漏洞影响分布的指示器。(3)安全性需求(SecurityRequiremen妒---CR,IR,AR)描述系统在机密性,完整性和可用性方面的需求分值。分析师可以根据自己系统在这三个方面的不同要求,定制适合自己的需求标准,产生更加切合自身需求的CVSS分值。例如相对于其他两个属性,机密性的要求比重比较高,那么评分的时候可以将机密性部分的比重加大。这三个方面,每个都有“低、中、高”三个值。这个部分环境群的分值将由基本群的取值来决定。更改基本群中机密性、完整性和可用性的比重将会影响环境群的分值。如:环境群中机密性的需求为“高”,那么对应的基本群中机密性的比重也就相应的加大了。反之亦然。安全需求越高,对应的分值也越高.2.4.5CVSS工作机制和计算方法现在来看一下CVSS是如何进行工作的。首先,要对基本群进行评分。前面已经说明了,基本群是根据漏洞本身固有的、本质的属性进行评分的。这些分值给出后,就可以带入基本群的计算公式中进行运算,得到的是一个介于0到10之间的数,同时产生了一个向量。这个向量是一个文本型的字符串,包含了评分中的每个细节,展示了最终的CVSS分值是如何经过打分和精确运算得出的。向量形如(AV:NIAC:L/Au:N/C:C/I:C/A:C),六个分量分别用斜杠分隔开,每个分量由名称及取值这样的键值对组成。曰回ol'tiomO图2.3C"VSS评分机制 其次,可以将基本群的分值带入到生命周期群和环境群中。当然,这两个群是可选,用户可以根据自己需要决定。基本群和环境群的分值也应该是用户根据自己系统的条件和环境计算得出的。但对于漏洞本身来说,基本群的评分和CVSS向量本身已经足够描述这个漏洞了。图2.3为CVSS评分计算模型。表2.3为CVSS计算公式表。表2-3CVSS公式表BaseScore=round—to—I—decinlal(((0.6+Impact)+(O.4‘Exploitability)一1.5)‘f(Impact))Impact210.41‘(1一(1一Conampact)‘(1一IntegImpact)’(1-AvailImpact))Exploitability=20‘Ac∞则a激●AcccssComplcxity‘AuthenticationTemporalScore=round—to—l—decimal(BaseScore’Exploitability‘RemediationLevel‘ReportCortfidence)EnvironmentScore;roundto—I_dccimal((AdjustedTemporal+(10一AdjustedTemporal)‘CollateralDamagePotential)‘TargetDistribution)AdjustedTemporal=TcmporalScomre.computedwiththeBaseScore’sImpactsubcquationreplacedwiththeadjustedlmpactequationAdjustedlmpact=min00,10.41’(1一(1一ConfImpact‘ConfReq)’(1一IntegImpact。IntegReq)‘(1一AvailImpact‘AvailR以1)))2.5本章小结本章主要是针对目前国内外比较知名漏洞数据库进行了分析,首先对于每个数据库及其负责管理的机构,进行了说明、介绍,并对数据库中,漏洞信息所涵盖的具体内容,进行了详细的分析说明。其次,对漏洞信息中关键性的属性进行了研究,对漏洞的分类方法进行了介绍,并详细说明了评级方法的具体规则。可以看出,这些漏洞数据库都有着本身较为独有的特点,同时,也存在着或多或少不足的地方,对于进行漏洞的发展,变化,漏洞威胁的程度、途径来说,有着需要进一步完善的地方。对漏洞的分类,也是需要根据研究目的而确定,不同的分类方法有着不同的目的,为了本信息安全实验室的研究,系统将包含漏洞评分系统,对必须的漏洞属性进行存储。24 第三章安全漏洞信息集成框架3.1系统设计目标3.1.1系统设计的意义安全漏洞作为系统安全中具有重要意义的一个环节,有着不可忽视的作用。系统中的安全漏洞,往往可能会给客户计算机带来危害,通过提升权限,非法获取登录,拒绝服务攻击等各种安全事件,就有可能造成服务器无法访问,未经授权的用户登录,非法获取保密信息,盗用账号密码等多种安全问题,而这些问题,无疑会给受到侵害的用户带来巨大的财产损失。漏洞安全最直接影响的就是安全性研究,如果可以通过已经存在的漏洞了解漏洞存在的条件,通过发掘漏洞使得软件厂商可以及时推出相应的补丁,通过漏洞分类区分各种漏洞的特点,通过分析漏洞的发展了解互联网安全技术发展的趋势,及时做出相应的对策,合理的进行系统配置,这些将无疑会为整个计算机安全性的研究,给予强力的支持。从另外一方面来看,漏洞本身也是软件开发技术中或多或少存在的一些问题,通过对漏洞信息的分析,特征代码的提取,作用方式的掌握,可以给软件开发工作提供技术上的帮助。通过分析系统底层架构,网络互连的通信协议,以及系统所涉及的文件格式等信息,使得产品在分析、设计、开发、测试等各个环节都能够更好的实现实用性和安全性的融合,为软件产品的开发提供宝贵的技术积累。鉴于漏洞研究的重要性。现在就存在着很多组织或机构对漏洞信息进行分析研究.但现存的漏洞种类繁多,数目庞大,如何去管理好这些庞大的漏洞数据信息资源也是一个值得研究的课题。所以,漏洞数据库也就存在着非常重要的意义。通过第二章中,对世界上四大漏洞数据库的分析,我们可以看到他们各有特点。同时也可以看出,在漏洞数据的存储上,也都存在着相同的见解.如名称,描述,发现时间等属性都是漏洞信息所必有的,因为这些内容是对一个漏洞进行说明的必要条件。而有些属性则不是所有的漏洞数据库中都存在的,如危险程度,更新日期等。这些对于漏洞看似可有可无的属性,其实仔细研究之后会发现,它们也是漏洞信息应该拥有的,如危险程度是对漏洞的危害程度进行评估,更新日期说明了这个漏洞信息最近一次更新的时间,同时,从另一层面上来讲,更新时间越远,这个漏洞的影响也就相对较小,更新时间越近,也就说明它在近期更为活跃,威胁也就越大。还有一个漏洞数据必须重视的问题,就是命名规则的不统一,我们可以看到,25 CVE和NVD数据库是以CVE编号为主要命名方法的,ISSX.Force数据库则是以文字描述加上自主进行的数字编号命名为主要命名方法,并以BID编号(BugTragID)加以辅助,US.CERT数据库是以“VU#”加数字编码来命名的,绿盟科技则是直接以文字性描述进行命名,再在具体内容中,对漏洞的CVE编号或者BID编号进行说明。可以看到,同样一个漏洞,在不同的漏洞数据库之间存在着不同的命名方式,这对于进行漏洞的整体性研究是极为不利的,如果能够让不同数据库中的漏洞数据都统一化,这样就可以综合各家漏洞库中的信息,更为全面的对漏洞进行统计、分析。3.1.2系统设计的目标综合性漏洞数据库的设计,就是要综合目前各大漏洞库的特点。扬长避短,在目前已有的基础上,建立一个更加完善的漏洞数据库。主要需要做的工作有以下几个方面。第一、使用CVE编号为通用编号,使得本来相对孤立分离的漏洞数据信息能够通过这个工业标准得到统一化,在不同的数据库之间建立起一个桥梁,通过任何一个库中的信息,就可以索引定位到其他不同数据库中的相应信息。第二、将各种漏洞的描述口径进行统一,目前各大数据库中,对漏洞数据提供的信息量彼此并不相同,虽然在一些基本要素上都做了规范,但仍然不能满足漏洞研究的需要。因此,统--El径,使每个漏洞信息都能够合理的,完善的展示出来,尽可能的将所有的重要信息都包含在内,就会丰富漏洞信息,提高漏洞研究的效率。第三、对漏洞的风险评估进行标准化规范。目前各种对漏洞的风险评估方法都不尽相同,“高、中、低”这样的评估结果只能使大家对漏洞的所具有的威胁进行粗略的概括,而不能真正做到量化。因此,系统将使用CVSS评估方法,从漏洞本身的各种性质入手,对漏洞进行可以量化的评估,并最终得到一个更加可靠的评估结果。第四、对漏洞数据进行公开发布,并提供多种接口供用户使用。现在在计算机研究的各个领域,开放式的研究环境已经越来越得到人们的认可。而目前只有少量的漏洞数据库对公众是免费的,开放的。这就使得各个机构和组织各自为政,无法做到更为深入的交流和讨论,因此系统将把所有的漏洞数据进行开放式的管理,每个人都可以得到最新最全面的漏洞列表。第五、提供性能较高的接口。WebServices出现以来,依靠其松耦合性和平台无关性,得到广大研究人员的认可,越来越多的数据交换都通过这样的方式进行。各个开发团队也不必再去考虑系统的基础架构和平台是否能够很好的兼容。鉴于webServices的这种优势,26 系统中将开放WebServices接口以供调用。接口提供各种丰富的检索条件,使各种用户可以方便、快捷的获取数据。3.2系统框架设计整个系统(如图3.1示)由信息采集子系统、信息发布子系统和漏洞数据库三个部分组成。信息采集子系统负责的功能是从互联网中,采集CVE、NVD、X.Force和US.CERT四个漏洞库的漏洞数据信息,将分属不同数据库的信息分析、集成,融合为统一标准的漏洞信息描述。该标准即为章节2.2中讨论、研究得出的漏洞的各个属性信息。对于所有的漏洞信息的原始数据和集成之后的数据,都将存储的漏洞数据库中。信息发布子系统负责从数据库中读取集成后的漏洞数据进行处理,一方面将数据按照适合Web站点浏览的方式加工成Web信息页面,另一方面将数据按照XML格式文件的形式加工成XML格式字符串。并分别将两种格式的漏洞数据分别通过网站和、ⅣebService接口的方式发布出来。漏洞数据库负责将漏洞采集时获取的原始数据信息按照采集源分类存储在相应的存储逻辑部分中,并将集成后的数据存储在标准数据存储逻辑部分中。图3.1系统总体运行示意图27 3.2.1安全漏洞库结构与信息集成方法漏洞数据库用来存储漏洞信息,从逻辑结构上看,分为原始数据和标准数据两个部分。系统中存储原始采集数据的原因是:第一、漏洞信息并不是一成不变的,在漏洞发现初期,往往并不能完全的了解到漏洞各个方面的特征信息,随便研究的深入,漏洞内部各个决定性因素才能逐渐被发掘出来,所以漏洞信息由发现到完善是一个不断推进的过程,同时数据库对漏洞的维护也就相应的成为一个不断更新的过程。系统中对原始数据进行存储,就有利于在漏洞更新时对相应的漏洞信息进行维护。第二、各个漏洞库的更新进度不同,更新对应的漏洞也不尽相同。各个漏洞库维护机构的研究都是独立的,他们都是在各自的研究中对漏洞信息进行不断的完善和更新,因此各个漏洞库的更新也就不可能同步,同一个漏洞在各个研究机构中的研究进度也就更不可能相同了,本系统是对各个漏洞库中信息的集成,为了避免这种不同步的更新对漏洞带来的误差,保证本系统中的漏洞信息能与各个漏洞库的最新信息都保持同步,对原始数据的存储也就变得极为必要了。综上两点,系统中漏洞的原始数据分为四个逻辑部分进行存储,分别对应于信息采集来源的CVE、NVD、X.Force和US.CERT四个漏洞数据库。这种逻辑上分割存储的方式也就可以保证任何一个对应的漏洞数据库有新的信息变动时,本系统中的数据都能够同步对应。进而,再与其他的漏洞库信息进行再次集成分析,融合成为新的标准漏洞信息。而四个漏洞信息存储部分的结构,也都将遵循其在各自数据库中的存储字段。详细情况已在章节2.1中详细阐述。漏洞的标准数据是以本文研究得出的漏洞属性为基础的。存储结构将严格按照漏洞属性的分析结果设计。数据库中,按照基本信息、参考信息、影响软件、评分信息四个部分对漏洞进行存储。基本信息部分,CVE编号为漏洞的唯一标识,每个漏洞信息都对应着—个唯一的编号。状态将以CVE库中漏洞的状态为准,原因是CVE目前是广泛被认可的工业标准,其对漏洞的认证是一个长期的严格的过程,漏洞从候选状态转为正式状态,需要经过各大漏洞研究机构和相关权威专业人员的投票产生,而各大漏洞库也都对该投票负责,因此,CVE对漏洞状态的判定具有广泛认可的权威性。发现时间选取各个漏洞库中发现时间最早的。更新时问选取各个漏洞库中,最近一次有更新的时间。描述将对各个库中的描述进行比较分 析,选取最为详细的一个作为标准数据中的描述。而解决方案将汇集各个漏洞库中的解决方法。CVE编号漏洞信息基本信息I参考信息l影响软件I评分信息兰lj著Ij||Il兰I|蓁iJ蓁ii差))蓁jJ:jJ三jj詈lIAvlAc}IuA图3.2数据库结构图参考信息部分,是与该漏洞相关的其他机构的研究情况,参考来源表明参考信息源自哪个机构或组织,URL地址为参考信息在相应源中的链接地址,名称即为参考信息对应的名称或者编号。需要特殊说明的是,由各个漏洞库的来的参考信息,很有可能会出现重复的参考源,系统中对参考信息的处理,会通过URL地址进行分析对比,剔除掉重复的参考信息,保证标准数据中存储的参考信息均为互补相同的源数据。影响软件部分,是存储漏洞相关的操作系统软件或者应用软件的信息的。其他研究中有将此部分分为操作系统软件和应用软件两个部分,但本文中认为,操作系统软件与应用软件同为软件类,其包含的信息属性也大致相同,只是在具体情况中,应用软件中的漏洞多通过版本升级的方式解决,而操作系统中的漏洞多通过补丁升级包的方式解决。因此.为了研究的需要,以及避免信息存储当中不必要的空间的浪费,在此将两种合二为一。该部分中的厂商,指的操作系统的生产商或者应用软件的生厂商。名称指操作系统的名称或者应用软件的名称,版本号对应为操作系统的版本号或者应用软件的版本号。评分信息部分,是用来存储漏洞CVSS各个分值情况的,AV、AC、AU、CI、Ⅱ、灿分别对应着CVSS基本群当中的六个属性值,各属性详细的含义已在章节2.4当中给予了详细的阐述。 3.2.2安全漏洞信息的采集漏洞采集是系统中最为重要的一个部分,由于系统中的漏洞信息是从四个漏洞数据库中获取的,各个数据库对数据的发布方式都有着各自的特点,提供的数据下载,更新获取也都不尽相同,因此。信息采集的设计就较为复杂。图3.3描述了漏洞信息采集过程中的获取、分析、存储、集成各个步骤。信息获取信息分析r1,本地,r1rF司眄习^].●.......JI........————J.广、一—丁一/效菇厍图3-3信息采集过程系统中的漏洞数据分别来自于四个不同的漏洞数据库,漏洞的采集就要按照各个数据库的具体情况,定制采集方法,这个采集的过程就是信息获取。这些获取的信息都是没有经过任何的加工和处理的,系统接下来会通过信息的分析,将其中有用的信息提取出来,并将这些信息组合成为系统中的一个原始漏洞对象,便于系统处理。这些原始的漏洞对象是与各个漏洞库中的漏洞相一致的,它们接下来就会被存储在系统漏洞库的原始数据部分。形成漏洞原始备份样本。当各个漏洞库有更新时,也同时会对本地的原始备份样本进行更新,保证本地原始数据与各对应的漏洞库中的数据保持一致性。最后,系统中的信息集成功能将从本地的原始备份数据中进行分析比较,进行信息集成的工作,把相同的漏洞进行30 统一命名,按照漏洞属性的标准来统一处理所有相关的漏洞信息。并最终把集成处理好的标准漏洞存储在系统漏洞库中。完成信息的采集功能。3.2.3安全漏洞信息的发布对于所有系统来说,信息的发布就意味着希望系统中可以共享的信息能够方便被浏览和使用。但当前大多数漏洞数据库系统仅采取web站点这种单一的方式发布信息,虽然用户可以通过浏览器方便的对漏洞信息进行浏览,通过站点中强大的索引功能查询到所需要的漏洞,但对于系统研究来说,仍然是非常不方便,想要从Web页面中提取到需要的信息融入到其他系统中成为了一个非常复杂而繁琐的工作。针对这一问题,本系统在设计了浏览型和调用型两种发布方式。第一、Web站点发布。这种传统的信息发布方式有着独特的优势,用户可以通过访问URL地址的方式方便的链接到相关的漏洞数据库系统站点,从其提供的数据查询渠道获得所需的漏洞信息,使用简单、方便,而这些站点提供了漏洞信息的必要属性,对所有库存信息都可以方便的访问到,同时也会提供更新列表,帮助用户了解最新的消息。信息发布I哪站点发布|W曲$Hvioe接口信息处理I生成嘞页面I生成)函几文件JI爵习数据库图3.4信息发布过程3l 第二、WebService接口。WebService剐一出现,就凭借其自身独特的优势得到了众多研究人员的欢迎.它不再关注系统开发是建立在什么平台或框架上的,也不用考虑语言语法的不同,利用XML的特点,建立了一个与平台无关的松耦合的新型数据交换接口。这些特点和优势正是漏洞研究中所需要的,因此,本系统中将通过WebService提供漏洞数据的调用接口,研究人员可以通过该接口获取全部的漏洞信息,或者通过特定的检索条件获取到自己关注的那部分信息内容。为了实现这样的功能。系统中的发布模块将会对数据库总的信息分为两种形式进行处理(如图3-4)。一种是将数据库中分散存储的各个漏洞属性进行组合,通过系统处理生成Web页面。另一种是将数据库中的数据按照一定的规范,生成XML格式的文档,通过webService接口发布出去,而XML文档对应的Schema文件也会同时提供给用户。两种发布方式中,都会提供功能强大的检索条件,用户可以根据自己的需要,对数据库中的信息进行全部获取,或者组合查询条件后得到需要的那部分数据。3.3关键问题及对策信息采集是系统运行的第一个环节,由于漏洞的提出,分析是一个极为复杂的过程,需要计算机安全方面的专家进行大量的工作才能够完成,因此这里目前还没有将漏洞的发掘工作作为系统的一个部分。系统中漏洞信息的来源,就要通过目前世界上比较权威的几个漏洞数据中获取得来。目前,CVE、NVD和US.CERT都提供了RSS,可以订阅到最新的漏洞信息和研究成果。CVE的源提供了最近有更新的漏洞信息的列表,列表中包含了这些漏洞的CVE编号,通过这些编号,就可以检索到漏洞的详细信息,获取其中的信息点,更新数据。NVD进行数据更新的方法略有不同,它直接给出了两个专门用于更新的漏洞数据XML格式文件,一个文件是新发现的漏洞信息列表,这个XML文件中,包含了所以最近一次更新时,新发现的漏洞。另一个文件是已经发现,有过更新的漏洞信息列表。在这两个文件中,每个漏洞都是一个节点。US-CERT的源同样也是一个列表,不过每次更新的漏洞并不是放在不同的源中,而是在同一个源文件中存储,这就需要在采集信息的时候,依据更新的漏洞的日期来进行有选择的获取,避免重复的工作。信息分析是一个比较复杂的过程,这个阶段系统的主要工作,是对刚刚进行过更新的漏洞进行进一步的处理,由于这些刚更新的信息是从不同的漏洞数据库中采集而来的,这就需要将这些信息与其他的数据库中的信息进行对比。首先要进行对比的,就是这些刚刚更新过的,属于不同数据库的信息,如果存在某个漏洞信息在这次三个库中的更新都存在,32 就直接将这些信息集成起来。如果是不完整的信息,就需要去其他数据库中提取,然后将完整的信息再进行集成处理,最后入库。信息分析的具体方法,将在后面的章节中,做详细的说明。信息集成的主要工作,是对不同数据库中的漏洞进行统一。从上面第二章的讲解中,可以看出,众多的漏洞数据库中,CVE和NVD的编码命名方式是相同的,都是采用CVE编号,其他几种漏洞数据库都采用的是各自的命名,集成的首要工作,就是将不同的数据库之间的漏洞信息,通过统一的命名规范联系起来。其次,各个数据库中,对漏洞描述的信息量也并不相同,如NVD有漏洞的风险评估,US.CERT有针对不同系统平台的解决方案等。因此,信息集成的另外一个重要的工作就是把这些不同数据库中的针对同一漏洞的优势信息整合起来,形成一个更为完备的漏洞信息数据。信息发布的主要工作,就是将已经集成好的漏洞信息发布在网站上,供用户查阅使用。系统中的信息发布主要有两种途径,第一种就是跟其他的漏洞数据库一样,以Web页面的方式发布出来,用户可以从网站中对漏洞信息进行检索、浏览。另外一种方式就是通过webservices的方式,提供给用户接口,使用户可以直接通过这个接口,直接获得漏洞信息数据。用户调用接口,得到的将是XML格式的漏洞信息,一级节点为漏洞列表,二级节点为漏洞,再下一级节点,就是漏洞的相关各部分属性信息。本系统采用这样方式发布漏洞,主要考虑的是WebServices的平台无关性,以及XML文件格式的通用性。33 第四章安全漏洞库的设计与实现4.1安全漏洞库的设计目标漏洞库的设计,必须要满足系统的需要,在数据信息存储的基础上,建立各个基础数据之间的联系。主要可以概括为以下几点:第一、标准漏洞数据的存储。按照漏洞属性分析结果,建立相应的存储结构,保证通过系统分析集成后的漏洞属性信息都能够在包含在漏洞库中。第二、原始漏洞数据的存储。分别建立CVE、NVD、XF和US-CERT漏洞库原始数据的存储区域,保证系统中原始数据与这四个数据库的漏洞信息能够吻合,漏洞各个属性信息的口径能够一致。建立本地数据原始备份。第三、系统及相关配置信息的存储。系统在运行中包含有很多必需的配置信息,如各漏洞库的URL地址、更新信息地址、系统运行配置信息、系统权限管理信息、系统日志等。4.2安全漏洞库的逻辑结构本地漏洞IleVE漏洞属性信息漏洞属性信息更新列表地址安全漏洞库漏洞属性信息更新列表地址漏洞属性信息更新列表地址漏洞属性信息更新列表地址图4-1漏洞库逻辑结构示意图从逻辑上来看,可以把漏洞库分为两大类:标准数据和原始数据。标准数据存储经过集成分析处理后的漏洞,这个漏洞是一系列属性信息数据的集合。这些属性信息指基本信息、参考信息、影响软件信息和评分信息四大部分。34 原始数据存储系统采集得到后未经过分析的漏洞数据,这一大类又按照不同的漏洞库分为了CVE、NⅥ)、XF和US.CERT四个部分,每个部分存储的内容都包含漏洞信息和更新列表地址两个方面。从该逻辑结构中可以看出,通过对四个原始数据库的信息进行分析整理,最后生成一个全新的标准漏洞库,这个标准的漏洞库在具备了之前四个库的信息的基础上,取长补短,集中各个漏洞库的优势,为漏洞的研究分析提供更加强大样本库支持。4.3安全漏洞库的存储结构进行数据存储有多种选择,这主要根据系统中数据的情况来确定。数据类型简单、关系较为简洁的信息可以通过文件的形式进行存储,而数据类型较为复杂,关系结构也比较繁琐的数据就需要专业的数据库管理软件来进行存储管理了。对于本系统中的漏洞信息来说,可以通过前面章节的分析看出,漏洞信息的内涵比较丰富,关系较为复杂,数据之间存在着各种相互关联,相互制约的关系,因此,系统选用关系型数据库MSSQLServer2005来进行数据存储管理。下面将对系统中数据的存储结构及在数据库中的相应字段的建立情况进行详细说明,数据类型参照SOLServer2005的标准。标准漏洞数据分为四个部分,分别是基本信息、参考信息、影响软件信息和评分信息。基本信息中内容描述了漏洞的CVE编号,当前被认定的状态,漏洞首次发现的时间,最近一次更新的时间,漏洞的详细情况以及解决方案等信息。表4.1列出了基本信息部分各个属性与数据库中对应字段、数据类型的情况。表4-I基本信息属性与数据库字段对应表属性名称字段名称数据类型备注CVE编号CVEIDvarchar(14)如。eve-2002.0001”状态Statusbitentry为I/candidate为0发现时间DispDatedatetime更新时间Updatcdatetimc详细信息Desctext解决方案Solutiontext多个方案之间以“@@”分割参考信息是漏洞的重要组成部分,通常对漏洞的研究不会只限于一个组织或机构,各个机构之间的研究可以帮助彼此更好的探寻漏洞的起因,造成的危害以及预防或者补救的方法。参考信息就是为各个漏洞研究研究机构之间建立的桥梁,通过这个信息,可以了解35 到其他研究组织对漏洞的分析情况,而从另一个角度来看,参考信息多的漏洞,也就意味着影响比较大,研究的程度更为深入。参考信息的来源也有多种,致力于漏洞研究的组织机构或者漏洞相关产品、软件的生厂商都有可能会对漏洞的情况给出说明,因此,参考信息的丰富程度也决定了漏洞库中信息的丰富程度,是漏洞库中非常重要的一个组成部分。表4.2给出了参考信息部分各个属性与漏洞数据库中对应字段、数据类型的情况。表4-Z参考信息属性与数据库字段对应表属性名称字段名称数据类型备注参考来源Sourc七varchar(255)XF、CERT等URL地址U订text参考名称Namevarchar(100)漏洞属性另一重要部分就是受影响的软件的信息。从漏洞的定义中可以了解到漏洞通常是在某个特定的环境下才会发生作用的,因此详细的记录受影响的软件信息有利于对漏洞进行归类和分析,是漏洞研究工作中不可或缺的一部分内容。受影响的软件可分为操作系统软件和应用程序软件两大类。操作系统与系统的联系比较密切,通常与操作系统相关的漏洞都是通过升级补丁来进行必要的修补和防护的。例如Microsoft公司针对其各个版本的Windows操作系统,都会在发现漏洞后尽快的发布相应的修补方法,操作系统自身会通过自动更新下载相应的补丁程序。而应用程序软件相对来说比较独立,受系统整体性的牵连也比较小。所以,应用程序中的漏洞通常会通过版本的升级来实现对漏洞的修补。如Adobe公司对其产品AdobeFlashPlayer及AdobeAcrobat,都是通过这样的方式来实现的。表4.3给出了受漏洞影响的软件这一部分中各个属性与漏洞数据库中对应字段、数据类型的情况。表4-3影响软件信息与数据库字段对应表属性名称字段名称数据类型备注软件厂商Productionvarch呱255)如Microsoft、Kingsof等软件名称Namovarchar(255)如Windows期、Oracle等版本号Editionvarchar(255)如WindowsⅫSP2、Oracle9i等需要特别说明的是,漏洞与参考信息之间以及漏洞与影响软件之间通常是一对多的关系,也就是,每个漏洞会有多个参考信息,指向各个相应的参考源对该漏洞提出的说明或者分析。每个漏洞也有可能会对个版本的操作系统造成影响,而针对不同软件版本的漏洞,36 可能会出现不同的解决方案。因此,系统中会详细记录每个具体的参考信息和软件系统信息,这些都是漏洞研究中不可缺少的必要因素。漏洞各属性中需要研究和记录的最后一个部分是评分信息,这部分信息是建立在对漏洞进行详细分析和深入研究后才能给出的。评分信息的具体规则已经在章节2.4中坐详细阐述。表4-4是对该部分内容在数据库中对应字段和数据类型情况的列举。表4-4评分信息与数据库字段对应表属性名称字段名称数据类型备注冰varchar(10)访问途径ACvarchar(10)访问复杂度AUvarchar(10)身份认证ConflCIvarchar(10)机密性IntegIⅡvarchat(10)完整性AvailIAIvarchar(10)可用性4.4安全漏洞库的系统管理数据库管理模块负责对漏洞库的管理及漏洞库与系统之间数据的交互。系统中用于实现这部分功能的包括:负责数据库访问的基类TableBase,关键性数据表对应的实体类和用于数据库的数据存取的操作类SqH-Ielper。TableBase类为各个数据表对应的实体类的基类。该类不可实例化。类中只有一个私有成员变量strUser,以及对这个成员变量进行操作的属性StrUser。设计该私有变量的主要目的是为每次数据库操作的用户建立监视记录,同时保证程序中数据操作的权限的控制。另外,类中包含有两个重要的方法:protectedstringTabMnsert0方法和protectedstringTableUpdate0方法。从名字中可以看出。这两个方法负责数据库中数据表的插入和更新操作。系统中所有的数据信息都不允许物理删除,这样不但可以防止由于误操作带来的信息丢失,也可以避免恶意删除给系统带来的损失。对于失效的信息,系统将定义为逻辑性删除,数据库中有相应的字段“Delflag”来记录,该字段数据类型为布尔型,当其值为“true”时,即表示该条数据信息已经被逻辑删除了。因此,对数据进行删除的操作,将由更新这一方式来取代。SqlHelper类为数据库操作类。所有对数据库的操作都由该类来实现,类中的公用的方法都是静态方法。较为主要的方法有以下几种:37 (1)publicstaticSqlConnectionCn(stringm_connectionString){>:设置或取得数据库连接。参数为数据库连接字符串,通过读取配置信息中的数据库连接字符串值获得。(2)publicstaticintExecuteNonQuery(stringcommandText){):执行一个不需要返回结果集的T-SQL语句,返回受影响的行数。(3)publicstaticDataSctExecuteDataset(stringcornmandText){>:执行一个T-SQL语句,取得一个数据集。(4)publicstaticDataTableExecuteDatatable(stringcommandText){}·执行一个T-SQL语句,取得一个数据表。(5)publicstaticDataRowExecuteDatarow(stringcommandText){>:执行一个T-SQL语句,取得一个数据行。通过这些方法,系统中需要与数据库进行交互的地方都可以方便的实现对数据的存取操作。但另一个方面来看,系统中只通过这样的数据库操作来实现数据交互,将会大大降低系统的科学性。每次需要查询、修改、添加数据时,都用传递T-SQL语句参数调用SqlHelper中的方法来实现,会使得这些数据表与系统间无法建立密切的联系。因此,对于一些重要的数据表,系统中会设计相应的实体类来对其进行操作。对实体对象的查询、插入、更新,就等同于对数据表中一条信息的查询、插入、更新,具体的操作和需要的T-SQL语句都被封装起来.开发时只关注对实体对象的操作,而不必去考虑具体的T-SQL语句。这些实体类都是继承于基类TableBase。每个实体类中的插入和更新操作,都是调用基类中的相应的方法。以存储CVE漏洞的数据表“VulCVE”为例,他的实体类主要包含有以下几个方面的内容:(1)成员变量。数据表中的每个字段,都会在实体类中有相应的私有成员变量与之对应。字段实体类中的数据类型与数据库中的数据类型相同。如:数据库中“CVEID”字段的数据类型为“varchar”型,成员变量“cveid”对应的类型为“string”型。(2)公共属性。由于实体类中成员变量均为私有,类外不可操作。为每个私有成员变量封装好属性后,可以通过该公共属性对私有变量进行操作。每个公共属性的数据类型与对应的私有成员变量的数据类型相同。如,实体类中“一cveid”的数据类型为string型,公共属性“CVEID”的数据类型同样为“string”型。(3)对应的表名及主键。每个实体类都与数据库中的一个数据表一一对应。这里的表明即为“VulCVE”,主键为“D’’。(4)构造函数。对每个实体类进行实例化的时候,都需要执行其构造函数。这里的构造函数有三个,第一个为无参构造函数,调用该构造函数时,实例化的对象中所有属性均38 为默认值。第二个为有参构造函数,参数为对象的每个属性的值。通过参数赋值,可以得到一个实例化的对象。第三个是有参构造函数,参数为一个DataRow对象。通过这个构造函数,可以将数据表中某一行实例化为一个对象。三种构造函数在系统中的实现为:无参构造函数:pubHcVulCVEO{this.ID=newGuidO;this.Adder=string.Empt),;this.Description=string.Empty;this.Refs=0;>有参构造函数:publicVulCVE(Guidmid,stringre_adder,⋯,stringm_description,hatm_refs){this.ID=m_id;this.Adder=m_adder;this.Description=re_description;this.Refs=m_refs;)有参构造函数:publicVulCVE(DataRowre_dr){this.ID=newGuid(mdr[”ID”】.ToStringO);this.Description=m_dr[”Description”】.ToStrin90;this.Refs=int.Parse(re_dr[”Refs”】.ToStrin90);}(5)获取表中所有信息,作为一个Datatable返回。如果需要得到整个数据表中的数据,可以通过这个属性获得。返回的数据类型为DataTable。在系统中的实现为:39 publicstaticDataTableAll{get{⋯})(6)获取表中筛选的信息,作为一个Datatable返回。根据筛选条件,从数据表中取出符合条件的所有的数据集合。返回的数据类型为DataTable。在系统中的实现为:staticDataTableDataTables(stringm_wheres,stringm_orders){stringsql=⋯;//根据查询条件和排序条件生成的数据库查询语句returnSqlHelper.ExeeuteDatatable(sql);)(7)获取表中的某一行数据。并作为一个实例返回。数据表中每行数据都有唯一的标识GUID,也是表的主键,通过这个值,可以获取到唯一的一行数据,然后再用构造函数的第三种方法,得到一个实例化的对象。如果库中不存在该主键标识的数据行,而返回一个该类的空对象。在系统中的实现为:staticVulCVEChild(objectmid){try{stringsql=⋯;肼艮据主键值生成查询字符串DataRowdr=SqlHelper.ExecuteDatarow(sql);retumnewVulCVE(dr);)catch{returnnull;))(8)将某一新建实例插入到数据库中。对某一个新建的实例对象完成赋值后,可以通过这个方法,把该对象插入到数据库中,成为表的一行数据。执行时需要明确执行该操作的用户,确定是否有权限进行此项操作。在系统中的实现为:virtualstringlmert0{⋯;腑hI行前需要进行的准备程序returnTablelnsert(arg[o],arg[H,⋯);朔用基类中的Tablelnsert0方法) (9)将某一已经存在实例更新到数据库中。对某个实例对象进行修改后,可以通过这个方法,把数据库中的对应的数据行进行更新操作。执行时需要明确执行该操作的用户,确定是否有权限进行此项操作。在系统中的实现为:publicvirtualstringUpdate0{⋯;鹏吨行前需要进行的准备程序I他tUlTITableUpdate(arg[0],arg[1],⋯);//调用基类中的TableUpdate0方法>通过以上三个部分的组合,系统中的所有数据操作都可以完成,这些构成了数据库管理模块的主要部分。此外,在进行数据操作时,系统中有相应的日志记录程序,会把比较主要的数据库操作记录进行备份,在进行数据操作时,用户权限判断会确定操作的合法性,同时把非法的操作记录在日志中。41 第五章安全漏洞采集系统的设计与实现5.1安全漏洞采集系统的设计目标漏洞信息的采集是整个系统的基础,也是首要的关键点。这一部分的设计需要达到满足系统后续工作的要求,为漏洞信息的集成,存储和发布奠定基础。因此,该部分的设计目标为:第一、通过页面请求的方式,获取CVE、NVD、X.Force和US-CERT四个漏洞库中的漏洞数据信息页面,并将格式不够严谨的HTML文件转换为格式严谨的XML文件。第二、分析各XML文件,从中提取出各个漏洞的属性信息,并生成系统可以识别的漏洞对象,以方便将其存储在系统漏洞库中。第三、定时获取各个漏洞库的更新列表文件,根据各文件列表信息内容获取更新漏洞名称,定位到相应的漏洞页面,获取最新的漏洞属性信息。第四、根据CVE编号标准对采集后的数据进行集成分析,生成符合本系统标准的新的漏洞数据。5.2安全漏洞采集系统的工作流程采集工作是从获取信息的地址开始的,这里首先对各个漏洞库中信息的存储情况进行说明。通过对各个漏洞库的研究,发现可以将CVE漏洞库中漏洞数据的发布方式分为两种,官方网站中漏洞信息页面浏览的方式,及提供的数据信息文件获取的方式。每个漏洞的信息页面可以通过特定的URL地址获取到。整个漏洞库的全部数据,网站中也给出了专门的地址以供下载,提供的文件格式包括HTML、XML、‘D(T等。在此,选用XML格式的文件。对于CVE漏洞库的更新信息,网站中提供了更新的列表,列表中是最近一次更新的漏洞的CVE编号及链接地址。通过该地址即可链接到相应的信息页面中。NVD数据库中同样提供了漏洞信息的Web页面与XML文件两种方式。Web页面的定位与CVE相同,每个漏洞都对应着自己特定的URL地址。XML文件与CVE稍有不同,CVE是在一个文件中包含了所有库中的漏洞数据。而NVD采用了分年存储的形式,2002年之前的漏洞相对数量较少,存储在一个文件中,2003年至今各年漏洞数量相对较为庞大, 各年的漏洞数据分别存储在一个文件中。对于NVD漏洞库的更新信息,网站中提供了RSS列表,列表中给出了最近一段时间以来的各个有更新的漏洞的详细情况。X.Force和US.CERT数据库中,都只提供了页面获取信息的方法,而没有办法获取整个漏洞库中的数据信息。因此,对于这两个数据库中的漏洞信息,采取逐步完善的方式进行采集,就是说随着系统运行时间的推移,通过对这两个漏洞库的更新信息的获取和采集,来达到逐步完善本系统中原始备份样本。另外,在对CVE和NVD漏洞库的信息采集完成之后,可以通过CVE编号,在Ⅺ?和CERT库中检索到相应的漏洞信息。用以充实本地原始库中的样本数量。曰曰田囤官方漏洞库太地原始库图孓1信息采集流程在了解各个漏洞库中数据的存储方式和提供的获取方式后,设计了以下两种信息获取方法来采集数据:XML文件下载方式和页面请求方式(如图5.1)。XML下载方式适用于对CVE和NVD漏洞库整个数据的获取。可以将整个过程分为以下三个步骤:(1)获取XML格式漏洞数据。通过系统直接获取或者手动下载到本地,再用系统读取的方式皆可。将XML格式的漏洞数据库读入内存中。同时要获取XML文件对应的命名空间信息。43 (2)分析XML格式漏洞数据。通过对XML文件的分析,根据XIvILNS命名空间定义的规则,利用XPath定位到各个漏洞信息,并从各漏洞数据中提取必要的信息,最终为每个漏洞建立系统可以识别的漏洞对象。(3)原始数据本地备份。将上一步中建立的漏洞对象存储在系统漏洞库的原始数据备份区域中。完成原始信息的采集。页面请求的方式,适应于各个数据库中漏洞数据的获取,大部分情况下,都需要通过这个方式,得到漏洞信息的展示页面,分析其中的信息,得到漏洞各个属性。大致可以将该方式分为以下四个步骤完成。(1)请求页面。各个漏洞信息都有自己的页面地址,根据这个URL地址,建立页面请求,获取HTML格式的漏洞数据。(2)信息格式规范化。将不规则的HTML格式进行规范化处理。使得其成为可以被XML文档对象识别的规范化数据。(3)信息分析。分析规范化后的HTML数据,利用XPath定位到漏洞信息各个有效的属性部分,提取所需的信息,并建立成一个系统可以识别的漏洞对象。(4)原始数据本地备份。将上一步中建立的漏洞对象存储在系统漏洞库的原始数据备份区域中。完成原始信息的采集。以上两种方式的操作流程,都实现了从漏洞库中获取数据,提取数据,并最终成为本地原始数据备份样本库中一部分的功能。达到了漏洞采集的前三个目标。在这个基础上,将各个样本库中的数据进行集成处理。完成信息采集子系统的第四个设计目标。5.3安全漏洞采集系统的功能实现信息采集子系统主要分为采集和集成两部分,因此将该一部分分为信息获取和信息集成两个模块。下面分别对两个模块的主要部分的实现进行说明。5.3.1信息获取模块信息获取模块负责系统中漏洞信息资源的采集,是系统中重要的组成部分。由于各个漏洞数据库提供数据的方式都不尽相同,因此要分别对各种数据库的信息获取方法进行定制。以CVE数据库为例。CVE的官方网站提供了漏洞数据的下载地址:铂更新订阅地址。下面为CVE漏洞数据文件的片段:44 Entry</stams>BufferoverflowinNFSmountdgivesrootaccesstoremoteattackers,mostlyinLinuxsystems.</desc>19981006-01-I</ref>J·006</ref>12l</ref></rcfs></item></eve>系统首次运行时进行的初始化工作,是要将CVE库中所有的现存数据存储进系统数据库中,数据量比较大,直接通过H1]m请求读入内存进行处理的方式不适合。这里将采用手动下载整个漏洞列表文件到本地,然后通过文件读取的方式进行处理。CVE提供的数据文件格式有XML格式、HTML格式、TEXT格式等。鉴于XML格式文档的通用性,CVE提供了XML格式对应的XMLSchema,因此这里选用XML格式的文件进行处理。CVE数据文件中(如表5.1),根节点为eve,在根节点的属性信息中定义了文件的命名空间信息,XSD文件信息。每个漏洞信息,都对应为一个item子节点,type属性的值表明了漏洞的类型,这个值与节点status节点的内容保持一致,type为CVE对应的status的值为entry,type为CAN对应的status的值为candidate。这两个值从名称和状态两个方面反应了漏洞的认证情况。name属性的值为漏洞的CVE编号,desc节点的内容为漏洞的描45 述,refs节点表示漏洞的参考内容,其下的每个子节点ref表示一个参考信息。ref节点中,source属性的值表示参考信息的来源,如BID表示来自BugTraq邮件列表,XF表示来自X.Force等。分析得到各部分信息所处的位置后,在配置信息中,定义XML文件命名空间的地址。利用.NET框架集中XML文档对象模型XMLDoeument读取数据文件到内存中,添加命名空间信息,提取数据。具体的步骤如下:(1)读取文件到内容中,并转化为XML文档对象模型。(2)添加XML文档对应的命名空间信息。(3)通过XPath获取所有的item节点集。(4)通过XPath定位到每个item节点中的信息节点,获取节点的内容或者属性信息。(5)对获取的信息入库存储。(6)继续下一item节点信息采集,重复(4X5)两步。系统中的主要代码如下:VulCVEcve=null;XmlNodeListnodes;XmlDocumentxml=newXmlDocument0;xml.Load(”a11.xml”);XmlNamespaceManagermanager=newXmlNarnespaeeManager(xml.NarneTable);manager.AddNamespace(”CVC”,ConfigurationManager.AppSettings[”CVEXIvlLNS“】);nodes=xml.SelectNodes(”//item”);朦取所有漏洞节点foreaeh(XmlNodenodeinnodes){eve=newVulCVE0;cve.CVEID=nodeAttributes[”name”】.Value;⋯脓取所有数据信息eve.Status=node.SelectSingleNode(".//status”).InnerText;eve.StrUser=this.User,//定位当前操作者cve.Insert0;}其他数据库的漏洞信息的采集与CVE大致相同,仅在信息文件获取的方法上略有不同,如NVD数据库将所有的漏洞数据按时间分为若干个文件存放,2002年之前发现的漏46 洞在文件“nvdcve.2.0.2002.xml”中,2003年到2010年的漏洞信息分别存储在各个年份对应的文件“nvdcve.2.0.200X.xml”中。因此需要按照时间分别把每个文件中的数据存入数据库中。信息的获取另一个重要的功能就是对各个数据库的更新信息的采集。NVD和US-CERT都提供了更新信息列表RSS。RSS是建立在XML基础上的一种信息传输方式,目前广泛使用的是RSS2.0版本。其中的内容都以XML文档结构的模式有序的组织在一起,可以方便的提取其中有用的信息。CVE数据库没有以RSS的形式给出更新源,但提供了固定的更新发布地址,同样也可以通过分析页面中的信息,提取需要的信息。下面将详细说明系统更新的运行方式。(1)从配置信息中读取更新源地址。并以此地址生成Uri对象(2)根据U订对象,建立HttpWebRequest对象,请求页面。(3)获得页面内容并转换为字符串。(4)将获取的字符串添加必要的信息,补全标签,转换为XML文档对象。(5)根据XPath定位,获取到所有的漏洞列表节点。并对每个节点实施下面的操作。(6)获取节点内容,得到更新漏洞名称。(7)获取节点href属性,获取更新漏洞详细信息地址。(8)根据地址建立新的HttpWebRequest请求,得到相信信息页面(9)分析页面内容,并根据XPath定位到节点,获取有效数据。(10)重复第(6)步到第(9)步。系统中的主要代码如下:Uriuri=newUd(ConfigurationManager.AppSettings[”CVERSS”】);HttpWebRequestwebRequest=(HttpWebRequest)HttpWebRequest.Create(uri);HttpWebRespomewebRespome=(HttpWebResponse)webRequest.GetResponse0;webRequest.Method2”Post";Stream_Readerreader=newStreamReader(webResponse.GetResponseStream0,Encoding.UTFS);XmlDocumentxml2newXmDocument0;xml.LoadXml(reader.ReadToEndO);信息采集模块中另外一个比较重要的功能点就是HTML格式数据的规范化。众所周知,HTML是当前网站页面中普遍采用的描述语言,但是其结构并不严谨。例如浏览器在解析HTML时,对于没有结束标签,或者“</xs:eomplexType></xs:element></xs:element></xs:element></xs:element></xs:element></xs:element></xs:element></xs:element></xs:element></xs:element></xs:sequence></xs:complexType></xs:element>62 </xs:element>name=”status"></xs:simpleType></xs:element>name=”published·datetime”type=nxs:dateTime"></xs:element>name=”update-datetime”咿”xs:dateTime”></xs:element>name=”description”type=”xs:string”></xs:element>flame=”solution”type=”xs:string"></xs:element>name=”systemlist”>ref=”system-affected”minOccurs=”l”maxOccurs=”unbounded”/></xs:sequence></xs:eomplexType></xs:element>name=”CVSSn>ref=”access-vector'.'/>rc卢”access-complexity”胁ref=-”authentication”今ref=”eonf-impaet”/>ref=”integ-impact”今ref=”basescore”今63 </xs:sequence></xs:complexType></xs:element></xs:element></xs:complexType></xs:element></xs:element></xs:element></xs:simpleType></xs:element> </xs:simpleType></xs:element><)【S:elementname--”authentication’’>base="xs:string”></xs:simpleType></xs:element>base=”xs:string’。></xs:simpleType></xs:element>base=”xs:string”></xs:simpleType></xs:element></xs:element></xs:complexType></xs:element></xs:schema> 附录2CvENVDX-ForceU孓CERl’其他本文CvE编号CVE编号CEl盯编号CVE编号CvE编号状态首次公布时间漏洞名称信息来源状态信息描述最后修订时间BID编号概述公布时间发现时间参考信息信息来源危险级别详细描述分析描述更新时间信息总体描述漏洞信息描述影响漏洞类型描述影响程度受影响平台解决方案严重程度解决方案解决方法补救方案受影响的系统利用程度参考来源软件及其版本漏洞性质引用信息利用需求IJl也地址相关引用其他造成后果参考名称报告时间操作系统厂商软件厂商操作系统名称软件名称操作系统版本版本号软件描述冰软件厂商AC软件名称AU软件版本Confl补丁适应的漏洞Int硝补丁描述AvailI补丁编号67 致谢三年的硕士研究生生活转眼即逝,回想起这三年的生活,我心中充满了感激。我的导师顾韵华老师在我三年的学习生活中,倾入了许多的心血。在学习、做人、做事等各个方面,都给予了我很多的指导。顾老师严谨的治学态度、孜孜不倦、教书育人的精神对我产生了巨大的影响。她把自己渊博的学识毫无保留的教授给了我们,在论文撰写的整个时间内,时刻关心着我,并为我的研究提供了强大的支持,在我遇到问题时给予指导、启发。最终使我在她的精心指导下完成了整个论文的撰写工作。这三年是我人生最宝贵的三年。在此,我衷心的向顾韵华老师表示最诚挚的敬意。衷心感谢我的父母,他们一直以来都对我的成长付出了全部的心血,永远都在默默的支持和鼓励着我,衷心祝愿他们身体健康,感谢他们对我的培养和教育。非常感谢我的师兄王兴给我的无私的帮助,他一直是我学习的榜样。感谢我的室友张学勇、宋庆席、孙文正,他们伴随我一同度过了三年的时光,共同学习,一起努力,结下了深厚的友谊。特别要感谢马少晔、鞠审时、吴滢滢,她们一直都在关心着我的学习和成长,并给我提供了很多的帮助和建议。在我求职和求学的过程中,一直鼓励着我。最后,感谢在百忙中评审论文和参加答辩的老师和评审们。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭