该 ELF x86-64 样本为 eBPF 内核级 Rootkit,具备以下核心恶意能力:
/tmp/.cpuhide.pids 文件隐藏特定进程 (cpuhide = CPU Hide),使得 ps/top/ls 等工具无法发现stat_fd_key 结构体 (tgid + fd) 用于隐藏特定文件描述符,防止网络连接/文件操作被发现| 分类 | 标签 | 置信度 |
|---|---|---|
| 恶意类型 | eBPF 内核级 Rootkit | CRITICAL |
| 恶意家族 | eBPF Rootkit (cpuhide) | HIGH |
| 隐藏目标 | 进程 (PIDs) + 文件描述符 (FDs) | HIGH |
| 目标平台 | Linux x86-64 (内核 3.2.0+) | HIGH |
| 技术栈 | eBPF maps — bpf_map_update/delete/lookup | HIGH |
| 字段 | 值 |
|---|---|
| 关联组织 | 未知威胁组织 |
| 别名 | cpuhide eBPF Rootkit |
| 动机 | 深度隐蔽 — 隐藏恶意进程和网络连接不被检测 |
| 目标行业 | Linux 服务器, 云环境, 容器化基础设施 |
| 活动名称 | 2026年8月发现 — eBPF Rootkit 活跃 |
| C2协议 | 无明确 C2 — 纯 Rootkit 工具 |
| C2基础设施 | N/A — 使用 /tmp/.cpuhide.pids 本地控制文件 |
该样本为 eBPF Rootkit 家族。eBPF Rootkit 近年来兴起,利用 Linux 内核内置的 BPF 虚拟机执行恶意代码,绕过传统内核模块检测。
APT归因: 未归因 — eBPF Rootkit 技术被多个威胁组织使用。
未检出持久化行为。
(无 ASCII 回退)
| 协议 | |
| 端口 | |
| 地址/Domain | |
| IP | |
| 加密 | |
| 用途 | |
| API引用 | |
| 证书 |
ELF64 PIE, 动态链接, stripped
| 段/节区 | 熵值 | 判定 |
|---|
| 地址 | 函数 | 功能 |
|---|---|---|
| N/A | ||
| 调用号 | 系统调用 | 用途 | 地址 |
|---|---|---|---|
| N/A | |||
| 字段 | 值 | 来源 |
|---|---|---|
| 无 | ||
| 维度 | 本样本 | Mirai | Gafgyt | Mozi | Hajime | LightAidra | KekSec | Tsunami | Kaiji | 匹配 |
|---|
| 变种 | 架构 | 大小 | 编译器 | 特征 | 状态 |
|---|---|---|---|---|---|
| N/A | |||||
行为: 通过 bpf() syscall 加载 eBPF 程序到内核 → 创建 BPF maps (stat_fds/pids)
证据: ?
行为: 读取 /tmp/.cpuhide.pids → bpf_map_update_elem 注册隐藏PID → Hook getdents64 过滤进程列表
证据: ?
行为: stat_fd_key (tgid+fd) → bpf_map_update_elem 隐藏文件描述符 → Hook 文件系统操作
证据: ?
未构建
无数据
| 维度 | 证据 | 权重 | 恶意指数 |
|---|---|---|---|
| 隐蔽性 | eBPF内核级隐藏 — 绕过传统检测工具 | 10 | 9.8/10 |
| 持久性 | 内核空间运行, 重启后需重新加载 | 10 | 8.5/10 |
| 技术复杂度 | eBPF技术 — 高级内核编程 | 10 | 9.5/10 |
| 检测难度 | eBPF程序难以通过用户态工具检测 | 10 | 9.8/10 |
待判定
| 层 | API/技术 | 检测目标 | 绕过难度 |
|---|---|---|---|
| 无 | |||
| 检测方法 | VMware | VirtualBox | QEMU/KVM |
|---|---|---|---|
| 无 | |||
| 技术 | 是否存在 | 证据 | 对抗难度 |
|---|---|---|---|
| PIE 可重定位 | ✅ | ASLR 支持 — 增加静态分析难度 | MEDIUM |
| 符号剥离 | ✅ | stripped — 移除调试信息 | LOW |
| 内核级隐藏 | ✅ CRITICAL | eBPF Hook — 绕过用户态检测工具 | HIGH |
| 层 | 操作 | API/命令 | 证据来源 |
|---|---|---|---|
| 无 | |||
| 反编译函数数 | N/A |
| 反编译输出 | N/A |
| 分析时长 | N/A |
| 总函数数 | 总调用关系 | 最大调用深度 |
|---|---|---|
| 0 | ? | ? |
| QEMU 模式 | N/A |
| 网络隔离 | 未配置 |
| 执行结果 | N/A |
| C2 数据 | 无 C2 通信 |
| 偏移 | 字符串 | 类型 | 用途/含义 | 威胁等级 |
|---|---|---|---|---|
| .rodata | /tmp/.cpuhide.pids | 隐藏PID文件 | 进程隐藏控制文件 — cpuhide | CRITICAL |
| .rodata | stat_fd_key | 结构体名 | 文件描述符隐藏键 (tgid+fd) | HIGH |
| .rodata | bpf_map_update_elem | BPF API | BPF map 更新 — 隐藏条目写入 | CRITICAL |
| .rodata | bpf_map_delete_elem | BPF API | BPF map 删除 — 隐藏条目移除 | CRITICAL |
| .rodata | bpf_map_lookup_elem | BPF API | BPF map 查询 — 隐藏状态检查 | CRITICAL |
| .rodata | bpf_map_get_next_key | BPF API | BPF map 遍历 — 批量隐藏查询 | HIGH |
| .rodata | /tmp/.cpuhide.pi | 隐藏PID文件2 | 备选进程隐藏控制文件 | HIGH |
eBPF Rootkit 利用 Linux 内核 BPF 虚拟机实现深度隐蔽。控制文件 /tmp/.cpuhide.pids 存储需要隐藏的进程 PID 列表,BPF 程序通过 map 操作拦截内核函数返回值实现隐藏。
/tmp/.cpuhide.pids — 进程隐藏控制bpf_map_update_elem/delete_elem/lookup_elem — BPF map 隐藏操作rule eBPF_Rootkit_cpuhide {
meta:
description = "eBPF Rootkit — cpuhide process FD hider"
hash = "1f0457dda40401cbe8409b8375ba9008634771ec5eb9a99c7a84b4e8385d33aa"
strings:
$cpuhide = "/tmp/.cpuhide.pids" ascii
$bpf1 = "bpf_map_update_elem" ascii
$bpf2 = "bpf_map_delete_elem" ascii
$fd = "stat_fd_key" ascii
condition:
uint32(0) == 0x464c457f and $cpuhide and ($bpf1 or $bpf2)
}
| 判定结果 | 🔴 CRITICAL — eBPF内核Rootkit |
| 恶意类型 | eBPF Rootkit — 进程和文件描述符隐藏 |
| 恶意家族 | eBPF Rootkit (cpuhide) |
| 威胁级别 | CRITICAL |
| 置信度 | 90% — BPF map操作 + /tmp/.cpuhide.pids + stat_fd隐藏 + tgid引用 |
| 关联组织 | 未知威胁组织 |
| 目标平台 | Linux (x86-64) |
| 感染链位置 | BPF程序加载 → 内核Hook → 进程/FD隐藏 |
该样本为 eBPF (Extended Berkeley Packet Filter) 内核级 Rootkit,利用 BPF map 操作隐藏指定进程和文件描述符,实现深度隐蔽。