基于流量可视化的DDos网络攻击识别
2021-03-07常昊张铮陈岑李暖暖
常昊 张铮 陈岑 李暖暖
(国网河南省电力公司电力科学研究院 河南省郑州市 450000)
1 引言
Dos是Denialof Serviceattack(拒绝服务攻击)的简称,该行为也可以被称作洪水攻击,是一种非常典型的网络攻击手段,其攻击行为的目的是在一定时间向特定目标机器,发送大量的请求服务,导致服务器CPU、内存等资源使用情况升高,使得目标电脑的网络或者系统资源耗尽,中断或暂停其服务,使得一般用户无法正常访问。
DDos[1]攻击是在Dos攻击的基础上,进一步升级而来。DDos是 distributed denial-of-service attack(分布式拒绝服务攻击)的简称,该攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏和干扰目标服务器、服务或网络正常流量的恶意行为。通常情况下可以造成网络异常缓慢、网页无法打开、网络异常断开、垃圾邮件数量急剧增加等情况。当攻击者使用网络上两个或以上受损的计算机系统或联网设备作为攻击流量来源向特定目标机器发动Dos攻击时,由于攻击的发出点是分散于不同地方的,因此被称作DDos攻击。DDos攻击常见的方式有:UDP洪水攻击、ICMP洪水攻击、死亡Ping、SYN洪水攻击、分布式HTTP洪水攻击、僵尸网络攻击、应用程序洪水攻击等。DDoS发起者一般针对重要服务和知名网站进行攻击,如游戏公司、银行、信用卡支付网关、甚至根域名服务器等,主要目的为恶意玩家作弊和敲诈勒索。
根据国家互联网应急中心CNCERT/CC公布的2021年第2季度我国DDoS攻击资源分析报告中显示,利用肉鸡进行攻击的方式仍是目前占比较大的一种攻击手段[2],利用肉鸡终端发起DDos攻击的活跃控制端有741个,其中境外控制端占比96.6%,云平台控制端占比78.7%,其中参与真实地址攻击(包括真实地址攻击与反射攻击等其他攻击的混合攻击)的肉鸡高达491680个,境外肉鸡占比为94.7%,云平台肉鸡占比为2.8%。腾讯安全2020年DDos威胁报告指出,2020年时充满挑战和变化的一年,近些年DDos攻击次数逐年上涨,2020年相比2019年而言攻击次数翻翻,海外攻击大幅上涨,游戏行业的攻击次数和占比也都创造了新高,其中UDP洪水攻击仍是当前攻击手段的主力,攻击次数占比高达88%。
如今网络安全的问题已经上升至国家层面,2017年随着《网络安全法》的实施,进一步加快了网络安全规范和基础设施建设。面对日益剧增的DDos攻击,不仅涉及到企业自身利益,也与国家网络安全息息相关,随着网络技术手段的发展,DDos的攻击模式也在不断的更新如何高效、正确、快速的识别DDos攻击也是当前一大热门问题。本文提出了一种基于流量可视化的DDos网络攻击识别的方法,该方法首先将捕获的网络流量进行数据清洗,保留重要的特征值,将特征值转化为二进制文本用以生成数据流的灰度图,为了提高图片的差异性更好的分辨正常访问流量与DDos攻击流量,将灰度图进行傅里叶变换,生成最终的图片模型使得流量数据可视化,从而进行机器学习图片分类,该方法将原本的流量文本分类转化为了图片分类的问题,明显提高数据预测的准确率和检测效果。
2 相关技术
目前检测DDos攻击的方式有多种,可以通过检测方式的不同或部署位置的细分分为大致两大类:按检测模式分类的方法和按部署位置分类的方法。
2.1 检测模式分类的检测方式
2.1.1 基于误用的DDos攻击检测
基于误用检测方法是根据以往攻击事件的特征库与流量进行特征匹配从而检测DDos流量攻击的一种方式,故误用检测的IDS能精准的检测出已经出现过的旧式攻击。但当攻击者使用新型DDos进行网络攻击时,基于误用的检测方式便无法检测出DDos攻击,因为新型的DDoS攻击的特征尚不在特征库内,因此可以逃避掉DDos检测。王功聪等人通过将数据包头和数据包内容两部分与建立的异常行为特征库进行比对匹配,从而检测DDos攻击。[3]
2.1.2 基于异常的DDos攻击检测
基于异常的DDos攻击检测方式主要是通过检测流量数据记录,筛查异常流量,检测出可能存在网络攻击的事件。目前绝大多数的DDos检测方式均为基于异常的DDos检测方式,该检测方式依赖于所建立的检测模型,根据不同检测模型产生了统计检测、行为模式匹配检测两类模式。张新跃等人使用了一种自适应的异常流量检测方法,将静态匹配与动态过滤调整的方式相结合,用以快速甄别异常流量。[4]黄长慧等人通多分析受到攻击时流量分布的状态,提出了基于自相似流量检测的DDos攻击检测手段。[5]
2.1.3 基于混合模式的攻击检测
基于混合模式的攻击检测方法将基于误用的检测方法和基于异常的检测模式相结合,最后使用机器学习等方法进行检测。夏玉明等人提出了一种将日志信息转为灰度化图像然后基于卷积神经网络进行流量分类从而完成对DDos检测的方法。[6]刘奕等人通过计算流量特征的的信息熵,使用信息熵作为特征集对DDos进行检测。[7]孟伟东等人提出了基于网络流量特征和自适应匹配追踪的方法用以检测低密度DDos攻击。[8]近些年机器学习检测DDos攻击的的方法较为常见,且检测效果相对较好。
2.2 部署位置分类的检测方式
根据目前对于DDos检测的程序或设备部署位置的不同又可以分为源端检测、中间网络检测、目的端检测。
2.2.1 源端检测
源端检测DDos指的是将检测算法部署到攻击方所属网络的边界路由器上,从而做到在攻击流量进入网络前将其阻隔。罗华等人提出了一种使用网络全局流量特征来检测DDos的方法,该方法可以在近源测快速定位到DDos攻击,进一步降低被攻击的可能性。[9]
2.2.2 中间网络检测
中间网络检测是指将检测算法部署到包括路由器、交换机在内的整个网络上,通常情况下需要在网络的核心设备中部署分布式的检测系统降低漏报率。Lee K等人提出了新路由算法和站点分配算从而尽可能避免CDN网络中的DDos攻击。[10]
2.2.3 目的端检测
目的端检测指的是将检测算法部署到被攻击主机或被攻击主机所在网络的边界路由器上,从目的端阻隔攻击流量的进入,目前为止,目的端检测DDos的方法也是部署最多的检测方式。邹大立等人提出了基于流量牵引的防御系统将攻击流量锁定到局部,降低被攻击风险。[11]
3 本文方法
本文提出了一种基于流量可视化的DDos检测方法,该方法首先对网络流量中的重要数据特征进行提取,然后对特征进行数据清洗和数据填充,将数据数据转化为二进制生成灰度图,为了放大正常访问流量与DDos恶意流量特征的差别,提高预测准确率,进一步将灰度图通过傅里叶变换生成新的图像,最后使用机器学习进行恶意流量的识别,将恶意流量识别的问题转化为了图像识别的问题。
3.1 特征选择
可以捕获到的网络流量特征有包括Flow Duration(流持续时间)、Tot FwdPkts(在正向上包的数量)、Tot BwdPkts(在反向上包的数量)、TotLenFwdPkts(正向数据包的总大小)等在内的几十种,由于用户正常访问所产生的流量和DDos攻击所产生的流量在部分特征上有显著的差别,因此首先可以将具有显著差别的特征进行筛选,之后对筛选出的特征进行数据清洗与数据格式填充,将所有流量经过筛选出的特征数据拼接后转化为统一格式,为生成灰度图做铺垫。
3.1.1 数据预处理
数据预处理要对筛选出来的特征数据进行清洗与填充,首先对流量数据特征中的脏数据进行数据清洗,然后对特征数据格式长度不满足实验要求的数据进行0字节填充,使得最终每一条流量数据的特征数据拼接后的数据长度都保持统一。
3.2 灰度图
灰度图又称为灰阶图,是将白色和黑色之间的按照对数关系分成为若干等级,称之为灰度。灰度拥有256阶,用灰度表示的图像被称为灰度图。恶意代码通常情况下经过改造,可以轻松绕过检测手段,因此使用静态的检测方式无法及时的发现恶意代码程序;而使用动态检测的成本过高,通常需要拥有隔离环境进行测试。近些年来,随着计算机性能和机器学习技术的发展,学者们提出了一种基于灰度图的可视化二分类方法,因为恶意代码和正常代码在二进制表达上有着较为显著的差别,并且可以较为精确的区别恶意代码家族,因此灰度图在恶意代码识别领域有了较为广泛的应用。图1所示为cobaltstrike生成的恶意代码家族的灰度图像。
图1:恶意代码灰度图
3.3 傅里叶变换
傅里叶变换是一种线性积分的变换,常见于信号在时域(或空域)和频域之间的变换,多应用于物理学和工程学的领域中。其表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。当应用于不同的领域的时候,傅里叶变换拥有包括连续傅里叶变换和离散傅里叶变换在内的多种不同的变形形式。在图像处理领域,将一幅图像从其空间域转换为频域,图像处理用到的主要是离散傅立叶变换。将灰度图经过傅里叶变换后可以有效放大图片在频域上的特征,提高机器学习的预测准确率。
通过以上步骤最终将流量二分类问题转化为可视化图像的识别二分类问题,不依赖于特征库,可以有效防范较新的DDos攻击,在目的端对DDos攻击的流量进行有效检测。
4 实验验证
4.1 实验数据源
实验数据来自于CSE-CIC-IDS2018,该数据集最初由新不伦瑞克大学创建,用于分析 DDoS 数据。数据集本身基于大学服务器的日志,该日志在公开可用期间发现了各种DDoS 攻击。数据集中的流量拥有多达80项的流量特征。
4.2 实验参数
经过将正常访问产生的流量和DDos攻击产生的流量进行比对,发现有部分特征数据用有明显的差异,在本文中,从80个流量特征中筛选出了20个特征作为本次实验的特征集合。筛选出的20个特征如表1所示。
表1:筛选出的流量特征
由于每条数据流量中的特征值数据格式不统一,故需要在转化为灰度图之前将数据进行清洗和填充,对于每个特征值而言,将其转化为二进制数据,并将其低位以0比特填充,使得每个特征值最终的长度为10个字节,最后将其生成灰度图,为了进一步扩大特征区别,再将灰度图经过傅里叶变换生成新的图像,使用KNeighborsClassifier算法k值为5的KNN机器学习模型对图像进行二分类。
4.3 实验结果
通过数据清洗和填充后,将流量数据集中的正常访问流量与DDos攻击流量分别生成灰度图,正常访问流量灰度图如图2所示,DDos攻击流量生成的灰度图如图3所示。
图2:正常访问流量灰度图
图3:DDos攻击流量灰度图
将灰度图进一步经过傅里叶变换生成新的图像,进一步放大特征区别,正常访问流量灰度图经过傅里叶变换后如图4所示,DDos攻击流量灰度图经过傅里叶变换后如图5所示。
图4:正常访问流量灰度图傅里叶变换
图5:DDos攻击流量灰度图傅里叶变换
经过傅里叶变换后可以放大流量特征,对DDos的流量更容易鉴别,进一步提高机器学习预测准确率,经过KNN机器学习可以较好的对流量进行分类,对 DDos预测准确率可以达到92.78%。
本文中所提出的基于流量可视化的DDos的网络攻击识别方法,通过机器学习算法,可以在目的端较为准确的识别已知的DDos网络流量攻击,对于未知的网络流量和较新的DDos流量也可以和正常访问流量较好的区分。
5 结语
本文首先对目前已有的DDos检测方式进行了介绍,针对不同的DDos检测方法的工作原理以及优点缺点进行了阐述,针对目前已有的检测算法而言,检测的准确率主要依托于特征集以及数据的质量,面对较新的DDos攻击时,目前的检测方法在准确率方面无法得到保障,本文提出了一种基于流量可视化的DDos检测方法,该方法通过将流量数据转为二进制数据,使用二进制数据生成灰度图后,经过傅里叶变换放大流量特征,最终使用机器学习模型进行图像识别分类,将文本分类问题转化为了图像分类问题,不依赖于特征库,对于较新的DDos攻击手段也可以较好的识别,证明了本文提出的方法具有可行性。