第一章绪论
由于计算机漏洞在网络安全攻击事件中扮演不可或缺的重要角色,随着近些年来漏洞数量的爆炸性增长,针对漏洞分类的研究已经越来越多。对计算机安全漏洞进行层次清晰、目的明确的分类,是继续进行漏洞分析和漏洞管理的基础,可以极大地帮助漏洞研究者深入了解同一类别漏洞的产生原因、攻击影响等,为系统安全管理员正确地评估漏洞的严重性,采取恰当的修复措施提供关键的参考信息。目前针对漏洞分类方面的研究主要集中在两个方面,一个是对漏洞分类体系(Taxonomy of vulnerability)的讨论,主要关注于漏洞类别的定义以及不同类别的特征 的 区 分 ; 另 一 个 研 究 方 向 是 漏 洞 分 类 方 法 的 自 动 化 (Automation ofcategorization),通过应用机器学习等技术将漏洞自动分类到预定义的类别。本文主要关注第二个方向,本小节将简要介绍目前已有的漏洞分类方面的研究。早期针对计算机漏洞分类的研究主要是对漏洞的类别和分类体系的讨论,即Bazaz 和 Arthur 两人提出了一种以计算机系统资源、进程和漏洞之间的关系为依据的分类体系。这种分类体系将漏洞看作是对系统常量的违反和系统资源的非法占用,一共分为三层类别。第一层包含 3 个类别,分别是主内存、输入输出和加密设备,在第二层中,三个顶层类别又被进一步分为了六个子类别,在最后一层,按照具体的系统常量和资源将漏洞分为更多的类别。但是,以上介绍的几种漏洞分类方法大都针对特定的分类目的设计,存在一定的局限性,尤其是随着漏洞数量的爆炸性增长和漏洞复杂程度的增加,上述基于人工判断的分类方案的局限性愈加明显。因此近些年来,已经有众多研究开始关注漏洞分类过程的自动化。Ivan Victor Krsul 在他的毕业论文中首次提到了一种基于决策树的漏洞分类方法,人工地抽取适用于不同漏洞类别的属性和特征,然后定义一系列对应于各个漏洞类别的匹配模式,通过组合词分析决策树来实现漏洞的半自动分类,在一定程度上,提高漏洞分类管理的效率。S. Venter 等人提出了一种基于自组织图(Self-Organized Map, SOM) 的自动化漏洞分类方案, SOM 是一种数据聚类算法,该方案的主要特色在于提出了一种非经验化的漏洞分类模型,即不需要预先人工定义漏洞的类别,通过 SOM 算法自动将具有类似特征的漏洞样本聚集成不同的类别。随后,M. Tupper 使用 N-Gram 代替词频信息对文献[15]中给出的基于 SOM聚类算法的漏洞分类模型进行了改进,提高了聚类的准确率[16]。Ju An Wang 和Minzhe Guo 提出了一种基于贝叶斯网络的漏洞自动分类模型,利用从 NVD 数据库中获取的漏洞信息训练贝叶斯网络,然后将漏洞划分到 CWEs 定义的类别中。Z. Chen 等人在文献 [18]中提出了一种基于 SVM 的漏洞自动分类模型,利用从CVE 列表中获取的漏洞信息训练 SVM 分类器,将漏洞自动划分到预定义的漏洞特征类别中。针对漏洞自动化分类管理的研究目前已经取得了一定的成果,但是仍有一些尚未解决的问题。首先,上述给出的大部分自动化漏洞分类方案都需要依赖目前已有的结构化的漏洞数据库(如 NVD 或者 OSVDB),两者都是由国际安全组织维护的,维护这样庞大的数据库本身需要非常大的人力物力。其次,这些公共的漏洞数据库其数据结构和样式经常会产生频繁性的变动,这种版本不稳定性对依赖其作为基础数据的漏洞分类方案会造成一定的影响,比如 NVD 数据库的1.0 版本和 2.0 版本在漏洞的属性定义和结构上都发生了很大的变化。另外,由社区驱动的公共数据库往往因为技术和成本的限制,对漏洞的覆盖率较低,而大型的公共数据库如 NVD,由于其复杂的管理模式,导致一些新发现的漏洞在被收录的过程中会产生一定的时间延迟。这会导致上述漏洞自动分类模型不能及时获取最新的漏洞信息,会对安全实时性要求很高的用户系统带来一定的风险。
第三章 改进型的 SVM 二叉树分类算法…………………………..19
3.1 文本分类技术…………………………..19
3.2 统计学习理论…………………………..21
3.3 支持向量机…………………………..23
3.4 SVM 多类分类扩展方法及其比较…………………………..26
第四章 基于 SVM 的漏洞分类模型实现…………………………..36
4.1 基于 SVM 算法的漏洞自动分类模型…………………………..36
4.2 漏洞分类模型的主要概念及数学定义…………………………..37
4.3 漏洞文本收集与预处理…………………………..38
4.4 漏洞类别的特征词抽取…………………………..42
4.5 漏洞的向量表示…………………………..45
4.6 本章小结…………………………..45
第五章 漏洞分类实验结果分析与结论…………………………..47
5.1 评估指标描述…………………………..47
5.2 实验数据描述…………………………..48
5.3 漏洞特征词筛选结果…………………………..49
5.4 漏洞分类测试结果…………………………..51
结论
近些年来,计算机与网络安全事件发生的数量不断攀升,安全事件的严重性也日渐增加,而系统中存在的各种各样的漏洞是这些安全攻击得以发生的前提之一。最近十年来,计算机漏洞数量的爆炸性增长,更是成了威胁信息系统安全的重大隐患,而对漏洞的研究已经证明,计算机的漏洞是无法彻底杜绝和清除的。因此只有通过对漏洞进行合理地分类管理,采取及时有效的防范措施,才是网络安全管理中最为行之有效的措施之一。本文的主要工作是,在深入研究了机器学习和文本分类技术的基础上,将支持向量机分类算法应用到漏洞分类模型中,并根据漏洞分类样本小、多类别的需求,提出了基于漏洞类别的熵构造多类二叉树的算法,并采用 CERT 最新发布的2742 个漏洞样本进行分类测试,准确率达到了 84.4%。本文提出的漏洞自动分类模型将大大减少漏洞分类管理的人工成本,使得系统管理员可以针对不同类别的漏洞采取相应的措施,降低漏洞修复的成本和影响,具有很强的应用价值和研究意义。本文的主要创新点包括:
1) 结合漏洞分类管理的特定需求,开发了一款面向安全管理的新型主动式漏洞扫描器,采取了 C/S 结构和主动式非模拟攻击的漏洞检测模式,大大提高了对多主机分布式系统的扫描速度,同时减少了漏洞扫描对主机完整性和稳定性带来的影响;
2) 创新性地提出了基于文本分类技术和支持向量机算法的漏洞分类模型,克服了传统的漏洞自动管理方案对于已有的结构化漏洞数据库的依赖,直接从安全组织、软硬件厂商发布的漏洞文字性描述和漏洞通告中,挖掘出漏洞的类别信息,为后续的漏洞修复提供最新的关键性指导;
3) 使用 Python 编程语言实现了漏洞自动分类模型的原型系统,实现了漏洞文本自动收集、漏洞文本预处理、类别特征词选取、分类二叉树构造、支持向量机训练等关键模块,并对 CERT 最新发布的 2742 个漏洞进行了分类测试,验证了分类模型的有效性。
参 考 文 献
[1]A. Gray. An historical perspective of software vulnerability management.Information Security Technical Report, 2003. 8(4):34-44.
[2]B.V. Hartley, E. Knight, G. Zymbaluk, C. Mavros. Method and apparatus forassessing the security of a computer system. U.S. Patent, 2005. 6889168.
[3]A. Bazaz,James D. Arthur. Towards a Taxonomy of Vulnerabilities. Proceedings ofthe 40th Annual Hawaii International Conference on System Sciences, HICSS,2007. Hawaii.
[4]I.V.Krsul. Software vulnerability analysis. Available at:
[5] IETF RFC 2828.H. S. Venter, J. H. P. Eloff, Y. L. Li. Standardizing vulnerability categories.http://www.1daixie.com/dxjsjlw/ Computers & Security, 2008, 27:71-83
[6] The MITRE Corporation. Common vulnerabilities and exposures.
[7] R.P. Abbott, J.S. Chin, J.E. Donnelley, etc, Security analysis and enhancements ofcomputer 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. Krsul. Use of a taxonomy of security faults. In proceedings of the 19thnational information systems security conference. 1996.
[10]H. S. Venter and J. H. P. Eloff. Harmonising vulnerability categories [J]. SouthAfrican Computer Journal, 2002, 29:24-31.