本篇博客为国际顶级综述期刊《IEEE Communications Surveys and Tutorials》(通信调查与教程)上的论文《Security Data Collection and Data Analytics in the Internet A Survey》梳理。
网络安全的数据采集与数据分析:一项调查
摘要
背景:网路攻击越来越复杂
课题研究:
- 检测安全威胁
- 度量网络安全性
措施:
- 采集不同类别数据
- 数据分析方法
现状:缺乏对网络安全数据采集和分析的全面综述
本文工作:调查有关安全数据的采集和分析方法
- 将网络安全数据分为 4 类,讨论其在网络安全威胁检测方面的优缺点:
- 包级数据
- 流级数据
- 连接级数据
- 主机级数据
- 为使分析更加灵活和可拓展,提出对安全数据分析方法的 4 点要求,应用所提取的要求评估各分布式拒绝服务(DDOS)泛洪和蠕虫攻击的检测方法的性能
- 总结全文,提取有待解决的问题,指出未来研究方向
一、介绍
DDoS攻击的目的是阻止普通用户访问特定的网络资源。
蠕虫是一种自我复制和自我传播的恶意代码,通过网络传播。它们利用操作系统或已安装程序中的漏洞来攻击主机,并利用受感染的主机感染其他主机。
设计检测方法步骤:
- 选择安全数据,可获得足够的攻击活动信息
- 选择分析方法,可准确检测攻击
4 类安全数据:
-
包级数据
- 包头部信息(如UDP头部信息:源端口号、目的端口号、数据包长度…)
- 包有效载荷:数据包中的记录信息的原始数据
- 包活动信息
特点:提供了网络活动的全部信息
优点:可检测到大多数网络攻击
缺点:
- 在高速网络中检测单个数据包
- 数据包的有效载荷加密
-
流级数据:流的统计信息
优点:
- 可在高速网络上部署基于流级数据的检测方法
- 解决了与加密相关的检测挑战
-
连接级数据:提供给定时间内两个 IP地址之间流量交换的全局信息
说明:可结合包级数据、流级数据,详细分析网络流量。
-
主机级数据:系统事件信息
说明:记录主机活动,并将其作为某些决策准据
表1 本文的调查与其他现有调查相比
涵盖主题 | [5] | [6] | [7] | [8] | [9] | [10] | [11] | [12] | [13] | [14] | 本文 |
---|---|---|---|---|---|---|---|---|---|---|---|
总结安全数据 | N | N | N | N | N | N | N | N | N | N | Y |
回顾数据分析方法 | Y | N | N | N | Y | Y | Y | Y | Y | N | Y |
提出数据分析方法的附加要求 | N | N | N | N | N | N | N | N | N | N | Y |
回顾DDoS攻击 | Y | Y | Y | N | N | Y | N | N | N | Y | Y |
回顾蠕虫攻击 | N | N | N | Y | Y | N | N | Y | N | N | Y |
建立数据类别和攻击类型之间的关系 | N | N | N | N | N | N | N | N | N | N | Y |
Y:讨论;N:未讨论
文章结构安排:
-
第二节介绍安全数据的主要类别,针对每种数据给出具体分类,并讨论不同类别数据在网络威胁检测方面的优缺点。
-
第三节讨论了用于检测攻击的安全数据分析方法,并提出了一些安全要求来评估分析方法的性能和质量。
-
第四节和第五节回顾了基于安全数据类别和应用数据分析方法的 DDoS 泛洪和蠕虫攻击检测方法
-
第六节讨论了一些尚未解决的研究问题以及未来的研究方向。
二、安全数据
-
数据的重要性:
- 攻击基于数据
- 检测方法(训练、测试、检测阶段)基于数据
数据从根本上影响了检测方法的效率和准确性。
-
背景:不同类别的数据具有不同的应用场景
因此,在设计检测方法时首先需要考虑哪些类别的数据能够满足我们的需求
-
工作:对每类数据
- 介绍收集方法
- 分类
目标:可以有效而明确地选择数据类别来满足检测方法的需求
A 包级数据
介绍:
- 执行传输控制协议(TCP)、用户数据报协议(UDP)、Internet 控制报文协议(ICMP)等协议时,会生成数据包。
- 包级数据包括包头信息、包有效载荷信息和包活动信息。
1)包级数据收集:
数据包收集软件库:(功能:协议分析器、包嗅探器、网络监视器等)
- Unix:Libpcap
- Windows:Winpcap
数据包收集工具:(免费)
- TCPdump 提供了收集数据包并进行统计分析的功能
- Wireshark 向 TCPdump 添加 GUI,并包含许多流量签名,可用于应用程序标识
- Snort 是一种实时流量分析工具,能够执行内容搜索、匹配和检测多种类型的网路安全攻击
- Nmap 使用原始 IP 数据包探测计算机网络,用于主机发现、服务和操作系统检测
- Libtrace 是一个高效的包收集和分析库,支持多种数据格式
常用的基于硬件的数据包收集方法:镜像模式(端口镜像可以用整个网络视图分析传入和传出数据包。但是镜像可能会导致数据包延迟、丢失或重新排序。因此,对于镜像端口来说,有足够的带宽是必不可少的)
2)包级数据分类:(DDoS、蠕虫)
-
源/目的IP地址:
- 僵尸网络发起攻击时,常常利用源 IP 地址的分布和变化率(僵尸机通常比合法用户拥有更集中的源 IP 地址)
- 恶意主机进行目标扫描,利用目标 IP 地址的分布和变化率推断攻击的可能性
- 通常用信息熵(高熵值表示 IP 地址的高度随机性)
-
源/目的端口:(源/目的端口存在于 TCP 和 UDP 协议中。不同的端口服务于不同的协议)
- 蠕虫扫描多个目标主机上的特定端口(水平扫描)或扫描单个目标主机上的多个端口(垂直扫描),导致端口统计信息变化
-
生存时间(TTL):(主要功能是限制数据包的传输距离。在稳定的网路环境下,主机之间的跳数处于一定的范围内)
- 利用跳数过滤器(HCP)检测 IP 欺骗攻击(将实际源的数据包跳数与来自源声明的数据包跳数进行声明进行匹配)
- TTL 值检测 IP 欺骗(若在相同源地址的数据包头部信息中观察到不同的 TTL 值,推断这个地址可能存在 IP 欺骗)
-
时间戳:(发送/接收数据包的时间点)
- 计算包的到达时间、两台主机的往返时间、传输路径的延迟
- 检查数据包的不可否认性
-
数据包有效载荷:
- 数据包头部信息用于检测或扫描主机上的服务漏洞攻击
- 包有效载荷可用于检测针对应用程序的漏洞攻击(攻击者模仿普通用户的网络行为)
- 例如:
- 蠕虫的一些恶意代码由包有效载荷携带,不能被头部信息检测到
- 通过合法的网络/传输层的异常应用程序内容发起DDos攻击
- 例如:
- 深度包检测(DPI)是一种同时使用头部和载荷信息来确定数据包是否为入侵的方法,在应用层检测攻击有效。
- 基于载荷的检测方法面临的挑战:
- 侵犯隐私,数据包有效载荷往往封装了较高层协议的数据,如 HTTP 和 DNS,这些数据包含用户的私有信息,因此没有权力直接检查数据包的有效载荷
- 全套接字层(SSL)和传输层安全性(TLS)协议对有效载荷中携带的应用程序内容进行加密,因此很难通过对数据包有效载荷的分析来检测恶意活动
-
数据包大小:(头部大小和有效载荷大小组成)
- 头部大小恒定,有效载荷大小不固定,取决于数据包来自哪个系统和应用程序
- 数据包统计信息被用于检测僵尸网络发起的攻击,如:
- 最大数据包大小
- 最小数据包大小
- 平均数据包大小
- 数据包大小的标准差
- 来自同一僵尸机的攻击包大小相似,来自相同僵尸网络的攻击流量具有相似或相同的包大小
- 检测任意内容载荷的异常数据包
- 可通过在一定的时间段内累计数据包的大小来确定传输的字节数
-
数据包数量:(使用最广泛,数据包数量急剧增加是 DDoS 攻击的一个指标)
-
根据数据包传输方向分为:进包数、出包数、双向包数
-
根据协议类型分类:
- ICMP(请求/应答)包的数量
- 具有不同标志的 TCP 数据包的数量(SYN, ACK, FIN, SYN-ACK, RST 等)
- 基于 TCP 协议数据包的数量(HTTP,FTP,SMTP等)
- 基于 UDP 协议数据包的数量(DNS,TFTP,NTP等)
这些分类可与协议头部信息或其他信息自由组合,如来自源 IP 地址的传入TCP SYN 包的数量等
-
-
数据包速率:单位时间内传输的数据包数量
B 流级数据
介绍:
-
包级数据缺陷:
- 在速率高达每秒数百千兆比特(Gbps)的高速网络中,收集包级数据需要昂贵的硬件
- 载荷(负载)加密和复杂的混淆方法的使用越来越多,传统的基于包的检测方法表现较差
-
为了提供网络流量宏观视图并解决数据包加密问题,引出流的概念
-
流:具有一个或多个相同属性的一连串数据包。这些相同的属性称为流键(秘钥),通常包括数据包头部信息、包内容和元信息(关于信息的信息,用于描述信息的结构、语义、用途和用法等)
例如:Cisco 路由器中引入的 NetFlow 的流键是<源IP地址,目的IP地址,源端口,目的端口,IP 协议,IP 服务类型和入口接口>
-
流聚合技术:使用一组预定义的流键来聚合数据包
-
根据网络管理员的需要,通过选择不同的流键,可以得到不同的网络流量聚集粒度
-
流应用:
- 网路监控
- 应用监控
- 主机监控
- 网络应用分类
- 安全评估
- 入侵检测(本文主要研究)
-
1)流级数据收集
- 两种收集策略:
- 深度优先:选择特定的流键来聚合数据包以满足收集需求
- 广度优先:尽可能收集信息,以便全面了解网络流量
- 流收集过程:
图1.流级数据收集过程
2)流级数据分类
-
流的数量:使用相同的流键聚合包而产生的不同流的数量。(例如,在主机端根据源地址、目标地址和协议类型聚合传入的数据包。在聚合的数据包中统计具有不同流键的流的数量)
-
流的类型:当流键由端口号或协议标识符组成时,可获取多种流,如 HTTP 流、DNS 流、ICMP 流、TCP(SYN,SYN-ACK,FIN等)流…
-
将流的数量和流的类型结合,可检测异常流量
正常 TCP 连接构建过程中:
- SYN 流的数量等于 SYN-ACK 流的数量
- DNS 查询流的数量等于 DNS 相应流的数量
这些平衡关系的突变表明存在攻击。
-
-
流的大小:流由一个或多个相同属性(流键)的数据包组成,流的大小就是流中的数据包数
- DDoS 泛洪攻击期间,攻击流的大小明显大于合法流
-
流的方向:从特定的网络角度来看,数据包的传输分为传入(入站流量)和传出流量(出站流量)
- 通过使用流键聚合传入数据包来确定流入,聚合传出数据包确定流出
- 例如,从主机端角度,正常的 TCP 连接必然有流入和流出
-
流持续时间:从第一个数据包到达时间至流到期的时间
- 流到期(期满)时间:
- 空闲超时:流是空闲的,意味着长时间内没有数据包传输超过给定的阈值
- 活动超时:流达到允许的最大生存期
- 自然过期:FIN 或 RST 标志出现在 TCP 流中
- 资源限制:在资源限制的情况下自动减少超时参数
- 紧急过期:流缓存内存已满
- 缓存刷新:所有流缓存条目必须在紧急事件中到期
- 流到期(期满)时间:
-
流的速率:每单位时间流(给定流(数据包共享一个或多个相同属性(流键)))的传输包数
- 流的速率比包的速率具有更高的特异性,用法大部分相似
- 高速 DDoS 泛洪攻击下,攻击流的速度明显高于正常流的速度
C 连接级数据
介绍:
- 连接被定义为两个 IP 地址之间的聚合流量,其中一个地址属于内部地址,另一个地址是外部地址
- 若流收集规则与流到期规则相同,则连接有两个流(流入和流出)组成
- 若流收集规则比流到期规则更广泛,则连接包含许多流
- 例如,将连接定义为在 5 分钟内由两个 IP 地址之间的传输流组成,可获得一些流(流入和流出)
- 流和连接之间区别,流不限制大小(即使传输了单个数据包,也会生成流;但连接至少有两个数据包生成(流入和流出))
- 连接级数据描述了两个IP地址之间交换的流量统计信息(包括入站流量和出站流量),它比流级数据具有更高的网络流量粒度,因为在给定的时间内提供了两个 IP 地址之间交换流量的全局信息。
分类:
- 连接大小:分为数据包级的大小和流级别的大小
- 数据包级的大小:连接中数据包数量
- 流级别大小:流的数量
- 连接持续时间:从连接生成到连接终止的持续时间(两台主机之间的通信时间)
- 连接数量:一定时间段内连接主机的数量
- 连接数量的急剧变化也是攻击发生的信号
- 连接类型:由流的类型决定(如TCP连接、UDP连接、ICMP连接)
- 连接数据收集过程实际上是收集数据包级或流级数据的过程
- 通常将连接级数据与数据包级数据和流级数据结合使用,以获得有关网络流量的详细信息
- 通过跟踪连接状态并将其与前两个数据类别一起应用,可根据差异区分攻击流量和正常流量
- 缺陷:需要跟踪主机和连接信息,因此需要更多的资源
D 主机级数据
介绍:
- 从本地主机收集主机级数据(从网络设备收集前三个类别数据)
- 收集工具:
- Linux:Collectl
- Windows:Loadrunner
- 主机级数据:记录主机活动、主机更改时提供系统事件的全面知识(可描述主机中的任何内部更改)、主机资源消耗等
- 每种类型的攻击都会对主机性能产生影响
- 广泛应用于基于主机的入侵检测系统(HIDS)。HIDS通过分析主机级数据来监视计算机系统的内部,可检测内部异常活动,如:
- 文件系统的修改
- 权限提升
- 未经授权的日志记录
- 未经授权的访问
分类:
- CPU 和内存使用:
- CPU(系统级和用户级测量 CPU 使用率)
- 若主机遭受网络/传输层 DDoS 泛洪攻击,系统级的 CPU 使用率急剧增加,但用户级 CPU 使用率保持稳定
- 若应用层 DDoS 泛洪攻击(HTTP 请求和非对称攻击)下,系统级和应用级 CPU 使用率同时增加
- 内存使用情况显示有关数据交换的信息
- 应用层 DDoS 泛洪攻击,内存使用率也会急剧增加,因为应用程序需要处理海量数据
- CPU(系统级和用户级测量 CPU 使用率)
- 操作日志:(设备操作日志和应用操作日志)
- 设备操作日志收集与主机连接的设备运行事件,如键盘和鼠标单击事件,光标更改等
- 应用操作日志表示使用特定应用程序时用户相关活动,如本地端口创建或销毁事件、登录事件的数量、软件使用事件、系统调用等。
E 总结和比较
数据类别 | 优势 | 劣势 |
---|---|---|
包级数据 | 1. 访问原始数据包数据,以便实现实时检测 2. 允许在有效载荷内容中进行模式匹配 3. 有关于网络活动的完整信息 | 1. 收集方法不适合高速网络 2. 涉及到私密敏感信息 |
流级数据 | 1. 独立于加密有效载荷 2. 采集方法适用于高速网络 3. 收集方法得到广泛部署且易于理解 | 1. 收集方法导致一些不可避免的延迟 2. 没有关于数据包载荷的信息 |
连接级数据 | 1. 提供给定时间内两个IP地址之间交换流量的全局信息 2. 与其他类别的数据一起使用时,检测性能良好 | 1. 收集方法需要跟踪每个连接状态 2. 与其他类别的数据分开使用时性能较差 |
主机级数据 | 1. 获得有关系统性能和行为的完整信息 2. 记录主机系统的任何内部更改 | 1. 与其他类别的数据分开使用时,具有较高的误报率 2. 收集方法占用主机端资源 |
分析:
- 数据类别的选择取决于检测方法和网络环境的需要
- 利用每个数据类别的优势并结合使用它们
- 通过结合连接级数据与数据包级数据或流级数据,可检测应用层相关攻击
- 通过分析具有网络状态的主机级数据,可推断主机是否遭受攻击
三、安全数据分析方法和要求
A.安全数据分析方法
图2.安全数据分析方法的分类
1)统计方法
优点:
- 不需要预先了解网络攻击,有能力检测 0day 攻击
- 设置适当的阈值,可准确检测导致网络流量突然变化的攻击
- 使用很少的特征来描述网路流量,时间和空间复杂度小
缺点:
- 容易受到攻击者的训练
- 网络的正常行为配置(模型)很难建立
- 难以设置适当的阈值以平衡假阳性和假阴性
- 大多数统计方法依赖于准静态过程的假设,总并不总是现实的
2)机器学习
优点:
- 检测率高
- 根据新的流量数据更新模型
缺点:
- 监督学习无法检测未知攻击,直到相关信息被用于训练
- 无监督学习需要先验知识来确定群集的数量,并假设大群集是正常的,小群集是异常的
- 训练和更新模型的过程中消耗资源多
3)基于知识的方法
优点:
- 简单、健壮、灵活
- 在攻击规则、模式、签名被准确建立的情况下,具有较高的检测率
缺点:
- 无法检测未知攻击
- 需要高质量的先验知识
- 可能触发一些错误警报,因为无法获得有偏差的正常和攻击数据集
B.安全数据分析的要求
1)自适应检测(SD)
检测方法应该适应当前网络的变化而不是主要依赖于静态模型(即检测方法应该能够通过流量变化更新检测策略)
2)动态阈值(DT)
根据准确率和效率动态选择阈值(平衡假阳性和假阴性)
3)协议独立性(PI)
背景:在各种网络协议的下,存在多种 DDoS 泛洪和蠕虫攻击
DDoS 泛洪:独立于协议的方法检测一类 DDoS 泛洪攻击,而不是检测协议的相关攻击
蠕虫:独立于协议的方法在扫描和传播阶段检测已知和未知的蠕虫
网络安全度量:对网络安全的整体评价更需要一种通用的、普适的方法
4)处理Flash crowd (DFC)
介绍:
-
大量的合法用户在短时间内向服务器发送请求包(与 DDoS 泛洪和蠕虫攻击具有相似属性,但为合法流量)
- DDoS泛洪攻击 flash crowd 网络影响 拥挤 拥挤 服务器影响 过载 过载 流量 恶意的 合法的 对流量控制的反应 迟钝的 应答的 流量类型 任何 主要为 Web 流量大小 任何 大量流量 预测 不可预测 大多可预测 -
攻击者通常在 flash crowd 发生时启动恶意活动,它可以隐藏在 flash crowd 下
-
目前迫切需要一种能够处理 flash crowd 的检测方法,以及能够识别伴随 flash crowd 带来的攻击
四、DDOS泛洪攻击检测的安全数据分析
特性:分布式、协作
发起DDoS攻击的两种方法:
-
协议攻击(也称为漏洞攻击和杀手包攻击):利用协议或应用程序的漏洞,向受害者发送一些格式不正确的数据包,当处理这些的数据包时,受害者将崩溃
- 例如:
- Ping of Death attack
- Winnuke attack
- Teardrop attack
- 例如:
-
泛洪:最常见,这类攻击会淹没受害者,占用受害者的资源,无法为合法用户提供正常的服务
图3. DDoS泛洪攻击
检测 DDoS 攻击(本文主要讨论)的两种方式:
- 根据 DDoS 攻击特征直接检测
- 僵尸网络检测:检测僵尸机(机器人,被控制的主机),僵尸主机(控制所有僵尸机的主机),C&C(命令和控制)系统
DDoS 泛洪攻击的两种生成方式:
- 直接泛洪攻击
- 间接泛洪攻击
图4. DDoS泛洪攻击的分类
A.针对网络/传输层DDoS泛洪攻击的检测方法
介绍:
- 网络/传输层 DDoS(N/T-L DDoS)泛洪攻击经常利用网络/传输协议的弱点通过发送大量攻击流量来消耗网络带宽并淹没网路架构
- SYN 泛洪(最常发生的 N/T-L DDoS 泛洪攻击之一,利用了 TCP 三次握手的弱点)
- 攻击者向受害者发送大量 SYN 请求数据包而没有后续的 ACK 应答数据包
- 受害者忙于处理这些半开连接的请求数据包导致几乎没有资源来处理普通用户的请求数据包
本部分主要讨论 SYN 泛洪(目前基于 UDP 协议主要用于发起反射泛洪攻击;ICMP 泛洪攻击容易被防火墙拦截)
1)统计方法
-
a)使用数据包级数据
----------------------该部分由各文献的相关工作组成,详细内容可查看原文---------------------------
-
b)使用流级数据
-
c)使用连接级数据
2)机器学习
- a)使用数据包级数据
- b)使用流级数据
- c)使用连接级数据
3)基于知识的方法
- a)使用数据包级数据
- b)使用流级数据
- c)使用连接级数据
表5 N/L-T DDOS 泛洪攻击检测方法的总结与比较
参考 | 安全数据集 | 分析方法 | DA | FA | SD | DT | PI | DFC | 备注 |
---|---|---|---|---|---|---|---|---|---|
[45] | 数据包数量 | 熵的变化 | 100% | 0% | N | N | N | T | 检测各种TCP SYN泛洪攻击 |
[46] | 数据包数量 | hillinger距离变化 | 93.99%-100% | 0% | N | Y | Y | N | 在线异常检测 |
[47] | 源地址和目标端口 | 熵的变化 | N.A. | N.A. | N | N | N | N | 使用KD-Tree使检测方法可扩展 |
… | |||||||||
[59] | 流的大小,流量持续时间等 | KNN与相关性分析 | 88.4%-96.7% | N.A. | Y | N | Y | N | 基于网格的方法减少计算负担 |
… | |||||||||
[67] | 数据包级的连接大小 | 数量变化 | 90% | N.A. | Y | N | Y | Y | 参数少 |
(DA:准确率;FA:误报;N.A.:无法获得)
总结:
- 检测方法
- 基于知识的检测方法,数据包数量和流的数量被广泛用于检测 N/T-L DDoS 泛洪攻击(受泛洪攻击的本质影响,泛洪攻击用大量数据包淹没目标主机,在网络/传输层很明显)
- 基于统计的检测方法,计算流量特征的分布(如源和目标地址、源和目标端口、数据包大小、数据包速率、流持续时间等)
- 当前 DDoS 泛洪攻击通常由僵尸网络发起,被同一个恶意程序感染的僵尸机都会以相同的格式生成攻击包
- 攻击包具有相似的特性(如目标地址、源端口、目标端口、数据包大小、数据包速率等),导致:
- 流级别的相似特征(如流的速率、流的大小、流持续时间)
- 连接级的相似特征(如连接大小、连接持续时间)
- 基于机器学习的检测方法,选择僵尸网络的重要流量特征,对攻击流量进行分类
- 本文提出要求:
- SD(自适应检测)和DT(动态阈值)在目前的文献中并没有得到广泛的应用
- 大多数方法都没有考虑到 flash crowd 的问题,导致当发生 flash crowd 时有着高错误率
B.针对应用层DDoS泛洪攻击的检测方法
介绍:
- 应用层 DDoS (AL-DDoS)泛洪攻击通常集中于耗尽服务器资源(如 socket、CPU、内存、磁盘/数据库带宽和 I/O 带宽等),攻击者通常定制它们来破特定的 Web 服务器
- AL-DDoS 泛洪攻击可以通过合法的流量发起,流量不太大(与N/T-L DDoS区别)
- 在 flash crowd 期间,攻击者可以模仿合法用户的请求并攻击目标服务器(难检测)
示例:
- HTTP 泛洪攻击:针对 Web 服务器
- HTTP 请求泛洪攻击,发送高速请求数据包,如 HTTP GET/POST 泛洪攻击
- slow HTTP 请求攻击(空闲攻击),攻击者将 HTTP 连接保持在空闲状态而不实际发送完整的 HTTP 请求,如 slowloris 攻击
- HTTP 非对称攻击:发送高工作量请求
- SIP(会话初始协议,用于建立、修改、和终止多媒体会话(或者会议))泛洪攻击:通过使用开放的 SIP 流量生成器(容易发起)
- SIP INVITE 泛洪攻击,生成大量 INVITE 消息发送给受害者
- SIP BYE 泛洪攻击,发送大量 BYE 消息到 SIP 服务器
- SIP REGISTER 泛洪攻击,发送大量用户代理 REGISTER 请求到 SIP 注册器
- 多属性泛洪攻击,将大量的所有 SIP 消息(4条,INVITE、BYE、RINGING 和 OK)发送到 SIP 服务器
- DNS 泛洪攻击:攻击者命令僵尸机将大量格式错误的 DNS 查询发送到 DNS 服务器以耗尽其资源
- Water Torture,僵尸机(机器人)通过在前缀域中添加随机子域来发送大量 DNS 查询
- NXDOMAIN,僵尸机向 DNS 服务器中不存在的域名发送大量查询
- 基于 DNS 的 DDoS 泛洪攻击的放大泛洪攻击(第 4 节 D 中讨论)
1)统计方法
- a)使用数据包级数据
- b)使用流级数据
- c)使用连接级数据
2)机器学习
- a)使用数据包级数据
- b)使用连接级数据
3)基于知识的方法
- a)使用数据包级数据
- b)使用流级数据
表6 AL-DDOS 泛洪检测方法的总结与比较
参考 | 安全数据收集 | 分析方法 | DA | FA | SD | DT | PI | DFC | 备注 |
---|---|---|---|---|---|---|---|---|---|
… | |||||||||
[72] | 包的数量,包到达时间 | 模型相似度挖掘 | N.A. | N.A. | N | N | N | Y | 可用于处理繁重的主干网流量 |
… | |||||||||
[78] | 流的大小 | 流的相似度 | N.A. | N.A. | Y | N | Y | Y | 找到一个区分DDoS攻击的新特征 |
… | |||||||||
[84] | 包的数量,包的速率,包到达时间 | 增强的SVM算法 | 99.32% | N.A. | N | N | N | N | 具有字符串内核的增强型SVM有着高检测精度 |
… |
总结:
- 数据
- 数据包数量仍然是检测 AL-DDOS 泛洪攻击的重要流量特征
- 检测方法
- 统计方法中,度量流量之间的相似性、监控用户行为的变化被广泛应用于检测 AL-DDoS 泛洪攻击(而不是采用信息熵来分析流量特征的分布)
- 由于 AL-DDoS 泛洪攻击的模糊特性造成
- 结合压缩与融合技术的 AL-DDoS 泛洪攻击检测方法有高性能,可处理大规模网络流量
- 机器学习和基于知识的检测 AL-DDoS 泛洪攻击的方法与检测 N/T-L 泛洪攻击的方法相似
- 统计方法中,度量流量之间的相似性、监控用户行为的变化被广泛应用于检测 AL-DDoS 泛洪攻击(而不是采用信息熵来分析流量特征的分布)
- 比较 flash crowd
- 相同点:都为突发性,且网络流量很大
- 不同点:源地址分布、流量速率、流量大小、流量到达时间等(可通过测量流量之间的相似性来区分)
- 本文提出要求
- 没有广泛考虑动态阈值和协议独立性的要求
C.针对低速率DDoS泛洪攻击的检测方法
介绍:
-
低速率 DDoS(Low-Rate DDoS)泛洪攻击:在特定的时间间隔(遵循周期脉冲的形式(开/关模式))内发送大量数据包,从而降低受害者服务器性能。
图5. LDDoS泛洪攻击
-
利用目标系统的漏洞:
- shrew 攻击,利用 TCP 重传输超时(RTO)机制
- NewShrew 攻击,利用 TCP RTO 机制和慢启动机制
- 针对并发服务器的低速率 DoS 攻击,利用应用层的服务响应机制
- Reduction of Quality(降低质量,RoQ)攻击,利用一种常见的适应机制
-
LDDoS 泛洪攻击通过保持较低的平均速率将异常流量隐藏为合法流量(采用高速率 DDoS 泛洪攻击的检测方很难检测)
1)统计方法
- a)使用数据包级数据
- b)使用流级数据
2)基于知识的方法
- 使用流级数据
表7 LDDOS泛洪攻击检测方法的总结与比较
参考 | 安全数据收集 | 分析方法 | DA | FA | SD | DT | PI | DFC | 备注 |
---|---|---|---|---|---|---|---|---|---|
[94] | 源地址,包速率 | 距离变化 | 100% | 0% | N | N | Y | N | 可同时检测低速率和高速率的DDoS攻击 |
… | |||||||||
[98] | 流的大小 | 小信号模型 | 100% | 0% | Y | N | N | N | 发现频域中LDDoS攻击的属性 |
… | |||||||||
[100] | 流的速率 | 匹配攻击规则 | N.A. | N.A. | Y | N | Y | N | 忽略LDDoS攻击的特征 |
… |
总结:
- 方法
- 找出数据包数量变化的周期性和突发性,并在频域进行分析(最有效)
- 找出由相同僵尸网络生成的数据包的相似特征(如数据包大小、数据包速率)
- 利用 LDDoS 泛洪攻击的不同行为
- 本文提出要求
- LDDoS 泛洪攻击的检测方法大多自适应于流量变化,并且具有协议独立性(利用了攻击的基本特征,具有很强的鲁棒性)
- 没有考虑动态阈值和 flash crowd
D.针对反射放大DDoS泛洪攻击的检测方法
介绍:
-
分布式反射 DoS(DRDoS)泛洪攻击
- 攻击者使用僵尸机向反射器发送带有欺骗源地址(受害者地址)的大量请求数据包
- 反射器将相应的响应包回复给受害者
- 受害者收到大量响应数据包,其系统资源被大量消耗
图6.DRDoS泛洪攻击
-
通常,响应数据包的大小/数量比请求数据包的大小/数量大许多倍,将这种类型的 DRDoS 泛洪攻击称为反射放大 DDoS 泛洪攻击(放大 DDoS 泛洪攻击)
-
DRDoS 泛洪攻击优势
- 匿名:攻击者可以使用欺骗性源 IP 地址隐藏其位置
- 放大:攻击者可以通过利用僵尸网络和不对称大小的响应数据包来放大攻击的影响
-
衡量 DRDoS 泛洪攻击的影响
- 数据包放大因子(PAF):响应数据包数量与请求数据包数量的比率
- 带宽放大因子(BAF):响应包的有效载荷大小与请求包的有效载荷大小之比
-
放大DDoS泛洪攻击的检测方法:
- 反射端
- 关键技术:检测欺骗地址
- 缺点:
- 存在许多潜在反射器
- 非法传入的请求可能与反射器中的合法请求相似
- 受害端
- 典型检测方法:
- 分析请求包和响应包之间的不平衡关系
- 利用 DDoS 泛洪攻击的属性
- 典型检测方法:
- 反射端
1)统计方法
- a)使用流级数据
2)机器学习
- a)使用数据包级数据
3)基于知识的方法
- a)使用数据包级数据
- b)使用流级数据
表8 DRDOS泛洪攻击检测方法的总结与比较
参考 | 安全数据收集 | 分析方法 | DA | FA | SD | DT | PI | DFC | 备注 |
---|---|---|---|---|---|---|---|---|---|
… | |||||||||
[107] | 包的数量,包的大小 | SVM算法 | 89.74%-100% | 0%-8.33% | N | N | N | N | 在一定假设条件下检测DRDoS |
… | |||||||||
[112] | 源和目标地址,源和目标端口 | 匹配攻击规则 | N.A. | N.A. | Y | N | N | N | 检测本地DNS服务器上的DNS放大攻击 |
… |
总结:
- 方法
- 利用攻击流量的相似特征
- 监控出站流量统计信息(请求流量)与入站流量统计信息(响应流量)之间的偏差
- 本文提出要求
- 没有考虑动态阈值和 flash crowd
E.针对链路泛洪攻击的检测方法
介绍:
-
链路泛洪攻击(也成交叉火力攻击)由僵尸网络发起,目的是切断 Internet 中特定的链路,将特定区域与其它区域断开连接
图7.链路泛洪攻击
-
步骤:
- 选择目标区域和诱饵服务器(诱饵服务器位于目标区域周围)
- 使用僵尸机向目标服务器发送 traceroute(路由跟踪)命令,创建僵尸机到目标服务器路径的网络拓扑映射
- 所有僵尸机完成查找路径后,聚合所有 traceroute 结果,找出经常出现在结果中的目标链接
- 选择僵尸-诱饵对(合适的僵尸-诱饵对:从僵尸机到诱饵服务器的 traceroute 命令包含目标链接)
- 通过命令僵尸机向诱饵服务器发送低速率流量来阻止目标链接,导致目标区域与其它区域隔离
-
链路泛洪攻击需要精心设计,但具有严重的攻击潜力
-
目前 DDoS 泛洪攻击的检测方法难以检测链路泛洪攻击的原因:
- 攻击流量不直接到达目标区域
- 僵尸机伪装成合法用户提供有效的地址与诱饵服务器通信
- 僵尸网络淹没目标连接不用发送不必要的流量(发送有用的数据包)
方法:
- [115],寻找僵尸机与目标/诱饵服务器之间的目标链路的 traceroute 数据包,累计数量超过阈值触发警报
- …
五、蠕虫攻击检测的安全数据分析
介绍:
-
蠕虫是一种自我复制、自我传播的恶意代码,它们在没有人为交互的情况下在网络中传播
-
作用:危害系统、窃取敏感信息、拥塞网络并发动多种攻击
-
生命阶段:
- 目标发现,使用扫描技术搜索容易受到攻击的主机
- 转移,将其复制品发送给受害者
- 激活,蠕虫的恶意活动根据特定数据或在一定条件下触发
- 感染,成功感染宿主后,受感染的宿主表现出恶意行为
-
蠕虫特性分类
图8.蠕虫特性分类
- 目标发现方案
- 基于扫描的蠕虫:通过探测 IP 地址来搜索脆弱主机,如 hit-list 扫描蠕虫、routable 扫描蠕虫、blind 扫描蠕虫
- 基于拓扑的蠕虫:使用受害者主机中包含的信息来搜索新目标,如电子邮件蠕虫、社交网络蠕虫
- 被动蠕虫:等待主机请求并回复蠕虫复制,如 CRClean 蠕虫
- 繁殖方案
- 自携带蠕虫:直接传输嵌入在有效载荷中的恶意代码
- 第二通道蠕虫:通过后门访问特定的公共服务器或受感染的主机获取恶意代码
- 嵌入式蠕虫:将恶意代码混入到合法的流量中隐藏自己
- 传输方案
- 基于 TCP 协议传输恶意代码(具有时延限制)
- 基于 UDP 协议传输恶意代码(具有带宽限制)
- 恶意代码格式
- 单形蠕虫:不会改变恶意代码,向目标发送相同的内容
- 多态蠕虫:使用一些加密或保持语义的代码操作技术改变恶意代码(最流行)
- 变形蠕虫:在不同的环境下表现出不同行为
- 目标发现方案
-
检测方法:
- 大多数方法利用蠕虫在目标发现和转移阶段的特殊行为来检测蠕虫,主要使用包级数据和流级数据
- 基于知识的方法,使用连接机数据
- 很少单独分析主机级数据
A.针对蠕虫攻击的统计方法
- 基于行为的技术被广泛应用于捕捉蠕虫的本质特征,这些特征反应蠕虫在目标发现和转接阶段的独特行为
- 检查数据包的头部信息(而非检查有效载荷信息)
1)使用包级数据
2)使用流级数据
B.针对蠕虫攻击的机器学习方法
- 主要区分蠕虫流量和合法流量
1)使用包级数据
2)使用流级数据
3)使用主机级数据
C.针对蠕虫攻击的基于知识的方法
- 基于签名技术(广泛应用)
- 基于内容:基于字节序列中字符串或子字符串建立
- 基于语义:通过使用可执行代码的结构或蠕虫的分析信息生成
- 基于漏洞:通过捕获蠕虫利用的漏洞特征生成
- 专家系统:将网络活动与预先构建的蠕虫攻击规则相匹配
1)使用包级数据
2)使用流级数据
3)使用连接级数据
表9 蠕虫攻击检测方法的总结和比较
参考 | 安全数据集 | 分析方法 | DA | FA | SD | DT | PI | DFC | 备份 |
---|---|---|---|---|---|---|---|---|---|
[120] | 包的数量 | CUSUM(累积和)算法 | N.A. | N.A. | N | N | N | N | 检测高速和低速扫描 |
[121] | 包的数量,包的大小,有效载荷,目标地址 | 距离变化和CUSUM算法 | 约80% | N.A. | N | N | N | N | 检测方法灵活,延迟时间短 |
… | |||||||||
[134] | 流持续时间,流大小,流方向,包大小等 | 加权线性核的SVM算法 | 约95% | 10% | N | N | Y | N | 使用两级分类器来解决数据质量问题 |
[135] | 流大小,源和目标端口等 | 分层聚类 | 99.5% | 1% | Y | N | N | N | 利用常见的传播行为来检测蠕虫 |
[137] | 流数量,源和目标端口 | KNN和朴素贝叶斯 | 85.64% | 1%-16% | N | N | N | N | 使用真实的蠕虫变种测试了这种方法 |
[138] | 包数量,操作日志 | ANN | 约90% | 0.04% | N | N | Y | N | 通过特征选择计数选择重要特征 |
… | |||||||||
[141] | 目标地址,目标端口 | 匹配攻击规则 | 100% | 0% | Y | N | N | N | 利用特定的转移行为来检测蠕虫 |
[143] | 包速率,速度包的到达时间间隔 | 匹配攻击规则 | N.A. | 0% | N | N | N | N | 能够检测零日和多态蠕虫 |
[144] | 目标地址,源和目标地址,包的数量 | 匹配攻击规则 | N.A. | 约1.5% | N | N | N | N | 检测终端主机上的蠕虫 |
… | |||||||||
[148] | 连接数 | 匹配攻击规则 | N.A. | N.A. | Y | Y | N | N | 具有检测隐身和未知蠕虫的能力 |
[153] | 每个链接中的包有效载荷 | 基于签名的检测 | N.A. | 约7% | N | N | N | N | 只检查每个链接中的前N个字节 |
总结:
- 特征
- 蠕虫扫描的基本特征:
- IP地址
- 端口
- 流量
- 蠕虫传播的基本特征:
- 包速率
- 包到达时间
- 包大小
- 有效载荷
- 蠕虫扫描的基本特征:
- 数据
- 主机级数据与包级、流级数据一起使用(蠕虫是直接在主机端执行的恶意程序)
- 方法
- 每种蠕虫都有不同的特性,因此检测方法也有很大不同
- 本文提出要求
- 动态阈值没有被广泛用于测量网路流量的变化
- 大多数蠕虫检测方法没有考虑 flash crowd
六、未解决问题和未来研究方向
A. 未解决问题
- 正常配置信息没有合理构建
- 熵/概率分布广泛用于计算正常配置和实时流量配置之间的信息距离/偏差,但在日常网络流量传输期间,不可避免的网络拥塞或其他突发事件会导致较高的误报率
- 例如,某些方法通过监视 SYN 数据包和 SYN-ACK 数据包之间的平衡关系来检测 SYN 泛洪攻击,但在实际的网络中,由于网路拥塞导致 SYN 数据包的数量远远高于 SYN-ACK 数据包的数量,很难准确地将定量偏差确定为 SYN 泛洪攻击的警报阈值
- 熵/概率分布广泛用于计算正常配置和实时流量配置之间的信息距离/偏差,但在日常网络流量传输期间,不可避免的网络拥塞或其他突发事件会导致较高的误报率
- 当前检测方法大多数没有考虑到消耗和成本,影响所提方法的实际部署
- 机器学习技术检测攻击时,为了实现高检测精度,需要大量特征,但分析提取大量特征会耗费大量时间和资源
- 上下文感知的和灵活的检测方法很少
- 大多数基于阈值的检测方法设置静态阈值,缺乏灵活性
- 大多数检测方法没有考虑 flash crowd
- 缺乏全面的整体检测方法(将包级数据、流级数据、连接级数据、主机级数据结合的检测方法研究很少)
- 缺乏一种通用、普适的检测各种攻击并实时提供一个全面的网络安全视图的解决方案
B.未来研究方向
- 研究自适应安全数据采集方法,实现高效、全面的数据采集
- 利用四种类型的安全数据,研究一种通用的、普适的网络安全度量解决方案
- 探索新的理论和方法,或运用现有的理论解决高效、可追溯的网络安全度量问题
- 可信安全数据融合
- 不完全、不确定、不精确或模糊的信息是造成检测错误或质量差的主要原因
七、结论
-
- 本文将安全数据分为4类,并对每类数据进行详细描述
- 对每类数据,讨论了通常用于检测网络攻击的类型
- 讨论了安全数据的分析方法,提取评估其性能的四个附加要求,以支持检测的可伸缩性和灵活性
-
- 从安全数据和数据分析方法的角度对目前DDOS泛洪攻击和蠕虫攻击的检测方法详细阐述
- 每种攻击都有其特点,设计检测方法时,应了解攻击特性,选择合适的数据类别和数据分析方法
- 待解决问题和未来研究方向
- 网络安全度量,处理所有类别的安全数据找出所有潜在威胁
- 数据组合或融合方法实现高效且经济的安全数据分析方法
参考文献:
[1] Jing X , Yan Z , Member S , et al. Security Data Collection and Data Analytics in the Internet: A Survey[J]. IEEE Communications Surveys & Tutorials, 2018, PP(99):1-1.