当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/297238.html

相关文章:

  • 配置ARM交叉编译工具的通用步骤
  • 相机图像质量研究(5)常见问题总结:光学结构对成像的影响--景深
  • 使用django构建一个多级评论功能
  • 测试管理_利用python连接禅道数据库并自动统计bug数据到钉钉群
  • Python 小白的 Leetcode Daily Challenge 刷题计划 - 20240209(除夕)
  • BFS——双向广搜+A—star
  • LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT
  • 新零售的升维体验,摸索华为云GaussDB如何实现数据赋能
  • vscode +git +gitee 文件管理
  • 【力扣】用栈判断有效的括号
  • 【目录】CSAPP的实验简介与解法总结(已包含Attack/Link/Architecture/Cache)
  • 【机器学习】数据清洗之识别缺失点
  • 【Vue】Vue基础入门
  • 正点原子-STM32通用定时器学习笔记(1)
  • Redis篇之redis是单线程
  • 随机MM引流源码PHP开源版
  • 【C++修行之道】(引用、函数提高)
  • 从零开始手写mmo游戏从框架到爆炸(十一)— 注册与登录
  • 【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
  • 【0256】揭晓pg内核中MyBackendId的分配机制(后端进程Id,BackendId)(二)
  • eclipse4.28.0版本如何安装FatJar插件
  • 查大数据检测到风险等级太高是怎么回事?
  • Leetcode 30天高效刷数据结构和算法 Day1 两数之和 —— 无序数组
  • Hair Tool for Blender3D
  • 【最详解】如何进行点云的凹凸缺陷检测(opene3D)(完成度80%)
  • 海外云手机——平台引流的重要媒介
  • 数据库-计算机三级学习记录-4DBAS功能概要设计
  • JVM-虚拟机栈
  • linux系统上tomcat简介以及安装tomcat
  • 树莓派的pip安装时候添加清华源