分类 BPF 中的文章

BPF 跟踪机制之原始跟踪点 rawtracepoint 介绍、使用和样例

本文地址:https://www.ebpf.top/post/bpf_rawtracepoint 1. eBPF Trace 跟踪常见的 Hook 类型 2. BPF 原始跟踪点 rawtracepoint 2.1 跟踪性能优化提升 20% 2.2 rawtracepoint 跟踪事件查看及数量统计 2.3 传递参数变化 3. BPF 程序中使用 rawtracepoint 样例 3.1 libbpf 库 (基于 CO-RE) 3.2 bpftrace 样例代码 参考 1. eBPF Trace 跟踪常见的 Hook 类型 通过……

阅读全文

BPF 管理器 bpfman 简介

本文地址:https://www.ebpf.top/post/bpfman_fedora_40 1. 背景 2. bpfman 介绍 3. 单机部署流程 4. Kubernetes 集群部署流程 5. 总结 附录:bpfman 单机验证 开发环境搭建 下载代码和编译 bpfman 测试程序管理功能 1. 背景 Fedora 40 提案建议将 bpfman 作为默认的程序管理器 ,开源项目 bpfman 可以实现对 eBPF……

阅读全文

2024 年 eBPF 和网络趋势预测

本文地址:https://www.ebpf.top/post/network_and_bpf_2024 1. eBPF 1.1 eBPF 将继续呈指数增长 1.2 eBPF 应用市场 1.3 eBPF 在手机中得到更广泛的应用 1.4 eBPF 滥用带来的风险 2. 可观测 2.1 最受欢迎的可观测性 2.2 降低可观测性开销 2.3 上下文感知的 Kubernetes 工作负载 2.4 AI 助力网络排查 3. 网络 3.1 与……

阅读全文

使用 libbpf 编写 BPF 应用程序进阶技巧

程序框架(skeleton) 合并 open 和 loader 阶段 选择性附着 (attach) 自定义 load 和 attach 同一事件的多 BPF 处理程序 Map 减少预分配(pre-allocation)开销 运行时确定 map 大小 Per-CPU 全局变量 注意直接通过指针访问字段 结论 本文地址:https://www.ebpf.top/post/top_and……

阅读全文

BPF 程序与信号交互大揭秘

本文地址 : https://www.ebpf.top/post/how-ebpf-interacts-signals 原文:Signaling from within: how eBPF interacts with signals 1. 背景 2. 动机 3. 场景:拦截 openat(2) 4. 内核如何处理 SIGKILL 信号? 5. 什么信号要后置处理 6. 通过 BPF程序触发 SIGKILL 7. 自愿信号检查 8. open & write 操作竞争(Racing) 9. 其他影响 10. 结论 本文探讨了 eBPF 程序生成的 UNIX 信号的一些语义。 1. 背景 信号自 1971 年 UNIX 第一版问世以来就一直……

阅读全文

LSM BPF 实践

本文地址: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. 安全背景知识 国际上对计算机安全概括了三个特……

阅读全文

Cisco 将收购 Cilium 母公司 Isovalent,预计 2024 年第 3 季度完成

本文地址:https://www.ebpf.top/post/cisco_and_isovalent 2023 年 12 月 21 日,Isovalent 公司 CTO & 联合创始人 Thomas Graf 和 Cisco 安全业务集团高级副总裁兼总经理 Tom Gillis 分别在各自公司网站公布了思科打算收购 Isovalent 公司的计划,双方都没有公布收购的价格。收购完成后,……

阅读全文

eBPF 进阶: 内核新特性进展一览

本文地址:https://www.ebpf.top/post/ebpf_and_kernel_feature BPF kfuncs Bloom Filter Map:5.16 Compile Once – Run Everywhere:Linux 5.17 [内核空间] bpf_loop() 辅助函数:5.17 BPF_LINK_TYPE_KPROBE_MULTI:5.18 动态指针和类……

阅读全文

BPF 通用迭代器机制

本文地址:https://www.ebpf.top/post/generic_iterators_for_bpf 通常,要装载到内核的 BPF 程序是用 C 语言编写的,但是这些程序运行的环境与 C 环境有明显的不同。BPF 虚拟机和相关的验证器为了使 BPF 代码安全运行,进行了越来越多的检查。BPF 的迭……

阅读全文