VED-eBPF:一款基于eBPF的内核利用和Rootkit检测工具

关于VED-eBPF

VED-eBPF是一款功能强大的内核漏洞利用和Rootkit检测工具,该工具基于eBPF技术实现其功能,可以实现Linux操作系统运行时内核安全监控和漏洞利用检测。

eBPF是一个内核内虚拟机,它允许我们直接在内核中执行代码,而无需修改内核源代码。eBPF程序可以绑定到跟踪点、kprobes和其他内核事件上,以帮助广大研究人员更有效地分析代码执行并收集数据。

功能介绍

VED-eBPF使用了eBPF来跟踪安全敏感的内核行为,并检测潜在安全漏洞或Rootkit所引发的异常。当前版本的VED-eBPF提供了下列两种检测功能:

1、wCFI(控制流完整性)跟踪内核调用栈,以检测控制流劫持攻击。它可以生成一个有效调用站点的位图,并验证每个返回地址是否与已知调用站点匹配;

2、PSD(权限提升检测)跟踪对内核中凭据结构的更改行为,以检测未经授权的权限升级情况;

工具运行机制

VED-eBPF会将eBPF程序绑定到内核函数上,以跟踪执行流并提取安全事件信息。eBPF程序随后会通过perf缓冲区将这些事件信息提交到用户空间以进行后续分析。

wCFI

wCFI通过绑定到命令行指定的函数来跟踪调用栈,每一次调用,都会转储堆栈信息,并分配一个栈ID,然后用返回地址与与计算的位图进行对比验证,如果返回的地址无效,表明发生了栈崩溃,最终生成一个wcfi_stack_event事件,其中包含:

* 栈跟踪数据

* 栈ID

* 无效的返回地址

PSD

PSD可以通过绑定类似commit_creds和prepare_kernel_cred之类的函数来跟踪针对凭证结构的修改行为。每一次调用,它都会提取下列信息:

* 当前进程的凭证

* 凭证哈希和用户命名空间

* 调用栈数据

工具要求

1、Linux内核 v5.17+

2、启用eBPF支持

3、BCC工具

工具下载

由于该工具基于C++开发,因此我们首先需要在本地设备上安装并配置好最新版本的Visual Studio。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/hardenedvault/ved-ebpf.git

打开Visual Studio,将项目导入之后,完成项目代码的构建和编译即可。

许可证协议

本项目的开发与发布遵循AGPL-3.0开源许可证协议。

项目地址

VED-eBPF:【GitHub

参考资料

+PROTECTING LINUX AT KERNEL LEVEL WHY AND HOW

GitHub - iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

相关推荐

  1. ebpf基础篇() -------- hello ebpf

    2024-02-11 17:56:01       38 阅读
  2. 基于eBPF检测非法调试行为

    2024-02-11 17:56:01       26 阅读
  3. ebpf学习_incomplete

    2024-02-11 17:56:01       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-11 17:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-11 17:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-11 17:56:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-11 17:56:01       20 阅读

热门阅读

  1. 2023年股市总结,2024年A股方向展望!

    2024-02-11 17:56:01       35 阅读
  2. 前端开发_Node.js

    2024-02-11 17:56:01       25 阅读
  3. C语言什么是悬空指针?

    2024-02-11 17:56:01       35 阅读
  4. Leetcode 518 零钱兑换 II

    2024-02-11 17:56:01       27 阅读
  5. 线程池设计---C++

    2024-02-11 17:56:01       24 阅读
  6. JDK8常用:JVM参数

    2024-02-11 17:56:01       19 阅读
  7. STL之priority_queue的使用及其模拟实现+仿函数

    2024-02-11 17:56:01       26 阅读
  8. 深入浅出TCP/IP协议簇:理论与Python实践

    2024-02-11 17:56:01       18 阅读
  9. 详解C指针 (二)

    2024-02-11 17:56:01       28 阅读
  10. MongoDB聚合:$replaceWith

    2024-02-11 17:56:01       25 阅读