LSM_HOOK(int, 0, bpf_map_alloc_security, struct bpf_map *map) LSM_HOOK(void, LSM_RET_VOID, bpf_map_free_security, struct bpf_map *map) LSM_HOOK(int, 0, bpf_prog_alloc_security, struct bpf_prog_aux *aux) LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_a...
LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux)#endif /* CONFIG_BPF_SYSCALL */ 在继续并尝试编写 LSM BPF 程序之前,请确保: 内核版本至少为 5.7; LSM BPF 已启用。 LSM BPF 的启用可以通过以下方式进行验证,正确的输出应包含 bpf: $ grep CONFIG_BPF_LSM /...
scheduler bpf采用了相同的技术。LSM为安全模块服务,scheduler bpf为调度相关的逻辑服务。 使用方法: 首先要将这组patch apply到kernel中。因为这组patch只是一个框架,并没有实际的hook点应用到内核,因此你可以自己添加一些hook点,打开CONFIG_DEBUG_INFO_BTF,编译安装kernel,重启生效。剩下的工作需要在用户态完成。作者...
TCP 协议栈中埋设的一些hook 点,用于TCP调优,event统计等。 目前有15个这样的hook 点。该type对应的Attach type 是BPF_CGROUP_SOCK_OPS. 不同的hook点会传入不同的enum 到BPF prog中。例如 BPF_SOCK_OPS_TCP_CONNECT_CB 表示TCP client active connect BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB 表示server passive...
探索aarch64架构上使用ftrace的BPF LSM 译者注 笔者在MacBook M2上搭建Linux虚拟机上开发eBPF程序时,遇到一些LSM eBPF类型程序无法运行的问题,哪怕是5.15内核的ubuntu server,依旧无法正常运行。显然,aarch64跟x86_64的内核功能有差异。在笔者尝试定位这些差异时,看到这篇文章,可以让大家更直观地了解LSM eBPF在两种...
eBPF是一种Linux内核技术,它允许在不更改内核源代码或添加新模块的前提下,在Linux内核中运行沙盒程序。因此,eBPF可以支持安全的Hook到事件上,而不会造成内核崩溃的风险。 具体来说,eBPF程序使用内核机制(如kprobes、kretprobes、Linux安全模块(LSM) Hooks、uprobes和traceponits)来创建和设置钩子,并加以验证代码不会使...
原文地址:Exploring BPF LSM support on aarch64 with ftrace 原文 本博客文章是我们在Linux中对于aarch64上BPF LSM支持的内部研究的摘要。如果你对内核代码库不熟悉,要开始查看内核源码是非常困难的,因此我们决定发布这篇文章,展示我们的方法,因为这对于想要探索内核内部的任何人都可能有所帮助。
传统来说, eBPF 的开发方式主要有 BCC、libbpf 等方式。要完成一个 BPF 二进制程序的开发,需要搭建开发编译环境,要关注目标系统的内核版本情况,需要掌握从 BPF 内核态到用户态程序的编写,以及如何加载、绑定至对应的 HOOK 点等待事件触发,最后再对输出的日志及数据进行处理。
What type of PR is this? /kind feature What this PR does / why we need it: This PR adds BPF instrumentation for lsm/path_unlink Which issue(s) this PR fixes: None Does this PR have test? Yes. Speci...
传统来说, eBPF 的开发方式主要有 BCC、libbpf 等方式。要完成一个 BPF 二进制程序的开发,需要搭建开发编译环境,要关注目标系统的内核版本情况,需要掌握从 BPF 内核态到用户态程序的编写,以及如何加载、绑定至对应的 HOOK 点等待事件触发,最后再对输出的日志及数据进行处理。