云环境下融合信任和学习的DDoS攻击发现方法与流程

专利2022-06-29  85


本发明属于云计算安全技术领域,具体涉及云环境下融合信任和学习的ddos攻击发现方法。该方法提出了基于信任的流量过滤方法和基于机器学习的ddos攻击检测这两个关键技术,既可以保证云环境下用户敏感数据得到更好的保护,又可以减轻ddos攻击对云服务的影响。



背景技术:

随着云计算技术的应用和普及,越来越多的ddos攻击源迁移到了云计算环境中,在大量消耗云计算资源的同时,也影响了云服务的可用性。与传统网络相比,云环境下的ddos攻击具有以下新的特征:1)云服务的开放性使其更容易被攻击者利用发起ddos攻击(如edos攻击等),同时云环境下it资源的集中化使得ddos攻击规模更大且能造成更大的危害[1];2)随着云服务模式下用户对通信数据的隐私需求提高,这使得https等加密流量占总流量的比例接近70%,当针对特定端口、协议和服务(如dns,http,voip等)的ddos攻击通过加密流量发起,其具有一定隐蔽性,更难以检测。因而如何在云环境下发现加密流量ddos攻击成为有效防御ddos的重要问题之一。

传统网络的ddos攻击发现方法可分为误用检测、异常检测以及两者混合检测三类,其中异常检测最为普遍,其通过识别网络中的异常行为来发现是否存在ddos攻击。近年来,基于svm向量机、k-近邻、隐马尔可夫、神经网络等多种机器学习算法的检测方案被相继引入,不断提升ddos检测的效率和准确性。目前,aws、阿里云等知名云服务商也提供了ddos攻击处理服务,如阿里云的ddos高防ip服务通过流量重定向过滤并消化掉攻击流量。然而如果攻击者使用https等ssl/tls加密协议传输数据时,云服务商需要先将流量解密后再进行清洗,但如果攻击者使用https等ssl/tls加密协议传输数据,检测方则需先将流量解密后再进行清洗,效率较低。

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



技术实现要素:

针对现有的云环境下加密流量的ddos攻击检测存在的敏感信息保护不到位和加密流量ddos攻击检测效率等问题,本发明提出了一种云环境下融合信任和学习的ddos攻击发现方法。该方法在现有基于机器学习的ddos检测中引入信任的思想,结合云服务自身的安全认证,融入基于签名和环境因素的信任评估机制过滤掉合法租户的显然非攻击流量,在无需对加密流量解密的前提下保障合法租户流量中包含的敏感信息。其后,对于其他加密流量和非加密流量,根据云环境下攻击流量大的特征改进特征提取方法,增加了端口检测和源ip增速检测,采用改进的knn算法来对流量进行分类检测,以提升检测的效率和准确率。

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

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

在该场景中,传统的检测手段检测效率和准确率相对较低,因此需要引入机器学习算法来进行ddos攻击检测。机器学习常常被用于大规模网络的ddos检测,需要在网络中部署ddos攻击检测组件来发现潜在的ddos攻击。由于knn方法的优势是其算法精度高,理论成熟。因此,本发明使用knn算法对流量进行分类对进行检测。但传统的knn算法处理效率不够高,因此,为了提高检测效率,本发明选用ball-tree数据结构来进行检测,ball-tree是一种改善knn算法的数据结构,以解决knn传统数据结构在高维情况下的检测率和效率问题。

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

本发明方法功能主要由方法代理服务器实现,部署在用户与网关之间,架构图如图1所示。主要部署了流量采集模块、基于信任的流量过滤模块和ddos攻击检测模块。

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

信任过滤模块基于对合法用户身份的可靠性,信任已知的合法用户的安全性。本模块选用了信任度评估来作为身份识别的关键,对加密流量的发送方的身份进行认证。信任度评估由信任过滤方法的评估组件完成。若身份未通过认证,那么信任通过模块会将流量转发至特征检测模块,进行下一步处理。在这个过程中,模块全程对流量内容不知情,保证合法用户与服务器之间的通信不被窥视。

攻击检测模块则针对未通过信任认证的流量和未加密的流量,使用基于异常的ddos攻击检测的方法,利用knn算法构建特征分类模块,通过常见的特征集和收集的流量数据对算法进行训练,完成特征的分类学习,并对算法进行检测。击检测模块由特征提取、流量分类两个部分构成。

本发明方法的工作流程如图2所示,当流量被引流至代理服务器,首先经由流量采集模块,将流量分为加密流量和非加密流量,分别转发至信任度评估模块和流特征提取模块,信任评估模块将计算信任度来决定流量是否能够通过。若判定不通过则将流量转至流特征提取模块,在这里将会通过机器学习来对流量进行检测,判定是否存在ddos攻击,若是则截断该流量。

与现有技术相比,本发明所提出的方法具有以下优点:

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

提出了融合用户身份认证和环境相关信息的信任评估机制,并基于该机制实现基于信任的加密流量过滤,在完成无需解密的加密流量ddos攻击检测的同时,实现了对合法租户敏感流量信息的保护。

附图说明

图1为云环境下融合信任和学习的ddos攻击发现框架设计;

图2为云环境下融合信任和学习的ddos攻击发现工作流程;

具体实施方式

下面结合附图和具体实施方式对本发明做进一步说明。

本发明所述云环境下融合信任和学习的ddos攻击发现方法如下:

1.流量采集

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

采集获得的流量格式如下表所示:

其中extendedurldata包含基于信任的过滤方法所需要的token和签名信息。extendeduserdata包含基于信任的过滤方法所需要的环境参数信息。rawpacket包含原始报文信息,用于流特征的提取和分类。

2.基于信任的流量过滤

信任过滤模块主要配置于代理服务器上。当该模块到流量请求的发送者身份是可信的,那么将默认该发送者的流量内容也是可信的,不许进行检测即可放行。这样的规则不仅能确保云租户的敏感信息也可以减少对ddos发现组件的检测负担。

如何判断可信是信任通过模块的核心,解决方法是对加密流量的访问者进行信任度评估。本方法基于对用户身份的认证和环境条件的评估定义用户的信任度,用户信任度取值[0,1]。信任度的评估中包含签名认证和环境参数。

信任参数包含签名参数和环境参数。签名是为了使流量发出请求的url能够认证用户的token信息,而出现的加密签名数据。签名参数包含:签名签发时间、时间戳和用户身份信息。环境参数包含用户的ip地址和mac地址等设备和位置信息。

根据用户访问的频率,设置访问频率函数:

h(k)=h(k-1) 1/l;

其中l为访问次数,到l次将清空该参数。该访问次数将存储在过滤模块的访问表里,作为信任过滤算法的输入输出内容。该函数将用于信任度的环境熟悉程度的评估,如果用户使用相同的设备和ip对云服务进行访问,相对于陌生环境的用户,可以认为它是更加可信的。

同时,设置信任次数和存疑系数用于对不同次数的访问的信任度的计算。

信任系数:

系数p(k)为当访问环境相同时,该系数为1,信任系数与访问频率函数相乘进行累加。

存疑系数:

系数f(k)为当访问环境不同时,该系数为1,存疑系数与访问频率函数相乘进行累加。

信任度:

由签名通过值ts、信任系数p和存疑系数f构成。ts为签名通过值,只有0(验证失败)和1(验证成功)两个值。

客户端的信任模块将为签名信息和环境信息使用base64算法进行加密。由流量采集模块收集并传输至信任通过模块,信任通过模块将先验证签名信息的真伪,并对本次访问环境信息和上一次访问时的环境信息进行比较,如果环境信息比较的结果是相同,则信任值增加,如果环境发生改变,则信任值降低。

基于信任的流量过滤算法如表1所示。

表1基于信任的流量过滤算法

3.ddos攻击检测

攻击检测模块则针对未通过信任认证的流量和未加密的流量,借鉴异常检测思路,利用knn算法构建特征分类模块,通过常见的特征集和收集的云环境下ddos攻击流量数据对算法进行训练,完成特征的分类学习,并对算法进行检测。攻击检测模块由特征提取、流量分类两个部分构成。

3.1流特征提取

据云环境下ddos攻击所呈现的流量变化异常、端口ip变化异常的特征,流特征提取组件收集到的流表数据进行处理,生成一个包含能检测网络中ddos攻击带来的异常的五元向量组,将其传输至分类检测组件中。由于ddos攻击常常会带来流量大小的变化和ip端口访问的变化,提取流包数中位值、流字节数中位值、对流比、端口增速、源ip增速的五元组数据作为流量检测样本的训练参数。

流包数中位值:选取流量表中每道流的数据包数,以数据包数的中位数作为特征向量第一组参数。

公式(1)中,xi表示为每个流数据包数组成的样本集中的第i项,按序排列。

流字节数中位值:取流量表中每道流的字节数,以字节数中位数作为特征向量的第二组参数。

公式(2)中yi表示为每个流字节数组成的样本集中的第i项,按序排列。

对流比:正常访问的流量是为了向服务器获取服务,因此访问地址与目的地址具有交互性。假设流a为从访问发送方到目标方的数据流,流b为反向流量。那么a与b则为对流。定义对流比为对流比计算方式:对流比=交互流的对数/流的总数。

pcf=2×pairflown/flown(3);

公式(3)中pairflown为交互流的对数,flown为总的流数量。

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

psg=portn/time(4);

公式(4)中portn为端口增量,time为设置的时间段。

源ip增速:ddos的攻击者通常使用随机生成的ip地址欺骗受害服务器,因此当攻击发生时,访问被攻击主机的源ip地址增速会迅速增大。因此选择固定时间段内源ip的增量作为特征向量的第五组参数。

ipsg=ipsourcen/time(5);

公式(5)中ipsourcen为源ip增量,time为设置的时间段。

3.2流量分类

通过流量识别模块,接收流特征提取模块传递过来的五元组从而识别流量是否正常。本发明使用基于knn算法的分类方法,用基于索引的数据结构的ball-tree来存放训练样本的五元组特征。

表2基于ball-tree数据结构的knn-ddos攻击检测算法


技术特征:

1.云环境下融合信任和学习的ddos攻击发现方法,其特征在于:包括流量采集模块、基于信任的流量过滤模块和ddos攻击检测模块;

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

(2)基于信任的流量过滤模块结合云服务自身的安全认证,融入基于签名和环境因素的信任评估机制过滤合法租户的显然非攻击流量,若加密流量发送方的身份未通过认证,那么信任通过子模块会直接将流量转发至ddos攻击检测模块,进行下一步处理;在这个过程中,信任过滤模块全程对流量内容不知情,保证合法用户与服务器之间的通信不被窥视;信任过滤模块包括信任度评估子模块和信息通过子模块;

(3)攻击检测模块则针对未通过信任过滤的流量和未加密的流量,借鉴异常检测思想,引入流包数中位值、流字节数中位值、对流比、端口增速和源ip增速特征,构建ball-tree特征结构,通过常见的特征集和收集的流量数据对算法进行训练,基于knn算法完成特征的分类学习;攻击检测模块由特征提取子模块和流量分类子模块构成。

2.根据权利要求1所述的云环境下融合信任和学习的ddos攻击发现方法,其特征在于:包括以下步骤,

输入加密流量和模块中的访问记录表,获取流量中携带的签名信息和环境信息;

验证签名真伪,若签名中验证成功,则继续获取环境信息和访问记录表中该用户的访问次数,并根据环境信息确认信任系数和存疑参数并计算信任度t,用户信任度取值范围为[0,1];

更新访问记录表的信息,并根据信任度结果,判断是否是被信任的加密流量,若是,则放行该流量。

3.根据权利要求1所述的云环境下融合信任和学习的ddos攻击发现方法,其特征在于:攻击检测的实施流程在于:

1)流特征提取

根据云环境下ddos攻击所呈现的流量变化异常、端口ip变化异常,将收集到的流表数据进行处理,如公式(1)计算流量的流包数中位值、公式(2)计算流量的流字节数中位值、公式(3)计算流量的对流比、公式(4)计算流量的端口增速、公式(5)计算流量的源ip增速值五个特征,生成一个五元向量组,作为流量分类子模块样本的训练参数;

流包数中位值:选取流量表中每道流的数据包数,以数据包数的中位数作为特征向量第一组参数;

公式(1)中,xi表示为每个流数据包数组成的样本集中的第i项,按序排列;

流字节数中位值:取流量表中每道流的字节数,以字节数中位数作为特征向量的第二组参数;

公式(2)中yi表示为每个流字节数组成的样本集中的第i项,按序排列;

对流比:正常访问的流量是为了向服务器获取服务,因此访问地址与目的地址具有交互性;假设流a为从访问发送方到目标方的数据流,流b为反向流量;那么a与b则为对流;定义对流比为对流比计算方式:对流比=交互流的对数/流的总数;

pcf=2×pairflown/flown(3);

公式(3)中pairflown为交互流的对数,flown为总的流数量;

端口增速:ddos的攻击者使用随机生成的端口号对受害服务器进行攻击,因此当攻击发生时,访问被攻击主机的不同端口的增速会迅速增大;因此选择固定时间段内端口的增量作为特征向量的第四组参数;

psg=portn/time(4);

公式(4)中portn为端口增量,time为设置的时间段;

源ip增速:ddos的攻击者通常使用随机生成的ip地址欺骗受害服务器,因此当攻击发生时,访问被攻击主机的源ip地址增速会迅速增大;因此选择固定时间段内源ip的增量作为特征向量的第五组参数;

ipsg=ipsourcen/time(5);

公式(5)中ipsourcen为源ip增量,time为设置的时间段;

2)流量分类

基于ball-tree数据结构的knn-ddos攻击检测算法,包括以下步骤:

通过带有流量特征的五元组训练集构建ball-tree,五元组包含流包数中位值、流字节数中位值、对流比、端口增速、源ip增速;

接收流特征提取子模块传递过来的五元组;

基于knn算法用ball-tree对输入的待检测的五元组进行分类;正常流量将输出至正常流量集,异常流量将输出至异常流量集。

技术总结
本发明公开了云环境下融合信任和学习的DDoS攻击发现方法,该方法在现有基于机器学习的DDoS检测中引入信任的思想,结合云服务自身的安全认证,融入基于签名和环境因素的信任评估机制过滤合法租户的显然非攻击流量,在无需对加密流量解密的前提下保障合法租户流量中包含的敏感信息。其后,对于其他加密流量和非加密流量,引入流包数中位值、流字节数中位值、对流比、端口增速、源IP增速的五元组流量特征,提出基于Ball‑Tree数据结构的KNN流量分类算法,进一步保障提出方法的检测效率和检测准确率。

技术研发人员:林莉;潘雨婷
受保护的技术使用者:北京工业大学
技术研发日:2020.01.08
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-19547.html

最新回复(0)