从用户态调用 Kprobe bpf_map_delete_elem

问题描述 投票:0回答:1

我正在致力于从用户态和内核监视 eBPF 映射的更改。我按照 repo (https://github.com/CrowdStrike/bpfmon-example) 并将映射类型修改为 LRU HASH Map,并添加了对

bpf_map_delete_elem
的支持。

为了处理

bpf_map_update_elem
,我可以使用 kprobe,例如
bpf_map_update_value.isra.0
用于用户态,
htab_lru_map_update_elem
用于内核。然而,我在寻找相应的 kprobes 来监控时遇到了困难
bpf_map_delete_elem
。虽然我已经确定了内核空间的
htab_lru_map_delete_elem
,但我无法找到用户空间的等效项,类似于
bpf_map_delete_value.isra.0
。我已经尝试过 bpftrace 列出的与映射元素删除相关的 kprobes,但是当我在用户空间中调用
bpf_map_delete_elem
时,它们都不会被触发。

是否有可用于从用户态调用的监控

bpf_map_delete_elem
的kprobe(Linux内核版本:5.15)?

linux kernel ebpf
1个回答
0
投票

为了处理

bpf_map_update_elem
,我可以使用 kprobes,例如
bpf_map_update_value.isra.0
用于用户态,
htab_lru_map_update_elem
用于内核。

请注意,对于用户空间,

bpf_map_update_elem
最终也会调用
htab_lru_map_update_elem
,因此如果您跟踪两者,我希望您拦截相同的地图更新两次。

同样的情况似乎也适用于映射删除操作,对于该操作,跟踪

htab_lru_map_delete_elem
应该足以从用户态和BPF程序中看到映射删除

© www.soinside.com 2019 - 2024. All rights reserved.