CN106897625B - 支持漏洞关联性挖掘的漏洞自动分类方法 - Google Patents
支持漏洞关联性挖掘的漏洞自动分类方法 Download PDFInfo
- Publication number
- CN106897625B CN106897625B CN201710052203.9A CN201710052203A CN106897625B CN 106897625 B CN106897625 B CN 106897625B CN 201710052203 A CN201710052203 A CN 201710052203A CN 106897625 B CN106897625 B CN 106897625B
- Authority
- CN
- China
- Prior art keywords
- word
- privilege
- privilege set
- loophole
- tfidf
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种支持漏洞关联性挖掘的漏洞自动分类方法,属于信息安全技术领域。具体操作为:步骤一、构建一个漏洞数据库,收集漏洞记录。步骤二、确定特权集类别。步骤三、训练分类器。步骤四、测试数据。本发明提出的支持漏洞关联性挖掘的漏洞自动分类法与已有方法相比较,具有以下优点:①漏洞分类结果适合用于漏洞关联性挖掘;②类与类之间具有互斥性,且分级明显;③实现漏洞的自动分类,提升分类效率,节省人工成本。
Description
技术领域
本发明涉及一种支持漏洞关联性挖掘的漏洞自动分类方法,属于信息安全技术领域。
背景技术
网络安全脆弱性是指计算机系统中存在某些可能被恶意主体(攻击者或攻击程序)利用的安全漏洞,从而可能导致对系统资源的非授权访问或对系统造成其他损害。近年来逐渐发展成熟的脆弱性扫描技术及CVE(Common Vulnerabilities&Exposures,公共漏洞和暴露)标准与通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)漏洞评级方法,可以检测并发现网络中存在的脆弱点,但无法分析脆弱点之间的关联性与相互利用关系。而网络风险中的攻击手段往往是通过彼此关联的漏洞,从一个漏洞切入,逐步利用网络中与此相关的漏洞扩散至整个网络。因此研究挖掘漏洞之间的关联性有重大意义。
漏洞关联图是一个描述漏洞间关联关系的有向图,它提供了一种形式化、系统化描述漏洞关联性的方法,能比较直观地反映出漏洞之间的关联关系。漏洞的关联往往体现在某低用户级L的攻击者通过成功地利用某个漏洞,获得一定的特权提升,从而在非授权的情况下达到了一个高用户级H的目的。现有的一种描述用户权限提升过程的方法是采用“特权”、“特权集”与“特权提升”的概念,利用决策树的方法将访问者与特权集集合起来,将访问者分为若干类,并将其拥有的特权集按重要程度设置一个量化的权值,比如在0-1之内的若干个小数。
目前存在的漏洞分类法主要有普渡大学COAST实验室的Aslam提出的Unix操作系统分类法,分为操作故障、环境故障和编码故障,但由于没有具体的量化指标,无法评价漏洞的危害级别;哈工大的汪立东提出的软件弱点分类法,描述了漏洞对机密性、完整性和可用性等安全性的影响,Knight等人提出的广义分类法,将弱点分为社会工程、策略疏忽、逻辑错误和软件漏洞四种类型,由于一定程度上的概念模糊,类与类之间不具备互斥性。
以上分类方法都是将漏洞作为单一缺陷来分析,张永铮强调了漏洞之间的关联性,提出了判断漏洞前后关联性的前提是漏洞可以按“前提特权集”及“结果特权集”进行的准确分类,实现了一种新颖的支持关联性挖掘的多维量化属性漏洞分类法,然而并没有明确指出每一类的具体特征,无法自动进行分类。
发明内容
本发明的目的是提出一种支持漏洞关联性挖掘的漏洞自动分类方法,从漏洞的自然语言描述中挖掘出每条漏洞的“前提特权集”及“结果特权集”所属的特权集分类,并根据“特权提升”的概念来判断漏洞之间存在的关联关系。
本发明的目的是通过以下技术方案实现的。
本发明的目的是提出一种支持漏洞关联性挖掘的漏洞自动分类方法,具体操作为:
步骤一、构建一个漏洞数据库,收集漏洞记录。
选取国家漏洞数据库(National Vulnerability Database,NVD)作为数据源,构建一个漏洞数据库。
所述漏洞数据库包括:通用漏洞(Common Vulnerabilities and Exposures,CVE)编号、通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、漏洞描述、前提特权集、结果特权集。
其中通用漏洞CVE编号、通用漏洞评分系统CVSS评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、漏洞描述字段是通过国家漏洞数据库直接获取的。前提特权集和结果特权集为空。
所述漏洞描述字段是用自然语言描述漏洞的特征,“漏洞描述”字段为“…users/attackers to…by/via…”格式。
步骤二、确定特权集类别。
特权集类别包括:系统管理员特权集、普通系统管理员特权集、普通用户特权集、访问者特权集、受限访问者特权集。
所述系统管理员特权集包含系统管理员所拥有的所有权限。系统管理员为拥有系统最高权限的用户帐号,系统管理员的权限为:管理系统设备、系统文件和系统进程,读写任意文件内容。攻击者利用系统管理员特权集造成的危害有:植入系统级木马,以虚假身份欺骗或直接追加、修改、删除、创建文件内容,造成系统不可恢复性崩溃。
所述普通系统管理员特权集包含系统管理员所拥有的部分权限。普通管理员的权限为:管理部分系统设备、系统文件和系统进程,读写部分系统文件内容。攻击者利用普通系统管理员特权集造成的危害有:通过追加、修改、删除、创建某些系统文件内容或系统进程内存空间的数据结构,造成系统某些文件看起来不可用、系统当机或拒绝服务。
所述普通用户特权集包含普通用户所拥有的所有权限。普通用户所拥有的权限为:在自己独立私有的资源空间内追加、修改、删除、创建个人文件。攻击者利用普通用户特权集造成的的危害有:植入用户级木马,修改普通用户的所有文件或进程空间的内容,导致用户崩溃或不可用。
所述访问者特权集包含受信任的系统远程访问者所拥有的所有权限。受信任的系统远程访问者所拥有的权限有:与系统交互数据、扫描系统信息。攻击者利用访问者特权集造成的危害有:帮助其他受限访问者用户完成身份验证或发送大量数据包造成系统内存溢出。
所述受限访问者特权集是指被系统防火墙隔离在外的不受信任的访问者所拥有的权限。不受信任的访问者仅拥有证实主机有效性的权限,不具备使用该系统的任何权限。攻击者利用受限访问者特权集不能对系统造成危害。
漏洞的前提特权集和结果特权集的取值为5个特权集类别中的一个。
步骤三、训练分类器。
针对步骤二所述的5个特权集类别,分别训练3个前提特权集训练器和4个结果特权集训练器。具体操作为:
步骤3.0:从步骤一中所述漏洞数据库中选取一部分漏洞记录,作为训练数据集。然后人工标注每条漏洞记录的前提特权集和结果特权集。
步骤3.1:从训练数据集中选取前提特权集为普通用户特权集的300条以上数据。
步骤3.2:对每条训练数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…user/attackers to…by/via…”格式。将“by/via”之后的部分截取出来,存入文件d1中,每条训练数据占一行,文件d1的行数用符号J 1表示。
步骤3.3:利用开源分词工具(StandardAnalyzer)对文件d1进行处理,统计每个单词出现的数量,文件d1中出现的单词的数量用符号I1表示。
步骤3.4:通过公式(1)计算单词的重要性。
其中,tfi,j表示第i个单词在第j行的重要性,i和j均为正整数,并且i∈[1,I1],j∈[1,J1];ni,j表示第i个单词在第j行中出现的次数。
步骤3.5:通过公式(2)计算第i个单词的逆向文件频率,用符号idfi表示。逆向文件频率用来度量单词的普遍性。
其中,ti表示第i个单词;|{j:ti∈rj}|表示文件d1包含单词ti的行数。
步骤3.6:通过公式(3)计算单词的权重得分。
其中,TFIDFi表示第i个单词的权重得分。
某一行的高词语频率,以及该词语在整个文件内的低行数频率,可以产生高权重的TFIDFi。因此,TFIDFi值倾向于过滤掉常见词语,保留重要的词语。
步骤3.7:将文件d1中出现的单词按照TFIDFi值降序排列,取前n个词作为特征关键词,n∈[5,12]。记录特征关键词及对应的TFIDFi值。
步骤3.8:经过步骤3.1至3.7的操作,得到前提特权集为普通用户特权集对应的特征关键词及对应的TFIDFi值。
步骤3.9:从训练数据集中选取前提特权集为访问者特权集的300条以上数据。重复3.2至至3.7的操作,得到前提特权集为访问者特权集对应的特征关键词及对应的TFIDFi值。
步骤3.10:从训练数据集中选取前提特权集为受限访问者特权集的300条以上数据。重复3.2至至3.7的操作,得到前提特权集为受限访问者特权集对应的特征关键词及对应的TFIDFi值。
步骤3.11:从训练数据集中选取结果特权集为系统管理员特权集的300条以上数据。
步骤3.12:对每条训练数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…user/attackers to…by/via…”格式。将“to”到“by/via”之间的部分截取出来,存入文件d2中,每条训练数据占一行,文件d2的行数用符号J2表示。
步骤3.13:利用开源分词工具(StandardAnalyzer)对文件d2进行处理,统计每个单词出现的数量,文件d2中出现的单词的数量用符号I2表示。
步骤3.14:通过公式(4)计算单词的重要性。
其中,tfi′,j′表示第i′个单词在第j′行的重要性,i′和j′均为正整数,并且i∈[1,I2],j∈[1,J2];ni′,j′表示第i′个单词在第j′行中出现的次数。
步骤3.15:通过公式(5)计算第i′个单词的逆向文件频率,用符号idfi′表示。逆向文件频率用来度量单词的普遍性。
其中,ti′表示第i′个单词;|{j′:ti′∈rj′}|表示文件d2包含单词ti′的行数。
步骤3.16:通过公式(6)计算单词的权重得分。
其中,TFIDFi′表示第i′个单词的权重得分。
步骤3.17:将文件d2中出现的单词按照TFIDFi′值降序排列,取前n个词作为特征关键词,n∈[5,12]。记录特征关键词及对应的TFIDFi′值。
步骤3.18:经过步骤3.11至3.17的操作,得到结果特权集为系统管理员特权集对应的特征关键词及对应的TFIDFi′值。
步骤3.19:从训练数据集中选取结果特权集为普通系统管理员特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为普通系统管理员特权集对应的特征关键词及对应的TFIDFi′值。
步骤3.20:从训练数据集中选取结果特权集为普通用户特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为普通用户特权集对应的特征关键词及对应的TFIDFi′值。
步骤3.21:从训练数据集中选取结果特权集为访问者特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为访问者特权集对应的特征关键词及对应的TFIDFi′值。
步骤四、测试数据。
步骤4.1:从步骤一中所述漏洞数据库中选取一条测试数据。
步骤4.2:对测试数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…user/attackers to…by/via…”格式。将“by/via”之后的部分截取出来,并利用开源分词工具(StandardAnalyzer)处理,得到若干个单词。
步骤4.3:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.8得到前提特权集为普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P1表示。
步骤4.4:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.9得到前提特权集为访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P2表示。
步骤4.5:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.10得到前提特权集为受限访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P3表示。
步骤4.6:比较P1、P2和P3的值,选取最大值对应的特权集作为该条测试数据的前提特权集的值。
步骤4.7:对测试数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…user/attackers to…by/via…”格式。将“to”到“by/via”之间的部分截取出来,并利用开源分词工具(StandardAnalyzer)处理,得到若干个单词。
步骤4.8:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.18得到结果特权集为系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R1表示。
步骤4.9:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.19得到结果特权集为普通系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R2表示。
步骤4.10:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.20得到结果特权集为普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R3表示。
步骤4.11:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.21得到访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R4表示。
步骤4.12:比较R1、R2、R3和R4的值,选取最大值对应的特权集作为该条测试数据的结果特权集的值。
有益效果
本发明提出的支持漏洞关联性挖掘的漏洞自动分类法与已有方法相比较,具有以下优点:
①漏洞分类结果适合用于漏洞关联性挖掘;
②类与类之间具有互斥性,且分级明显;
③实现漏洞的自动分类,提升分类效率,节省人工成本。
附图说明
图1为本发明具体实施方式中支持漏洞关联性挖掘的漏洞自动分类法的流程图。
具体实施方式
下面结合附图和实施例对本发明技术方案做详细描述。
采用本发明提出的支持漏洞关联性挖掘的漏洞自动分类方法对漏洞进行分类并得到漏洞间关联关系的操作流程如图1所示,具体操作步骤为:
步骤一、构建一个漏洞数据库,从国家漏洞数据库(National VulnerabilityDatabase,NVD)下载2010-2016年的漏洞数据,挑选linux下漏洞数据并筛选字段后导入本地数据库。
本地漏洞数据库字段如表1所示。
表1漏洞数据库字段表
步骤二、确定特权集类别。
特权集类别包括:系统管理员特权集、普通系统管理员特权集、普通用户特权集、访问者特权集、受限访问者特权集。每个特权集对应英文标识如表2所示。
表2特权集对应英文标识表
特权集名称 | 特权集描述 | 英文标识 |
系统管理员特权集 | 包括系统最高权限 | root |
普通系统管理员特权集 | 访问或修改部分系统文件 | admin |
普通用户特权集 | 有自己独立私有的资源 | user |
访问者特权集 | 交互数据,扫描系统信息 | access |
受限访问者特权集 | 隔离在防火墙外 | phyaccess |
步骤三、训练分类器。
针对步骤二所述的5个特权集类别,分别训练3个前提特权集训练器和4个结果特权集训练器。具体操作为:
步骤3.0:从步骤一中所述漏洞数据库中选取一部分漏洞记录,作为训练数据集。然后人工标注每条漏洞记录的前提特权集和结果特权集。包含漏洞描述、前提特权集和结果特权集的训练数据集如表3所示。
表3训练数据集
步骤3.1:从训练数据集中选取前提特权集为普通用户特权集的323条数据。
步骤3.2:对每条训练数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…users to…by/via…”格式。将“to”到“by/via”之间的部分截取出来,存入文件d1中,每条训练数据占一行,文件d1的行数J1=323。
步骤3.3:利用开源分词工具(StandardAnalyzer)对文件d1进行处理,统计每个单词出现的数量,文件d1中出现的单词的数量I1=1346。
步骤3.4:通过公式(1)计算单词的重要性。
其中,tfi,j表示第i个单词在第j行的重要性,i和j均为正整数,并且i∈[1,I1],j∈[1,J1];ni,j表示第i个单词在第j行中出现的次数。
文件d1中的第1个单词为“execute”,在第一行出现了1次,而第一行一共出现了5个单词,所以单词“execute”在第一行的重要性tfi,j=0.2。
步骤3.5:通过公式(2)计算第i个单词的逆向文件频率,用符号idfi表示。逆向文件频率用来度量单词的普遍性。
其中,ti表示第i个单词;|{j:ti∈rj}|表示文件d1包含单词ti的行数。
在全部323行数据中,包含单词“execute”的行数为46行,所以单词“execute”的idf1=0.84.
步骤3.6:通过公式(3)计算单词的权重得分。单词“execute”的TFIDF1值为9.66.
其中,TFIDFi表示第i个单词的权重得分。
某一行的高词语频率,以及该词语在整个文件内的低行数频率,可以产生高权重的TFIDFi。因此,TFIDFi值倾向于过滤掉常见词语,保留重要的词语。
步骤3.7:将文件d1中出现的单词按照TFIDFi值降序排列,取前8个词作为特征关键词,记录特征关键词及对应的TFIDFi值。
步骤3.8:经过步骤3.1至3.7的操作,得到前提特权集为普通用户特权集对应的特征关键词及对应的TFIDFi值,如表4所示。
表4前提特权集为普通用户特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
execute | 9.66 |
code | 8.54 |
leverage | 7.81 |
craft | 5.67 |
modify | 4.18 |
program | 3.78 |
write | 2.76 |
script | 2.53 |
步骤3.9:从训练数据集中选取前提特权集为访问者特权集的300条以数据。重复3.2至至3.7的操作,得到前提特权集为访问者特权集对应的特征关键词及对应的TFIDFi值,如表5所示。
表5前提特权集为访问者特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
package | 12.84 |
craft | 11.67 |
vector | 7.56 |
access | 5.78 |
file | 4.96 |
message | 2.01 |
send | 1.45 |
bypass | 1.04 |
步骤3.10:从训练数据集中选取前提特权集为受限访问者特权集的300条以上数据。重复3.2至至3.7的操作,得到前提特权集为受限访问者特权集对应的特征关键词及对应的TFIDFi值,如表6所示。
表6前提特权集为受限访问者特权集的特征关键词与对应的TFIDFi值对应表
步骤3.11:从训练数据集中选取结果特权集为系统管理员特权集的300条数据。
步骤3.12:对每条训练数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…users to…by/via…”格式。将“by/via”之后的部分截取出来,存入文件d2中,每条训练数据占一行,文件d2的行数用符号J2表示。
步骤3.13:利用开源分词工具(StandardAnalyzer)对文件d2进行处理,统计每个单词出现的数量,文件d2中出现的单词的数量用符号I2表示。
步骤3.14:通过公式(4)计算单词的重要性。
其中,tfi′,j′表示第i′个单词在第j′行的重要性,i′和j′均为正整数,并且i∈[1,I2],j∈[1,J2];ni′,j′表示第i′个单词在第j′行中出现的次数。
步骤3.15:通过公式(5)计算第i′个单词的逆向文件频率,用符号idfi′表示。逆向文件频率用来度量单词的普遍性。
其中,ti′表示第i′个单词;|{j′:ti′∈rj′}|表示文件d2包含单词ti′的行数。
步骤3.16:通过公式(6)计算单词的权重得分。
其中,TFIDFi′表示第i′个单词的权重得分。
步骤3.17:将文件d2中出现的单词按照TFIDFi′值降序排列,取前8个词作为特征关键词。记录特征关键词及对应的TFIDFi′值。
步骤3.18:经过步骤3.11至3.17的操作,得到结果特权集为系统管理员特权集对应的特征关键词及对应的TFIDFi′值,如表7所示。
表7结果特权集为系统管理员特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
root | 11.24 |
gain | 10.63 |
obtain | 10.26 |
access | 9.54 |
privilege | 9.32 |
system | 5.64 |
denial | 2.54 |
service | 2.54 |
步骤3.19:从训练数据集中选取结果特权集为普通系统管理员特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为普通系统管理员特权集对应的特征关键词及对应的TFIDFi′值,如表8所示。
表8结果特权集为普通系统管理员特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
privilege | 9.87 |
gain | 9.56 |
access | 8.72 |
arbitrary | 3.21 |
service | 2.54 |
bypass | 2.19 |
denial | 1.96 |
guest | 1.21 |
步骤3.20:从训练数据集中选取结果特权集为普通用户特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为普通用户特权集对应的特征关键词及对应的TFIDFi′值。
表9结果特权集为普通用户特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
execute | 6.73 |
run | 4.86 |
code | 3.48 |
<u>modify</u> | 3.32 |
overwrite | 1.96 |
write | 1.84 |
bypass | 1.66 |
access | 0.93 |
步骤3.21:从训练数据集中选取结果特权集为访问者特权集的300条以上数据。重复3.12至至3.17的操作,得到结果特权集为访问者特权集对应的特征关键词及对应的TFIDFi′值。
表10结果特权集为访问者特权集的特征关键词与对应的TFIDFi值对应表
特征关键词 | TFIDF<sub>i</sub>值 |
firewall | 8.54 |
gain | 7.65 |
bypass | 7.43 |
list | 5.94 |
<u>transmission</u> | 5.61 |
<u>communication</u> | 4.93 |
sensitive | 3.38 |
read | 2.63 |
步骤四、测试数据。
步骤4.1:从步骤一中所述漏洞数据库中选取一条测试数据,CVE_ID为CVE-2014-3390,漏洞描述字段为“The Virtual Network Management Center(VNMC)policyimplementation in Cisco ASA Software 8.7before 8.7(1.14),9.2before 9.2(2.8),and 9.3before 9.3(1.1)allows local users to obtain Linux root access byleveraging administrative privileges and executing a crafted script”。
步骤4.2:对测试数据中的“漏洞描述”字段进行处理。“漏洞描述”字段为“…usersto…by/via…”格式。将“by/via”之后的部分截取出来,并利用开源分词工具(StandardAnalyzer)处理,得到若干个单词。
截取的漏洞描述字段内容为“leveraging administrative privileges andexecuting a crafted script”,得到的单词为(“leverage”,“administrative”,“privilege”,“execute”,“craft”,“script”)。
步骤4.3:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.8得到的普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P1表示。
对于步骤4.2得到的单词,“leverage”、“execute”、“craft”和“script”在步骤3.8得到的前提集为普通用户特权集对应的特征关键词中出现,将它们对应的TFIDFi值相加,所以P1=25.67.
步骤4.4:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.9得到访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P2表示。
步骤4.2得到的单词都没有在步骤3.9得到前提集为访问者特权集对应的特征关键词中出现,所以P2=0.
步骤4.5:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.10得到受限访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P3表示。
步骤4.2得到的单词都没有在步骤3.10得到前提集为受限访问者特权集对应的特征关键词中出现,所以P3=0。
步骤4.6:比较P1、P2和P3的值,选取最大值P1对应的普通用户特权集作为该条测试数据的前提特权集的值,所以该条漏洞数据的前提特权集字段的值为“user”。
步骤4.7:对测试数据中的“漏洞描述”字段进行处理。将“users to”到“by/via”之间的部分截取出来,并利用开源分词工具(StandardAnalyzer)处理,得到若干个单词。
截取的漏洞描述字段内容为“obtain Linux root access”,得到的单词为(“obtain”,“Linux”,“root”,“access”)。
步骤4.8:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.18得到的结果集为系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R1表示。
对于步骤4.7得到的单词,“root”、“obtain”、“access”在步骤3.18得到的结果集为系统管理员特权集对应的特征关键词中出现,将它们对应的TFIDFi值相加,所以R1=31.04。
步骤4.9:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.19得到的结果集为普通系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R2表示。
对于步骤4.7得到的单词,“access”在步骤3.19得到的结果集为普通系统管理员特权集对应的特征关键词中出现,将它们对应的TFIDFi值相加,所以R2=8.72.
步骤4.10:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.20得到的结果集为普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R3表示。
对于步骤4.7得到的单词,“access”在步骤3.20得到的结果集为普通用户特权集对应的特征关键词中出现,将它们对应的TFIDFi值相加,所以R3=0.63。
步骤4.11:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.21得到的结果集为访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R4表示。
步骤4.7得到的单词都没有在步骤3.21得到的结果集为访问者特权集对应的特征关键词中出现,所以R4=0.
步骤4.12:比较R1、R2、R3和R4的值,选取R1对应的系统管理员特权集作为该条测试数据的结果特权集的值,所以该条漏洞数据的结果特权集的值为“root”。
然后,重复步骤步骤4.1至4.12,对另外一条漏洞数据进行分类。漏洞数据的编号为CVE-2016-2207,漏洞描述字段为“...allows remote attackers to executearbitrary code or cause a denial of service(memory access violation)via acrafted RAR file that is mishandled during decompression.”
按照步骤4.2-4.6操作一次该条数据,得到最大值为P2=16.63,所以前提特权集的值为access;按照步骤4.7-4.12操作一次该条数据,得到最大值为R3=10.21,所以结果特权集的值为user。
比较漏洞CVE-2016-2207与漏洞CVE-2014-3390,漏洞CVE-2016-2207的前提特权集为access,结果特权集为user;漏洞CVE-2014-3390的前提特权集为user,结果特权集为root。对于一个远程访问者来说,特权集为access,不能直接利用漏洞CVE-2014-3390,但是该远程访问者可以先利用漏洞CVE-2016-2207使自己的特权集提升至user,然后就可以利用漏洞CVE-2016-2207,最终一个远程访问者通过一次多级攻击获取了系统的root权限。由此可以得出漏洞CVE-2016-2207与漏洞CVE-2014-3390是相关联的。
Claims (1)
1.一种支持漏洞关联性挖掘的漏洞自动分类方法,其特征在于:其具体操作步骤为:
步骤一、构建一个漏洞数据库,收集漏洞记录;
选取国家漏洞数据库NVD作为数据源,构建一个漏洞数据库;
所述漏洞数据库包括:通用漏洞CVE编号、通用漏洞评分系统CVSS评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、漏洞描述字段、前提特权集、结果特权集;
其中,通用漏洞CVE编号、通用漏洞评分系统CVSS评分、是否需要网络、获取容易程度、是否需要认证、机密性影响、完整性影响、可用性影响、漏洞描述字段字段是通过国家漏洞数据库直接获取的;前提特权集和结果特权集为空;
所述漏洞描述字段字段是用自然语言描述漏洞的特征,“漏洞描述字段”字段为“…users/attackers to…by/via…”格式;
步骤二、确定特权集类别;
特权集类别包括:系统管理员特权集、普通系统管理员特权集、普通用户特权集、访问者特权集、受限访问者特权集;
所述系统管理员特权集包含系统管理员所拥有的所有权限;系统管理员为拥有系统最高权限的用户帐号,系统管理员的权限为:管理系统设备、系统文件和系统进程,读写任意文件内容;攻击者利用系统管理员特权集造成的危害有:植入系统级木马,以虚假身份欺骗或直接追加、修改、删除、创建文件内容,造成系统不可恢复性崩溃;
所述普通系统管理员特权集包含系统管理员所拥有的部分权限;普通系统管理员的权限为:管理部分系统设备、系统文件和系统进程,读写部分系统文件内容;攻击者利用普通系统管理员特权集造成的危害有:通过追加、修改、删除、创建某些系统文件内容或系统进程内存空间的数据结构,造成系统某些文件看起来不可用、系统当机或拒绝服务;
所述普通用户特权集包含普通用户所拥有的所有权限;普通用户所拥有的权限为:在自己独立私有的资源空间内追加、修改、删除、创建个人文件;攻击者利用普通用户特权集造成的的危害有:植入用户级木马,修改普通用户的所有文件或进程空间的内容,导致用户崩溃或不可用;
所述访问者特权集包含受信任的系统远程访问者所拥有的所有权限;受信任的系统远程访问者所拥有的权限有:与系统交互数据、扫描系统信息;攻击者利用访问者特权集造成的危害有:帮助其他受限访问者用户完成身份验证或发送大量数据包造成系统内存溢出;
所述受限访问者特权集是指被系统防火墙隔离在外的不受信任的访问者所拥有的权限;不受信任的访问者仅拥有证实主机有效性的权限,不具备使用该系统的任何权限;攻击者利用受限访问者特权集不能对系统造成危害;
漏洞的前提特权集和结果特权集的取值为5个特权集类别中的一个;
步骤三、训练分类器;
针对步骤二所述的5个特权集类别,分别训练3个前提特权集训练器和4个结果特权集训练器;具体操作为:
步骤3.0:从步骤一中所述漏洞数据库中选取一部分漏洞记录,作为训练数据集;然后人工标注每条漏洞记录的前提特权集和结果特权集;
步骤3.1:从训练数据集中选取前提特权集为普通用户特权集的300条以上数据;
步骤3.2:对每条训练数据中的“漏洞描述字段”字段进行处理;“漏洞描述字段”字段为“…user/attackers to…by/via…”格式;将“by/via”之后的部分截取出来,存入文件d1中,每条训练数据占一行,文件d1的行数用符号J1表示;
步骤3.3:利用开源分词工具StandardAnalyzer对文件d1进行处理,统计每个单词出现的数量,文件d1中出现的单词的数量用符号I1表示;
步骤3.4:通过公式(1)计算单词的重要性;
其中,tfi,j表示第i个单词在第j行的重要性,i和j均为正整数,并且i∈[1,I1],j∈[1,J1];ni,j表示第i个单词在第j行中出现的次数;
步骤3.5:通过公式(2)计算第i个单词的逆向文件频率,用符号idfi表示;逆向文件频率用来度量单词的普遍性;
其中,ti表示第i个单词;|{j:ti∈rj}|表示文件d1包含单词ti的行数;
步骤3.6:通过公式(3)计算单词的权重得分;
其中,TFIDFi表示第i个单词的权重得分;
某一行的高词语频率,以及该词语在整个文件内的低行数频率,可以产生高权重的TFIDFi;因此,TFIDFi值倾向于过滤掉常见词语,保留重要的词语;
步骤3.7:将文件d1中出现的单词按照TFIDFi值降序排列,取前n个词作为特征关键词,n∈[5,12];记录特征关键词及对应的TFIDFi值;
步骤3.8:经过步骤3.1至3.7的操作,得到前提特权集为普通用户特权集对应的特征关键词及对应的TFIDFi值;
步骤3.9:从训练数据集中选取前提特权集为访问者特权集的300条以上数据;重复3.2至至3.7的操作,得到前提特权集为访问者特权集对应的特征关键词及对应的TFIDFi值;
步骤3.10:从训练数据集中选取前提特权集为受限访问者特权集的300条以上数据;重复3.2至至3.7的操作,得到前提特权集为受限访问者特权集对应的特征关键词及对应的TFIDFi值;
步骤3.11:从训练数据集中选取结果特权集为系统管理员特权集的300条以上数据;
步骤3.12:对每条训练数据中的“漏洞描述字段”字段进行处理;“漏洞描述字段”字段为“…user/attackers to…by/via…”格式;将“to”到“by/via”之间的部分截取出来,存入文件d2中,每条训练数据占一行,文件d2的行数用符号J2表示;
步骤3.13:利用开源分词工具StandardAnalyzer对文件d2进行处理,统计每个单词出现的数量,文件d2中出现的单词的数量用符号I2表示;
步骤3.14:通过公式(4)计算单词的重要性;
其中,tfi′,j′表示第i′个单词在第j′行的重要性,i′和j′均为正整数,并且i∈[1,I2],j∈[1,J2];ni′,j′表示第i′个单词在第j′行中出现的次数;
步骤3.15:通过公式(5)计算第i′个单词的逆向文件频率,用符号idfi′表示;逆向文件频率用来度量单词的普遍性;
其中,ti′表示第i′个单词;|{j′:ti′∈rj′}|表示文件d2包含单词ti′的行数;
步骤3.16:通过公式(6)计算单词的权重得分;
其中,TFIDFi′表示第i′个单词的权重得分;
步骤3.17:将文件d2中出现的单词按照TFIDFi′值降序排列,取前n个词作为特征关键词,n∈[5,12];记录特征关键词及对应的TFIDFi′值;
步骤3.18:经过步骤3.11至3.17的操作,得到结果特权集为系统管理员特权集对应的特征关键词及对应的TFIDFi′值;
步骤3.19:从训练数据集中选取结果特权集为普通系统管理员特权集的300条以上数据;重复3.12至至3.17的操作,得到结果特权集为普通系统管理员特权集对应的特征关键词及对应的TFIDFi′值;
步骤3.20:从训练数据集中选取结果特权集为普通用户特权集的300条以上数据;重复3.12至至3.17的操作,得到结果特权集为普通用户特权集对应的特征关键词及对应的TFIDFi′值;
步骤3.21:从训练数据集中选取结果特权集为访问者特权集的300条以上数据;重复3.12至至3.17的操作,得到结果特权集为访问者特权集对应的特征关键词及对应的TFIDFi′值;
步骤四、测试数据;
步骤4.1:从步骤一中所述漏洞数据库中选取一条测试数据;
步骤4.2:对测试数据中的“漏洞描述字段”字段进行处理;“漏洞描述字段”字段为“…user/attackers to…by/via…”格式;将“by/via”之后的部分截取出来,并利用开源分词工具StandardAnalyzer处理,得到若干个单词;
步骤4.3:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.8得到前提特权集为普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P1表示;
步骤4.4:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.9得到前提特权集为访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P2表示;
步骤4.5:对于步骤4.2得到的单词,依次查找每个单词是否在步骤3.10得到前提特权集为受限访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi值并求和,结果用符号P3表示;
步骤4.6:比较P1、P2和P3的值,选取最大值对应的特权集作为该条测试数据的前提特权集的值;
步骤4.7:对测试数据中的“漏洞描述字段”字段进行处理;“漏洞描述字段”字段为“…user/attackers to…by/via…”格式;将“to”到“by/via”之间的部分截取出来,并利用开源分词工具StandardAnalyzer处理,得到若干个单词;
步骤4.8:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.18得到结果特权集为系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R1表示;
步骤4.9:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.19得到结果特权集为普通系统管理员特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R2表示;
步骤4.10:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.20得到结果特权集为普通用户特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R3表示;
步骤4.11:对于步骤4.7得到的单词,依次查找每个单词是否在步骤3.21得到访问者特权集对应的特征关键词中出现,如果出现,则记录该特征关键词对应的TFIDFi′值并求和,结果用符号R4表示;
步骤4.12:比较R1、R2、R3和R4的值,选取最大值对应的特权集作为该条测试数据的结果特权集的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710052203.9A CN106897625B (zh) | 2017-01-22 | 2017-01-22 | 支持漏洞关联性挖掘的漏洞自动分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710052203.9A CN106897625B (zh) | 2017-01-22 | 2017-01-22 | 支持漏洞关联性挖掘的漏洞自动分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106897625A CN106897625A (zh) | 2017-06-27 |
CN106897625B true CN106897625B (zh) | 2019-08-06 |
Family
ID=59199079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710052203.9A Active CN106897625B (zh) | 2017-01-22 | 2017-01-22 | 支持漏洞关联性挖掘的漏洞自动分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106897625B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688653B (zh) * | 2017-09-01 | 2020-12-01 | 武汉倚天剑科技有限公司 | 基于网络浅层数据的用户行为数据挖掘系统及其方法 |
CN107977225B (zh) * | 2017-12-06 | 2020-11-10 | 国网江苏省电力有限公司电力科学研究院 | 一种安全漏洞的统一描述方法和描述系统 |
CN109255241B (zh) * | 2018-08-31 | 2022-04-22 | 国鼎网络空间安全技术有限公司 | 基于机器学习的Android权限提升漏洞检测方法及系统 |
CN110263566B (zh) * | 2019-06-29 | 2020-12-22 | 西安交通大学 | 一种海量日志提权行为检测及分类方法 |
CN110417751B (zh) * | 2019-07-10 | 2021-07-02 | 腾讯科技(深圳)有限公司 | 一种网络安全预警方法、装置和存储介质 |
CN110502902A (zh) * | 2019-08-07 | 2019-11-26 | 杭州海康威视数字技术股份有限公司 | 一种漏洞分类方法、装置及设备 |
CN110768977B (zh) * | 2019-10-21 | 2022-02-25 | 中国民航信息网络股份有限公司 | 一种安全漏洞信息的抓取方法及系统 |
CN111177016B (zh) * | 2020-04-14 | 2020-08-21 | 四川新网银行股份有限公司 | 软件测试缺陷的管理方法 |
CN111881451B (zh) * | 2020-07-16 | 2022-09-30 | 哈尔滨工业大学(威海) | 一种工业控制系统的漏洞关联挖掘方法 |
CN112257077A (zh) * | 2020-11-11 | 2021-01-22 | 福建奇点时空数字科技有限公司 | 一种基于深度学习的自动化漏洞挖掘方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853277A (zh) * | 2010-05-14 | 2010-10-06 | 南京信息工程大学 | 一种基于分类和关联分析的漏洞数据挖掘方法 |
CN105930360A (zh) * | 2016-04-11 | 2016-09-07 | 云南省国家税务局 | 一种基于Storm流计算框架文本索引方法及系统 |
CN106156372A (zh) * | 2016-08-31 | 2016-11-23 | 北京北信源软件股份有限公司 | 一种互联网网站的分类方法及装置 |
EP2651099B1 (en) * | 2012-04-12 | 2016-12-28 | Netflix, Inc. | Method and system for improving security and reliability in a networked application environment |
-
2017
- 2017-01-22 CN CN201710052203.9A patent/CN106897625B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853277A (zh) * | 2010-05-14 | 2010-10-06 | 南京信息工程大学 | 一种基于分类和关联分析的漏洞数据挖掘方法 |
EP2651099B1 (en) * | 2012-04-12 | 2016-12-28 | Netflix, Inc. | Method and system for improving security and reliability in a networked application environment |
CN105930360A (zh) * | 2016-04-11 | 2016-09-07 | 云南省国家税务局 | 一种基于Storm流计算框架文本索引方法及系统 |
CN106156372A (zh) * | 2016-08-31 | 2016-11-23 | 北京北信源软件股份有限公司 | 一种互联网网站的分类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106897625A (zh) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106897625B (zh) | 支持漏洞关联性挖掘的漏洞自动分类方法 | |
CN109583193A (zh) | 目标攻击的云检测、调查以及消除的系统和方法 | |
CN107273752B (zh) | 基于词频统计和朴素贝叶斯融合模型的漏洞自动分类方法 | |
CN109446817A (zh) | 一种大数据检测与审计系统 | |
CN111881451B (zh) | 一种工业控制系统的漏洞关联挖掘方法 | |
Zhang et al. | An empirical study of web resource manipulation in real-world mobile applications | |
Elmas et al. | Misleading repurposing on twitter | |
Alhassan et al. | A fuzzy classifier-based penetration testing for web applications | |
Dorofeev et al. | Ethical hacking training | |
Mundie et al. | Toward an ontology for insider threat research: Varieties of insider threat definitions | |
Chen et al. | Detection, traceability, and propagation of mobile malware threats | |
Srinivasa et al. | Towards systematic honeytoken fingerprinting | |
Dugyala et al. | [Retracted] Analysis of Malware Detection and Signature Generation Using a Novel Hybrid Approach | |
RU2481633C2 (ru) | Система и способ автоматического расследования инцидентов безопасности | |
Magklaras et al. | Insider threat specification as a threat mitigation technique | |
Sadotra et al. | SQL Injection Impact on Web Server and Their Risk Mitigation Policy Implementation Techniques: An Ultimate solution to Prevent Computer Network from Illegal Intrusion. | |
Salih et al. | Spyware injection in android using fake application | |
Zhao et al. | Large-scale detection of privacy leaks for BAT browsers extensions in China | |
Falah et al. | Visual representation of penetration testing actions and skills in a technical tree model | |
Villanueva-Miranda et al. | Detecting malware activity using public search data | |
Antoniol | Keynote paper: Search based software testing for software security: Breaking code to make it safer | |
Ladisa et al. | On the Feasibility of Cross-Language Detection of Malicious Packages in npm and PyPI | |
Gaur et al. | Prevention of Security Attacks in Cloud Computing | |
CN110933064A (zh) | 确定用户行为轨迹的方法及其系统 | |
Walls | Inference-based forensics for extracting information from diverse sources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |