目录

一机器学习在网络空间安全研究中的应用

【一】机器学习在网络空间安全研究中的应用

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

摘要

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

目录


一、引言

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

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

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

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

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

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

(4)本文结构如下图:

https://i-blog.csdnimg.cn/blog_migrate/e6d65c9dc006d339bf3553bcbe92c9f9.png

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

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

总结

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

表1 机器学习在网络空间安全中的典型应用

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

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

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

https://i-blog.csdnimg.cn/blog_migrate/6003b3ed2b385a631d31ed874e86f565.png

2.1 安全问题抽象

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

https://i-blog.csdnimg.cn/blog_migrate/5140ed0e7dc18fe326eed423919a9632.png

有些问题,如恶意入侵检测,取证分析,网络舆情等既可以抽象为分类问题也可以抽象成聚类问题。如果是 高维数据的处理,可以抽象为降维问题 ,利用 机器学习主成分分析(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 效果评估

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

https://i-blog.csdnimg.cn/blog_migrate/c35ebccb4a84668bb561c671fe95f6e6.png

此外,不同领域还有不同的指标说法,例如在硬件木马检测,异常检测等还常使用 误报率(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)原理:从信号中提取反应设备身份的特征,然后生成可用于识别设备的指纹,然后利用机器学习算法识别设备指纹,从而实现设备身份认证。

基于 暂态信号,调制信号

频谱响应

以及

传感器响应产生的指纹

进行识别。

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

https://i-blog.csdnimg.cn/blog_migrate/38f10aa6916d493a7da7a1d052e5dd88.png

(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 识别手机拥有者滑动手机屏幕的手势特征;

总结如下表:

https://i-blog.csdnimg.cn/blog_migrate/1b90c1c2189928dd36c9a2aaa90fa9a9.png

3.3.4 虚拟化安全

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

(2)方法:

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

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

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

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

总结:

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

https://i-blog.csdnimg.cn/blog_migrate/057ed90c08a3ef5f4704cd56a191dbc5.png

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

(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)方法:

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

https://i-blog.csdnimg.cn/blog_migrate/38f533d63d8ac4485bcfd76e9b53fda1.png

离线模型 中,将带有标签的域名集作为训练集,从中 提取特征 ,选取 决策树,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总结了采用的机器学习技术和选取的检测特征:

https://i-blog.csdnimg.cn/blog_migrate/5e674bcca427e667778eb48c0a1db1c2.png

(3)问题

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

4.2.2 网络入侵检测技术

(1)原理

网络入侵检测即根据 网络流量数据

主机数据 来判断系统的正常行为或者异常行为,可以抽象为 分类问题

网络入侵检测分为 误用检测,异常检测

混合检测 。大多数检测方法都是异常检测和混合检测一起使用。

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

https://i-blog.csdnimg.cn/blog_migrate/c180a37ab695ab45c0dfc00949672384.png

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

(2)方法

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

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

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

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

(3)不足和总结

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

4.2.3 恶意加密流量识别

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

https://i-blog.csdnimg.cn/blog_migrate/932e565dcc4726228993cc4c3b23756f.png

(2)方法

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

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

总结:

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

https://i-blog.csdnimg.cn/blog_migrate/75dcae14e8ef28243789f41625b21108.png

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

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

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

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

5.1 应用软件安全

包括 垃圾邮件的检测,恶意网页的识别

以及

恶意PDF文档的检测 。

5.1.1 垃圾邮件的检测

(1)原理

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

(2)方法

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

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

(3)面临的挑战

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

5.1.2 基于URL的恶意网页识别

(1)原理

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

基于聚类方法的恶意网页识别

(2)方法

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

https://i-blog.csdnimg.cn/blog_migrate/7438e6036597c018b1bd9449d4a1da14.png

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

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

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

https://i-blog.csdnimg.cn/blog_migrate/07fae6ab20cf9fe4f7e177493a6f84c1.png

聚类之后, 根据已标记数据的聚类结果 ,对待测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,逻辑回归分类器,聚类算法 等。

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

https://i-blog.csdnimg.cn/blog_migrate/fdcf4ed6a0a5f48d8fe818ca260b4106.png

(2)总结与不足

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

5.2.2 信用卡欺诈检测

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

(1)方法

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

(2)总结

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

5.2.3 取证分析

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

(1)方法

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

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

(2)总结与展望

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

5.2.4 网络舆情

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

https://i-blog.csdnimg.cn/blog_migrate/da9e8958c1930538a11248fbfbc4d172.png

(2)其他的方法还有利用 K均值算法 对语料库聚类,进而用 SVM 对舆情进行分类的 舆情分析 方法;利用 K均值算法

SVM 作为分析文本情感的 热点检测 ;利用 隐马尔科夫模型 进行 网络舆情预测 等。

(3)发展和展望

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

总结:

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

https://i-blog.csdnimg.cn/blog_migrate/b23aed3ba0ed1a53f7b5e6df7597cd57.png

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

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

六、总结与展望

面临的挑战:

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

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

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