4

我正在尝试使用 ebpf 跟踪文件的删除,并希望在删除文件之前进行备份,然后删除文件。

为了跟踪文件的删除,其他社区成员告诉我使用三种方法

  1. 跟踪 security_path_unlink(const struct path *dir, struct dentry *dentry); 功能。
    但是一天结束时,我需要文件路径来备份,以便获取文件路径,我再次获得了两个选项
  • long bpf_d_path(struct path *path, char *buf, u32 sz) 不幸的是,bpf_d_path 允许列表没有 security_path_unlink() 函数。

  • 同时,您仍然可以使用 kfunc 或 kprobe 附加到 security_path_unlink() 函数,但您需要自己进行路径遍历,类似于 bpf 程序中的内核代码。

但不确定用第二种方法获取文件的天气

  1. 使用 LSM_PROBE 挂钩 security_path_unlink,拒绝此类调用并进行备份,然后删除文件。

但捕获仍然不确定如何获取路径

  1. aquasecurity tracee项目使用security_inode_unlink函数来跟踪文件的删除,但是tracee项目使用dentry到文件路径的方法来获取文件路径并遍历它

是否可以使用 eBPF 来做到这一点?即,我可以在文件被删除之前捕获事件吗?并获取文件路径。但是无法与其中任何一个合作,请建议我解决此问题的正确方法

密件抄送讨论问题

跟踪讨论组

4

0 回答 0