本文是一篇计算机论文,本论文通过在内核空间执行网络分析任务,本文方案实现了较低的资源消耗和延迟。实验结果表明,原型系统在检测准确率、资源消耗、检测延迟和抗DDoS攻击能力等方面优于传统方案。本研究为提高网络安全水平提供了有力支持,并为未来的相关研究和实践提供参考价值。
第一章绪论
1.1研究背景及意义
当今,容器技术与云原生技术的普及和发展正在改变应用的架构并促进更丰富的服务开发[1]。容器已成为企业应用交付的标准,也是云原生时代计算资源和配套设施的交付单元[2]。然而,容器在隔离和安全性方面存在天然缺陷,安全一直是企业进行容器改造过程中的核心问题[3][4][5]。当前,容器安全面临多方面的挑战,包括缺乏体系化的容器安全能力建设、容器存在更多攻击面、缺少应用侧全生命周期的安全防护手段、以及缺乏对云上安全责任共担模型的理解[6][7][8]。这些安全挑战妨碍了企业进一步推动业务上云。
根据CNCF(Cloud Native Computing Foundation)security 2021的统计1,有85%的使用者要求CNCF社区关注默认的安全设置,60%的使用者要求社区提供自动化工具和参考指南。使用者认为漏洞管理和机密管理是与云原生安全相关的两大首要问题,然而采用静态代码扫描工具或运行时保护机制来为容器提供安全保护的使用者不到50%。并且报告还指出有47%的使用者倾向于不披露与安全相关的事件,这意味着云原生环境的企业可能遭受着更多的攻击。因此可以认为云原生环境下的安全问题仍然比较严峻,大部分使用者对安全问题不太熟悉或者不太关注,需要安全研究者提供良好的工具用于保护云原生环境的安全。
容器安全被分为六大方向:承载容器的宿主机安全[9][10][11]、容器软件自身的安全性[12][13]、容器安全基线与合规性安全要求、容器镜像的安全性[14][15][16][17][18]、容器运行时监控及入侵检测和安全防护[19][20]、容器集群安全性。其中,容器运行时监控及入侵检测和安全防护是业界关注的重点方向之一。当前,现有安全工具在容器运行时监控方面面临诸多挑战,例如对容器内部数据流的有效监控和识别、防止容器内部恶意代码的横向扩散、以及在高负载场景下保证检测准确率等问题。因此,本文旨在提出一种基于eBPF和朴素贝叶斯算法的容器HTTP DDoS检测和防御系统,以提高容器环境的安全性和可靠性。
1.2国内外相关研究现状及发展趋势
1.2.1 HTTP DDoS 检测研究现状以及发展趋势
HTTP DDoS以超文本传输协议HTTP为基础,攻击者可以模拟正常用户的请求,同时采用各种技术手段使得攻击流量的特征难以区分,对于传统的DDoS防护方案造成了很大的挑战[28][29][30]。早期的HTTP DDoS攻击通常使用大量的计算机向目标服务器发送HTTP请求,占用服务器资源造成服务瘫痪。随着防御技术的发展,攻击手段也逐渐升级,例如利用HTTP请求中的特定字段进行攻击、伪造HTTP请求头部或使用HTTP协议中的连接保持功能进行攻击等。现如今HTTP DDoS攻击检测已经成为网络安全研究领域的热点之一,研究现状主要包括以下几个方面:
(1)基于行为分析的检测方法
通过对网络流量中的异常行为进行分析和识别,来检测HTTP DDoS攻击的一种方法[31][32][33][34][35]。HTTP DDoS攻击与正常用户的访问行为不同,攻击者会采取各种手段来模拟正常用户,但是其行为存在着一定的规律性和异常性。因此,通过对网络流量的分析,可以发现这些异常行为,并进一步识别出HTTP DDoS攻击流量[36][37]。基于行为分析的HTTP DDoS攻击检测方法,通常包括以下几个步骤:a)建立正常行为模型:通过对正常用户访问行为进行分析,建立正常行为模型。可以统计用户的请求次数、请求频率、请求数据量等指标,并利用统计学方法或机器学习方法建立模型。b)检测异常行为:对于来自网络的请求,利用正常行为模型进行比对,检测是否存在异常行为。异常行为通常表现为请求频率异常、请求数据量异常、请求方式异常等。c)确认攻击流量:如果检测到异常行为,进一步确认是否为HTTP DDoS攻击流量。攻击流量通常表现为请求集中、频繁请求、恶意请求等。
第二章相关技术研究
2.1 eBPF技术
2.1.1 eB PF技术基本原理
eBPF(extended Berkeley Packet Filter)技术的发展历史可以追溯到早期的BPF(Berkeley Packet Filter)技术。BPF最初是一种用于过滤网络数据包的技术,它是在Unix系统中通过内核的虚拟机实现的。随着时间的推移BPF被扩展用于系统跟踪和性能分析,包括在Linux内核中实现。在这个过程中BPF逐渐演变成了一种灵活且强大的虚拟机技术,而eBPF就是这个过程中的一种扩展。eBPF是一种用于Linux内核的扩展BPF技术,它通过在内核中运行自定义的BPF程序,可以在运行时动态地改变内核的行为。eBPF最初由Brendan Gregg在2014年提出,它的目标是扩展BPF技术以支持更广泛的用途,包括高性能数据包过滤、动态跟踪、容器安全和服务监控等。相较于传统的BPF,eBPF引入了许多新特性和优化,使得它可以支持更多类型的程序,例如用户空间程序和内核空间程序,且可以安全地在运行时加载和卸载。
eBPF技术的基本原理是将一段特定的代码编译成可以在内核运行的二进制字节码,这段代码被称为eBPF程序[56]。eBPF程序可以在内核中执行,通过hook函数拦截指定的系统调用、网络数据包、事件等,进行监控、过滤、处理和转发等操作。除了可以动态加载和卸载,eBPF程序还可以在内核空间中以安全、高效的方式运行,而不需要修改内核源代码或重新编译内核。这使得eBPF成为一种灵活、可扩展的方式来监视和控制内核行为,例如数据过滤、安全审计和性能分析等。eBPF程序的灵活性和可扩展性源于其采用的一种即时编译技术,可以将BPF字节码转换为本地机器代码。这种技术使得eBPF程序可以在运行时动态生成并优化代码,以适应不同的内核行为和环境。图2-1是eBPF在内核中的常用hook点示意图,图中主要包括文件系统和网络系统两部分。
2.2朴素贝叶斯算法
朴素贝叶斯算法是一种基于贝叶斯定理的分类算法。在理解朴素贝叶斯算法之前,需要先了解贝叶斯定理。最早出现在英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,该定理实际上是一种用于计算在给定某些前提条件下某个事件发生的概率的公式。它表达了一个事件的概率,基于相关证据的概率。
具体而言,需要先根据训练数据计算出每个类别的先验概率P(Ci)。然后对于每个特征,计算在给定类别Ci的条件下该特征的概率P(Xi|Ci)。最终,对于一个新的数据点,根据贝叶斯定理计算其属于每个类别的后验概率,然后将其分类为后验概率最大的类别。
在朴素贝叶斯算法中,先验概率是指在考虑任何观测数据之前,基于先前已知的信息和经验,对于每个可能事件的概率的估计。通常用P(C)表示,其中C是类别。条件概率是指给定某些已知条件下,某个事件发生的概率。在朴素贝叶斯算法中,它是指在已知一个样本的特征向量的情况下,该样本属于某个类别的概率,通常用P(X|C)表示,其中X表示特征向量,C是类别。后验概率是指在考虑了新的观测数据后,对于每个可能事件的概率的重新估计。在朴素贝叶斯算法中,它是指在已知一个样本的特征向量后,该样本属于某个类别的概率,通常用P(C|X)表示,其中X表示特征向量,C是类别。朴素贝叶斯算法的基本思想是根据贝叶斯定理,通过先验概率和条件概率计算后验概率,从而进行分类。具体地,对于一个给定的特征向量X,朴素贝叶斯算法计算每个类别的后验概率P(C|X),并将X分类为具有最高后验概率的类别。
第三章 基于EBPF的网络数据包捕获与处理技术研究 ..................... 19
3.1 数据包捕获与处理技术的对比与选择 ........................ 19
3.2 基于EBPF MAP的分类器模型内核装载技术研究 ................... 23
第四章 基于朴素贝叶斯算法的HTTP DDOS检测研究 .................... 29
4.1 分类器算法的选择 ................................... 29
4.2 多类型的HTTP DDOS攻击特征研究 ......................................... 31
第五章 容器HTTP DDOS检测系统的设计与实现 ............................ 37
5.1 容器HTTP DDOS检测系统整体设计思路 ................................. 37
5.2 朴素贝叶斯算法分类器及相关模块设计与实现 ........................ 38
第六章系统测试与实验分析
6.1实验方案设计
6.1.1实验环境准备
为了验证基于eBPF与朴素贝叶斯算法的HTTP DDoS检测技术的有效性。实验将通过模拟真实网络环境,生成不同类型和强度的HTTP DDoS攻击流量,同时比较其他同类检测方案,以全面评估原型系统在性能、实时性和准确性等方面的优势。在进行综合实验之前,需要准备实验需要的硬件资源,搭建实验环境。本实验共需要五台服务器,其中两台服务器作为web应用服务器,具有相同的硬件设备并部署相同的web应用和系统监控工具,之后将再分别安装本文的原型系统和其他同类检测方案。另外三台服务器作为DDoS攻击服务器,具有相同的硬件设备并部署模拟HTTP DDoS攻击的软件,五台服务器单独组成局域网。服务器具体配置如下表6-1:
DDoS服务器上将部署HTTP DoS攻击工具Slowloris,这是一种影响服务器线程的HTTP Dos工具,它一开始发出大量HTTP请求,然后定期(每隔15秒)发送一次HTTP报文头,以保持连接的打开状态,Slowloris永远不会关闭HTTP连接,除非服务器关闭连接,如果服务器关闭了一个连接,它会创建一个新的连接,并继续做同样的事情。如此一来,Slowloris可以耗尽服务器的线程池,造成拒绝服务。除此之外,还将使用GoldenEye,GoldenEye也是一款开源的HTTP DDoS攻击模拟工具,它能够产生大量的请求并发送到目标服务器以测试服务器的抗压能力,可在较低的网络带宽下仍能对服务器造成显著的影响。在实验过程中,将同时采用两种HTTP DoS攻击工具以模拟不同种类的HTTP DDoS攻击,例如GET/POST类型慢速消息体攻击、非对称请求、HTTP floods和大型有效载荷POST请求等,测试原型系统在检测和防御不同类型或不同强度的HTTP DoS攻击时的性能表现。
第七章总结与展望
7.1本文工作总结
本论文针对HTTP分布式拒绝服务(DDoS)攻击这一严重的网络安全问题,提出并实现了一种基于eBPF技术和朴素贝叶斯算法的原型系统。通过在内核空间执行网络分析任务,本文方案实现了较低的资源消耗和延迟。实验结果表明,原型系统在检测准确率、资源消耗、检测延迟和抗DDoS攻击能力等方面优于传统方案。本研究为提高网络安全水平提供了有力支持,并为未来的相关研究和实践提供参考价值。本文的主要贡献有以下三点:
(1)基于eBPF在Linux内核解决HTTP DDoS检测分类
传统的HTTP DDoS检测通常都在系统的应用层实现,因为HTTP DDoS的检测通常需要较为复杂的过程,传统的Linux内核编程需要开发者在内核空间中编写代码,对于调试和部署都会有一定的挑战,尤其是对于基于机器学习和基于深度学习的两种检测方式来说,在内核中难以实现复杂的算法。然而,在eBPF出现后,可以在内核中创建一个虚拟机,在用户空间编写程序并动态加载到内核中运行,避免了直接在内核空间中编写代码的复杂性和风险,这使得在内核中运行复杂程序或算法成为可能。本文原型系统就是基于eBPF在内核中对HTTP DDoS进行检测。
(2)在Linux内核中运用朴素贝叶斯算法解决数据包分类问题
在内核中运行的程序必须遵循内核的设计原则,避免复杂的算法和数据结构,避免过度依赖外部第三方库或工具,尽可能的保持易用性。基于这些规则,本文选择了朴素贝叶斯算法这一经典分类器算法,该算法基于贝叶斯定理,属于概率统计的分类算法。该算法模型较为简单,计算量小,结果稳定,并且该算法不需要额外的库支持,非常适合在内核中运行。本文使用eBPF程序编写的朴素贝叶斯算法分类器模型能够在内核中运行并获得有效且稳定的分类结果。
参考文献(略)