本文为清华大学计算机系团队于2017年发表于计算机学报的一篇文章,作者为张蕾,崔勇,刘静,江勇和吴建平。

摘要

文章首先阐述机器学习技术在网络空间安全应用研究中的应用流程,然后从系统安全,网络安全和应用安全三个层面介绍了机器学习在网络空间安全领域中的解决方案,归纳了这些解决方案的安全特征及常用的机器学习算法,最后总结。

目录

一、引言

二、机器学习在网络空间安全中的应用流程

2.1 安全问题抽象

2.2 数据采集

2.3 数据预处理及特征提取

2.4 模型构建

2.5 模型验证

2.6 效果评估

三、机器学习在系统安全研究中的应用

3.1 芯片安全

3.1.1 劣质芯片检测

3.1.2 硬件木马检测

3.1.3 PUF攻击

3.2 系统硬件及物理环境安全

3.2.1 设备身份认证

3.2.2 物理层边信道攻击

3.2.3 伪基站检测

3.3 系统软件安全

3.3.1 漏洞分析与挖掘

3.3.2 恶意代码分析

3.3.3 用户身份认证

3.3.4 虚拟化安全

四、机器学习在网络安全研究中的应用

4.1 网络基础设施安全

4.1.1 BGP的异常检测

4.1.2 恶意域名检测

4.2 网络安全检测

4.2.1 僵尸网络的检测

 4.2.2 网络入侵检测技术

4.2.3 恶意加密流量识别

五、机器学习在应用安全研究中的应用

5.1 应用软件安全

5.1.1 垃圾邮件的检测

5.1.2 基于URL的恶意网页识别

5.1.3 恶意PDF检测

5.2 社会网络安全

5.2.1 社交网络异常账号检测

5.2.2 信用卡欺诈检测

5.2.3 取证分析

5.2.4 网络舆情

六、总结与展望


一、引言

(1)随着互联网,云计算,大数据等技术的迅猛发展,网络环境日益复杂,网络空间安全复杂度越来越高,数据维度不断增加,传统的分析问题解决问题的方法不再实用。机器学习技术开始发生作用。

(2)传统方法问题:例如依靠安全专家人工修复方法无法解决零日漏洞问题;传统依靠固定规则的网络入侵检测方法,面对不断增加的数据维度和复杂的网络行为,出现大量误判警告和判别时间过长;依靠固定规则或黑白名单规律的垃圾邮件检测方法存在检测效率低,规则更新不及时等问题。

(3)除了边信道攻击研究外,机器学习网络空间安全基础,密码学及其应用作为理论基础方法的研究较少涉及,而在系统安全,网络安全,应用安全三个方面有大量研究成果。

          ——系统安全:芯片,系统硬件物理环境,系统软件

          ——网络安全:网络基础设施,网络安全检测

          ——应用安全:应用软件安全,社会网络安全

(4)本文结构如下图:

          ——本文第2节剖析了机器学习的一般应用流程:问题定义,数据采集,数据预处理及特征提取,模型构建,验证,效果评估

          ——3、4、5节从系统安全,网络安全和应用安全三个研究领域,按照上述机器学习的一般流程,对机器学习在网络安全领域的应用进行分析和讨论,典型的应用如图所示。着重介绍技术思路和机器学习算法关键技术。

总结

第一节引言介绍了传统方法存在的问题,以及机器学习为什么能够应用,重点总结了机器学习在网络安全方面的应用都在哪些方面,分为三个方面:

表1 机器学习在网络空间安全中的典型应用
应用安全应用软件安全垃圾邮件检测
基于URL的恶意网页识别
恶意PDF检测
社会网络安全社交网络异常账号检测
信用卡欺诈检测
取证分析
网络舆情
网络安全网络基础设施安全BGP异常检测
恶意域名检测
网络安全检测僵尸网络检测
网络入侵检测技术
恶意加密流量识别
系统安全芯片安全劣质芯片检测
硬件木马检测
PUF攻击
系统硬件及物理环境安全设备身份认证
密码设备边信道攻击
伪基站检测
系统软件安全漏洞分析与挖掘
恶意代码分析
用户身份认证
虚拟化安全

二、机器学习在网络空间安全中的应用流程

如图2为机器学习在网络空间安全中的一般应用流程,主要包括安全问题抽象,数据采集,数据处理及安全特征提取,模型构建,模型验证和模型效果评估6个阶段,各阶段不能独立存在,相互关联。

2.1 安全问题抽象

 安全问题抽象即将网络空间安全问题映射为机器学习能够解决的问题。即将问题进行抽象和定义,映射成为机器学习能够解决的分类,聚类和降维等问题。抽象结果如图3所示:

 有些问题,如恶意入侵检测,取证分析,网络舆情等既可以抽象为分类问题也可以抽象成聚类问题。如果是高维数据的处理,可以抽象为降维问题,利用机器学习主成分分析(PCA)算法,奇异值分解(SVD)算法等对数据进行降维操作。

2.2 数据采集

数据采集利用各种手段从系统层,网络层和应用层采集数据,并进行相应的检测研究。

——系统层数据用于系统安全问题的研究,这类数据主要有芯片信息,设备信息,系统日志信息以及实时运行的状态信息等,主要用于芯片安全,设备安全和系软件安全。例如采集基站的位置信息和短信日志等数据用来进行伪基站检测研究

——网络层数据指的是与具体网络活动密切相关的数据,比如网络包数据或网络流数据,用于检测僵尸网络,网络入侵等。如企业内部网络采集真实的TCP流数据进行协议分类及异常协议检测研究。

——应用层数据指的是网络空间中的各类应用软件产生和存储的数据,如邮件文本信息,Web日志,社交网络文本信息等,主要用于应用软件安全检测,网络舆情分析等。如采集大量的URL数据用于恶意网页识别。

2.3 数据预处理及特征提取

提取特征之前对原始数据进行清洗和处理,主要包含对数据规范化,离散化和非平衡化处理等。

(1)数据预处理

原始数据包含缺失值和噪音,或者异常点,需要进行数据清洗和归一化等预处理。一般是先对噪音,异常值,重复值等进行清洗,然后对数据进行归一化。 

(2)数据缺失处理和异常值处理

某个特征缺失值较多时,直接舍弃,否则产生比较大的噪声;缺失少时,采用填充方法,如固定值填充,均值填充等。此外,有些机器学习模型如随机森林,贝叶斯网络和人工神经网络可以自身处理数据缺失。

(3)非平衡数据处理

当数据样本失衡时,采用过采样(数据不足时复制或者自举来增加少数样本量)或者欠采样(减少多类样本以平衡数据)方法构建平衡数据集。

(4)数据集分割

分割为训练集,验证集和测试集。且采用交叉验证法分为训练集和验证集。

(5)特征提取

从数据中提取最具有安全问题的本质特征的属性。

2.4 模型构建

本阶段选择合适的学习算法,构建模型。包含两个部分,算法选择和参数调优

机器学习中,按照数据集是否有标记分为监督学习(有标记)和无监督学习(无标记)。

监督学习算法常用于分类问题和回归问题。常见算法有LR,ANN,SVM,决策树,线性回归,随机森林等。

非监督学习中,数据不包含标签信息,但可以通过算法推断出数据的内在关联。例如社交网络账号的检测中对好友关系,点赞行为等聚类。常见的算法有K-Means聚算法,KNN算法,基于密度的DBSCAN算法,层次聚类(HC)算法,图聚类算法等。

此外,还有一些新的方法出现。深度学习凭借强大的自动提取特征能力,被用于解决异常协议检测,恶意软件检测,网络入侵检测以及差分隐私保护等安全问题。擅长场景或领域迁移的迁移学习,在硬件木马检测中利用迁移学习对边信道信号检测进行校正。深度学习与增强学习结合的深度增强学习算法(DQN)应用于移动终端恶意软件检测。生成对抗网络深度学习算法结合用于随机域名生成算法和恶意代码检测。

2.5 模型验证

k倍交叉验证。检测模型是否有效。

2.6 效果评估

主要关注模型的学习效果和泛化能力。下表为主要的一些评价标准。

 此外,不同领域还有不同的指标说法,例如在硬件木马检测,异常检测等还常使用误报率(FPR),漏报率(FNR)来衡量模型泛化能力。

在社交网络账号检测,异常检测等聚类问题中,模型的目标是同一簇样本彼此相似,不同簇不想同,因此聚类问题常用评估指标分为两类,一类是将聚类结果与某个参考模型进行比较,另一类直接考察,不利用任何参考模型。

三、机器学习在系统安全研究中的应用

包含三个方面:芯片,系统硬件及物理环境和系统软件

其中,芯片安全方面包含劣质芯片检测,硬件木马检测及PUF攻击系统硬件及物理环境安全包含设备身份认证,物理层边信道攻击及伪基站检测系统软件安全包括漏洞分析与挖掘,恶意代码分析,用户身份认证及虚拟化安全

3.1 芯片安全

机器学习解决芯片安全问题,主要基于边信号分析,指纹识别和图像识别的劣质芯片和硬件木马检测。针对芯片知识产权保护安全,提出物理不可克隆(PUF)函数攻击,利用机器学习技术推测由PUF生成的芯片知识产权保护表示。

3.1.1 劣质芯片检测

劣质芯片和原厂芯片存在差异参数:一是边信道差异参数,包括正偏压温度不稳定性,热载流子注入等;二是芯片外形方面,例如颜色,擦痕等。

基于边信道差异参数检测研究中,选取若干差异参数,使用单类支持向量机法(OC-SVM)训练劣质芯片分类器。还利用时钟扫描技术生成芯片路径延迟指纹,分别使用简单异常点分析(SOA)和主成分分析法(PCA)检测劣质芯片。

基于芯片外形的检测研究中,利用人工神经网络(ANN)提取芯片图像特征,再进行自动分类。

同时,上述方法只是在粗粒度差异特征下提升了检测效率,面对细粒度的差异特征时,识别效率较低。

3.1.2 硬件木马检测

(1)芯片的硬件木马通常指在原始芯片植入具有恶意功能的冗余电路。

(2)可以通过收集芯片边信道的参数指纹,在多维的空间对比,判断是否在可信芯片的参数指纹范围内。机器学习在硬件木马检测方向上研究有芯片原理图成像识别边信道信号分析

(3)方法

          ——利用可信芯片电路仿真,蒙特卡洛分析得到多维边信道信号数据,利用PCA算法(主成分分析法)降维数据,然后通过非线性回归模型得到边信道指纹,最后利用单类支持向量机法OC-SVM算法)进行分类识别。

3.1.3 PUF攻击

物理不可克隆函数(PUF)电路是一种根据芯片在制造过程中的差异性产生独特的激励-响应对的电路。这种PUF电路可生成该芯片唯一的标识。

攻击原理:收集给定PUF的激励响应对,利用机器学习算法推测在任意激励下该PUF的响应值。

算法:利用逻辑回归,SVM进化策略攻击PUF,在不同电路位数下均作了攻击实验,获得了较高准确率。

3.2 系统硬件及物理环境安全

硬件设备身份认证是系统硬件常见的安全问题,本文介绍基于硬件自身指纹特征的设备身份认证技术,介绍机器学习在里面的应用。主要有暂态信号,调制信号频谱响应这三类指纹特征。此外,系统硬件与外部设备进行信息交换或者通信时会遇到信息泄露,中间人攻击。如常见的物理层边信道攻击,伪基站

3.2.1 设备身份认证

(1)原理:从信号中提取反应设备身份的特征,然后生成可用于识别设备的指纹,然后利用机器学习算法识别设备指纹,从而实现设备身份认证。

基于暂态信号,调制信号频谱响应以及传感器响应产生的指纹进行识别。

认证流程如下,包括测量信号,提取信号特征,降低维度,生成指纹和指纹识别五个阶段。

(2)方法:

——利用设备开关的暂态特征进行设备身份指纹识别。测量设备暂态信号中含有幅度和相位信息的复包络,将暂态信号的方差变量作为暂态特征,并采用自组织映射网络(SOM)降低暂态特征的数据维度,最后利用概率神经网络(PNN)进行识别。

——针对无线网络设备,提出基于调制信号的设备身份认证技术。使用SVMK临近算法分别进行认证设备身份。

——基于调制信号和频谱响应信号的RFID设备应答器的物理层认证技术。首先提取设备的调制信号和频谱响应,利用PCA降低数据维度,生成设备指纹,利用K临近算法进行设备识别。

——实现智能手机和平板的设备身份认证。原理为利用不同的传感器对同样的运动刺激会产生不同响应的原理。首先从加速度传感器产生运动路径的时域,频域信号中提取了若干特征数据,生成传感器指纹,然后利用随机森林算法对设备传感器进行指纹识别。

(3)存在问题:

        ——受外部环境变量影响大;

        ——利用单一或少量的设备身份指纹要素,未来要采用多指纹要素结合;

        ——用户隐私保护。

3.2.2 物理层边信道攻击

(1)含有密码算法的设备在工作状态时,会在电源功耗消耗,密码算法执行时间,电磁辐射,故障情况的输出方面产生与密钥相关的变化信息,这些信息即为物理层边信道信息

物理边信道攻击是利用物理层边信道信息找出设备的加密信息的一种攻击方式。攻击方法主要用模板攻击能耗分析攻击

(2)方法:

——模板攻击中,利用多元高斯分析刻画边信道泄露数据的分布特征,并利用皮尔逊相关系数和PCA算法得到特征。在密钥恢复阶段,利用最小二乘支持向量机(LS-SVM)算法进行模式匹配实施攻击。

——在基于松弛假设和高纬度特征向量的差分能耗分析攻击中,将能耗与密钥关系形式化成一个监督学习任务。特征选取对比试验了排序法,主成分分析法,自组织映射,最大相关最小冗余算法(mRMB),分类器对比试验了SOA,SVM,随机森林法

3.2.3 伪基站检测

(1)原理:2G/3G/4G的基站模式兼容,GSM(2G)网络协议有安全缺陷,攻击者来利用ISMI捕捉器堵塞3G/4G网络,迫使用户接入2G网络,然后进行诈骗。

(2)基于机器学习的ISMI捕捉器检测系统

分为在线监测和离线学习两部分。在线检测由若干单类SVM,神经网络等构成的异常检测器构成,主要利用2G到3G之间的模式转变,真正基站检测到的手机信号消失的时间,加密的禁用等。然后通过集成算法形成强检测器,结合安全专家判断,将综合结果反馈给离线学习部分以更新检测器参数。

3.3 系统软件安全

在系统软件安全中的研究主要集中在漏洞分析与挖掘,恶意代码分析,用户身份认证虚拟化安全等方面。

3.3.1 漏洞分析与挖掘

(1)漏洞是指系统在硬件,软件和协议的具体实现中或系统安全策略设计上存在的缺陷和不足 ,从而威胁单元计算系统的安全。

(2)漏洞发现和人工审计

          ——基于函数形式的源码中提取API符号,利用PCA自动识别API用途的特征,从而发现零日漏洞;

          ——利用RNN识别深度的二进制程序漏洞;

          ——通过语法抽象图和词袋模型,利用机器学习方法进行分析,进行代码漏洞漏检自动识别;

(3)漏洞预测

          ——利用SVM集成学习软件组件早期漏洞的识别;

          ——基于机器学习文本挖掘方法预测软件源码中含有的安全漏洞;

          ——利用自然语言处理中的N-Gram模型和统计特征选择来预测漏洞;

          ——基于人工手写补丁特征,利用概率模型自动生成补丁,以自动修复漏洞。

3.3.2 恶意代码分析

(1)恶意代码:指具有恶意功能的应用程序;分为静态分析和动态分析。

(2)方法:

          ——静态分析方面,收集软件特征,嵌入联合特征向量空间中,用SVM检测其中的恶意代码;使用N-Gram模型从原始恶意代码中提取训练集,对比朴素贝叶斯,SVM,决策树等算法,将这些弱分类器算法集成提升为强分类器算法,及AdaBoost算法。

           ——动态分析方面,基于主动学习框架的捕获新型恶意软件方法中,通过二进制文本和运行行为提取特征,利用贝叶斯分类算法进行特征分类,判断内核驱动是否含有Rootkit;选取信息,内容,时间和连接四个网络行为特征,使用贝叶斯网络和随机森林分析移动终端恶意软件;记忆与动态行为,请求许可,请求时间序列,敏感接口四个特征,提出基于机器学习的恶意软件检测流处理框架。

3.3.3 用户身份认证

(1)用户身份认证研究用户与硬件设备或用户与系统之间的认证。主要用利用机器学习攻击传统用户身份认证方法和设计新的用户身份认证机制两个点。

(2)攻击传统用户身份认证方面:

          ——针对认证过程中的验证码,提出利用机器学习自动识别验证码。采用多个SVM分类器结合,从验证码图片中提取颜色和文本特征。

          ——基于计算机视觉,提出自动盲识别触屏设备的输入密码,通过DPM模型检测和追踪目标设备,利用光学流算法自动识别触摸帧以及利用K-Means聚类算法识别触摸点;

          ——基于可穿戴设备传感器边信道信号,推断用户键盘密码输入,从可穿戴设备提取数据,进行处理和特征提取,利用机器学习算法进行推测,K临近算法最佳。

基于机器学习的用户身份认证设计方面:

          ——基于触屏特征:加速度,压力,大小和时间,提出一个免打扰的用户认证机制,采用单类学习算法验证是否为合法用户;

          ——基于传感器增强的击键行为特征,实现多种特征提取和识别算法(SVM,朴素贝叶斯,马氏距离算法,K近邻等);

          ——基于斯坦福大学的智能手机击键认证数据集,利用DNN提高击键认证技术;

          ——将基于DNN改进的LSTM和GRU网络结构应用到击键认证设计中;

          ——基于手势特征的再次认证身份系统,采用SVM识别手机拥有者滑动手机屏幕的手势特征;

总结如下表:

3.3.4 虚拟化安全

(1)虚拟化安全问题主要是虚拟机隔离安全,而边信道攻击是虚拟机隔离安全的一大威胁,此处介绍基于机器学习虚拟机边信道攻击虚拟机环境恶意行为检测

(2)方法:

虚拟机边信道攻击中,高速缓存常被作为跨虚拟机攻击的通道。

          ——提出通道驱动的跨虚拟机的边信道攻击。将一级高速缓存作为攻击通道,通过素数探针从虚拟机中提取细粒度信息,利用SVM算法分类Cache信息,并基于代码路径的隐马尔可夫模型提高SVM输出的准确性。最终获取密钥。

虚拟机环境恶意行为检测研究中:

          ——设计了一个基于机器学习算法的数据分析模型来作为运输局中心虚拟机入侵检测器,检测到恶意行为时会启动决策引擎响应。

总结:

本节从芯片,系统硬件及物理环境和系统软件三个层面,介绍了已有的机器学习在系统安全中的研究工作,总结如下表所示。

 存在以下问题和可能的研究方向:

(1)芯片安全层面:需要进一步提高劣质芯片和硬件木马的检测精度(都只有芯片外形和边信道参数改变明显时才能检测),以及增强PUF的抗机器学习攻击的能力(可以通过机器学习模拟PUF的激励响应,攻击成功率很高)。

 (2)系统硬件及物理环境安全层面:MAC地址认证很容易被伪造,利用各种信号(在信号中提取身份特征,生成识别指纹)进行设备身份认证时,需要在噪声大的情况下提高识别准确率,还要注意隐私保护问题(收集信号时受环境影响大,且收集会涉及到隐私问题)。

针对基于机器学习的物理层边信道攻击(采用边信道信息来找出设备的加密信息),可以考虑增加边信道信号噪声以混淆,对抗攻击(能耗分析较优),

伪基站检测方面,未来需要进一步解决伪基站数据集收集,伪基站定位精度,查全率三大问题(缺少数据集,导致只能成为一种方法设想)。

(3)系统软件层面:针对漏洞分析与挖掘(漏洞发现和漏洞预测两个方面,后者还可基于人工手写补丁用概率模型修复),虽然利用机器学习可以推断未知漏洞,但可信度有待研究(分局莱斯定理,不知道检测所得是否是真的漏洞);

对于恶意代码分析(从恶意代码训练集中提取特征,然后检测),又从静态分析到动态分析的趋势,并利用不断发展的机器学习算法进一步提高恶意软件检测准确率;

利用机器学习攻击传统身份认证机制时(验证码攻击:自动识别验证码;基于计算机视觉,自动盲识别触屏设备输入密码),考虑增加视觉混淆,边信道噪声等,以增强认证机制的安全性;

利用机器学习设计新的用户身份认证机制时(基于触屏特征,如加速度压力和时间,识别密码;基于手机拥有着滑动手机屏幕的手势特征,进行身份认证),需要进一步提高准确率和进行隐私保护;

对于虚拟化安全(利用高速缓存作为通道,通过提取信息,用分类器分类,得到密钥),考虑应对基于机器学习的虚拟机边信道攻击以及构建虚拟机入侵检测器。

四、机器学习在网络安全研究中的应用

网络基础设施安全为互联网运行提供了基础,各项网络安全检测措施为互联网各项活动开展提供了安全的通信保障。此处介绍机器学习技术在BGP的异常检测,恶意域名检测,僵尸网络检测,网络入侵检测以及恶意加密流量的识别中的应用和研究。

4.1 网络基础设施安全

主要包含路由系统安全域名系统安全这两个点,对应的,采用机器学习进行的BGP的异常检测以及DNS的恶意攻击检测

4.1.1 BGP的异常检测

边界网关协议(BGP)是互联网的核心路由协议,互联网的域间路由通过BGP路由信息交换完成。

(1)原理:异常路由检测是通过提取当前BGP更新信息的特征或时序特征,将当前流量识别为正常路由或者异常路由,即二分类问题

一般采用SVM,隐马尔可夫模型,决策树,朴素贝叶斯,LSTM等算法进行异常路由检测前缀劫持定位研究

(2)方法:

异常路由检测研究中,一般是在公开数据集中提取特征,然后机器学习训练:

          ——首先是基于短时特征的检测方法,未考虑流量的时间序列特性和流量的随机性。Li等人通过对公开路由数据集提供的BGP更新消息提取特征,然后采用决策树和柔性粗糙集技术对特征进行特征选择以去掉重复特征,由此生成特征个数不同的三个数据集,然后采用决策树和ELM算法对不同的数据集构建分类器识别BGP异常路由。

          ——在考虑BGP流量时间序列的基础上,选取具有时间序列特性的流量特征,采用LSTM模型进行BGP异常路由检测,识别率提高。

针对前缀劫持定位问题:

          ——采用层次聚类算法对LOCK系统中部署的大量监控器分成若干簇,每个簇中的监控器到目标前缀具有相似的路径。当前缀被劫持时,每个簇中的监控器基于目标前缀被污染的路径的概率进行排名,选择排名最高的监控目标前缀,由此提供精准的前缀劫持定位。

(3)总结:总体而言,异常路由检测从BGP更新信息或时序中提取异常信息对异常路由报警,前缀劫持行为定位以完善BGP安全为目标,对劫持行为进行定位并报警。

目前存在的问题:应用于异常路由检测,准确率不高;局限于方法和模型的探讨,未实用。

4.1.2 恶意域名检测

(1)方法:

老方法是设置黑名单基于查询请求数的方法,存在误报率高且无法检测未知异常域名。基于机器学习的恶意域名检测通常为离线模型和在线模型结合。流程如下图所示:

 离线模型中,将带有标签的域名集作为训练集,从中提取特征,选取决策树,X-Means聚类算法等构建训练模型,采用网站提供的已知域名数据集进行验证和调参。在线模型中,实时采集的域名流量进行被动域名查询分析,进行特征提取,如果已知输入训练,未知则利用分类器判断是否恶意域名。

 机器学习除了用于恶意域名检测,还用于随即域名生成,但生成的域名难被检测出。

(2)存在问题:

          ——如果了解域名检测系统的原理就很容易逃避检测,所以未来要采用对抗网络等技术构建新的域名检测系统;

          ——现有检测都基于已知的训练集,对深度学习生成的域名检测效果不佳;

4.2 网络安全检测

即对网络的安全状态或者面临的风险进行检测,本文分析机器学习技术在僵尸网络的检测,网络入侵检测技术恶意加密流量识别中的研究现状。

4.2.1 僵尸网络的检测

僵尸网络中存在大量被僵尸程序感染的主机,受攻击者的控制进行恶意网络攻击,如垃圾邮件,信息窃取等。僵尸网络的活动分为传播,命令与控制(C&C),攻击三个阶段。

(1)原理:将机器学习应用于僵尸网络检测中,首先从流量和日志信息中提取流量特征或者行为特征,然后利用X-Means,随机游走等聚类算法,SVM,随机森林以及关联规则等算法实现检测。根据检测特征不同,分为基于网络流量分析基于关联分析的检测技术。

(2)方法

网络流量角度分析看,僵尸网络的通信行为有一定的关联性和群体相似性,所以采用聚类方法分析不同的网络流量特征。

          ——BotGrep是一种通过对网络流量行为分析检测结构化P2P僵尸网络的方法。该方法提取流量中的某些特征,然后利用随机游走聚类算法构造结构化P2P网络的子图,再结合蜜罐等检测技术判断是否为僵尸网络。

          ——其他的方法还有图聚类,隐马尔科夫模型,随机森林算法等。

基于关联的分析看,僵尸网络的通信行为往往和一些恶意时间有关联,因此,许多工作采用流量特征与日志信息的关联分析检测技术检测僵尸网络。

          ——BotSniffer检测系统对同一局域网中Bot活动的时间和空间关联性进行分析,从IRC和HTTP流量中识别可疑的僵尸网络C&C连接,然后结合异常事件日志,采用X-Means聚类方法进行关联分析进行检测集中式的僵尸网络。

表5总结了采用的机器学习技术和选取的检测特征:

 (3)问题

由于网络流量数据量巨大且僵尸网络通信行为复杂,使得特征选取困难,聚类方式的流量分析精度不高,关联分析具有很多局限性,如检测时间长,拓展性差等。因此随着僵尸网络传播,控制和攻击形式的多样化,如何有效进行特征提取,提高检测精度变得尤为重要。

 4.2.2 网络入侵检测技术

(1)原理

网络入侵检测即根据网络流量数据主机数据来判断系统的正常行为或者异常行为,可以抽象为分类问题

网络入侵检测分为误用检测,异常检测混合检测。大多数检测方法都是异常检测和混合检测一起使用。

机器学习应用于网络入侵检测系统的一般流程如图所示:

一般流程是,首先进行数据收集或采用公开数据集,对数据预处理提取网络入侵特征,选取合适的机器学习算法构建入侵检测分类器,训练好之类对待测数据进行识别是正常行为还是异常行为。

(2)方法

——神经网络是目前最流行的检测算法,但其构建的误用检测系统容易陷入局部最优解并且计算时间长;

——没有隐藏单元的MLP构建的异常及混合检测研究中,检测成功率小;

——此外还有朴素贝叶斯分类器,贝叶斯网络,隐马尔可夫模型,SVM,RSVM,决策树等;

——此外,无监督学习聚类算法也被应用,如基于密度的聚类算法DBSCAN

 (3)不足和总结

基于机器学习的检测方法误判率高,且需要大量样本,且训练难度大,且不能检测新的攻击类型,总的来说复杂度高且很难实现实时监测。况且现实中难以部署实施。

4.2.3 恶意加密流量识别

(1)原理和过程:首先采集百万计的流量,分析各种流量的不同之处,然后从不同的信息中提取特征,将特征进行归一化处理,随后利用L1逻辑回归分类器获得检测模型最优权值,然后验证模型。最后在实际检测中,将待测加密流量特征向量输入模型,根据预设定的阈值进行判别是否是恶意流量

 (2)方法

           ——利用机器学习分析网络加密流量,用于识别移动终端用户的行为。利用已知APP在移动终端生成的网络流量,将其时间序列进行标记,生成有标签的训练集,然后使用层次聚类算法将网络流进行聚类,相似的流被分到一个簇中,代表有相似的用户行为,每个簇特征用整数形式表示,使用随机森林算法执行分类操作,将未知流量分类到不同的簇中。

           ——此方法缺陷是训练集是人为激发生成,与网络中真实的数据存在偏差。

 总结:

本节介绍机器学习网络基础设施安全路由系统的BGP异常检测和域名系统的恶意域名检测)和网络安全检测僵尸网络检测,网络入侵检测和恶意加密流量的识别)中的研究现状。方法和使用的特征如下图所示:

 BGP路由安全关系到互联网的连通性和稳定性,域名系统是各类应用的基础,因此网络基础设施对检测的准确率和误报率要求较高。僵尸网络,网络入侵以及加密流量识别,由于攻击流量大,形式多样化,所以要求快速实时响应

 基于机器学习的构建在线网络安全模型应满足三需求:时间复杂度,增量更新能力以及泛化能力。现有的能够达到线性级复杂度的神经网络无法满足对实时流的处理,满足增量更新的隐马尔科夫模型及朴素贝叶斯网络带来计算复杂度,具有良好泛化能力的模型需要强烈依赖于数据集。因此还需探讨。

五、机器学习在应用安全研究中的应用

应用软件安全(主要包括垃圾邮件检测,PDF恶意软件检测,恶意网页检测)和社会网络安全社交网络异常账号检测,信用卡欺诈检测,取证分析,网络舆情)介绍机器学习的应用。

5.1 应用软件安全

包括垃圾邮件的检测,恶意网页的识别以及恶意PDF文档的检测

5.1.1 垃圾邮件的检测

(1)原理

传统垃圾邮件检测方法是在服务器端手动设置检测规则,即在服务器端通过修改邮件传输协议设置发送或接受规则设置黑白名单等完成垃圾邮件过滤。该方法只能检测已知类型的垃圾邮件,检测效率低,规则更新不及时。

(2)方法

可抽象成机器学习的文本分类问题。首先将垃圾邮件的文本信息进行数值化表示,每条信息通常表示为一组向量,特征向量中的元素代表了垃圾邮件中的特征值。定义特征向量,构建数据集后,选取机器学习分类算法如朴素贝叶斯,决策树,SVM,神经网络等进行特征匹配,进而判断。

上述基于内容的垃圾邮件检测系统,邮件发送者可以改变IP地址或者邮件内容进行逃避。所以提出了不依赖于内容的检测方法,该方法使用了基于轻量级的网络层的13个特征,利用多个决策树的集成学习方法构建邮件发送者信誉评估系统,将垃圾邮件发送者IP与合法用户区分。该方法仅能处理小规模的邮件数量,扩展性差。

(3)面临的挑战

如何应对海量数据中对垃圾邮件快速做出反应,以及在在线应用中,如何在邮件识别过程中自动实现分类器更新

5.1.2 基于URL的恶意网页识别

(1)原理

恶意网页识别通常采用基于黑名单的识别方法,基于规则匹配的方法,基于主机行为识别的方法,它们存在时效性差,误报率高以及更新难等问题。机器学习方法技术主要分为基于分类方法的恶意网页识别基于聚类方法的恶意网页识别

(2)方法

基于分类方法的网页识别,抽象为二分类问题,流程如下图:

           ——Justin等人采用URL信息的词汇特征以及主机特征,假定各个特征独立的条件下,利用贝叶斯规则,计算每个特征属于恶意URL的概率,对待测的URL提取特征收,计算其后验概率,通过设定的阈值判断待测网页是否属于恶意网页。

           ——贝叶斯需要满足特征独立的假设,但恶意网页识别时,该假设不成立,SVM算法不许满足此假设。还有逻辑回归方法,均有长处和缺点。

基于聚类的恶意网页识别流程如下:

 聚类之后,根据已标记数据的聚类结果,对待测URL识别是否是恶意网页。

          ——提前特征后,利用已知钓鱼网站URL地址集和基于密度的聚类算法DBSCAN对待测URL与已知的钓鱼网页特征进行密度计算,若接近,判断为钓鱼网页。

(3)不足和总结

上述方法存在分类器速度慢过拟合或者不收敛等问题,同时海量数据容易产生高维特征空间,因此需要进一步研究有效的特征选择方法和降维方法,以及海量数据带来的数据不平衡问题

5.1.3 恶意PDF检测

(1)原理:恶意PDF指在正常PDF里嵌入恶意代码。机器学习方法将其抽象为二分类问题

(2)方法

PDF文档的检测研究大多采用PDF文档内容或结构为特征,然后采用随机森林,SVM,决策树等分类器构建PDF检测器。

但攻击者可以通过改变PDF结构或者随机修改恶意代码躲避检测。

(3)总结:以文件结构和内容为特征的分类器存在很大盲区,因此不能作为特征。在未来研究中不仅要考究准确率,误报率等指标,还需考量更合适的特征,或者利用深度学习自动提取恶意PDF的特征。

5.2 社会网络安全

机器学习相关的社会网络安全研究主要集中在社交网络异常账号检测,信用卡欺诈检测,取证分析以及网络舆情方面。

5.2.1 社交网络异常账号检测

根据检测特征不同分为基于帐号行为的检测方法基于消息内容的检测方法

(1)方法

基于账号行为的检测方法的基本流程是,在社交网络中获取数据集,将异常账号与正常账号相比,在发送消息频率,添加好友请求等行为方面的差异性,从数据集中选取相应特征(如用户行为,账号创建时间,好友数量,消息发送数量,好友请求比率),然后用随机森林,SVM,朴素贝叶斯,K-Means等算法构建分类器

基于消息内容的检测方法,是根据异常账号所发布的内容和正常账号所发布的内容的相似程度检测。该方法采用的特征是消息内容本身,常用的方法有SVM,逻辑回归分类器,聚类算法等。

下表为社交网络异常账号检测所用方法:

 (2)总结与不足

基于账号行为的异常账号检测是基于异常账号的行为特征,因此无法对恶意行为进行实时检测,基于消息内容的异常账号检测,只能在发布而已消息时检测到。因此都存在模型适应性差,易被攻击者绕过等问题。未来可利用深度学习,深度增强学习等技术挖掘行为及内容特征,提升模型的自我学习能力。

5.2.2 信用卡欺诈检测

欺诈交易依赖于交易次数和其他因素等,且欺诈数据具有稀疏性,非平衡性以及环境复杂性等特性。

(1)方法

          ——针对数据的高维性和非平衡性问题,采用不同的方法(过采样或者下采样)来生成数据的属性特征值,然后利用SVM,随机森林,逻辑回归和隐马尔科夫模型机器学习模型进行训练。

(2)总结

其中训练数据的选取和预处理是难点,未来可采用聚类等方法识别隐藏的特征属性。或者利用更先进的机器学习模型提高准确率,如用深度学习自动提取信用卡交易的特征属性值,以及针对应用场景,进一步提高实时性。

5.2.3 取证分析

取证分析常被用来调查诈骗,侵占知识产权,入侵攻击等犯罪行为。常见取证技术包括电子取证,计算机取证和网络取证。

(1)方法

          ——Pearl等人利用机器学习技术识别文件中的伪造笔迹,主要将书写特征,笔记内容特征为输入,采用监督学习中的稀疏多项式逻辑回归分类器进行笔迹识别。

          ——Khanna等人将相机,扫描仪等生成的图像的差值作为残差模式噪声特征,利用SVM分类器区分是否为合成图像。

(2)总结与展望

存在取证过程复杂,分析时间长等问题。未来技术可以基于深度学习,迁移学习等进一步提升数字取证效果。

5.2.4 网络舆情

(1)在危险事件识别方面,Alsaedi等人提出公共危害事件实时识别框架。流程如图所示。第三步利用朴素贝叶斯模型(相比于SVM,逻辑回归等分类算法效果最佳)区分是否是危害事件,然后选取事件,空间,文本等特征,再利用在线聚类算法得出公共的危害事件,最后生成危害事件摘要信息。

(2)其他的方法还有利用K均值算法对语料库聚类,进而用SVM对舆情进行分类的舆情分析方法;利用K均值算法SVM作为分析文本情感的热点检测;利用隐马尔科夫模型进行网络舆情预测等。

(3)发展和展望

现有的基于机器学习的网络舆情研究,主要针对于具有半结构化数据特征的文本,利用视频,语音等飞机恶化数据较少。且在网络舆情安全态势的实时感知,实时预测方面,现有方案效率较低。

 总结:

本节介绍机器学习在应用安全领域的研究现状,包括应用软件安全,社会网络安全两个方面,其中常用的安全特征和使用算法如下图:

 应用软件安全(垃圾邮件,恶意PDF,恶意网页信息)研究中,利用机器学习对邮件,PDF和网页信息的内容,结构为特征,构建检测模型,但现有模型过度依赖于训练数据,泛化能力差,因此需要深入挖掘安全特征,提高模型泛化能力。

 社会网络安全方面,针对社交网络中异常账号检测,需要进一步挖掘账号内容及行为特征,构建更具泛化力的模型;针对信用卡诈骗,需要进一步研究数据稀疏性和非平衡性以及环境复杂性。针对取证分析,需要解决因果关系不可解释的问题;针对网络舆情,提高安全态势感知,预测实时性。且提高非结构化数据,如语音和视频等的检测方法。

六、总结与展望

面临的挑战:

(1)基于机器学习的安全解决方案的可解释性与溯源性

(2)基于机器学习技术的攻击的防御难度

(3)机器学习技术自身的安全问题:输入数据中包含大量隐私数据,易被泄露;且当攻击网络的输入样本时,机器学习模型就会白给。

更多推荐