在LSM BPF 出现之前,能够实现实施安全策略目标的方式有两种选择:配置现有的 LSM 模块(如 AppArmor、SELinux),或编写自定义内核模块。LSM BPF 则提供了第三种实现的方案,灵活且安全,具有可编程性。 Linux 5.7引入在 LSM 中提供了对于BPF 的支持(简称 LSM BPF)。使用 LSM BPF,开发人员能够在无需配置或加载内核模...
开始看内核空间代码::deny_unshare.bpf.c #include<linux/bpf.h>#include<linux/capability.h>#include<linux/errno.h>#include<linux/sched.h>#include<linux/types.h>#include<bpf/bpf_tracing.h>#include<bpf/bpf_helpers.h>#include<bpf/bpf_cor...
这是`kernel/bpf/trampoline.c`中与最后执行的函数`bpf_trampoline_update`对应的源代码: ```c staticintbpf_trampoline_update(structbpf_trampoline*tr) { structbpf_tramp_image*im; structbpf_tramp_progs*tprogs; u32flags=BPF_TRAMP_F_RESTORE_REGS; boolip_arg=false; interr,total; tprogs=bpf_trampo...
static int bpf_trampoline_update(struct bpf_trampoline *tr) { struct bpf_tramp_image *im; struct bpf_tramp_progs *tprogs; u32 flags = BPF_TRAMP_F_RESTORE_REGS; bool ip_arg = false; int err, total; tprogs = bpf_trampoline_get_progs(tr, &total, &ip_arg); if (IS_ERR(tprogs))...
当设置lockdown为保护机密性时,所有的完整性保护都被启用,另外还要禁止的功能有:用户空间从正在运行的内核中提取潜在的机密信息,例如/proc/kcore访问,使用kprobe和bpf读取内核RAM,perf的不安全使用以及tracefs的使用。 lockdown可以通过SELinux、AppArmor、SMACK、或TOMOYO策略文件实现,这种基于静态策略的独立LSM策略文件的...
("bpf: Enable task local storage for tracing programs") Cc: stable@vger.kernel.org Cc: KP Singh <kpsingh@kernel.org> Cc: Matt Bobrowski <mattbobrowski@google.com> Signed-off-by: Song Liu <song@kernel.org> Acked-by: Matt Bobrowski <mattbobrowski@google.com> Link: https...
security/bpf/hooks.c@lujialin2 , :fa-sign-out: xiexiuqi, 以上为各修改文件匹配的推荐Committer序列,需各模块评审通过后方可合入。 表态 回复 openeuler-ci-bot 成员 2024年10月29日 Check NameCheck ResultCheck Details checkpatch SUCCESS#19119 checkformat SUCCESS checkdepend SUCCESS 表态 回复 openeu...
bpf_printk("intrusion_detection: unauthorized execve by UID %d: %s\n", uid, bprm->filename); return -EACCES; // 拒绝执行 } return 0; // 允许执行 } char LICENSE[] SEC("license") = "GPL"; 访问控制 #include <linux/bpf.h>
("bpf: Enable task local storage for tracing programs") Cc: stable@vger.kernel.org Cc: KP Singh <kpsingh@kernel.org> Cc: Matt Bobrowski <mattbobrowski@google.com> Signed-off-by: Song Liu <song@kernel.org> Acked-by: Matt Bobrowski <mattbobrowski@google.com> Link: https...
在过去,使用 LSM 主要通过配置已有的安全模块(如 SELinux 和 AppArmor)或编写自己的内核模块;而在 Linux 5.7 引入 BPF LSM 机制后,一切都变得不同了:现在,开发人员可以通过 eBPF 编写自定义的安全策略,并将其动态加载到内核中的 LSM 挂载点,而无需配置或编写内核模块。