VED-eBPF 项目使用教程
1. 项目的目录结构及介绍
VED-eBPF 项目的目录结构如下:
ved-ebpf/
├── exploit_detect/
│ ├── main.cc
│ ├── main.h
│ └── objdump.cc
├── LICENSE
├── Makefile
└── README.md
目录结构介绍
-
exploit_detect/: 该目录包含了项目的主要源代码文件,用于实现内核漏洞和Rootkit检测功能。
- main.cc: 主程序文件,包含了eBPF程序的主要逻辑。
- main.h: 头文件,定义了程序中使用的常量和函数声明。
- objdump.cc: 用于生成和验证内核调用栈的辅助文件。
-
LICENSE: 项目的许可证文件,采用AGPL-3.0许可证。
-
Makefile: 项目的构建文件,用于编译和构建项目。
-
README.md: 项目的说明文件,提供了项目的概述、使用方法和依赖信息。
2. 项目的启动文件介绍
项目的启动文件是 exploit_detect/main.cc
。该文件包含了eBPF程序的主要逻辑,用于监控内核行为并检测异常。
主要功能
- 内核调用栈跟踪: 通过eBPF技术,跟踪内核调用栈,检测控制流劫持攻击。
- 权限提升检测: 监控内核中的凭证结构变化,检测未经授权的权限提升。
启动方式
- 确保系统满足项目的依赖要求(Linux 内核 v5.17+,eBPF 支持,BCC 工具包)。
- 使用
make
命令编译项目:make
- 编译完成后,运行生成的可执行文件:
./ved-ebpf
3. 项目的配置文件介绍
VED-eBPF 项目没有独立的配置文件,所有的配置和参数都在代码中定义。主要的配置参数包括:
- eBPF 程序的挂载点: 在
main.cc
中定义,用于指定eBPF程序挂载的内核函数。 - 事件提交方式: 通过
perf buffers
将安全事件提交到用户空间进行分析。
配置示例
在 main.cc
中,可以通过修改以下代码来调整eBPF程序的挂载点:
// 定义eBPF程序挂载的内核函数
const char* trace_functions[] = {
"commit_creds",
"prepare_kernel_cred",
// 其他需要跟踪的函数
};
通过这种方式,可以根据实际需求调整项目的配置。