胡星高 郑荣锋 周安民 刘 亮
1(四川大学网络空间安全学院 成都 610065) 2(四川大学电子信息学院 成都 610065)
(842429313@qq.com)
随着互联网的发展,针对网络行为的分析已经成为网络安全的研究热点.许多研究者分别从网络数据包、网络数据流出发分析正常和恶意的网络行为特征[1-2].然而,根据Radware发布的2018—2019年全球应用和网络安全报告显示,在随机抽查的网络用户中,有93%的网络用户都曾遭受了恶意网络行为的攻击,而这其中在没有预警的情况下受到网络攻击的人数达到了57%[3].恶意网络行为识别不能完全识别所有的恶意网络行为,这给网络安全防御带来了巨大的挑战.
访问控制策略是一种常见的网络安全防御机制,而其中的白名单是一种常见的访问控制策略.白名单的定义是一种明确允许某些标识的实体访问特定特权、服务的成员名单[4].通过设置白名单可以抵御恶意软件和有针对性的攻击,因为在默认情况下,任何不属于白名单列表里的网络流量都不能到达主机.其工作流程如图1所示,网络流量在经过防火墙中的白名单后,能够通过的流量被视作正常流量,而不能通过的流量被视作未知流量.白名单作为一个权限名单,存在于白名单里的用户的可靠性一直是研究白名单生成的关键问题.
图1 白名单工作流程示意图
针对生成白名单方法的研究,许多研究者都提出了自己的方案.文献[5]提出了基于质询-响应测试的生成白名单方法,根据CAPTCHA(completely automated public turing test to tell computers and humans apart)表单测试结果判断该服务器的请求是否来自于人工,并当一定数量的用户在这台服务器通过CAPTCHA表单测试时,将该服务器加入白名单,上述方法的关键在于CAPTCHA表单测试的可靠性,但是目前文献[6]中的结果表明已经可以采用人工智能的方式进行CAPTCHA表单测试,并且准确率达到50%.文献[7]提出基于来自网站源码的超链接特征的白名单生成方法,通过检测超链接特性的方式来判断一个网站是否属于钓鱼网站,如果不属于钓鱼网站,则将IP与当前域名进行绑定放入白名单.该方法需要实时地进行检测,且由于动态域名的产生,会导致极高的误报率.Han等人[8]提出了验证“合法”登录性来生成白名单的方法,其原理是通过朴素贝叶斯分类器验证一个网站登录过程是否“合法”,来判断该网站是否属于正常的.
目前,构建白名单的思想大多数是依靠检测系统来识别恶意流量攻击,并将通过检测的访问者放入白名单中,避免重复检测.检测系统的可靠性直接决定了白名单的可靠性.然而,一旦发生0-day攻击,白名单就有可能被污染.
构建一个可靠的白名单其本质是一个关于网络行为的二分类问题,但是,构建白名单问题不同于常规的网络行为的二分类问题.它的重点在于确保生成的白名单中不存在恶意样本.目前,针对二分类问题常见的方法有2种:1)基于原始特征的分类方法;2)基于统计特征的分类方法.
基于原始特征的分类方法,主要是通过匹配攻击行为中本身存在的特殊符号或者特殊的行为来检测恶意攻击,例如,通过对网络攻击数据包中的某些特殊的属性标签或者负载的检测来发现网络攻击[9-11].文献[12]提出了一种基于DDoS(distributed denial of service)攻击的随机性的特点来对DDoS攻击和正常访问进行分类.其遵循的原理是当1个用户访问1个页面后,它访问的下一个页面应当有极大可能与它访问的当前页面存在一定的关联,而DDoS攻击的访问具有随机性.基于原始特征的检测方法,在面对已知攻击时,它的效果是显著的.但是,已经发现的基于原始特征容易被修改,一旦对应的检测特征被修改,基于原始特征的检测方法立即失效.
基于统计特征的分类方法,主要是通过基于专家经验设计的统计特征,来区分正常和恶意网络流量[13].统计特征本身具有一定的隐蔽性,因此它不容易被发现和修改.
然而,以上2种分类方法对于构建白名单来说是不可靠的.这2种分类方法无法保证零误报率.
机器学习在网络流量识别领域已经有了很深的应用与研究,随着各类的机器学习算法的出现,它已经成为目前解决网络流量分类问题的主要方法.然而,大多数时候,仅仅依靠机器学习算法本身进行网络流量分类与识别是困难的.庞大的特征维度会导致训练困难、识别率较低等结果.如何找到合适的特征维度,充分利用机器学习的优点是当下要解决的一个难题.
针对以上问题,本文提出了一种基于特征分析的访问控制混合模型.该方法由2步构成:1)基于IP的特征提取;2)利用提取的特征作为输入进行访问控制模型的建模和访问控制列表的生成.本文研究工作的贡献在于提出了一种基于特征分析的访问控制混合模型.
本文主要关注如何利用网络通信流量得到良性IP(来自该IP的流量中不存在恶意流量).由于网络通信流量的复杂性以及加密流量的产生,目前很难通过内容检测来判断1条网络流量是否包含恶意行为,因此,无法判断1个IP是否为良性IP.当前研究领域的关注点更多地聚焦于网络通信中的TCP流的统计性特征.通过分析恶意网络行为和正常网络行为的TCP流统计性特征的差异来识别正常的网络流量.
Yang等人[14]提出了一种将近似信息熵和随机森林分类相结合的方法.采用近似信息熵的方法降低基于TCP流的统计特征的数据集维数,再将数据集放入随机森林模型中进行训练,最后获得识别恶意网络行为的分类器.基于有监督学习算法的分类结果效果是显著的.然而,有监督学习算法最大的问题是它需要足够多的标签,而且标签越多分类结果越好.事实上,获取标签数据的代价是昂贵的.针对标签数据代价昂贵的问题,Choi等人[15]提出了一种基于自编码的无监督学习算法.该方法利用原始无标记数据集训练无监督自动编码器,获得正常网络流量数据编码后的阈值.当1条流量数据特征根据自编码计算后得到的结果不在阈值范围内时,流量被判定为异常.虽然该方法在检测恶意网络流量的同时减少了对先验知识的需求,但是它的精确率无法得到保证.对此,Sharma等人[16]提出一种基于kmeans聚类的朴素贝叶斯分类方法,该方法通过kmeans聚类算法获得聚类中心簇,再使用聚类中心簇进行有监督学习模型的训练.该方法在网络异常流量的分类效果是显著的,但是仍然不能完全保证零误报.
以上方法已经证明正常的网络行为和恶意的网络行为的TCP流的统计特征是有差异的.但是根据这种差异来生成IP白名单,仍然会存在漏报和误报.
为了解决以上问题,获得一个可靠的IP白名单,本文提出了根据基于IP的统计特征来区分正常IP和恶意IP.这里基于IP的统计特征是指将源IP为相同IP的TCP流量看作一个整体,与这个整体有关的一系列的统计特征被称为该源IP的统计特征.根据正常的网络行为和恶意的网络行为的TCP流的统计特征是有差异的这一特点,本文提出了一个假设:如果来自一个IP的TCP流中存在有恶意行为,那么这些恶意行为的TCP流与良性行为的TCP流的差异会使得这个恶意IP的统计特征与良性IP的统计特征产生差异.
综上,本文将基于IP的统计特征作为分类特征空间.
本文研究了基于流的统计特征的分类方法[17],发现用来描述1条流的统计特征主要可以被分为3类,分别是时间特征、空间特征、速度特征.具体定义如表1所示.
本文根据现有的研究成果,将他们所选取的相同的特征提取出来,再按照表1中的定义进行分类,分类结果如表2~4所示.
表1 特征类定义
表2 时间类特征定义
表3 空间类特征定义
图2 恶意IP和正常IP的TCP流时间特征相似度
表4 速度类特征定义
前人的实验成果[14-16]已经说明,直接基于流的特征分类方法,并不能生成可靠的IP白名单,因此,本文针对这3类特征,分别根据其各自的特性,设计了对应的方法,生成了基于IP的时间类特征、空间类特征、速度类特征.下文将会对这些方法作详细的说明.
1.2.1 基于IP的时间特征提取
通过观察发现,来自同一个恶意IP不同的TCP流的时间特征值具有较为接近的特点.因此,本文针对恶意IP和正常IP进行了时间特征相似度的统计,其结果如图2所示.
针对图2中一些变量的定义如下所示:
定义1.IP的TCP流时间特征相似度.指的是用相同的IP地址作为源IP的TCP流的时间特征之间的差值小于差值粒度乘以比较的2个时间特征中较小的数目,占用相同的IP地址作为源IP的TCP流总数目的百分比.
定义2.差值粒度.判断2个TCP流的时间特征是否相似的一个差值标准.
图2的横坐标为基于TCP流的时间特征,纵坐标为恶意IP和正常IP的TCP流时间特征相似度.从图2可以看出,恶意IP和正常IP在TCP流时间特征相似度上是存在差异的,且当差值粒度等于0.01时,这个差异程度达到最大.根据上述的推断与统计,本文依据TCP流的时间特征设计了基于IP的时间特征.具体的提取过程如图3所示:
图3 时间相似度计算图
提取过程中的关键在于判断2条流是否相似,具体方法如图4所示:
图4 TCP流时间特征相似性计算图
时间相似性定义:如图4中得到的所有结果(1,2,3,4)都小于待测流A对应的特征的值的1%时,这2条流具有相似性.否则,2条流不具有相似性.
当然,仅仅采用时间相似度特征是不够的,在实际过程中,一个IP的时间相似度往往还与来自这个IP的总流量条数相关,为了消除这种影响,实验中增加了2个新的特征,一个是IP的总流量条数,另一个是IP的时间相似率.其定义如表5所示:
表5 基于IP的时间特征的定义
1.2.2 基于IP的空间特征提取
由于TCP流的空间特征值域范围广,很难直观地发现恶意源IP的交互的数据大小和正常源IP交互数据大小的差异,因此本文通过将流的空间特征转化为基于流的二元空间特征,缩小空间特征的阈值范围,并通过比值的方式体现正常IP的交互的数据大小和恶意IP的交互的数据大小的差异,具体转换的公式如下所示:
(1)
(2)
(3)
(4)
上述4个特征被用来描述1条网络流中2个IP在负载大小分布上的差异.本文对网络流的空间特征之和按照区间的方式进行统计,结果如表6所示:
表6网络流的空间特征之和统计结果 %
从表6可以发现:对于一个正常IP所发出的流量,它的空间特征之和大多数是小于2的,而恶意IP则相反.其原因在于,来自恶意IP所发出的TCP流需要达到的目的与来自正常IP所发出的TCP流的目的有所区别,而这种区别会导致来自恶意IP的TCP流交互信息比例远远高于正常IP.本文根据这种特点设计了基于IP特征的空间特征,如表7所示:
表7 基于IP的空间特征的定义
1.2.3 基于IP的空间特征提取
不同于基于流的时间特征和空间特征,速度特征来源于空间特征与时间特征的比值.它表征的是1条流的2个IP间交互信息的平均速率.为了识别恶意IP的TCP流的速度特征之间存在的联系,本实验将基于流的2端速度特征的比值分段统计恶意IP和正常IP的TCP流的速度差异,结果如图5所示:
图5 速度特征统计分析图
根据图5可以清楚看出,正常IP的TCP流的往返速度特征的比值分布在12到2之间多于其他部分,而恶意IP则与之相反.根据这种特点,本文设计了基于IP的速度特征,具体的基于IP的速度特征的定义如表8所示:
表8 基于IP的速度特征的定义
本文提出的基于IP的混合分类模型的白名单生成方法包括特征提取和白名单生成2部分构成,如图6所示.
在特征提取阶段,先从数据采集中提取对应的基于流的特征集合,按照IP的总流量条数排序,将IP按照排序名单依次分为5个部分,从每个部分随机抽取5%的IP,根据专家经验进行人工标记流量样本.再采用IP的特征提取方法将基于流的特征集合转化为带有部分标记的基于IP的特征集合.
在白名单生成模块中,如图7所示,主要分为2个模块:筛选模块和分类模块.
图6 系统的基本结构
图7 白名单生成模型
筛选模块:通过聚类算法与部分的已知标签,去除与恶意IP样本具有相似特征的样本,提高分类模块中最后得到的分类器的精确度.算法1演示了它的过程:
算法1.筛选模块.
输入:init_Array[n];
输出:result_Array[m]和malicious_Array[n].
①Cluster_set[n]←0;
②result_Array[m]←0;
③cluster_number←0;
④Cluster_set[h]←0;
⑤malicious_Array[n]←0;
⑥init_cluster←init_Array[n];
⑦classi(i=1,2)←Cluster_algorithm
(init_cluster,K=2);
⑧ forlen(classi)>2 do
⑨ ifBenign_rate_Fuc(classi)<12·
cluster_numberthen
⑩Cluster_algorithm(classi,K=2);
then
inmalicious_Array[n];
Array[n].
筛选模块的输入是基于IP特征的部分带标签的数据集,它的输出是带有恶意标签的数据集和初筛选后的数据集合.它总共由2个步骤实现:1)首先,采用聚类算法对基于IP特征的部分带标签的数据集进行聚类,并判断聚类簇中带标签的良性IP是否超过原始样本的数目乘以12的聚类次数的次方.如果超过,那么进行步骤2),否则将聚类簇再次进行聚类.2)将通过步骤1)筛选得到的数据集进行判断,如果该数据集中存在带标签的恶意样本,那么将该数据集中恶意样本剔出,形成数据集malicious_Aarry[n],否则,将该数据集中的样本放入数据集result_Array[m].
分类模块:将从筛选模块得到的样本中带标签的样本作为训练集,剩余未知的样本作为测试集合簇进行白名单的生成.本实验中将比较不同的聚类算法和分类模型的组合表现效果.下面的算法2演示了它的过程:
算法2.分类模块.
输入:result_Array[m]和malicious_Array[n];
输出:IP_White_List.
①No_Label_Dataset[x]←0;
②With_Label_Dataset[y]←0;
③No_Label_Dataset[x],
With_Label_Dataset[y]←
Separate_Fuc(result_Array[m],
malicious_Array[n]);
④IdentificationFramework←
TrainClassifier(Algorithm,
With_Label_Dataset[y]);
⑤IP_White_List←
IdentificationFramewok
(No_Label_Dataset[x]);
⑥ returnIP_White_List:Cluster_set[n]
←0.
分类模块的输入是筛选模块的输出结果,它的输出是IP白名单.它总共由3个步骤实现:1)将有标签的样本和无标签的样本进行分类,形成2个数据集;2)将有标签的数据集作为训练样本,通过有监督学习算法训练,得到分类器;3)将无标签的数据集中的样本放入分类器中,得到本文所需的IP白名单.
为了评估白名单生成方法的可靠性,需要在多种不同的网络环境下进行实验.在实验中,结合了3个不同的公开数据集来评估本文提出的方法,分别是UNSW-NB15数据集、CICIDS2017数据集、实验室环境下人工收集的数据集.本节给出了每个数据集的简要描述.
3.1.1 UNSW-NB15数据集
UNSW-NB15数据集是用于IDS测试和评估的最新的数据集[18],它由澳大利亚网络安全中心(ACCS)的一个研究小组创建.它包含真实的现代正常网络连接和ACCS网络范围实验室使用IXIA PerfectStorm工具生成的综合攻击流量.
3.1.2 CICIDS2017数据集
CICIDS2017[19]数据集是最近由ISCX收集,包含正常流量和最新的常见攻击.这个新的入侵检测数据集包含良性流量和14种不同的攻击行为的流量.
3.1.3 实验室环境下人工收集的数据集
该数据由作者所在实验室在一个可控的正常网络环境下收集,整个网络环境下有15台电脑,带宽为100 Mbps.收集完成后,通过AlientVault提供的开放式威胁情报交换平台和微步在线威胁情报社区平台验证收集的网络流量中公有IP是否为良性IP,并给数据集打上标签.
以上所有数据集均以PCAP格式存储.首先从这些PCAP中提取TCP流,再从这些TCP流中提取基于TCP流的特征,然后从这些TCP流的特征中提取属于IP的向量特征.将一个IP的特征向量作为一个样本.结合了3个数据集的实验数据中良性和恶意IP分布情况如表9所示:
表9 良性IP和恶意IP分布情况
由于实验数据的良性IP和恶意IP的数目并不平衡,在二分类的任务中准确率的参考价值有限.同时,针对白名单生成方法设计的实验的关注点在于得到的IP白名单里的IP是否都是良性IP.因此,采用了召回率(Recall)、精确率(Precision)、良性IP占有率来评估实验结果.其中精确率为100%,对白名单生成方法是可行的一个重要标准.
(5)
(6)
良性IP流量占有率=
(7)
其中,TP表示将良性IP正确识别为良性IP,FP表示将恶意IP识别为良性IP.召回率反映了白名单生成方法识别良性IP的识别效果,精确率反映了白名单生成方法生成的白名单的可靠性.良性IP流量占有率表示来自获得的良性IP的TCP流的数量占来自数据集中的良性IP的TCP流的数量的比例,它反映了获得的良性IP具有代表性.
3.3.1 IP白名单生成模型选择
实验在3个数据集的合集上进行验证,以验证所提出方法的适应性.实验总共进行20次,每次抽取已知的样本信息时,都将之前抽取的样本排除,实验结果为20次的平均值(向下取整),如表10所示:
表10 聚类模型和分类模型组合比较结果
3.3.2 与其他分类方式的比较
通过与Sharma等人[16]提出的基于kmeans的朴素贝叶斯分类模型进行实验比较.分别从分类的特征空间和分类方法的性能进行对比分析.
Sharma等人[16]提出的基于kmeans的朴素贝叶斯分类方法,针对网络中的异常行为通信,通过kmeans聚类算法获取正常行为和异常行为的聚类中心,并将聚类中心用于朴素贝叶斯分类模型训练,最后形成分类器.在本实验中,为了进行实验对比,将统一采用本文中3.1节中使用的实验数据集合.本文设计对照实验是按照文献[16]中所提到的基于TCP流的特征,采用基于kmeans的朴素贝叶斯分类模型.白名单生成规则如下:如果1条TCP流被判断为是恶意的网络行为,那么就认为该条网络数据流的源IP为可疑IP,其余的IP为正常IP.实验采用的评价指标为:良性IP流量占有率、召回率、精确率.结果如表11所示.
针对同样的数据集,对比Sharma等人[16]提出的分类方法,本文提出基于IP的时间特征、空间特征、速度特征,采用GMM聚类算法和决策树相结合的方式形成白名单生成器.实验结果显示,本文提出的基于IP特征的混合分类模型的白名单IP生成方法的良性IP占有率提高了15.45%,召回率提高了13.29%,精确率提高了0.06%,表现出了更好的生成IP白名单的性能.
表11 分类方法比较结果
本文通过对目前白名单的现状进行研究总结,针对生成白名单的问题,提出基于IP特征的混合分类模型的白名单生成方法.该方法充分利用已有的基于流的特征,根据流的统计特征,设计了基于IP的时间特征、空间特征、速度特征,并将无监督聚类和有监督学习分类模型的优点相互结合,形成了IP白名单生成模型.如何增加更多类别的流量集合,优化IP白名单生成方法,将该方法应用于实际网络环境的IP白名单生成将成为下一步研究的重点.