zyekhabdul/vol3-ebpf-detector
GitHub: zyekhabdul/vol3-ebpf-detector
一款 Volatility 3 插件与独立内存取证工具,直接从 Linux 内存转储中深度检测隐藏的 eBPF Rootkit 并导出威胁情报报告。
Stars: 0 | Forks: 0
# vol3-ebpf-detector
`vol3-ebpf-detector` 是一个企业级的取证框架和 Volatility 3 插件,旨在直接从原始 Linux 内存转储中检测隐藏的、混淆的或恶意的 eBPF(Extended Berkeley Packet Filter)程序。
## 🔍 核心取证能力
1. **内核 `prog_idr` 与 XArray 遍历**:跨 Linux 4.x、5.x 和 6.x 遍历内核内存结构(`prog_idr`、`xa_node.slots`)以枚举已加载的 eBPF 程序,绕过用户空间的 `bpftool` 规避技术。
2. **Hook 与挂载点分析**:解析 `bpf_link`、`kprobe`、`kretprobe`、`fentry`/`fexit`(`fmod_ret`)、`XDP`、`TC`、`LSM` 和 `NETFILTER` 挂载。
3. **自动化威胁评分引擎**:审计 `bpf_prog_aux.used_helpers` 中的高风险内核辅助函数(例如 `bpf_probe_write_user`、`bpf_override_return`),并应用复合风险规则(自动将活跃的注入程序提升至 **CRITICAL 评分 100**)。
4. **反汇编与字节码导出器**:集成 Capstone 反汇编引擎对 JIT 编译的原生代码进行反汇编,并导出原始 eBPF 字节码(`insnsi`)。
5. **可执行 JIT 内存提取器**:执行 C 级别的字符串搜索(`buffer.find()`),采用 16 字节指令对齐和 `bpf_binary_header` 验证,以发现被擦除元数据/已解除链接的 eBPF JIT 二进制文件。
6. **内核 `struct_ops` 劫持审计器**:检测被替换的内核操作表(`BPF_PROG_TYPE_STRUCT_OPS`、LSM hooks、`tcp_congestion_ops`)。
7. **RingBuffer 数据提取器**:直接从 `BPF_MAP_TYPE_RINGBUF` 内存缓冲区中提取泄露的遥测数据和凭证。
8. **STIX 2.1 IOC 导出器**:将取证结果序列化为格式化的 JSON 报告和 STIX 2.1 威胁情报包(`Indicator`、`Malware`、`Relationship`)。
## 🚀 快速入门与使用
### 前置条件与安装
```
pip install volatility3 capstone
pip install -e .
```
### Volatility 3 插件执行
```
# 常规 eBPF 枚举与威胁审计
vol -f /path/to/memory.img linux.ebpf_detector.EbpfDetector
# 反汇编 JIT 代码并将 eBPF 字节码转储到目录
vol -f /path/to/memory.img linux.ebpf_detector.EbpfDetector --disassemble --dump-dir ./dumped_ebpf/
```
### 独立 CLI 执行
```
# 独立 RAM dump 提取与 STIX 2.1 IOC 报告生成
python3 cli_standalone.py -f /path/to/memory.img --carve --export stix -o report.stix.json
```
## 🛠️ 架构概述
```
vol3-ebpf-detector/
├── cli_standalone.py # Independent CLI Tool Runner
├── pyproject.toml / setup.py# Standard PEP 621 Package Config
├── plugins/
│ └── linux/
│ ├── ebpf_detector.py # Volatility 3 Plugin Entrypoint
│ └── core/
│ ├── radix_tree.py # IDR & XArray Memory Traversal
│ ├── hook_analyzer.py # Attachment Target & bpf_link Resolution
│ ├── threat_scorer.py # O(1) Heuristic Risk Engine & Compound Rules
│ ├── disasm_engine.py # Capstone JIT Disassembler (Cached Singleton)
│ ├── fops_checker.py # Procfs / Sysfs Pointer Integrity Audit
│ ├── jit_carver.py # Executable Page Carver (C-Level buffer.find)
│ ├── map_inspector.py # bpf_map Structure & Type Inspector
│ ├── ringbuf_carver.py # BPF_MAP_TYPE_RINGBUF Telemetry Carver
│ ├── struct_ops_auditor.py# BPF_PROG_TYPE_STRUCT_OPS Auditor
│ └── export_engine.py # JSON & STIX 2.1 Threat Intel Generator
└── tests/
└── test_ebpf_detector.py# Empirical Unit Test Suite
```
## 📜 许可证
MIT License © 2026 Zyekh Abdul Qadir Jailani。专为 DFIR 研究人员、事件响应人员和安全分析师设计。
标签:JARM, Linux内核, Volatility3插件, 云资产清单, 内存分析, 数字取证, 自动化脚本, 逆向工具, 逆向工程