跟踪自 PR #2154 review: #2154 (comment)
问题
DragonOS 的 PERF_TYPE_TRACEPOINT 路径当前缺少与 Linux 等价的权限边界:
- 没有
perf_event_paranoid 控制
- 没有
CAP_PERFMON / CAP_SYS_ADMIN 校验
- 没有 target-task 可见性检查
TracepointPerfEvent 存储了请求的 pid/cpu 但忽略了它们
影响
这是框架级缺陷,影响所有 tracepoint(fuse/vfs/syscalls/sched),不限于 sched_process_exec。任意无特权进程可以 attach eBPF 程序到任意 tracepoint,观测其他进程的 exec/fork/文件操作等事件——存在信息泄漏风险。
建议修复方向
在 perf/tracefs 入口点集中实现权限边界:
perf_event_open(PERF_TYPE_TRACEPOINT) 路径加入 perf_event_paranoid + capability 校验
- 落实 pid/cpu 过滤(
TracepointPerfEvent 已存储但未使用)
- tracefs 文件(
events/<sys>/<evt>/enable、trace、trace_pipe)的访问权限收紧
关联
跟踪自 PR #2154 review: #2154 (comment)
问题
DragonOS 的
PERF_TYPE_TRACEPOINT路径当前缺少与 Linux 等价的权限边界:perf_event_paranoid控制CAP_PERFMON/CAP_SYS_ADMIN校验TracepointPerfEvent存储了请求的 pid/cpu 但忽略了它们影响
这是框架级缺陷,影响所有 tracepoint(fuse/vfs/syscalls/sched),不限于
sched_process_exec。任意无特权进程可以 attach eBPF 程序到任意 tracepoint,观测其他进程的 exec/fork/文件操作等事件——存在信息泄漏风险。建议修复方向
在 perf/tracefs 入口点集中实现权限边界:
perf_event_open(PERF_TYPE_TRACEPOINT)路径加入perf_event_paranoid+ capability 校验TracepointPerfEvent已存储但未使用)events/<sys>/<evt>/enable、trace、trace_pipe)的访问权限收紧关联