Linus 强势拍板 6.11 合入: BPF 赋能调度器终成正果 2024年6月30日 | BPF 本文地址:https://www.ebpf.top/post/bpf_sched_ext 1. 插拔调度器的萌芽【2004 年】 在 2004 年,Linux 社区的 Con Kolivas 提出了可插拔式调度器想法,旨在让内核中存在多个调度器,用户可在引导时选择。提交 patch 的工作原理是将大量代码拆分为 kernel/sched.c 公共部分和私有部分,同…… 阅读全文
LSM BPF 实践 2024年1月4日 | BPF Security 本文地址:https://www.ebpf.top/post/lsm_bpf_intro 1. 安全背景知识 2. 内核安全策略模块通用框架 LSM 2.1 LSM 框架介绍 2.2 LSM 架构 2.3 LSM 中的钩子函数 3. LSM BPF 3.1 BCC 实践 3.2 libbpf-bootstrap 框架实践 4. 总结 5. 附录:LSM 热修内核漏洞查找 hook 点过程 1. 安全背景知识 国际上对计算机安全概括了三个特…… 阅读全文
eBPF: 从 BPF to BPF Calls 到 Tail Calls 2022年9月24日 | BPF 本站地址:https://www.ebpf.top/post/bpf2pbpf_tail_call 本文作者:李兆龙 (已经取得得原作者授权) 原文地址:https://blog.csdn.net/weixin_43705457/article/details/123474244 1. 引言…… 阅读全文
揭秘 BPF map 前生今世 2022年1月9日 | BPF 本文地址:https://www.ebpf.top/post/map_internal 1. 前言 众所周知,map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换, 为 BPF 技术中的重要基础数据结构。 在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建,这其实带给我们一种错觉,感觉这和普通的 C 语言变量…… 阅读全文
【BPF 攻防系列-2】【译】恶意使用的 bpftrace 🤯 2021年12月18日 | BPF Offensive Security 本文地址:https://www.ebpf.top/post/offensive-bpf-bpftrace 本篇文章是我正在进行的关于 BPF 攻防系列 的一部分,用于学习 BPF 以了解相关的攻击和防御,请点击 “ebpf” 标签查看所有相关帖子。 我正在学习 BPF,以了解其使用将如何影响安全攻击、恶意软件和检测…… 阅读全文
【BPF 攻防系列-1】【译】开战!!! 2021年12月17日 | BPF Offensive Security 本文地址:https://www.ebpf.top/post/offensive-bpf-getting-started 在近几年来,eBPF 在 Linux 社区和之外得到了越来越多的关注。 eBPF 在攻击场景中的使用也逐渐引起大家的关注。因此,我决定从红队的角度进入深入探讨,以让大家对此有个整体的认…… 阅读全文
基于 Ubuntu 21.04 BPF 开发环境全攻略 2021年9月29日 | System Foundation 本文地址:https://www.ebpf.top/post/ubuntu_2104_bpf_env 1. 系统安装 1.1 Vagrant Vagrant 是一款用于构建及配置虚拟开发环境的软件,基于 Ruby,主要以命令行的方式运行。Vagrant 由 HashiCorp 官方出品,相信提到大名鼎鼎的 HashiCorp 公司,大家还能够联想到著名的安全密码存…… 阅读全文
【BPF入门系列-7】使用 ebpf 实时持续跟踪进程文件记录 2021年5月30日 | BPF Foundation 本文主要用于演示基于 ebpf 技术来实现对于系统调用跟踪和特定条件过滤,实现基于 BCC 的 Python 前端绑定,过程中对于代码的实现进行了详细的解释,可以作为学习 ebpf 技术解决实际问题的参考样例。 1. 样例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> #include <unistd.h> int main() { FILE *fp; char buff[255]; printf("Pid %d\n", getpid()); fp = fopen("./hello.c", "r"); fscanf(fp, "%s", buff); printf("Read: [%s]\n", buff ); getchar(); fclose(fp); return 0; } fopen 函数…… 阅读全文