云环境下一种基于信任的加密流量DDoS发现方法

潘雨婷 林 莉

(北京工业大学信息学部计算机学院 北京 100124)(可信计算北京市重点实验室(北京工业大学) 北京 100124)

摘 要 针对云环境下分布式拒绝服务(distributed denial-of-service, DDoS)攻击加密攻击流量隐蔽性更强、更容易发起、规模更大的问题,提出了一种云环境下基于信任的加密流量DDoS发现方法TruCTCloud.该方法在现有基于机器学习的DDoS攻击检测中引入信任的思想,结合云服务自身的安全认证,融入基于签名和环境因素的信任评估机制过滤合法租户的显然非攻击流量,在无需对加密流量解密的前提下保障合法租户流量中包含的敏感信息.其后,对于其他加密流量和非加密流量,引入流包数中位值、流字节数中位值、对流比、端口增速、源IP增速这5种特征,基于特征构建Ball-tree并提出基于k近邻(k-nearest neighbors, kNN)的流量分类算法.最后,在OpenStack云环境下检测了提出方法的效果,实验表明TruCTCloud方法能快速发现异常流量和识别DDoS攻击的早期流量,同时,能够有效保护合法用户的敏感流量信息.

关键词 云环境;DDoS攻击发现;信任过滤;加密流量检测;k近邻算法

随着云计算技术的应用和普及,越来越多的分布式拒绝服务(distributed denial-of-service, DDoS)攻击源迁移到云环境中.由于云计算所涉及到的信息量大,加之云计算数据中心所支撑的在线业务高速增长,促使了云环境下DDoS攻击频率、规模和种类以前所未有的速度快速增加,在大量消耗云计算资源的同时,也影响了云服务的可用性,云环境下的DDoS攻击安全防御问题正日益受到关注.与传统网络相比,云环境下的DDoS攻击具有以下新的特征:1)云服务的开放性使其更容易被攻击者利用发起DDoS攻击,如经济可持续性拒绝(economic denial of sustainability, EDoS)攻击等,同时云环境下IT资源的集中化使得DDoS攻击规模更大且能造成更严重的危害[1];2)随着云服务模式下用户对通信数据的隐私需求提高,这使得HTTP等加密流量占总流量的比例接近70%[2],当针对特定端口、协议和服务的DDoS攻击,比如域名系统(domain name system, DNS)、超文本传输协议(HyperText Transfer Protocol, HTTP)、基于网络协议的语音传输(Voice over Internet Protocol, VoIP)等,通过加密流量发起,因其具有一定隐蔽性,更难以检测.因而如何在云环境下发现加密流量DDoS攻击成为有效防御DDoS的重要问题之一.

传统网络环境下的DDoS攻击发现方法可分为误用检测、异常检测以及两者混合检测3类[3],其中异常检测最为普遍,其通过识别网络中的异常行为来发现是否存在DDoS攻击.近年来,基于机器学习的DDoS检测成为主流,支持向量机(support vector machines, SVM)、k近邻(k-nearest neighbors, kNN)、隐Markov、神经网络等多种机器学习算法[4-14]被相继引入,不断提升DDoS检测的效率和准确性.目前,亚马逊网络服务(Amazon Web services, AWS)、阿里云等知名云服务商也提供了DDoS攻击处理服务,如阿里云的DDoS高防IP服务通过流量重定向过滤并消化掉攻击流量.然而当攻击者使用超文本传输安全协议(HyperText transfer protocol secure, HTTPS)等加密流量协议传输数据时,云服务商需要先将流量解密后再进行清洗,效率较低.

云计算加密流量环境下发现DDoS攻击的最大难点在于如何在不对加密流量进行解密的情况下对流量进行过滤.现有针对加密流量的DDoS检测方案[15]主要是引入第三方检测代理,即为了保护云租户不被外来恶意流量攻击,待防护的HTTPS业务需要将证书和解密的私钥交给代理方.然而,在上述机制下,云客户端和服务器的通信内容在代理方是明文,意味着非攻击流量中包含的用户敏感信息存在被泄露的风险.因此,仍需要不需解密即可完成检测的DDoS攻击发现方案.

为此,本文提出一种云环境下基于信任的加密流量DDoS发现方法TruCTCloud,该方法在现有基于机器学习的DDoS检测中引入信任的思想,结合云服务自身的安全认证,融入基于签名和环境因素的信任评估机制过滤掉合法租户的显然非攻击流量,在无需对加密流量解密的前提下保护合法租户流量中包含的敏感信息.其后,对于其他加密流量和非加密流量,改进特征提取方法,在流包数中位值、流字节数中位值、对流比3种常见特征上增加对端口特征和源IP增速特征的检测,并基于上述特征构建Ball-tree结构,并基于Ball-tree结构改进k近邻算法实现对流量进行分类,提升检测的效率和准确率.最后,基于OpenStack云平台对提出方法进行了实验检验.实验结果表明:本文提出方法能够快速发现异常流量和识别DDoS攻击的早期流量,同时,能够有效保护合法用户的敏感流量信息.

与现有工作相比,本文提出的TruCTCloud方法具有3个创新点:

1) 在DDoS流量发现过程中引入信任过滤思想,基于信任评估机制先过滤掉云环境中的显然非攻击流量,可降低DDoS流量监测时的资源消耗,提升检测效率,减少检测对云服务器带来的负担.

2) 提出融合用户身份认证和环境相关信息的信任评估机制,基于环境信息和身份信息为用户进行信任度的评价,实现了对合法租户敏感流量信息的保护.

3) 基于NSL-KDD数据集[16]对TruCTCloud中基于Ball-tree kNN的DDoS攻击检测算法进行了实验检验,实验结果表明其可将检测准确率提升至98.3%,与已有基于SVM、决策树和随机森林的检测算法相比,具有较好的DDoS攻击发现效果.特别是与传统kNN算法相比准确率有明显提高.

1 相关工作

传统网络的3类DDoS攻击发现方法中,DDoS攻击误用检测方法需事先收集DDoS攻击的各种特征,然后将当前网络中数据包特征与攻击特征进行比较以发现DDoS攻击,常见方案包括特征匹配、模型推理、状态转换和专家系统等.DDoS攻击异常检测是通过构建异常行为模型,确定系统的正常模式,当检测到的异常行为超过预先设定的阀值时即判断系统进入异常,常见方案包括统计检测、模式预测等.

近年来,随着机器学习算法的快速发展,国内外一些学者已对基于机器学习的DDoS攻击发现进行了深入研究,并将kNN、SVM、隐Markov、神经网络等多种机器学习算法逐步应用于DDoS流量分类上[4-14],以提升DDoS攻击异常检测的效率和准确性.例如,Lin等人[4]提出通过抽取TCPIP包头中的标志位和ID字段构成多维观测特征,采用多数据流隐Markov模型在源端检测DDoS攻击.张龙等人[5]提出通过比较源IP地址信息熵与门限值发现可疑流量,并通过检查这些可疑流量对应的主机,判断是否针对特定主机发出的请求来进行DDoS攻击检测,然而上述工作主要用于非加密流量的检测,无法用于云环境下的加密流量DDoS攻击检测.

当前,加密流量DDoS检测也日渐得到重视[6,15,17-19].例如,Zhu等人[6]提出了云环境下基于软件定义网络(software defined networking, SDN)架构的DDoS跨域隐私保护方案,试图解决多个网络域环境下的加密流量DDoS检测问题.Gilad等人[15]提出基于Cookie的身份认证机制,用于在HTTP明文中鉴别正常流量和异常流量.Zolotukhin等人[19]借助堆栈进行会话分析对加密流量进行不解密检测,但由于需要先对用户行为进行建模,存在计算消耗大、检测效率低的问题.为应对潜在DDoS攻击带来的安全隐患,主流的AWS、阿里云、腾讯云等第三方云服务商也在提供针对DDoS攻击的信息安全处理服务.例如,阿里云[20]和腾讯云[21]等主要支持对非加密流量的DDoS攻击检测,即对于加密流量,通常需要云租户先提供由认证机构(certificate authority, CA)颁发的数字证书,然后云服务商利用证书中的密钥对流量进行解密后再进行攻击检测.然而,云环境下对加密流量先解密后检测的DDoS发现方案,除了效率较低以外,易带来非攻击流量中合法租户敏感信息被泄露的新安全风险.

总而言之,云环境下的DDoS攻击发现仍需要解决如何对合法租户加密流量中携带的敏感信息进行有效保护的问题.

2 问题描述

在通常的云服务场景中,外来请求都是通过云服务商提供的网关向云服务器转发流量的,如图1所示,不论是加密的流量还是未加密的流量都将通过网关向云服务器发起访问.在这样的场景下,来自外部的攻击者可以很容易对网关发起未加密流量和加密流量的攻击请求,最终使云服务器宕机,导致云服务不可用.因此,需要对云环境下的DDoS攻击进行有效检测和发现以保障云服务安全.

Fig. 1 DDoS attack scenario in cloud environment
图1 云环境下DDoS攻击场景

目前,对于加密流量,云服务商通常要求云租户上传加密证书和凭证对流量解密后才检测.那么对于那些具有较高隐私保护需求的合法用户,如果其足够可信,则其发送的流量对云服务也应该可信,那么可通过直接过滤掉明显可信的非攻击流量以避免解密检测时会引发敏感信息泄露等问题.为了判断并建立信任关系,需要增加信任评估功能,通过计算信任度的方式判断流量的可信程度.

此外,在上述场景中,传统的检测手段检测效率和准确率相对较低,因此需要引入机器学习算法来进行DDoS攻击检测.机器学习常常被用于大规模网络的DDoS检测,通常需要在网络中部署DDoS攻击检测组件来发现潜在的DDoS攻击.因为kNN方法[22]具有易理解、精度高和理论成熟的优势,所以本文使用kNN算法对流量进行检测分类.然而,由于传统的kNN算法在高维情况下存在检测率和效率低的问题,为此,本文在引入新的流量特征以后,提出构建训练集流量特征的球树(Ball-tree),进而改进传统的kNN算法设计和实现基于Ball-tree kNN的DDoS攻击检测算法.

3 TruCTCloud方法设计

3.1 工作原理

针对第2节所述的应用场景,本文提出一种云环境下基于信任的加密流量DDoS发现方法TruCTCloud.该方法是一种在云环境下支持加密流量隐私保护的DDoS发现方法,旨在防范不安全的流量攻击目标主机的网络和资源.该方法基于信任原则,引入信任度评估,并对现有的机器学习算法进行了改进.云服务提供方将已知的合法用户加入到它的信任列表中,为合法用户标记身份.当访问的流量为加密流量时,TruCTCloud将通过访问中携带的信任度参数判定是否为可信访问,当信任度评估通过时,信任过滤机制将启动,即认为该用户可信并允许流量通过.这样就无需经过解密来检查已知用户的流量,保护合法租户流量中包含的敏感信息.

TruCTCloud功能主要由TruCTCloud代理服务器实现,TruCTCloud代理服务器部署在用户与网关之间,其架构如图2所示:

Fig. 2 TruCTCloud framework
图2 TruCTCloud框架

TruCTCloud代理服务器上主要部署了流量采集模块、信任过滤模块和DDoS攻击检测模块.

1) 流量采集模块.监控来自客户端的流量速率,当流量超过一定数值的时候,即便是来自经过认证的用户的访问请求,也将会被代理服务器切断.流量采集模块将生成流表数据,其将加密流量交给信任过滤模块处理,将未加密流量直接交给攻击检测模块处理.

2) 信任过滤模块.结合云服务提供方自身的安全认证,采用基于签名和环境因素的信任评估机制,对加密流量的发送方进行统一评估,若信任评估未通过,则将流量转发至攻击检测模块,进行下一步处理.在这个过程中,该模块全程对流量内容不知情,保证合法用户与服务器之间的通信不被窥视.

3) 攻击检测模块.针对未通过信任过滤模块认证的加密流量和未加密流量,提取流包数中位值、流字节数中位值、对流比、端口增速、源IP增速等流特征,基于特征构建Ball-tree数据结构,基于Ball-tree改进传统kNN算法,通过和收集的流量数据进行训练,实现流量分类.攻击检测模块由流特征提取、流量分类2部分组成.

TruCTCloud方法的工作流程如图3所示:当流量被重定向至TruCTCloud代理服务器后,首先经由流量采集模块,将流量区分为加密流量和非加密流量,再分别转发至信任过滤模块和攻击检测模块,信任过滤模块将通过计算信任度来决定流量是否能够通过.若评估未通过则将流量转至攻击检测模块.攻击检测模块会借鉴机器学习的思想,通过对流量进行检测分类,判定是否存在DDoS攻击,若存在DDoS攻击,则截断该流量.

Fig. 3 Workflow of TruCTCloud
图3 TruCTCloud的工作流程

3.2 流量采集

流量采集组件部署在TruCTCloud服务器上,用于收集并采样未通过信任过滤的加密流量和非加密协议的流量.流量采集模块主要通过sFlow协议来实现对流量的采样,在指定端口上按照特定的采样方向和采样比对报文进行采样分析,作为信任过滤和流特征提取的输入内容.获取流表的时间间隔要保证适中,如果时间间隔过长可能会使检测模块在发现DDoS攻击前,服务器网络就因受到攻击而瘫痪,而时间间隔太短,则会导致检测模块过载.采集的流量格式如图4所示:

Fig. 4 Traffic data format
图4 流量数据格式

图4中,“以太网报头”是协议数据包的包头,由对报文进行Ethernet解析后所得;“IPV4数据”是解析报文后得到的IPV4信息;“扩展的用户数据”中包含后续信任过滤所需要的用户令牌和签名信息;“扩展的URL数据”包含后续信任过滤所需要的环境参数信息;“原始数据包”包含原始报文信息,用于流特征的提取和分类.提取流量的具体示例为:

Datagram version:5

NumSamples:7

Mac data:BC:40:88:EF:66:E6

IPV4 data

IP protocol:UDP

Source IP address:172.16.0.112(172.16.0.112)

Destination IP address:201.8.201.24(201.8.201.24)

Source port:10431

Destination port:11273

DataSize:1123 KB

URL

http(s):example.cloud.comobjectkey?AccessKeyId=PIbiyN41ed2jltP7Xlr6ScqsgXNJsrzq UCopYpKf&Expires=1532779451&Signature=0D nboi43Ep3pG1ek2uP3gpYs1Er%3G&token=Bznd UWegB8j7t

3.3 信任过滤

信任过滤模块主要部署于TruCTCloud代理服务器上,将对加密流量的可信程度进行测算.如何判断加密流量的可信是信任过滤模块的核心,通过对其发送者进行信任度评估实现.由于信任过滤模块将会对访问用户的身份进行签名认证且基于环境和设备信息对用户进行信任评估,故当信任度达标时,访问用户的身份可信程度是较高的,误判的可能性较低,将默认该发送者的流量内容也是可信的,不需要进行进一步检测即可放行;若信任度并未达标,那不论该流量是否为异常流量,均对其标识为存疑,转发至攻击检测模块继续评估.这样的规则不仅能确保云租户的敏感信息,也可以降低DDoS攻击检测的开销.

本文提出的信任过滤方案是基于对用户身份的认证和环境条件的评估判定用户信任度的,用户信任度的取值范围为[0,1].信任度计算考虑了签名信息和环境信息.签名信息从流量中统一资源定位符(uniform resource locator, URL)的加密签名字符串中获取,包含签名签发时间、时间戳和用户身份信息.环境信息包含用户的IP地址和媒体存取控制地址(media access control address, MAC)等设备和位置信息.

一方面,记TS为签名通过函数,只有0(验证失败)和1(验证成功)两个取值.

另一方面,基于用户访问的次数,设置访问频率函数,用于对用户环境熟悉程度的信任评估.例如,如果用户使用相同的设备和IP对云服务进行访问,相对于来自陌生环境的用户,他更加应被信任.访问频率函数为

H(k)=H(k-1)+1/L,

其中,L为访问频次参数,用户的访问次数k将从用户第1次访问开始累计,达到设定L次将被清空.

进一步,设置信任系数和存疑系数用于对不同次数访问的信任度值进行评估.

信任系数为

其中,p(k)是每次访问时的信任赋值.当发现用户此次的访问环境和上次相同时,p(k)=1;当发现用户此次的访问环境和上次不相同时,定义n为用户不同历史访问环境的总数,若与某次历史访问的环境相同,则p(k)=1n,若与历史访问环境无重合,则p(k)=0.信任系数Pp(k)与访问频率函数乘积的累加,若用户的正常访问在相同环境的情况越多,其访问的可信程度越高.

存疑系数为

其中,f(k)是每次访问时的存疑赋值.当发现用户此次的访问环境和上次不同时,若此次的访问环境与历史环境无重合,则f(k)=1;若与某次历史访问的环境相同,则f(k)=(n-1)n;当发现用户此次的访问环境和上次相同时,f(k)=0.存疑系数为f(k)与访问频率函数乘积的累加,其表示若用户的访问环境经常发生变动,其访问的存疑程度越高.

最终,用户信任度为

其中,TS为签名通过函数值,P为信任系数,F为存疑系数.

签名信息和环境信息将使用Base64算法进行加密,Base64是目前AWS、阿里云等主流云平台广泛使用并支持的签名信息加密方法.具体流程为:上述信息由流量采集模块采样流量信息并传输至信任过滤模块,信任过滤模块将先验证签名信息的真伪,并对本次访问环境信息和上一次访问时的环境信息进行比较,如果环境信息比较的结果相同,则信任度值随之增加;如果环境信息发生改变,则信任度值也相应降低.

信任过滤算法如算法1所示,其中L存放在访问记录表LList里.

算法1. 信任过滤算法.

输入:加密流量Inflow、访问记录表LList;

输出:被信任的加密流量TrustedFlow、访问记录表LList.

① 输入Inflow;

② 提取签名信息signature;

③ 解密签名信息signature并获取令牌token;

④ if token验证为假

⑤ return TS=0;

⑥ else TS=1;

⑦ end if

⑧ 从LList中获取访问次数L;

⑨ 设置k的值为L;

⑩ 获取环境信息environmentinfo;

if k=0

p(k)=1,f(k)=0;

end if

if e(k)==e(k-1)

p(k)=1,f(k)=0;

else p(k)=0,f(k)=1;

end if

计算信任度T; *根据环境信息确认信任系数和存疑系数后计算信任度T*

LL+1;

if L==n

重置L;

end if

更新LList中的L;

输出被信任的加密流量 TrustedFlow.

3.4 DDoS攻击检测

DDoS攻击检测模块将对流量采集模块处理的未加密流量和未通过信任过滤模块的加密流量进行分类检测.DDoS攻击检测模块由流特征提取、流量分类2个部分构成.

1) 流特征提取

根据云环境下DDoS攻击所呈现的流量数据异常的特征,TruCTCloud方法将对收集到的流量样本进行处理,生成流量特征五元组用于下一步流量分类检测.由于DDoS攻击常常会带来流量大小的变化和IP端口访问的变化,故提取流包数中位值、流字节数中位值、对流比、端口增速、源IP增速5个特征作为流量检测样本的训练参数.其中,流包数中位值、流字节数中位值、对流比由参考文献[23]给出,考虑到云环境下攻击规模增大会导致攻击者的攻击来源变广,攻击的端口也大大增多,这意味着端口和IP的增速变化将会更为明显,为此,本文引入端口增速、源IP增速作为新的流特征.下面分别给出5个特征的计算公式.

流包数中位值(flow median-value of packets, FMP):

(1)

其中,m为流量样本个数,Xi(i=0,1,…,m)为流量样本中按流数据包数由小到大排列的第i位流数据包数.

流字节数中位值(flow median-value of bytes, FMB):

(2)

其中,m为流量样本个数,Yj(j=0,1,…,m)为流量样本中按流字节数由小到大排列的第j位流字节数.

在云环境下,正常访问的流量是为了向云服务器获取云服务,因此访问地址与目的地址具有交互性.假设流A为从访问发起方到目标方的数据流,流B为反向的数据流,那么AB为一对交互流.

对流比(percentage of correlate flow, PCF):

CPCF=2×PairFlowNflowN

(3)

其中,PairFlowN为交互流的对数,flowN为总的流数量.

DDoS的攻击者通常使用随机生成的端口号对受害服务器进行攻击,因此当攻击发生时,访问被攻击主机的不同端口的增速会迅速增大.因此可选择固定时间段内端口的增量作为流量特征.

端口增速(port growth rate, PGR):

CPGR=PortNtime

(4)

其中,PortN为端口增量,time为设置的时间段.

同时,DDoS的攻击者通常使用随机生成的IP地址欺骗受害服务器,因此当攻击发生时,访问被攻击主机的源IP地址增速会迅速增大.因此选择固定时间段内源IP的增量作为流量特征.

源IP增速(source IP growth rate, SIPGR):

CSIPGR=IPSourceNtime,

(5)

其中,IPSourceN为源IP增量,time为设置的时间段.

2) 流量分类

流量分类将使用经过流特征提取得到的5个特征生成流量特征五元组进行分类检测,进而识别流量是否正常.针对已有基于kNN的DDoS攻击检测方法在高维情况下存在检测率和效率低的问题[6],而云环境下的网络流量涉及的端口协议参数等数据具有高维特征,为此,本文所提的TruCTCloud方法引入Ball-tree数据结构来存放训练样本的特征五元组,通过对存放流量参数的数据结构改进来提高传统kNN算法的检测效率.即在输入训练样本的特征数据后,根据Ball-tree结构建树,基于该树进行训练,根据训练结果对后续输入的流量进行分类.算法2给出本文提出的TruCTCloud方法中基于Ball-tree kNN的DDoS攻击检测具体步骤.

算法2. 基于Ball-tree kNN的DDoS攻击检测算法.

输入:流量特征的五元组训练集DataT(带分类标签)、流量特征的五元检测集Instance;

输出:正常流量集normalFlow、异常流量集abnormalFlow.

① 输入训练集 DataT;

S=get_array(DataT); *DataT中的元是流包数中位值、流字节数中位值、对流比、端口增速、源IP增速特征值*

③ 构建Balltree(S,5):

④ if |S|<k then

⑤ stop;

⑥ end if

⑦ 随机选取x0S;

⑩ ∀i=1,2,…,5, ai=(x1-x2)Txi;

*x1-x2的转置与xi相乘*

md=median(a1,a2,…,a5);

*取中位数*

选择左子树范围SL={xS,ai<md};

选择右子树范围SR={xS,aimd};

Balltree.center=mean(S);

*计算球树球心*

center); *计算球树半径*

Balltree.leftchild=Balltree(SL,5);

*左子树递归*

Balltree.rightchild=Balltree(SR,5);

*右子树递归*

return Balltree;

输入检测集 Instance;

D=get_array(Instance);

n=|Instance|;

设置正常流量集normalflow;

设置异常流量集abnormalflow;

for i=0 to n

search_tree(D[i],Balltree);

*找寻球树中的邻近节点*

设置数组ktreenode;

遍历球树Balltree;

获取k个与流量向量距离最近的节点作为ktreenode;

for j=0 to k

*获取k个邻近节点的标签是异常还是正常,分别计数并比较*

m=count(ktreenode[j].label==

normal);

l=count(ktreenode[j].label==

abnormal);

if m>l

划分datapointnormalflow;

*正常标签多过异常标签时数据节点划分为正常流*

else划分datapointabnormalflow;

*反之,划分到异常流*

end if

end for

end for

for j=0 to n

search_tree(D[j],Balltree);

*测试集中每个数据依次分类*

end for

输出normalFlow;

输出abnormalFlow.

4 实验评估

4.1 实验环境

本文搭建了基于OpenStack的云计算平台作为实验环境,实验中一共使用4台物理机,其中1台物理机作为控制节点,1台物理机作为网络节点,2台物理机作为计算节点.

实验拓扑如图5所示,其中网络节点为网关;计算节点1部署的2台虚拟机中,虚拟机H1模拟合法客户端,虚拟机H2模拟攻击者;计算节点2模拟云服务器;控制节点上部署TruCTCloud代理服务器.图6为TruCTCloud方法部署时各节点之间的时序图.

Fig. 5 Experimental topology based on OpenStack
图5 基于OpenStack的实验拓扑

Fig. 6 Nodes interaction in TruCTCloud
图6 TruCTCloud中的节点交互

4.2 攻击检测准确率和误报率

本实验使用NSL-KDD数据集[16].NSL-KDD数据集是一种在DDoS攻击检测中广泛使用的数据集,其包含流量特征五元组所需的流量信息.

本文采用常见的入侵检测指标DDoS攻击检测准确率和误报率去评估所提出方法的DDoS攻击发现效果.DDoS攻击检测准确率(AC)和误报率(FAR)分别为

AC=TN(TN+FN),
FAR=FP(TP+FP),

其中,TP表示正确标记的正常流量,TN表示被正确标记的攻击流量;FP表示误报的正常流量,FN表示被错误标记的异常流量.

基于机器学习的非加密流量检测是当前主流的DDoS检测技术,现有的加密流量检测如文献[15]、阿里云[20]和腾讯云[21]等均是先将加密流量进行解密,再对非加密流量进行检测,这意味着其检测效果等同于直接对非加密流量进行检测,因此,本文主要将提出方法与基于机器学习的DDoS检测方案进行实验比较.具体地,将本文提出方法中基于Ball-tree kNN的DDoS攻击检测算法与基于kNN、SVM、决策树(decision tree)和随机森林(random forest,RF)的DDoS检测算法进行了实验比较.

图7给出了5种不同检测算法的DDoS攻击检测准确率实验结果,其中,横轴表示样本数量,纵轴为DDoS攻击检测准确率.结果表明:本文的基于Ball-tree kNN的DDoS攻击检测算法在准确率上要高于基于kNN,SVM,Decision Tree,RF的检测算法,并且随着样本规模的增加,准确率提升更明显.

图8给出了5种不同检测算法DDoS攻击检测误报率的实验结果,其中,横轴表示样本数量,纵轴为DDoS攻击检测误报率.结果表明:随着样本增大,5种检测算法的误报率均会增加,但是本文的基于Ball-tree kNN的DDoS攻击检测算法在误报率上要低于基于kNN,SVM,Decision Tree,RF的检测算法.

Fig. 7 Comparison of attack detection accuracy
among five DDoS detection algorithms
图7 基于5种DDoS攻击检测算法针对不同样本规模的检测准确率比较

Fig. 8 Comparison of false alarm rate of attack detection
among five DDoS detection algorithms
图8 基于5种DDoS攻击检测算法针对不同样本规模的检测误报率比较

综上,由于本文提出TruCTCloud方法使用Ball-tree结构改进了传统的kNN算法,因而,对比传统的基于kNN,SVM,Decision Tree,RF算法的DDoS检测方法具有更高的检测准确率和更低的误报率,并且随着样本规模的增加,准确率提升明显.

4.3 信任过滤性能

本实验通过比较关闭信任过滤模块和开启信任过滤模块时的服务器CPU利用率,来评估本文提出方法TruCTCloud是否会给DDoS攻击发现带来性能效率提升,即是否降低DDoS发现的系统开销.分别在开启和关闭信任过滤模块的状态下进行了100次测试,实验结果如图9所示,信任过滤开启后的平均CPU利用率为28.3%,关闭时的平均利用率为33.2%,这说明信任过滤功能可降低4.9%的CPU利用率,提升了TruCTCloud方法的性能,减少了DDoS攻击发现的资源开销.

Fig. 9 Comparison of CPU utilization in DDoS attack detection with trust filtering and without trust filtering
图9 开启和关闭信任过滤模块下DDoS攻击发现CPU利用率比较

4.4 对合法文件传输的影响

本实验通过比较部署TruCTCloud和未部署TruCTCloud这2种环境下云服务器对合法客户文件传输请求的访问响应时间,来测试本文提出方法TruCTCloud对云服务性能的影响.分别统计了合法客户端向云服务器请求传输500 KB,1 MB,2 MB文件的响应时间,并且对于不同大小的文件均进行了200轮实验,实验结果如图10~12所示.

基于图10~12的数据,我们进一步计算了200轮实验中不同文件大小在部署TruCTCloud方法和未部署TruCTCloud方法的平均响应时间(average response time),得到部署TruCTCloud方法后和部署前的相对延迟时间(relative latency response time),即部署TruCTCloud后比未部署时多出的响应时间.同时,通过统计部署TruCTCloud方法和未部署TruCTCloud方法平均响应时间的差值占未部署TruCTCloud响应时间的百分比来计算部署TruCTCloud方法后带来的额外开销(additional overhead).如表1所示,当文件大小相对较小时,部署TruCTCloud方法带来的额外开销会相对大一些,但随着文件大小的增加,额外开销所占时间比会随之减小.此外,TruCTCloud部署带来的相对响应延迟时间在0.02~0.03 s之间,这对于合法用户带来的影响可以忽略不计.

Fig. 10 Transmission response time of 500KB files
without TruCTCloud and with TruCTCloud
图10 未部署和部署TruCTCloud时500 KB文件传输响应时间

Fig. 11 Transmission response time of 1 MB files
without TruCTCloud and with TruCTCloud
图11 未部署和部署TruCTCloud时1 MB文件传输响应时间

Fig. 12 Transmission response time of 2 MB files
without TruCTCloud and with TruCTCloud
图12 未部署和部署TruCTCloud时2 MB文件传输响应时间

Table 1 Comparison of Response Time and AdditionalOverhead at Different File Sizes

表1 不同文件大小传输响应时间和额外开销对比

传输响应时间和额外开销文件大小500KB1MB2MB部署TruCTCloud方法的平均响应时间∕s0.1030.1420.201未部署TruCTCloud方法的平均响应时间∕s0.1310.1620.224相对响应延迟时间∕s0.0280.020.023额外开销∕%27.1814.0811.4

5 结论和下一步工作

本文提出了一种云环境下基于信任的加密流量DDoS攻击发现方法TruCTCloud.该方法提出融合用户身份认证和环境相关信息的信任评估机制,基于信任评估机制先过滤掉云环境中的显然非攻击流量,实现了对合法租户敏感流量信息的保护.同时,引入流包数中位值、流字节数中位值、对流比、端口增速、源IP增速5种流特征,基于流特征构建Ball-tree,并基于Ball-tree结构改进传统kNN算法实现DDoS攻击流量的分类检测.最后通过实验分析本文提出方法的有效性.实验结果表明:本文提出方法可将DDoS攻击检测准确率提升至98.3%,与现有检测算法相比,具有更好的DDoS攻击发现效果.同时,由于引入了信任过滤,可实现对合法租户敏感流量信息的保护.

本文提出方法引入了基于用户身份认证和环境相关信息的信任评估机制,其中信任度计算初值的定义和获取仍是一个难题,下一步会对信任评估方法进行优化,提出支持更多环境和属性信息的细粒度信任度计算方法.此外,当前主要考虑了端口增速、源IP增速等5类特征,后续可继续挖掘恶意流量特征以进一步提高DDoS攻击的发现效率.

参考文献

[1]Yan Qiao, Yu F R, Gong Qingxiang, et al. Software-defined networking(SDN) and distributed denial of service(DDoS) attacks in cloud computing environments: A survey, some research issues, and challenges[J]. IEEE Communications Surveys Tutorials, 2016, 18(1): 602-622

[2]Cisco. Cisco 2018 annual cybersecurity report[R/OL]. 2018[2019-07-18]. https://www.cisco.com/c/dam/m/hu_hu/campaigns/security-hub/pdf/acr-2018.pdf

[3]Alshamrani A, Chowdhary A, Pisharody S, et al. A defense system for defeating DDoS attacks in SDN based networks[C] //Proc of the 15th ACM Int Symp on Secured and Resilient Networking. New York: ACM, 2017: 83-92

[4]Lin Yihui, Shen Shanhsiang, Yang Minghong, et al. Privacy-preserving deep packet filtering over encrypted traffic in software-defined networks[C] //Proc of the IEEE Int Conf on Communications. Piscataway, NJ: IEEE, 2016: 1938-1883

[5]Zhang Long, Wang Jinsong. DDoS attack detection model based on information entropy and DNN in SDN[J]. Journal of Computer Research and Development, 2019, 56(5): 909-918 (in Chinese)(张龙, 王劲松. SDN中基于信息熵与DNN的DDoS攻击检测模型[J]. 计算机研究与发展, 2019, 56(5): 909-918)

[6]Zhu Liehuang, Tang Xiangyun, Shen Meng, et al. Privacy-preserving DDoS attack detection using cross-domain traffic in software defined networks[J]. IEEE Journal on Selected Areas in Communications, 2018, 36(3): 628-643

[7]Holgado P, Villagra V A, Vazquez L. Real-time multistep attack prediction based on hidden Markov models[J]. IEEE Transactions on Dependable and Secure Computing, 2017, 17(1): 134-147

[8]Liu Zihao, Zhang Bin, Zhu Ning, et al. Adaptive app-DDoS detection method based on improved AP algorithm[J]. Journal of Computer Research and Development, 2018, 55(6): 1236-1246 (in Chinese)(刘自豪, 张斌, 祝宁, 等. 基于改进AP聚类算法的自学习应用层DDoS检测方法[J]. 计算机研究与发展, 2018, 55(6): 1236-1246)

[9]Wang Fei, Feng Jing. Research on network traffic identification technology for big data platform[C] //Proc of the 10th Int Conf on Communication Software and Networks(ICCSN). Piscataway, NJ: IEEE, 2018: 584-588

[10]Seufert S, O’Brien D. Machine learning for automatic defense against distributed denial of service attacks[C] //Proc of the IEEE Int Conf on Communications. Piscataway, NJ: IEEE, 2007: 1217-1222

[11]Wang Yichuan, Ma Jianfeng, Lu Di, et al. Game optimization for internal DDoS attack detection in cloud computing[J]. Journal of Computer Research and Development, 2015, 52(8): 1873-1882 (in Chinese)(王一川, 马建峰, 卢笛, 等. 面向云环境内部DDoS攻击检测的博弈论优化[J]. 计算机研究与发展, 2015, 52(8): 1873-1882)

[12]Mohanapriya P, Shalinie S M. Restricted Boltzmann machine based detection system for DDoS attack in software defined networks[C] //Proc of the 4th Int Conf on Signal Processing Communication and Networking(ICSCN). Piscataway, NJ: IEEE, 2017: 827-833

[13]Han Zizheng. A method of detecting DDoS attack based on entropy value in SDN[J]. Information Technology, 2017, (1): 63-66 (in Chinese)(韩子铮. SDN中一种基于熵值检测DDoS攻击的方法[J]. 信息技术, 2017, (1): 63-66)

[14]Liu Chien-Chang, Chang Yu, Tseng Chia-Wei, et al. SVM-based classification mechanism and its application in SDN networks[C] //Proc of the 13th APCA Int Conf on Control and Soft Computing(CONTROLO). Piscataway, NJ: IEEE, 2018: 45-49

[15]Gilad Y, Herzberg A, Sudkovitch M, et al. CDN-on-demand: An affordable DDoS defense via untrusted clouds[C] //Proc of the 23rd Annual Network and Distributed System Security Symp. New York: ISOC, 2016: 230-244

[16]University of New Brunswick(UNB). The national security lab-knowledge discovery and data mining dataset(NSL-KDD)[EB/OL]. [2019-04-21]. https://www.unb.ca/cic/datasets/nsl.html

[17]Liu Zhuotao, Cao Yuan, Zhu Min, et al. Umbrella: Enabling ISPs to offer readily deployable and privacy-preserving DDoS prevention services[J]. IEEE Transactions on Information Forensics and Security, 2019, 14(4): 1098-1108

[18]Lua R, Yow K C. Mitigating DDoS attacks with transparent and intelligent fast-flux swarm network[J]. IEEE Network, 2011, 25(4): 28-33

[19]Zolotukhin M, Hämäläinen T, Kokkonen T, et al. Increasing Web service availability by detecting application-layer DDoS attacks in encrypted traffic[C] //Proc of the 23rd Int Conf on Telecommunications(ICT). Piscataway, NJ: IEEE, 2016: 345-351

[20]Alibaba Cloud. (Optional) Step 1: Set up HTTPS protection[EB/OL]. [2020-03-22]. https://www.alibabacloud.com/help/zh/doc-detail/35163.htm

[21]Tencent Cloud. DDoS high protection IP site business access-document center[EB/OL]. [2020-04-29]. https://cloud.tencent.com/document/product/1014/44087

[22]Wang Bing, Zheng Yao, Lou Wenjing, et al. DDoS attack protection in the era of cloud computing and software-defined networking[C] //Proc of the 22nd IEEE Int Conf on Network Protocols. Piscataway, NJ: IEEE, 2014: 624-629

[23]Feng Yifu, Guo Rui, Wang Dongqi, et al. Research on the active DDoS filtering algorithm based on IP flow[C] //Proc of the 5th Int Conf on Natural Computation. Piscataway, NJ: IEEE, 2009: 628-632

A Trust-Based DDoS Discovery Approach for Encrypted Traffic in Cloud Environment

Pan Yuting and Lin Li

(College of Computer Science, Faculty of Information Technology, Beijing University of Technology, Beijing 100124)(Beijing Key Laboratory of Trusted Computing(Beijing University of Technology), Beijing 100124)

Abstract In the cloud environment, DDoS(distributed denial of service) attacks may be more covert, easier to launch and potentially larger because data flow can be encrypted. A trust-based DDoS attack discovery approach for the encrypted traffic in the cloud environment called TruCTCloud is proposed. Firstly, a trust evaluation mechanism is introduced to filter the non-attack traffic of legitimate tenants by exploiting signature of the cloud service itself with the other environmental factors, and then the sensitive information contained in legitimate tenants’ traffic is guaranteed. Secondly, a traffic classification algorithm based on the kNN(k-nearest neighbors) is proposed to detect and identify for the filtered encrypted traffic and other unencrypted traffic, where five kinds of characteristics including flow median of packets per flow, flow median of bytes per flow, percentage of correlative flow, port growth rate and source IP growth rate are introduced to construct a Ball-tree data structure of characteristics. Finally, some experiments are conducted to evaluate the proposed method in the OpenStack cloud platform. The results suggest that our method can quickly detect the abnormal traffic or early traffic of DDoS attack and effectively protect the sensitive traffic information of legitimate users from the DDoS attack.

Key words cloud environment; DDoS attack discovery; trust-based filtering; encrypted flow detection; kNN algorithm

(panyt_aurora@foxmail.com)

收稿日期2020-03-20;修回日期:2020-08-13

基金项目国家自然科学基金项目(61502017);北京市教委科技计划一般项目(KM201710005024)

This work was supported by the National Natural Science Foundation of China (61502017) and the Scientific Research Common Program of Beijing Municipal Commission of Education (KM201710005024).

通信作者林莉(linli_2009@bjut.edu.cn)

中图法分类号 TP309

Pan Yuting, born in 1995. Master. Her main research interests include cloud security and SDN.

潘雨婷,1995年生.硕士.主要研究方向为云安全和SDN.

Lin Li, born in 1979. PhD, associate professor and master supervisor. Member of CCF. Her main research interests include cloud computing security, privacy protection and artificial intelligence security.

林 莉,1979年生.博士,副教授,硕士生导师,CCF会员.主要研究方向为云计算安全、隐私保护和人工智能安全.