利用eBPF进行内核级威胁检测:权限提升漏洞与缓解策略分析

执行摘要

eBPF(扩展伯克利数据包过滤器)技术代表了内核安全领域的一次范式转换,为操作系统提供了前所未有的可观测性和强制执行能力。然而,其强大的功能和日益增加的复杂性也引入了新的攻击向量和防御挑战。本报告旨在对使用eBPF检测内核权限提升漏洞进行全面而深入的研究,为技术决策者和安全工程师提供战略评估和实施规划的依据。

本报告首先阐述了eBPF的核心架构、安全机制及其生态系统,强调了其作为安全内核可编程平台的潜力。随后,报告深入剖析了内核权限提升攻击的解剖学,重点分析了释放后使用(Use-after-Free, UAF)、竞争条件(Time-of-Check to Time-of-Use, TOCTOU)以及凭证结构直接操纵等关键漏洞的利用链。

在此基础上,报告详细阐述了eBPF的多种检测方法论,包括如何利用kprobes、tracepoints和Linux安全模块(LSM)钩子来精确观测这些攻击手法的原子操作和行为模式。报告对当前主流的eBPF安全工具(如Cilium Tetragon、Aqua Tracee和Sysdig Falco)进行了深入的架构对比分析,评估了它们在性能、检测哲学和与云原生环境集成方面的差异。

此外,报告还从攻击者的视角审视了eBPF技术的双刃剑效应,分析了其被用于构建复杂根キット(rootkit)和逃避检测的潜力,并提出了相应的防御策略。最后,报告展望了eBPF与机器学习结合进行异常检测等前沿领域,并提出了一系列战略性建议,旨在帮助组织机构构建基于eBPF的、分层且稳健的内核安全防御体系。


第1节 eBPF框架:安全内核可编程性的新范式

1.1 架构概述:从cBPF到eBPF

eBPF的出现被广泛认为是操作系统领域的一场革命,其地位类似于JavaScript之于Web 1。要理解其深刻影响,必须追溯其技术演进的根源。eBPF的前身是经典伯克利数据包过滤器(cBPF),该技术诞生于20世纪90年代,主要用于高效地过滤网络数据包,例如在

tcpdump等工具中 2。然而,cBPF的功能相对单一,其虚拟机仅包含少数几个寄存器和有限的指令集。

随着云计算和大规模分布式系统的兴起,对内核进行动态、安全扩展的需求日益迫切。传统的内核扩展方式,如加载内核模块(LKM),虽然功能强大,但存在巨大的安全风险——一个有缺陷的模块就可能导致整个系统崩溃 3。而直接修改内核源码则因其复杂性和部署困难,在规模化环境中几乎不具备可行性 4。

eBPF正是在这一背景下应运而生,于Linux内核3.18版本(2014年)被引入,并在此后不断发展壮大 4。它将cBPF的概念从一个简单的过滤器扩展为一个通用的、位于内核中的高效虚拟机。这个虚拟机允许开发人员编写的、经过安全验证的沙盒程序在内核空间内运行,从而在不修改内核源码或加载内核模块的情况下,安全地扩展内核功能 1。

eBPF的核心价值在于其事件驱动模型。eBPF程序并非持续运行,而是在特定的内核事件(即钩子点)被触发时执行 1。这些钩子点遍布内核的关键路径,包括系统调用(syscalls)的入口和出口、内核函数(kprobes)和用户函数(uprobes)的调用、静态定义的跟踪点(tracepoints)、网络事件(XDP, TC)等 1。这种机制使得eBPF能够在系统最底层的执行路径上获得无与伦比的可见性和控制力,成为实现高性能网络、深度可观测性和细粒度安全策略的理想技术。

1.2 核心组件:eBPF虚拟机、JIT编译器与Maps

eBPF的强大功能由几个核心组件协同实现,这些组件共同构成了一个既安全又高效的内核执行环境。

1.3 eBPF生态系统:编译器、库与加载器

一个强大的技术离不开一个繁荣的生态系统。eBPF的发展得益于一系列成熟的开发工具和库,它们极大地降低了开发者的入门门槛。

eBPF的整体架构设计,从安全的沙盒环境、高性能的JIT编译器,到丰富的API(辅助函数和Maps),都与Web技术中JavaScript的成功要素惊人地相似。JavaScript需要安全地在浏览器中运行不受信任的代码,eBPF则需要安全地在内核中运行来自用户态的代码,两者都需要一个强大的沙盒机制。JavaScript通过JIT编译器实现了高性能,以支持复杂的Web应用;eBPF同样利用JIT来满足线速网络处理和全系统追踪的性能要求 1。JavaScript通过DOM API与浏览器环境交互,而eBPF则通过Maps和一系列内核定义的辅助函数(helper functions)与内核交互 1。这种架构上的趋同性预示着eBPF生态系统可能会经历与Web相似的演化路径:库和框架的爆发式增长、复杂性的提升,以及一场持续的安全攻防“军备竞赛”。新功能的加入在扩展能力的同时,也可能扩大攻击面,要求防御体系不断进化。eBPF最初作为一种简单、安全的内核扩展,正在演变为一个功能强大、但潜在风险也随之增加的内核内应用平台。


第2节 攻击者视角:内核权限提升的解剖学

理解如何使用eBPF进行防御,首先必须深入理解攻击者试图实现的目标以及他们所利用的漏洞机制。内核权限提升(Local Privilege Escalation, LPE)并非单一动作,而是一个环环相扣的利用链,其最终目标通常是获得系统的最高控制权。

2.1 终极目标:操纵进程凭证(cred结构体)

在Linux系统中,一个进程的权限由其凭证(credentials)决定。这些信息存储在内核数据结构task_struct中,该结构是内核对进程的完整描述 13。其中,与权限直接相关的成员是

cred和real_cred指针,它们指向一个struct cred结构。这个结构体包含了进程的所有安全上下文,如用户ID(UID)、组ID(GID)、补充组、以及更细粒度的能力(Capabilities)集 13。

绝大多数LPE攻击的最终目的,就是通过某种方式修改当前进程的cred结构,将其UID和GID都设置为0,即root用户的权限。为了合法地完成这一操作,内核提供了两个关键函数:prepare_kernel_cred()和commit_creds() 14。

因此,攻击者的圣杯就是找到一种方法,在内核模式下执行commit_creds(prepare_kernel_cred(NULL))这行代码。任何能够实现这一点的漏洞,都意味着完整的系统沦陷。

2.2 内存破坏原语:释放后使用(UAF)漏洞

释放后使用(Use-after-Free, UAF)是一类非常危险的内存损坏漏洞。它发生在程序释放了一块内存后,却继续通过一个悬垂指针(dangling pointer)来使用这块已被释放的内存 15。由于内存分配器可能会将这块内存重新分配给其他对象,攻击者可以利用这一点来实现对内核内存的控制。

一个典型的内核UAF漏洞利用过程可以分解为以下几个步骤,以一个存在漏洞的内核模块vuln.ko为例进行说明 15:

  1. 触发UAF条件:攻击的第一步是创造一个悬垂指针。这通常需要利用漏洞代码中的逻辑缺陷。在vuln.ko的案例中,一个竞争条件漏洞允许两个线程同时打开设备文件,导致它们获得指向同一块内核内存(由kzalloc分配)的文件描述符。当其中一个线程关闭其文件描述符时,内核会调用kfree释放这块内存。然而,另一个线程的文件描述符依然指向这块已被释放的内存地址,这就形成了一个悬垂指针,即UAF条件 15。
  2. 堆喷射(Heap Spraying):在目标内存被释放后,它就成了一个“空位”,可以被内存分配器(如SLUB)重新利用。攻击者会立即进行“堆喷射”,即大量地、重复地请求分配特定大小和类型的内核对象(例如,通过反复打开/dev/ptmx来分配tty_struct对象) 15。其目的是让其中一个新分配的、攻击者可控的对象“恰好”占据刚刚被释放的内存空位。
  3. 类型混淆与原语构建:一旦堆喷射成功,悬垂指针现在就指向了一个类型不同但由攻击者部分控制的新对象(如tty_struct)。攻击者此时通过悬垂指针(例如,通过对旧的文件描述符进行write操作)写入数据,实际上是在修改新对象的内存内容。这种将A类型的指针用于访问B类型对象的行为被称为“类型混淆”。攻击者可以精确计算偏移量,覆盖新对象中的关键数据,例如函数指针。通过覆盖函数指针,攻击者可以将程序的控制流劫持到一个他可以控制的地方,从而构建起更强大的利用原语,如任意地址读(Arbitrary Address Read, AAR)和任意地址写(Arbitrary Address Write, AAW) 15。
  4. 实现权限提升:拥有了AAR/AAW原语后,攻击者就几乎拥有了对内核的完全控制。他们可以使用这些原语来实现最终目标。一种常见且相对稳定的技术是覆盖内核中的modprobe_path变量,该变量定义了当内核需要加载模块时执行的程序路径。攻击者将其修改为指向一个自己控制的脚本(如/tmp/x),然后通过触发一个需要加载模块的操作(例如执行一个格式无法识别的文件),来以root权限执行自己的代码 15。另一种更直接的方式是构建一个返回导向编程(Return-Oriented Programming, ROP)链,直接在内核中调用
    commit_creds(prepare_kernel_cred(NULL))。

2.3 并发缺陷:利用竞争条件(TOCTOU)

竞争条件(Race Condition)是另一类常见的内核漏洞,尤其是一种被称为“检查时-使用时”(Time-of-Check to Time-of-Use, TOCTOU)的子类型 19。这类漏洞的根源在于,一个程序在执行一个操作前检查某个条件(例如,文件权限),但在检查完成之后、实际使用资源之前,系统的状态被另一个并发的线程所改变,导致最初的检查失效 19。

在内核中,TOCTOU漏洞经常发生在内核代码需要多次从用户空间内存读取数据时 20。由于用户空间内存可以被用户进程随时修改,一个精心设计的攻击程序可以在一个CPU核心上运行内核代码,同时在另一个CPU核心上运行一个线程,专门用于在内核两次读取的间隙修改那块用户内存 15。

一个典型的TOCTOU攻击场景如下:一个内核驱动程序首先从用户空间读取一个长度值,以确定需要分配多大的内核缓冲区。然后,它再次从用户空间读取实际的数据,并使用memcpy将其复制到新分配的缓冲区中。攻击者可以利用竞争条件,在第一次读取时提供一个很小且合法的值(例如8字节),使内核分配一个很小的缓冲区。紧接着,在内核执行memcpy之前,攻击者线程迅速将用户空间中的长度值修改为一个非常大的值(例如1024字节)。当内核第二次读取长度并执行memcpy时,就会试图将1024字节的数据复制到一个只有8字节的缓冲区中,从而导致内核堆栈或堆的缓冲区溢出 20。

这种从低级漏洞(如竞争条件)到中级原语(如UAF或缓冲区溢出),再到高级原语(AAR/AAW),最终实现权限提升的利用链,揭示了内核攻击的层次化本质。这一本质对于设计防御策略具有深远的指导意义。一个稳健的eBPF防御体系不应仅仅满足于在终点线(如commit_creds调用)设置监控。尽管这是有价值的最后一道防线,但一个更先进的系统应该致力于在利用链的更早阶段进行检测。例如,可以设计eBPF程序来识别异常的堆喷射行为(一个进程在短时间内大量分配同一种对象),或者通过监控RCU(Read-Copy-Update)宽限期等底层同步原语的活动来发现TOCTOU竞争的迹象 16。这种思路在检测逻辑内部构建了一个“纵深防御”模型,极大地增加了攻击者成功的难度。


第3节 eBPF验证器:安全的基石及其局限性

eBPF之所以能够被接纳并集成到Linux内核这一核心组件中,其关键在于一套严格的安全保障机制,而这套机制的核心就是eBPF验证器(Verifier)。验证器是一个静态分析引擎,任何eBPF程序在被加载到内核并附加到钩子点之前,都必须通过它的审查 1。验证器的设计目标是“证明”程序是安全的,而不是检查程序“做什么” 1。

3.1 验证过程:控制流与内存访问的静态分析

验证器在加载时对eBPF字节码执行一系列严格的检查,以确保其不会对内核造成危害。主要检查项包括:

  1. 权限检查:默认情况下,只有特权进程(root或拥有CAP_BPF能力的进程)才能加载eBPF程序。如果系统开启了非特权eBPF(unprivileged_bpf_disabled=0),普通用户也可以加载eBPF程序,但其功能会受到极大限制,例如无法访问任意内核内存 1。
  2. 终止保证(无无限循环):验证器通过分析程序的控制流图(Control Flow Graph, CFG),构建一个有向无环图(Directed Acyclic Graph, DAG)来确保程序中不存在后向跳转(back-edge),从而从根本上禁止了无限循环 1。这保证了任何eBPF程序都能在有限的指令数内执行完毕,防止其永久占用CPU导致内核锁死。从Linux 5.3版本开始,eBPF支持有界循环(bounded loops),但前提是验证器必须能够静态地证明循环的退出条件必然会达成 1。
  3. 有效内存访问:这是验证器最复杂也最关键的任务之一。它确保程序不会访问其权限范围之外的内存,也不会读取未初始化的变量 1。例如,对栈的访问必须在`。

3.2 类型与状态追踪:确保指针和数据的完整性

为了实现对内存访问的精确验证,验证器会模拟eBPF程序所有可能的执行路径。在这个过程中,它会细致地追踪每个指令执行后,11个寄存器和栈空间的状态变化 7。

3.3 脆弱的信任:历史验证器绕过漏洞(CVE)分析

尽管验证器是eBPF安全模型的核心,但它本身也是一个由超过一万行C代码构成的复杂软件 2,因此不可避免地成为了一个攻击面。历史证明,验证器中的漏洞是真实存在的,并且一旦被利用,后果可能是灾难性的,通常会导致权限提升 5。

许多验证器漏洞的根源在于其对寄存器值范围和状态进行推断的复杂逻辑中,尤其是在处理ALU(算术逻辑单元)操作和类型转换时 5。验证器并非形式化验证的产物,它本质上是实现了一个禁止行为的“黑名单”。这意味着,任何设计者未曾预料到的攻击路径,都可能成为一个绕过验证器的漏洞 8。

案例研究1:find_equal_scalars中的整数溢出 25

在2024年由NCC集团进行的一次安全审计中,发现了一个高危漏洞。该漏洞存在于验证器处理32位加法运算的逻辑中,一个精心构造的程序可以利用整数溢出,欺骗验证器,最终获得任意内核内存读写的能力。这个案例表明,即使是核心的算术操作清理(sanitization)逻辑,也可能存在细微而致命的缺陷。
案例研究2:寄存器边界跟踪错误 (GHSA-hfqc-63c7-rj9f)
Google的研究人员通过模糊测试发现了一个验证器在跟踪寄存器边界时的漏洞 27。攻击者可以通过一系列精巧的位运算和条件分支,使得验证器在静态分析时对某个寄存器的值范围的判断,与该寄存器在实际执行时的真实值产生偏差。这种“状态不一致”使得攻击者可以绕过安全检查,实现内核内存的读写。
下表总结了一些值得注意的验证器漏洞,突显了其作为攻击面的持续风险。

表1:部分eBPF验证器历史漏洞

CVE / ID 漏洞类别 最终影响 来源
CVE-2022-23222 不当输入验证 权限提升 26
(NCC-E015561-JJX) 32位加法处理不当 任意内核内存读写 25
GHSA-hfqc-63c7-rj9f 寄存器边界跟踪错误 任意内核内存读写 27
CVE-2021-3490 ALU范围跟踪不当 权限提升、信息泄露 5

这些漏洞揭示了一个根本性的矛盾:一方面,社区和行业希望eBPF拥有更强大的功能,如CO-RE、有界循环、更复杂的辅助函数等 1。另一方面,支持这些高级功能不可避免地导致验证器的逻辑变得愈发复杂 4。复杂性的增加是滋生软件缺陷的温床,尤其是在C语言这样对内存安全要求苛刻的环境中。安全审计和模糊测试虽然在不断发现并修复漏洞,但它们总是在追赶不断膨胀的复杂性 25。

因此,eBPF验证器正处在一个可能不可持续的发展轨迹上。它正在成为一个复杂性与整个eBPF生态系统的雄心同步增长的单点故障。这强烈地表明,未来的安全模型不能、也不应仅仅依赖验证器的完美无缺。纵深防御策略至关重要,这包括:严格控制能够加载eBPF程序的权限(CAP_BPF)、对可疑的BPF活动进行监控,以及探索新的硬件辅助隔离技术。验证器是一个至关重要的安全工具,但将其视为一个绝对可靠的安全边界,是一个危险的假设 1。


第4节 检测机制:为安全可观测性插桩内核

eBPF为内核防御提供了丰富的工具箱,其核心在于能够通过不同的钩子机制在内核的关键路径上进行插桩(instrumentation),从而实现对系统行为的深度观测乃至主动干预。选择合适的钩子是设计高效eBPF安全策略的第一步。

4.1 选择正确的钩子:Tracepoints、Kprobes与LSM的比较分析

eBPF提供了多种类型的钩子,每种都有其独特的优势和适用场景。

下表对这三种主要的钩子机制进行了比较,为安全架构师和工程师在设计eBPF安全方案时提供了决策依据。

表2:eBPF钩子机制比较

钩子类型 稳定性 性能开销 能力 典型用例 来源
Tracepoint 高(稳定API) 仅可观测 监控稳定的内核事件(如系统调用) 29
Kprobe 低(依赖内核实现) 中(动态插桩) 仅可观测 调试、追踪任意内核函数 31
BPF-LSM 高(稳定钩子点) 低至中 可观测与强制执行 实现细粒度的安全策略和访问控制 34

4.2 实践应用:监控commit_creds以发现非法权限变更

监控commit_creds函数的调用是检测权限提升攻击的一种直接且有效的策略。在正常系统中,只有少数特权进程(如sudo、su)会合法地调用此函数。任何来自非预期进程(如一个Web服务器进程)的commit_creds调用都应被视为高度可疑的攻击信号 14。

使用Kprobe可以轻松实现对此类行为的监控 38。一个附加到

commit_creds函数入口的eBPF程序可以执行以下逻辑:

  1. 获取当前进程的PID和进程名(comm)。
  2. 将这些信息(PID、comm)以及时间戳等上下文数据写入一个eBPF Map(如perf_event_array或ringbuf)。
  3. 用户态的监控守护进程从Map中读取这些事件。
  4. 守护进程根据预设的策略(例如,白名单)对事件进行分析。如果发现调用commit_creds的进程不在白名单内,立即生成高优先级安全警报。

4.3 检测复杂漏洞利用:识别UAF和TOCTOU模式

更高级的防御策略旨在攻击者成功执行commit_creds之前,就发现其利用链中的早期行为。

4.4 使用BPF-LSM进行策略强制:主动阻止恶意操作

BPF-LSM的出现,标志着eBPF在安全领域的应用从被动的“检测-响应”模式,向主动的“预防-保护”模式的转变 35。

eBPF防御机制的发展呈现出一个清晰的“成熟度模型”。最初级的应用是使用Kprobe或Tracepoint对已知的恶意行为(如调用commit_creds)进行事后观测和告警。这是纯粹的被动检测。一个更进阶的阶段是利用LSM钩子等机制,在利用链的更早阶段,基于更丰富的上下文进行检测,例如识别TOCTOU攻击模式。这是更智能、更具上下文的检测。而最高级的阶段,则是利用BPF-LSM的强制执行能力,直接在内核中阻止恶意操作的完成,实现主动防御。BPF-LSM的出现是这一领域最具战略意义的进展,它将eBPF从一个观测工具转变为一个能够与SELinux、AppArmor等传统MAC框架相竞争,甚至可能取而代之的策略执行引擎。它为实现高度可编程、细粒度的安全策略提供了一条全新的、可能更易于管理的路径,从根本上改变了Linux运行时安全的格局 35。


第5节 深度剖析:基于eBPF的安全工具

随着eBPF技术的成熟,一系列开源和商业安全工具应运而生。它们利用eBPF提供的内核级可见性,为云原生和传统Linux环境提供运行时安全监控和保护。本节将深入分析三个代表性工具:Cilium Tetragon、Aqua Tracee和Sysdig Falco。

5.1 Cilium Tetragon:云原生运行时安全与强制执行

5.2 Aqua Tracee:精细化的追踪与取证框架

5.3 Sysdig Falco:成熟的、基于规则的威胁检测引擎

5.4 生产环境中的性能与开销考量

eBPF安全工具的演进轨迹清晰地反映了行业安全理念的变迁。Falco代表了第一代工具,它拥有强大的、基于已知模式的检测引擎,并成功地将eBPF作为其更优的数据来源 51。Tracee则体现了对深度取证和数据粒度的极致追求,其架构清晰地分离了收集与检测 48。而Tetragon则代表了下一代的设计哲学,它从一开始就为eBPF和Kubernetes而生 45。其核心差异化优势在于深度K8s上下文感知和内核内强制执行能力 45。它不仅仅是“看到”了坏事,而是能在坏事发生时,在内核层面“阻止”它。从Falco到Tetragon的演进,是从“检测与响应”到“预防与保护”的明确转变,而驱动这一转变的核心技术正是eBPF,特别是BPF-LSM能力的成熟。运行时安全的未来,将不再仅仅是可观测性,而是可编程的、实时的、内核内的策略强制执行。

表3:eBPF安全工具架构比较

工具 主要架构 强制执行模型 Kubernetes集成 策略/规则方法 来源
Cilium Tetragon K8s原生Operator/DaemonSet 内核内强制(信号/系统调用覆盖) 深度(工作负载身份感知) 自定义TracingPolicy CRD 44
Aqua Tracee 模块化收集器/规则引擎 无(仅检测/取证) 上下文丰富(添加容器信息) Go/Rego/CEL签名 48
Sysdig Falco 驱动/守护进程与Sidekick 事后响应(通过外部集成) 上下文丰富(添加容器信息) 基于YAML的规则 9

第6节 攻击者视角:进攻性eBPF与规避技术

eBPF的强大能力是一把双刃剑。防御者用来构建堡垒的工具,同样可以被攻击者用来打造攻城利器。理解进攻性eBPF(Offensive eBPF)的原理和技术,对于构建真正有效的防御体系至关重要 6。

6.1 eBPF作为根キット(Rootkit)平台:隐藏进程、文件与网络连接

eBPF为现代根キット提供了一个近乎完美的平台,因为它能在内核层面实现经典的恶意软件功能,同时绕过许多传统的检测手段。

6.2 隐蔽的命令与控制(C2)及数据窃取

由于eBPF程序本身受到严格限制,无法主动发起网络连接,因此eBPF根キット的C2通信必须依赖于劫持现有的网络流量。

6.3 防御防御者:监控恶意的eBPF程序加载

eBPF根キット的存在意味着,一个全面的防御策略必须将eBPF子系统本身也视为一个需要被严密监控和保护的关键资产。

eBPF的安全态势呈现出一种根本性的悖论:其力量即是其风险。因此,一个成熟的安全组织必须将eBPF子系统本身视为一个需要被监控和防御的关键资产,而不仅仅是获取防御工具的来源。这意味着,安全工具如Tetragon或Falco,除了要监控外部威胁外,还应内置规则来检测可疑的eBPF活动本身。例如,一个非系统服务进程加载了一个追踪程序,或者一个eBPF程序被附加到一个敏感的安全函数上,这些都应被视为潜在的威胁指标。这种“eBPF感知”的安全监控能力,将成为未来运行时安全解决方案的核心要求。


第7节 前沿领域与战略建议

eBPF技术仍在飞速发展,其在安全领域的应用也在不断拓展到新的前沿。本节将探讨一些新兴的应用方向,并为组织机构在部署eBPF安全方案时提供战略性建议。

7.1 下一波浪潮:eBPF与机器学习结合进行异常检测

传统的安全工具大多依赖于基于签名或规则的检测方法,这对于发现已知威胁非常有效,但对零日攻击和未知的恶意行为模式则力不从心。eBPF能够以极高的保真度捕获海量的底层系统事件(如每一次系统调用、每一个网络包),这为机器学习模型的应用提供了理想的数据源 64。

7.2 新型防御应用:利用eBPF辅助的分配器缓解UAF

除了检测,eBPF的强大能力也开始被用于主动缓解整个类别的漏洞。以UAF漏洞为例,一些前沿研究展示了eBPF如何从根本上改变内存管理的安全性。

7.3 实施与部署的战略建议

对于希望利用eBPF提升其安全能力的组织,以下战略性建议可供参考:

eBPF技术正经历从一个强大的“附加”观测工具,向成为内核核心安全架构不可或缺的一部分的转变。长远来看,其愿景不仅仅是让eBPF程序监视内核,而是让eBPF程序成为一个更安全、可动态加固的内核的一部分。这一趋势将对操作系统设计和系统安全的未来产生深远的影响。

引用的著作

  1. What is eBPF? An Introduction and Deep Dive into the eBPF ..., 访问时间为 七月 1, 2025, https://ebpf.io/what-is-ebpf/
  2. Programmability and Performance in the Linux Kernel by eBPF. - DEV Community, 访问时间为 七月 1, 2025, https://dev.to/krishnasvp/programmability-and-performance-in-the-linux-kernel-by-ebpf-10nl
  3. eBPF Tutorial by Example 0: Introduction to Core Concepts and Tools - eunomia, 访问时间为 七月 1, 2025, https://eunomia.dev/tutorials/0-introduce/
  4. The eBPF Runtime in the Linux Kernel - arXiv, 访问时间为 七月 1, 2025, https://arxiv.org/html/2410.00026v2
  5. Understanding the Security of Linux eBPF Subsystem - Systems Software Research Group, 访问时间为 七月 1, 2025, https://www.ssrg.ece.vt.edu/papers/apsys23.pdf
  6. What is eBPF? The Hacker's New Power Tool for Linux - Cymulate, 访问时间为 七月 1, 2025, https://cymulate.com/blog/ebpf_hacking/
  7. The art of writing eBPF programs: a primer. - Sysdig, 访问时间为 七月 1, 2025, https://sysdig.com/blog/the-art-of-writing-ebpf-programs-a-primer/
  8. Harnessing the eBPF Verifier - The Trail of Bits Blog, 访问时间为 七月 1, 2025, https://blog.trailofbits.com/2023/01/19/ebpf-verifier-harness/
  9. Sysdig and Falco now powered by eBPF. | Sysdig, 访问时间为 七月 1, 2025, https://sysdig.com/blog/sysdig-and-falco-now-powered-by-ebpf/
  10. The beginning of my eBPF Journey — Kprobe Adventures with BCC | by Douglas Mendez, 访问时间为 七月 1, 2025, https://douglasmakey.medium.com/the-beginning-of-my-ebpf-journey-kprobe-adventures-with-bcc-6aae3eb33a1e
  11. eBPF Core Infrastructure Landscape, 访问时间为 七月 1, 2025, https://ebpf.io/infrastructure/
  12. eBPF verifier — The Linux Kernel documentation, 访问时间为 七月 1, 2025, https://docs.kernel.org/bpf/verifier.html
  13. Privilege Escalation Procedure through commit_creds() - ResearchGate, 访问时间为 七月 1, 2025, https://www.researchgate.net/figure/Privilege-Escalation-Procedure-through-commit-creds_fig3_329408891
  14. Implementing Container Privilege Escalation Detection using eBPF for C... Inhyeok Jang & Sungjin Kim - YouTube, 访问时间为 七月 1, 2025, https://www.youtube.com/watch?v=buZxMGKX9Xk
  15. Linux Kernel Exploitation: Exploiting race-condition + UAF ..., 访问时间为 七月 1, 2025, https://santaclz.github.io/2024/01/29/Linux-Kernel-Exploitation-exploiting-race-condition-and-UAF.html
  16. Deep Dive into RCU Race Condition: Analysis of TCP-AO UAF (CVE-2024–27394) - Theori, 访问时间为 七月 1, 2025, https://theori.io/blog/deep-dive-into-rcu-race-condition-analysis-of-tcp-ao-uaf-cve-2024-27394
  17. BUDAlloc: Defeating Use-After-Free Bugs by Decoupling ... - USENIX, 访问时间为 七月 1, 2025, https://www.usenix.org/system/files/usenixsecurity24-ahn.pdf
  18. Playing for K(H)eaps: Understanding and Improving Linux Kernel Exploit Reliability - USENIX, 访问时间为 七月 1, 2025, https://www.usenix.org/system/files/sec22fall_zeng.pdf
  19. Study of Race Condition: A Privilege Escalation Vulnerability - International Institute of Informatics and Cybernetics, 访问时间为 七月 1, 2025, https://www.iiisci.org/journal/pdv/sci/pdfs/SA025BU17.pdf
  20. Identifying and Exploiting Windows Kernel Race Conditions via Memory Access Patterns - Google Research, 访问时间为 七月 1, 2025, https://research.google.com/pubs/archive/42189.pdf
  21. Understanding the Meltdown vulnerability - Information Security Stack Exchange, 访问时间为 七月 1, 2025, https://security.stackexchange.com/questions/255225/understanding-the-meltdown-vulnerability
  22. Privilege Escalation in Linux via a Local Buffer Overflow | by Ravishanka Silva | Medium, 访问时间为 七月 1, 2025, https://ravi5hanka.medium.com/privilege-escalation-in-linux-via-a-local-buffer-overflow-dcee4f9b4a49
  23. eBPF Verifier: Why It Matters for Reliable Observability - groundcover, 访问时间为 七月 1, 2025, https://www.groundcover.com/ebpf/ebpf-verifier
  24. How does an eBPF program cause a kernel panic? - Information Security Stack Exchange, 访问时间为 七月 1, 2025, https://security.stackexchange.com/questions/277892/how-does-an-ebpf-program-cause-a-kernel-panic
  25. eBPF Verifier Code Review - Linux Foundation, 访问时间为 七月 1, 2025, https://www.linuxfoundation.org/hubfs/eBPF/eBPF%20Verifier%20Security%20Audit.pdf?__hstc=137369199.8da91b5f8b42a5531651a132262dd89d.1732320000083.1732320000084.1732320000085.1&__hssc=137369199.1.1732320000086&__hsfp=2637229211
  26. Understanding the Security Aspects of Linux eBPF - Pentera, 访问时间为 七月 1, 2025, https://pentera.io/blog/the-good-bad-and-compromisable-aspects-of-linux-ebpf/
  27. Linux Kernel: Vulnerability in the eBPF verifier register limit tracking ..., 访问时间为 七月 1, 2025, GHSA-hfqc-63c7-rj9f
  28. Toss a Fault to BpfChecker: Revealing Implementation Flaws for eBPF runtimes with Differential Fuzzing - Yajin Zhou, 访问时间为 七月 1, 2025, http://www.malgenomeproject.org/papers/CCS2024_BpfChecker.pdf
  29. Tracepoints, Kprobes, or Fprobes: Which One Should You Choose ..., 访问时间为 七月 1, 2025, https://cloudchirp.medium.com/tracepoints-kprobes-or-fprobes-which-one-should-you-choose-00d65918fbe2
  30. Security Monitoring with eBPF - Brendan Gregg, 访问时间为 七月 1, 2025, https://www.brendangregg.com/Slides/BSidesSF2017_BPF_security_monitoring.pdf
  31. eBPF Tutorial by Example 2: Monitoring unlink System Calls with kprobe - eunomia, 访问时间为 七月 1, 2025, https://eunomia.dev/tutorials/2-kprobe-unlink/
  32. Tracing System Calls Using eBPF - Part 2 - Falco, 访问时间为 七月 1, 2025, https://falco.org/blog/tracing-system-calls-using-ebpf-part-2/
  33. Quick Exploration of Tetragon — A Security Observability and Execution Tool Based on eBPF - Addo Zhang, 访问时间为 七月 1, 2025, https://addozhang.medium.com/quick-exploration-of-tetragon-a-security-observability-and-execution-tool-based-on-ebpf-b67ddc84886d
  34. eBPF Tutorial by Example 19: Security Detection and Defense using ..., 访问时间为 七月 1, 2025, https://eunomia.dev/tutorials/19-lsm-connect/
  35. Secure the Linux Kernel with eBPF Linux Security Module - Vandana Salve, Independent Consultant - YouTube, 访问时间为 七月 1, 2025, https://www.youtube.com/watch?v=_tG1G6Oewc4
  36. Practical Guide to LSM BPF - Head First eBPF, 访问时间为 七月 1, 2025, https://www.ebpf.top/en/post/lsm_bpf_intro/
  37. Program Type 'BPF_PROG_TYPE_LSM' - eBPF Docs, 访问时间为 七月 1, 2025, https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_LSM/
  38. Program Type 'BPF_PROG_TYPE_KPROBE' - eBPF Docs, 访问时间为 七月 1, 2025, https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_KPROBE/
  39. eBPF Developer Tutorial: Learning eBPF Step by Step with Examples - GitHub, 访问时间为 七月 1, 2025, https://github.com/eunomia-bpf/bpf-developer-tutorial
  40. Using LSM Hooks with Tracee to Overcome Gaps with Syscall Tracing - Aqua Security, 访问时间为 七月 1, 2025, https://www.aquasec.com/blog/linux-vulnerabilitie-tracee/
  41. Runtime Security And The Role Of EBPF/BPF-LSM - AccuKnox, 访问时间为 七月 1, 2025, https://accuknox.com/blog/runtime-security-ebpf-bpf-lsm
  42. Live-patching security vulnerabilities inside the Linux kernel with eBPF Linux Security Module - The Cloudflare Blog, 访问时间为 七月 1, 2025, https://blog.cloudflare.com/live-patch-security-vulnerabilities-with-ebpf-lsm/
  43. Securing systems with eBPF Linux Security Module - Frederick Lawler - YouTube, 访问时间为 七月 1, 2025, https://www.youtube.com/watch?v=XlqfTX9xV_4
  44. Master Kubernetes Security with Tetragon - Is It Observable, 访问时间为 七月 1, 2025, https://isitobservable.io/observability/kubernetes/master-kubernetes-security-with-tetragon
  45. Tetragon - Isovalent Networking for Kubernetes documentation, 访问时间为 七月 1, 2025, https://docs.isovalent.com/project/tetragon/index.html
  46. Cloud Native, eBPF-based Networking, Observability, and Security - Cilium, 访问时间为 七月 1, 2025, https://cilium.io/get-started/
  47. Tetragon - eBPF-based Security Observability and Runtime Enforcement, 访问时间为 七月 1, 2025, https://tetragon.io/
  48. Overview - Tracee - Aqua Security, 访问时间为 七月 1, 2025, https://aquasecurity.github.io/tracee/v0.9/
  49. Aqua Tracee: Real-Time Security with eBPF for Linux & Kubernetes - Venturenox, 访问时间为 七月 1, 2025, https://venturenox.com/blog/aqua-tracee-real-time-security-monitoring/
  50. A Deep Dive into eBPF: The Technology that Powers Tracee - Aqua Security, 访问时间为 七月 1, 2025, https://www.aquasec.com/blog/https-www-aquasec-com-blog-intro-ebpf-tracing-containers/
  51. Falco: A New Approach to Security and Visibility - Intel, 访问时间为 七月 1, 2025, https://www.intel.com/content/www/us/en/developer/articles/community/falco-a-new-approach-to-security-and-visibility.html
  52. Exploring eBPF: Empowering DevOps with Falco and KubeArmor | by RAP | Medium, 访问时间为 七月 1, 2025, https://medium.com/@ridhoadya/exploring-ebpf-empowering-devops-with-falco-and-kubearmor-830669bc0fd5
  53. charts/charts/falco/README.md at master · falcosecurity/charts - GitHub, 访问时间为 七月 1, 2025, https://github.com/falcosecurity/charts/blob/master/charts/falco/README.md
  54. Choosing a Falco driver, 访问时间为 七月 1, 2025, https://falco.org/blog/choosing-a-driver/
  55. eBPF for Advanced Linux Performance Monitoring and Security - TuxCare, 访问时间为 七月 1, 2025, https://tuxcare.com/blog/ebpf-for-advanced-linux-performance-monitoring-and-security/
  56. Demystifying eBPF Tracing: A Beginner's Guide to Performance Optimization, 访问时间为 七月 1, 2025, https://www.groundcover.com/ebpf/ebpf-tracing
  57. Enhancing Cloud-Native Security with Tetragon - CloudRaft, 访问时间为 七月 1, 2025, https://www.cloudraft.io/blog/cloud-native-security-with-tetragon
  58. Eliminating eBPF Tracing Overhead on Untraced Processes - People - Virginia Tech, 访问时间为 七月 1, 2025, https://people.cs.vt.edu/djwillia/papers/ebpf24-mookernel.pdf
  59. Measuring Function Latency with eBPF - eunomia, 访问时间为 七月 1, 2025, https://eunomia.dev/tutorials/33-funclatency/
  60. Measuring Function Latency with eBPF - DEV Community, 访问时间为 七月 1, 2025, https://dev.to/yunwei37/measuring-function-latency-with-ebpf-2ogk
  61. With Friends like eBPF, who needs enemies ? - Black Hat, 访问时间为 七月 1, 2025, https://i.blackhat.com/USA21/Wednesday-Handouts/us-21-With-Friends-Like-EBPF-Who-Needs-Enemies.pdf
  62. Cross Container Attacks: The Bewildered eBPF on Clouds - USENIX, 访问时间为 七月 1, 2025, https://www.usenix.org/system/files/usenixsecurity23-he.pdf
  63. Detecting eBPF Rootkits Using Virtualization and Memory Forensics - SciTePress, 访问时间为 七月 1, 2025, https://www.scitepress.org/Papers/2024/124708/124708.pdf
  64. eACGM: Non-instrumented Performance Tracing and Anomaly Detection towards Machine Learning Systems - arXiv, 访问时间为 七月 1, 2025, https://arxiv.org/html/2506.02007v1
  65. [2503.04178] Unsupervised anomaly detection on cybersecurity data streams: a case with BETH dataset - arXiv, 访问时间为 七月 1, 2025, https://arxiv.org/abs/2503.04178
  66. High-performance Intrusion Detection Systemusing eBPF with Machine Learning algorithms, 访问时间为 七月 1, 2025, https://www.researchgate.net/publication/372142095_High-performance_Intrusion_Detection_Systemusing_eBPF_with_Machine_Learning_algorithms