Beyond Heuristics: Learning to Classify Vulnerabilities and Predict Exploits

一种有别于启发式的漏洞分类与利用预测的学习方法

一、摘要

  在现代系统管理中,对于安全的需求是巨大的并且愈演愈烈。其中,最主要的需求是管理员必须监控着源源不断的软件漏洞披露,因为这里面的漏洞可能会以某种方式危害到他们的系统。这些漏洞包括缓冲区溢出错误、非法的验证输入以及其他的意外的攻击方式等。每年甚至每周都有大量的漏洞被披露,虽然没有一个企业会受到这些披露的所有漏洞的影响,但是其中一些突出的漏洞还是会出现在他们的软件系统中。并且,修补或者解决一个漏洞需要付出很多时间、金钱等代价,如系统停机等。

  所以,对于一个系统管理员来说,一个关键问题是要有限考虑哪些漏洞。本文展示了如何利用公开的漏洞数据库作为训练集来训练分类器,从而预测漏洞是否可能被利用以及多久可能被利用。我们从现有的漏洞公开报告中的文本字段、时间戳、交叉引用和其他条目中提取漏洞特征作为输入的特征向量,我们的分类器就是对这些特征向量进行分类的。

  最终结果是,与当前的基于专家知识和静态公式的行业标准的启发式方法相比,本文的分类器可以更加准确的预测是否以及多久可能利用单个漏洞。

 

二、研究结论

  在本文中,描述了一种使用数据挖掘和机器学习工具进行漏洞评估的补充办法。通过考虑更加广泛的特征,并且依靠当代经验数据来确定他们的重要性。本文证明,这种方法可以对漏洞进行更好的分类,至少比目前广泛使用的严重性评分系统要好得多。

  由于本文特别关注可利用性,对于软件供应商来说,使用我们的方法来筛选发现的漏洞关于如何确定补丁开发和部署的优先顺序是非常简单的。

  目前的漏洞评分方法的局限性很大,理应考虑更多的公司环境或特定的背景信息。本文设计了一套新的漏洞可利用性评分机制,可以对漏洞的可利用程度进行评估。

 

三、本文特色

1. 算法特色

  本文在进行漏洞分类时使用的是线性支持向量机算法,该算法特别适合于漏洞分类应用,因为如何的特征数量(或者说特征向量维度)比样本多得多,比如实验中特征与样本比例接近10:1。我们把特征数<<样本数这种情况称之为小样本,许多超平面决策边界可以完美分离训练集中的所有样本。小样本情况下,线性支持向量机计算出来的超平面使得大多数边界训练实例到线性决策边界的距离最大化,并且对新数据的推广效果更好。

 2. 预测特色

  本文对算法评估的方式采用先离线实验然后在线实验的方式。通俗的说,离线实验就是将特征看作一个静态测试数据集直接输入,评估预测的准确性;在线实验是部署一个模拟真实环境的漏洞环境,根据相应的特征测试模型准确性。

  除此之外,本文还设计了对漏洞利用时间的预测。能够预测出对应漏洞可能在接下来的多长时间内被利用。

3. 度量特色

  本文设计了一套可利用性指标的度量标准,即计算实例距离最大边界超平面的距离(带有正负符号)作为可利用性指标的度量。最后结果显示,常规的CVSS标准的可利用性评分有些时候并不能始终反映漏洞利用的实际情况,而本文提出的度量方法具有很有价值的参考性,从业人员可以使用这些评分对漏洞进行有限级排序。

上一篇:支持向量回归机(SVR)代码


下一篇:【模式识别】SVM实现人脸表情分类