CN107194260A - 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 - Google Patents
一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 Download PDFInfo
- Publication number
- CN107194260A CN107194260A CN201710261619.1A CN201710261619A CN107194260A CN 107194260 A CN107194260 A CN 107194260A CN 201710261619 A CN201710261619 A CN 201710261619A CN 107194260 A CN107194260 A CN 107194260A
- Authority
- CN
- China
- Prior art keywords
- cve
- data
- mail data
- labeled
- 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.)
- Pending
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本发明公开了一种基于机器学习的Linux‑Kernel关联CVE智能预测方法。本方法为:1)从Linux讨论邮件数据发布网站上爬取设定时间段的数据并根据邮件标题按主题分类存储;2)对爬取的数据进行标注,即按照讨论主题内容与CVE描述内容的吻合度将讨论主题标注为CVE相关或CVE不相关;3)随机抽取多个标注为CVE相关的样本数据和多个标注为CVE不相关的样本数据,采用机器学习算法进行训练,得到一CVE漏洞预测模型;4)利用该CVE漏洞预测模型对新的邮件数据进行自动化预测,得到该邮件数据的预测结果和结果说明。该方法可以及早发现内核中可能存在的漏洞信息,并给出判定为可能导致漏洞的详细说明供参考。
Description
技术领域
本发明属于信息技术、计算机软件技术领域,具体涉及一种基于机器学习的Linux-Kernel关联CVE职能预测方法。
背景技术
Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客Linus Torvalds为尝试在英特尔x86架构上提供免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。
由于Linux的开源性,针对Linux进行漏洞分析预测的方法层出不穷,主要包括静态源码分析,动态运行时分析。但到目前为止,还没有基于机器学习的对Linux讨论邮件数据进行分析从而对Linux相关漏洞进行自动化预测的方法。因此本发明为从Linux讨论邮件数据中进行自动化漏洞预测提供了一种方法,能够更早的发现漏洞,并且给出漏洞预测结果的详细说明,供安全人员参考。
发明内容
本发明的目的在于填补目前对Linux讨论邮件数据进行分析从而实现对Linux相关漏洞进行自动化预测的技术空白,提出一种通过机器学习的方法从Linux讨论邮件数据中建立模型,从而对新的邮件数据进行自动化漏洞预测的方法,该方法可以及早发现Linux内核中可能存在的漏洞信息,并给出判定为可能导致漏洞的详细说明供安全人员参考。
为实现上述目的,本发明采用如下技术方案:
一种基于机器学习的Linux-Kernel关联CVE(Common Vulnerabilities&Exposures,公共漏洞和暴露)智能预测方法,其步骤包括:
1)从Linux讨论邮件数据发布网站(http://lkml.iu.edu/hypermail/linux/kernel/)上爬取1995.06.01~2015.12.31的全部数据,根据邮件讨论主题存入mysql数据库;
2)对数据进行人工标注,按照讨论主题内容与CVE描述内容的吻合度,CVE中提供的参考链接中的文本描述内容,使用LSI算法进行文本相似度计算的计算结果等信息将讨论主题人工标注为CVE相关和CVE不相关,标注过程中对每一条数据进行三次标注,若三次标注结果不一致,则重新标注该条数据以确保标注信息的准确性;
3)随机抽取1/2的CVE相关讨论主题邮件数据和随机抽取部分CVE不相关讨论主题邮件数据,采用机器学习的SVM算法进行训练,得到CVE漏洞预测分类模型,在SVM模型中采用字符串核函数(string kernel function)进行训练;
4)使用剩余1/2的CVE相关讨论主题和随机抽取部分CVE不相关讨论主题对第二步训练获得的SVM模型进行测试和调优,具体调优过程为根据测试数据集上的准确率和召回率对模型参数不断进行改变,以获得最好结果的最终模型为准;
5)提供自动化的CVE漏洞预测模型,对新的邮件数据进行自动化预测,提供预测结果和结果说明,供安全人员参考。
进一步地,步骤1)爬取数据时需使用phpquery将每封邮件的标题、详细内容、发送者、发送时间存入mysql数据库。
进一步地,步骤2)对数据进行人工标注时需综合考虑CVE的描述信息,CVE的参考链接中的文本描述信息,以及使用LSI算法对邮件数据和CVE描述信息进行文本相似度计算的结果信息。
进一步地,步骤3)随机抽取的CVE不相关主题数量为CVE相关主题数量的2倍。
进一步的,步骤3)中对SVM模型进行训练时数据预处理生成每条邮件数据的特征向量的方法为:首先对所有的邮件进行分词,停词,去重后建立一个大词袋,按字典顺序排序,然后对单条邮件数据进行分词、停词,统计词袋中每一个词在该单条邮件出现的频次,将词袋中对应词的值置为词出现的频次即得到该条邮件数据的特征向量。如:假设已经爬取到n条邮件数据,记为M={m(1),m(2),m(3)....m(n)},对M中的每一个元素进行分词,停词,记m(i)经过分词,停词后得到的关键词为集合w(i),则大词袋W=w(1)∪w(2)∪w(3)∪....∪w(n),对W按字典顺序进行排序后得到WS。则对第i条邮件数据的特征向量λ(i)有,λ(i)=[λ(i)(1),λ(i)(2),λ(i)(3)……λ(i)(|WS|)],其中|WS|表示WS中元素的个数,λ(i)(j)表示第i条邮件数据对应关键词j的特征值。λ(i)(j)的具体取值方法为,若关键词j在邮件i中出现,则λ(i)(j)=P,P表示关键词j在邮件i中出现的频次;若关键词j不在邮件i中出现,则λ(i)(j)=0。进一步地,步骤4)对SVM模型进行测试和调优的方法为不断重复步骤3)和步骤4)直到取得较好的测试结果。
进一步地,步骤5)所述的漏洞预测模型即为不断重复步骤3)和步骤4)后获得的SVM模型,预测结果分为CVE相关和CVE不相关两种,结果说明包括各个特征对预测结果造成的影响。
进一步地,步骤5)所述结果说明地生成方式采用法向量和偏置项与新邮件特征向量的乘积过程每一次乘积结果进行保存来生成。即对f(x)=wx+b的内积乘法每一次乘积结果进行保存,利用保存的乘积结果来说明预测结果中每一项带来的影响。如:假设新的邮件数据经过数据预处理后得到的特征向量为x=(0,0,0,2,0,1,1,1),经过步骤3)和步骤4)训练后得到的SVM模型的法向量w=(0.3,0.4,0.5,0.3,0.4,0.5,0.3,0.4),偏置项b=0.5,则保存的中间乘积为[0,0,0,0.6,0,0.5,0.3,0.4],然后对中间乘积结果按照大小从大到小进行排序,得到[0.6,0.5,0.4,0.3,0,0,0,0],设0.6对应单词为a,0.5对应单词为b,0.4对应单词为c,0.3对应单词为a,因为f(x)=2.3>1,所以判定为CVE相关,则预测结果中每一项带来的影响的说明格式为,由于邮件数据中出现了a两次,b一次,c一次,d一次,对判定结果带来的影响分别为(0.6+0.5)/2.3,(0.5+0.5)/2.3,(0.4+0.5)/2.3,(0.3+0.5)/2.3,所以该条邮件数据可能导致CVE漏洞,请密切关注。
进一步地,特征是指主题的发起者,主题回复的时间间隔,主题回复的回复者,主题的邮件内容关键词,主题的回复邮件内容关键词。
与现有技术相比,本发明的积极效果为:
本发明提出一种基于机器学习的Linux-Kernel关联cve智能预测方法。通过对Linux讨论邮件数据进行人工标注后,使用SVM的机器学习方法进行模型训练,从而实现对新的讨论邮件数据进行自动化分类为CVE相关和CVE不相关两类邮件,并给出分类结果的说明,为从Linux讨论邮件数据中及早发现漏洞信息提供了一种方法。
附图说明
图1是实施例的基于机器学习的Linux-Kernel关联cve智能预测方法的流程图。
图2是实施例的CVE智能预测的各个处理模块示意图。
图3是实施例中对爬取的邮件数据进行人工标注的流程图。
图4是实施例中SVM模型的训练流程图。
具体实施方式
下面结合附图,通过实施例对本发明作进一步的说明。
本实施例的基于机器学习的Linux-Kernel关联cve智能预测方法,其总体流程如图1所示,各个处理模块如图2所示,该方法主要包括以下步骤:
1)爬取Linux讨论邮件数据,并进行人工标注为CVE相关和CVE不相关
具体地,对爬取的Linux讨论邮件数据进行人工标注,形成训练数据集的步骤流程如图3所示,具体说明如下:
1a)提取讨论主题下的所有邮件的标题,发送者,发送时间,邮件内容的关键词提取、各个回复之间的间隔时间以及邮件所在的网页链接,转到1b)。
1b)判断邮件所在网页链接是否在CVE参考链接中,是则标注为CVE相关,否则转到1c)。
1c)人工阅读邮件正文内容和CVE的描述信息,根据邮件内容所述事实和CVE描述信息内容判定该讨论主题是否与CVE相关
2)利用1)标注得到的数据集,训练SVM模型。
具体地,训练SVM模型的步骤流程如图4所示,具体说明如下:
2a)根据1)中的邮件讨论数据标注结果,随机抽取1/2CVE相关邮件和2倍于CVE相关邮件的CVE不相关邮件形成训练集,转到2b)。
2b)使用1)中邮件讨论数据中随机抽取1/2剩余部分和2倍于CVE相关邮件的CVE不相关邮件形成测试集,转到2c)。
2c)对训练集使用机器学习的SVM算法进行模型训练,得到中间的SVM模型,转到2d)
2d)使用2b)形成的测试集对2c)得到的临时SVM模型进行测试,对测试结果进行评估,若召回率和准确率达到满意值则该SVM模型即为最终SVM模型,否则转到2a)。
3)利用2)得到的SVM模型对新的Linux讨论主题下的邮件进行自动化分类和自动化形成分类结果说明;
具体地,自动化分类和自动化分类结果说明的步骤流程如图2所示,具体说明如下:
3a)提取讨论主题下的所有邮件的标题,发送者,发送时间,邮件内容的关键词提取、各个回复之间的间隔时间以及邮件所在的网页链接,转到3b)。
3b)利用3a)得到的数据和2)得到的SVM模型形成特征向量,转到3c)。
3c)将3b)得到的特征向量作为输入输入给SVM模型,得到预测结果,转到3d)。
3d)对特征向量中各个特征对预测结果带来的影响进行计算,并形成预测结果说明。
以上实施例仅用于说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (9)
1.一种基于机器学习的Linux-Kernel关联CVE智能预测方法,其步骤为:
1)从Linux讨论邮件数据发布网站上爬取设定时间段的数据并根据邮件讨论主题分类存储;
2)对爬取的数据进行标注,即按照讨论主题内容与CVE描述内容的吻合度将讨论主题标注为CVE相关或CVE不相关;
3)随机抽取多个标注为CVE相关的样本数据和多个标注为CVE不相关的样本数据,采用机器学习算法进行训练,得到一CVE漏洞预测模型;
4)利用该CVE漏洞预测模型对新的邮件数据进行自动化预测,得到该邮件数据的预测结果和结果说明。
2.如权利要求1所述的方法,其特征在于,步骤3)中,将进行训练的方法为:首先对样本数据预处理生成每条邮件数据的特征向量,然后采用机器学习算法对特征向量进行训练;其中,生成所述特征向量的方法为:首先建立一词袋,按照字典顺序排序;然后对每条邮件数据进行分词、停词,并将各邮件数据的分词按照分词的首字母顺序存储到该词袋中;然后统计词袋中每一个词在一条邮件数据中出现的频次,将该词袋中对应词的值置为该词出现的频次,得到该条邮件数据的特征向量。
3.如权利要求2所述的方法,其特征在于,所述机器学习算法为SVM算法。
4.如权利要求1所述的方法,其特征在于,所述预测结果分为CVE相关和CVE不相关;所述结果说明包括各个特征对预测结果造成的影响。
5.如权利要求1所述的方法,其特征在于,得到所述结果说明的方法为:对f(x)=wx+b进行内积乘法并保存每一次中间乘积结果;其中,x为该新的邮件数据的特征向量,w为该特征向量x经CVE漏洞预测模型训练后得到的法向量,b为该特征向量x经CVE漏洞预测模型训练后得到的偏置项;然后根据中间乘积结果对应的分词以及分词在该新的邮件数据中出现次数确定判定结果带来的影响,即所述结果说明。
6.如权利要求1~5任一所述的方法,其特征在于,步骤2)中,根据CVE描述信息、CVE的参考链接中的文本描述信息以及邮件数据与CVE描述信息的文本相似度确定讨论主题内容与CVE描述内容的吻合度,对讨论主题进行标注。
7.如权利要求6所述的方法,其特征在于,使用LSI算法计算邮件数据与CVE描述信息的文本相似度。
8.如权利要求1所述的方法,其特征在于,所述步骤3)中,使用剩余标注的样本数据对该CVE漏洞预测模型进行测试和调优,得到优化后的CVE漏洞预测模型。
9.如权利要求1所述的方法,其特征在于,随机抽取的CVE不相关的样本数据为CVE相关的样本数据的2倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261619.1A CN107194260A (zh) | 2017-04-20 | 2017-04-20 | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710261619.1A CN107194260A (zh) | 2017-04-20 | 2017-04-20 | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107194260A true CN107194260A (zh) | 2017-09-22 |
Family
ID=59871803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710261619.1A Pending CN107194260A (zh) | 2017-04-20 | 2017-04-20 | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107194260A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871688A (zh) * | 2018-09-21 | 2019-06-11 | 中国人民解放军国防科技大学 | 漏洞威胁程度评估方法 |
CN109933991A (zh) * | 2019-03-20 | 2019-06-25 | 杭州拜思科技有限公司 | 一种智能合约漏洞检测的方法、装置 |
CN110147673A (zh) * | 2019-03-29 | 2019-08-20 | 中国科学院信息工程研究所 | 一种基于文本和源代码符号提取的漏洞位置标注方法和装置 |
CN110378126A (zh) * | 2019-07-26 | 2019-10-25 | 北京中科微澜科技有限公司 | 一种漏洞检测方法及系统 |
CN110502902A (zh) * | 2019-08-07 | 2019-11-26 | 杭州海康威视数字技术股份有限公司 | 一种漏洞分类方法、装置及设备 |
CN111723182A (zh) * | 2020-07-10 | 2020-09-29 | 云南电网有限责任公司曲靖供电局 | 一种用于漏洞文本的关键信息抽取方法及装置 |
CN115225348A (zh) * | 2022-06-29 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 一种获取网络威胁情报的方法、装置、介质及设备 |
US11620577B2 (en) | 2020-07-01 | 2023-04-04 | International Business Machines Corporation | Multi-modal data explainer pipeline |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227435A (zh) * | 2008-01-28 | 2008-07-23 | 浙江大学 | 基于Logistic回归的中文垃圾邮件过滤方法 |
CN101345720A (zh) * | 2008-08-15 | 2009-01-14 | 浙江大学 | 基于部分匹配预测的垃圾邮件分类方法 |
CN101566612A (zh) * | 2009-05-27 | 2009-10-28 | 复旦大学 | 一种污水化学需氧量软测量方法 |
CN102708362A (zh) * | 2012-05-14 | 2012-10-03 | 南京光华科技发展有限公司 | 一种虹膜识别法 |
CN103106262A (zh) * | 2013-01-28 | 2013-05-15 | 新浪网技术(中国)有限公司 | 文档分类、支持向量机模型生成的方法和装置 |
CN103207905A (zh) * | 2013-03-28 | 2013-07-17 | 大连理工大学 | 一种基于目标文本的计算文本相似度的方法 |
CN105551485A (zh) * | 2015-11-30 | 2016-05-04 | 讯飞智元信息科技有限公司 | 语音文件检索方法及系统 |
CN106446011A (zh) * | 2016-08-24 | 2017-02-22 | 东软集团股份有限公司 | 数据处理的方法及装置 |
-
2017
- 2017-04-20 CN CN201710261619.1A patent/CN107194260A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227435A (zh) * | 2008-01-28 | 2008-07-23 | 浙江大学 | 基于Logistic回归的中文垃圾邮件过滤方法 |
CN101345720A (zh) * | 2008-08-15 | 2009-01-14 | 浙江大学 | 基于部分匹配预测的垃圾邮件分类方法 |
CN101566612A (zh) * | 2009-05-27 | 2009-10-28 | 复旦大学 | 一种污水化学需氧量软测量方法 |
CN102708362A (zh) * | 2012-05-14 | 2012-10-03 | 南京光华科技发展有限公司 | 一种虹膜识别法 |
CN103106262A (zh) * | 2013-01-28 | 2013-05-15 | 新浪网技术(中国)有限公司 | 文档分类、支持向量机模型生成的方法和装置 |
CN103207905A (zh) * | 2013-03-28 | 2013-07-17 | 大连理工大学 | 一种基于目标文本的计算文本相似度的方法 |
CN105551485A (zh) * | 2015-11-30 | 2016-05-04 | 讯飞智元信息科技有限公司 | 语音文件检索方法及系统 |
CN106446011A (zh) * | 2016-08-24 | 2017-02-22 | 东软集团股份有限公司 | 数据处理的方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871688A (zh) * | 2018-09-21 | 2019-06-11 | 中国人民解放军国防科技大学 | 漏洞威胁程度评估方法 |
CN109933991A (zh) * | 2019-03-20 | 2019-06-25 | 杭州拜思科技有限公司 | 一种智能合约漏洞检测的方法、装置 |
CN110147673A (zh) * | 2019-03-29 | 2019-08-20 | 中国科学院信息工程研究所 | 一种基于文本和源代码符号提取的漏洞位置标注方法和装置 |
CN110378126A (zh) * | 2019-07-26 | 2019-10-25 | 北京中科微澜科技有限公司 | 一种漏洞检测方法及系统 |
CN110378126B (zh) * | 2019-07-26 | 2021-03-26 | 北京中科微澜科技有限公司 | 一种漏洞检测方法及系统 |
CN110502902A (zh) * | 2019-08-07 | 2019-11-26 | 杭州海康威视数字技术股份有限公司 | 一种漏洞分类方法、装置及设备 |
US11620577B2 (en) | 2020-07-01 | 2023-04-04 | International Business Machines Corporation | Multi-modal data explainer pipeline |
CN111723182A (zh) * | 2020-07-10 | 2020-09-29 | 云南电网有限责任公司曲靖供电局 | 一种用于漏洞文本的关键信息抽取方法及装置 |
CN111723182B (zh) * | 2020-07-10 | 2023-12-08 | 云南电网有限责任公司曲靖供电局 | 一种用于漏洞文本的关键信息抽取方法及装置 |
CN115225348A (zh) * | 2022-06-29 | 2022-10-21 | 北京天融信网络安全技术有限公司 | 一种获取网络威胁情报的方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107194260A (zh) | 一种基于机器学习的Linux‑Kernel关联CVE智能预测方法 | |
CN105426356B (zh) | 一种目标信息识别方法和装置 | |
CN110443274B (zh) | 异常检测方法、装置、计算机设备及存储介质 | |
Omar et al. | Robust natural language processing: Recent advances, challenges, and future directions | |
CN109413023A (zh) | 机器识别模型的训练及机器识别方法、装置、电子设备 | |
CN108170678A (zh) | 一种文本实体抽取方法与系统 | |
Berrar | Learning from automatically labeled data: case study on click fraud prediction | |
Shanti et al. | A novel implementation of an ai-based smart construction safety inspection protocol in the uae | |
CN109739989A (zh) | 文本分类方法和计算机设备 | |
Yang et al. | Out-of-distribution detection with semantic mismatch under masking | |
Sheikh et al. | Untargeted white-box adversarial attack to break into deep learning based COVID-19 monitoring face mask detection system | |
Olaleye et al. | An ensemble predictive analytics of COVID-19 infodemic tweets using bag of words | |
Goyal et al. | Detection of fake accounts on social media using multimodal data with deep learning | |
Di et al. | Learning automata based SVM for intrusion detection | |
Haque et al. | Security vulnerability in face mask monitoring system | |
Patching et al. | A supervised learning process to validate online disease reports for use in predictive models | |
Liu et al. | SeInspect: Defending model stealing via heterogeneous semantic inspection | |
Sun et al. | A comparison study of VAE and GAN for software fault prediction | |
Fu et al. | Predicting the popularity of tags in stackexchange qa communities | |
Kansal et al. | Study on Real World Applications of SVM | |
Srivastava | Real time fake news detection using machine learning and NLP | |
Ahmad et al. | Effects of contact network models on stochastic epidemic simulations | |
Valpadasu et al. | Machine Learning based Spam Comments Detection on YouTube | |
Lakhera et al. | Face Mask Detection for Preventing the Spread of Covid-19 using Knowledge Distillation | |
Slini et al. | Correlation of air pollution and meteorological data using neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170922 |
|
RJ01 | Rejection of invention patent application after publication |