基于机器学习的网络漏洞静态检测方法

2021-10-18 00:59刘银沈辉
电脑知识与技术 2021年26期
关键词:机器学习

刘银 沈辉

摘要:为了提高网络漏洞静态检测的准确性,设计一个基于机器学习的网络漏洞静态检测方法。首先对网络中的数据进行预处理,将其转化为序列表示,对网络数据特征量化及特征选择,并对漏洞序列相似度计算,最后采用机器学习的方法对昂罗漏洞静态检测。实验以检测准确性与检测时间作为对比对象,结果表明,此次研究的基于机器学习的网络漏洞静态检测方法较传统方法检测准确性高,并且检测时间少,满足了网络漏洞静态检测方法的设计需求。

关键词:机器学习;网络漏洞;静态检测;

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2021)26-0042-03

开放科学(资源服务)标识码(OSID):

机器学习是一种科学研究,其中计算机系统依靠模式和推理所用的算法和统计模型来有效地完成特定的任务,而无须明确的指令。在没有明确规划任务执行的情况下,机器学习算法根据样本数据建立被称为“训练数据”的数学模型来进行预测或决策。在电子邮件过滤和计算机视觉等多种应用中,机器学习算法被广泛使用,而在这些应用中,无法开发执行特定任务指令的算法。基于机器学习这一特性,对网络漏洞静态检测方法进行设计。

1 网络数据预处理

所采集的网络漏洞不能直接聚类,需要在序列聚类之前对数据进行预处理,将其转化为序列表示[1]。具体方法如下:

软件目标代码的反汇编,以形成更易于理解和分析的反汇编代码,接着将产生软件漏洞的代码从反汇编代码中提取出网络漏洞的特征序列[2]。所得到的漏洞特征序列是有长有短的,因此如何度量不同长度的漏洞序列之间的相似性就显得至关重要。在收集已知漏洞信息后,建立网络漏洞特征库,在有漏洞需要检测的情况下,通过与数据库中漏洞的特征进行比较,确定漏洞类型。在漏洞特征库中,漏洞以序列的形式被存储,每一个序列由组成漏洞的基本事件组成[3]。

缺陷序列是从网络反汇编代码中提取的一组导致网络缺陷的指令,它们是一系列软件漏洞的特征序列,缺陷序列数据库即为网络漏洞序列数据库[4]。

当创建漏洞模式库时,通过定义漏洞父类和漏洞子类来表示漏洞序列类型,通过定义原子代码类来表示汇编代码段,从而生成产生漏洞的行为。

2 网络数据特征量化及特征选择

特征处理模块的主要任务是处理原始特征并获取标准数据,适合于训练机器学习算法。特性处理的关键在于特性的量化与选取[5]。其具体过程如下:

特征量化:由于存储在数据库中的特征都是网络的原始特征,不能直接对特征进行分析和输入算法,所以特征量化部分的主要工作就是将原始特征转换成数据分析包或机器学习算法可以分析的特征向量。数字特征不需要量化就可以直接,作为程序的输入,而分类、文本特征则需要根据具体情况转换成数字特征[6]。在目标向量方面,由于本文旨在于检测网络中是否存在漏洞,样本主要分为0和1两种类型,因此样本标签采用0或1表示。最终,特征量化阶段将为每个网络样本特征形成一个[m]维的特征向量。由全部样本特征向量组成的数据集将存储为 CSV文件格式,该文件的第一行是选择的特征属性名,然后是每种行为的样本特征向量。储存方式的选择主要考虑数据分析库的功能,可直接装载 CSV文件,便于特征分析和训练。

特征选择:在所用特征数达到一定值的情况下,模型精度开始下降。对于神经网络模型,如果在训练过程中使用了大量的特征,但是样本很少,很容易导致模型的过度拟合,所以需要进行特征选择。该方法首先根据已知漏洞知识和漏洞之间的高度相关性,构造漏洞特征子集,然后根据特征子集中所包含的特征子数目选择特征选择方法。

3 漏洞序列相似度计算

软体攻击顺序是有序基本事件的集合,构成序列的基本事件,以及它们发生的次序,影响着序列的相似性。在两个序列中,如果基本事件是相同的,但基本事件顺序不同,则它们之间的相似度就会降低。相反,如果两个序列中某一部分的基本事件的次序相同,组成该序列的基本事件也大不相同,则这两个序列之间的相似度也可能很低,这就是说,它们表示不同类型的漏洞。

我们必须同时考虑序列中所包含的基本事件和事件的顺序。将漏洞序列的全局相似度记作:

[G=max∑Tj=1INjn2j-n1jmaxS1,S2]                   (1)

公式(1)中,[S1]、[S2]分别代表软件漏洞序列,[∑Tj=1INj]代表第[N]个基本时间的集合。

计算局部相似度,局部相似度反映了基本事件序列中各个漏洞序列之间的相似程度,由全局相似度和局部相似度给出的漏洞序列总体相似度为:

[GLSMS1,S2=q×LSimS1,S2]               (2)

公式(2)中,[q]代表参数相似度衡量参数。

易攻擊的低熵序列最有可能成为序列聚类的中心,以此通过上述过程完成漏洞序列相似度的计算,为网络漏洞检测提供基础依据。

4 网络漏洞静态检测实现

在上述特征检测的基础上,对网络漏洞静态检测,对可能被劫持的网络数据来说,它们被认为是暴露的网络内容,如果这些危险的组件能够访问敏感设备,或者该组件能够通过调用应用程序中的其他接口或组件访问网络中的敏感数据,危险的组件就会被恶意应用程序利用,使恶意应用程序有可能访问、获取甚至修改应用程序关键区域的敏感数据。

基于内容跟踪和风险识别,并以自编码网络为基础构建支持向量机入侵检测模型,运用RBM算法实现高维非线性原始数据向低维度的转变,由此形成了一个双向映射结构,联通了高维空间与低维空间之间,利于数据的映射传输,运用BP算法将高维数据信息转化为低位数据,得到相应的低维表示。

猜你喜欢
机器学习
基于词典与机器学习的中文微博情感分析
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
下一代广播电视网中“人工智能”的应用
基于支持向量机的金融数据分析研究
基于Spark的大数据计算模型
基于朴素贝叶斯算法的垃圾短信智能识别系统
基于图的半监督学习方法综述
机器学习理论在高中自主学习中的应用
极限学习机在图像分割中的应用