计算机科学硕士论文范文:文本挖掘理念之计算机漏洞自动分类科技
第一章 绪论
1.1课题背景
随着信息技术的快速发展,互联网以及计算机的应用已经深入到各个行业,从能源、交通、生产、军事、医疗到人们的日常生活,都已经离不开计算机系统以及互联网的支持。根据中国互联网信息中心(CNNIC)最新发布的《第 30 次中国互联网网络发展状况统计报告》[1]显示,截止 2021 年 7 月底,我国的网民数量已经超过 5.38 亿人,互联网普及率达到 39.9%,已注册的网站数量达到 183 万个。除此之外,各大企业与政府部门也加快了信息化的进程,电子信息系统在各个行业中的应用普及率飞速上升,信息系统与网络连接已经成为公司企业和政府组织最为重要的基础设施和资产之一。与此同时,计算机与网络在给各行各业带来极大的便利的同时,也带来了巨大的风险与隐患。近些年来,伴随着各个行业信息化程度的提高,信息安全问题也日渐凸显。由于信息系统被攻击造成机密信息泄露,隐私数据丢失或者其他重大损失的安全事件层出不穷。据 CNICC 发布的《报告》[1]显示,2021 年上半年,遭遇病毒或者木马工具的网民达到 2.17 亿,比例为 44.7%。而根据著名安全组织美国计算机安全应急响应小组 CERT 发布的统计数据显示,从 1988 年开始,每年被报道的网络安全事件以几何倍数的趋势快速增长,截止到 2003 年,每年的安全事故数量已达到 137529 起。而从 2003 年开始,由于自动化攻击工具的广泛传播,针对互联网系统的攻击事件已经呈爆炸性增长,CERT 甚至因此停止了对安全事件的统计工作[2]。屡屡发生的计算机安全事故,给各大企业、组织和个人带来了巨大的损失。因此,信息安全问题成为近些年来科学研究的热点,并且已经发展成为一个完备的学科。本文所研究的是漏洞分类管理技术属于信息安全技术中安全管理与风险评估分支下的关键课题之一。计算机漏洞是指在系统设计、实现、维护或者运营过程中造成的可被非授权人员非法利用的软硬件缺陷。计算机漏洞是众多信息安全事故的罪魁祸首,是黑客攻击目标系统的首要途径。黑客往往通过对存在于目标系统中的一系列漏洞进行相继渗透,来获取目标系统的非法权限,从而进一步控制与破坏目标系统。因此,对存在于计算机系统中的漏洞进行不恰当的管理,是造成众多信息安全事故的最直接的原因,而如何对存在于系统的计算机漏洞进行有效及时的管理,则是一个十分重要且具有挑战性的工作。在过去的十几年中,已发现的计算机漏洞数量飞速增长,根据美国国家计算机漏洞数据库(National Vulnerability Database, NVD)的统计信息[3]显示 ,截止 2021年底,全世界已公布并被 NVD 收录的漏洞已多达 53526 个,其中每年被公布的漏洞如图 1-1 所示。另外,由于用户对计算机系统的智能化和复杂度要求越来越高,计算机漏洞的增长速度也会越来越快,根据[3]的统计信息,2021 年每天发现的漏洞数量是 11 个,而 2021 年每天发现的漏洞数量是 13 个。
面对数量如此庞大的计算机漏洞,如何进行有效的管理与修复已经变成一个十分艰巨的任务。每个系统的管理员或者安全负责人都要花费大量的人力物力寻找合理的解决方案来修复漏洞加固系统,这项工作充斥着了挑战。一方面,对于如此数量庞大的漏洞,很难保证都能及时找到安全的补丁或者有效的修复措施。有些时候,非官方补丁的不稳定性反而会增加系统的风险。另外一方面,对于某些漏洞的修复可能需要系统的重新启动,对于那些对服务的连续性要求比较高的公司,这样的修复措施往往意味着较大的成本。如果针对目前数量庞大的漏洞全部进行统一的修复与处理,不仅需要耗费大量的人力物力,而且在很多情况下也是不必要的。举例说明,如果某一家公司 A 使用的软件环境主要是授权软件,如windows 产品,那么这家公司的系统管理员应该更注意那些缓冲区溢出漏洞,因为相对于一般的开源软件,授权软件的源代码是非公开的,因此发现缓冲区溢出漏洞的概率相对较小,也就意味着这样的漏洞在系统中出现之后带来的危险性也更高。而如果另外一家公司 B 使用的主要是开源软件,那么 B 公司的安全管理员则更应该关注软件配置错误引发的漏洞,因为相对于授权软件来说,开源软件一般没有完善的帮助文档和售后服务,对开源软件进行安全配置的难度要大很多。综上所述,如果能对计算机漏洞进行有效的分类管理,针对不同的类型和不同安全级别的漏洞采取分门别类的应急方案,不仅可以大大提高计算机漏洞管理的效率,而且可以大大减低系统安全维护的成本。因此,对于漏洞自动化分类模型的研究具有十分重大的研究意义与应用价值。
第二章 面向安全管理的主动式漏洞扫描器
在进行漏洞分类管理之前的第一步工作就是发现存在目标系统中的各种漏洞,这也是漏洞管理过程中漏洞扫描器所需要完成的工作。本文结合漏洞分类管理的特定需求,开发了一款面向安全管理的新型主动式漏洞扫描器VULDIS(Vulnerability Discovery),并已经向中国版权保护中心申请并获得了计算机软件著作权。
2.1 漏洞扫描器介绍
目前市面上已经有很多成熟稳重的漏洞扫描器可供选择。世界上最早的漏洞扫描器 ISS,是 1992 年一名叫 Chris 的学生在做互联网安全实验室时编写的一个扫描工具,可以远程探测 UNIX 系统的各种通用漏洞,ISS 目前已经发展成为一个著名的网络安全企业,取得了巨大的成功。除此之外,Microsoft 公司推出的漏洞分析工具MBSA也可以用来方便地发现系统以及所部署的应用方案中的问题或者安全漏洞。另一款漏洞扫描器 Nessus 的出现彻底改变了计算机安全攻防的普及性,被认为是目前全世界使用人数最多的系统漏洞扫描与分析软件。Nessus 最早是一个名为 Tenable Networ Security 的机构以开源软件的形式发布的,其计划目的是为计算机安全社区提供一个免费、威力强大、并且简易易用的漏洞扫描工具。目前,Nessus 已经成为最著名的漏洞扫描器之一。上述漏洞扫描器可以方便地帮助管理员发现系统中的漏洞,提供系统中详细的安全漏洞信息。同时,作为成熟稳重的商业产品,他们都具有一定的稳定性、通用性以及十分好的文档信息。但是针对本文提出的漏洞分类管理需要,他们却有一定的局限性。一方面,作为商业产品,它们具有一定的封闭性,即使是从开源软件发展而来的 Nessus 从第 3 版开始也全部收回了程序源代码的版权。这使得我们对漏洞扫描的过程以及扫描结果难以做到具体的控制,同时,也难以与漏洞分类模型中的其他部分进行无缝的整合。另一方面,上述产品都是采用主动模拟攻击的方式来判断漏洞是否存在,在评估过程中需要耗费较长的时间,而且,测试漏洞的模拟脚本本身也可能会被不法黑客利用,对系统的安全性造成威胁。因此,基于以上两方面的考虑,我们开发了一种面向安全管理的主动式漏洞扫描器VULDIS。
第三章 改进型的 SVM 二叉树分类算法..........19
3.1 文本分类技术 ..........19
3.2 统计学习理论 ..........21
3.3 支持向量机 ..........23
3.4 SVM 多类分类扩展方法及其比较..........26
3.5 基于熵的二叉树构建算法..........30
3.6 本章小结 ..........35
第四章 基于 SVM 的漏洞分类模型实现..........36
4.1 基于 SVM 算法的漏洞自动分类模型..........36
4.2 漏洞分类模型的主要概念及数学定义..........37
4.3 漏洞文本收集与预处理..........38
4.3.1 漏洞文本收集..........38
4.3.2 漏洞文本预处理..........40
4.4 漏洞类别的特征词抽取..........42
4.5 漏洞的向量表示..........45
4.6 本章小结 ..........45
第五章 漏洞分类实验结果分析..........47
5.1 评估指标描述 ..........47
5.2 实验数据描述 ..........48
5.3 漏洞特征词筛选结果 ..........49
5.4 漏洞分类测试结果 ..........51
5.5 本章小结 ..........54
结论
近些年来,计算机与网络安全事件发生的数量不断攀升,安全事件的严重性也日渐增加,而系统中存在的各种各样的漏洞是这些安全攻击得以发生的前提之一。最近十年来,计算机漏洞数量的爆炸性增长,更是成了威胁信息系统安全的重大隐患,而对漏洞的研究已经证明,计算机的漏洞是无法彻底杜绝和清除的。因此只有通过对漏洞进行合理地分类管理,采取及时有效的防范措施,才是网络安全管理中最为行之有效的措施之一。本文的主要工作是,在深入研究了机器学习和文本分类技术的基础上,将支持向量机分类算法应用到漏洞分类模型中,并根据漏洞分类样本小、多类别的需求,提出了基于漏洞类别的熵构造多类二叉树的算法,并采用 CERT 最新发布的2742 个漏洞样本进行分类测试,准确率达到了 84.4%。本文提出的漏洞自动分类模型将大大减少漏洞分类管理的人工成本,使得系统管理员可以针对不同类别的漏洞采取相应的措施,降低漏洞修复的成本和影响,具有很强的应用价值和研究意义。本文的主要创新点包括:
1) 结合漏洞分类管理的特定需求,开发了一款面向安全管理的新型主动式漏洞扫描器,采取了 C/S 结构和主动式非模拟攻击的漏洞检测模式,大大提高了对多主机分布式系统的扫描速度,同时减少了漏洞扫描对主机完整性和稳定性带来的影响;
2) 创新性地提出了基于文本分类技术和支持向量机算法的漏洞分类模型,克服了传统的漏洞自动管理方案对于已有的结构化漏洞数据库的依赖,直接从安全组织、软硬件厂商发布的漏洞文字性描述和漏洞通告中,挖掘出漏洞的类别信息,为后续的漏洞修复提供最新的关键性指导;
3) 使用 Python 编程语言实现了漏洞自动分类模型的原型系统,实现了漏洞文本自动收集、漏洞文本预处理、类别特征词选取、分类二叉树构造、支持向量机训练等关键模块,并对 CERT 最新发布的 2742 个漏洞进行了分类测试,验证了分类模型的有效性。
参 考 文 献
[1]A. Gray. An historical perspective of softwarevulnerability management.Information Security Technical Report, 2003. 8(4):34-44.
[2]B.V. Hartley, E. night, G. Zymbalu, C. Mavros. Method and apparatus forassessing the security of a puter system. U.S. Patent, 2005. 6889168.
[3]A. Bazaz,ames D. Arthur. Towards a Taxonomy of Vulnerabilities. Proceedings ofthe 40th Annual Hawaii International Conference on System Sciences, HICSS,2007. Hawaii.
[4]I.V.rsul. Software vulnerability analysis. Available at:
[5]H. S. Venter, . H. P. Eloff, Y. L. Li. Standardizing vulnerability categories.Computers Security, 2008, 27:71-83.
[6] The MITRE Corporation. Common vulnerabilities and exposures.
[7] R.P. Abbott, .S. Chin, .E. Donnelley, etc, Security analysis and enhancements ofputer operating systems. Tech. rep. NBSIR 76-1041, Lawrence Livermore Lab.,RISOS project, Washington, DC, 1976.
[8] R. BisbeyII, D. Hollingworth. Protection analysis: final report. ISI/SR-78-13,USC/Info. Sci. Inst., Marina Del Rey, CA, 1978.
[9] T. Aslam, I. rsul. Use of a taxonomy of security faults. In proceedings of the 19thnational information systems security conference. 1996.
[10]H. S. Venter and . H. P. Eloff. Harmonising vulnerability categories []. SouthAfrican Computer ournal, 2002, 29:24-31.