【译】eBPF 概述:第 1 部分:介绍

本系列导航: eBPF 概述:第 1 部分:介绍 eBPF 概述:第 2 部分:机器和字节码 eBPF 概述:第 3 部分:软件开发生态 eBPF概述:第 4 部分:在嵌入式系统运行 eBPF概述:第 5 部分:追踪用户进程 原文地址:https://www.collabora.com/news-and-blog/blog/2019/……

阅读全文

基于 Ubuntu 21.04 BPF 开发环境全攻略

本文地址:https://www.ebpf.top/post/ubuntu_2104_bpf_env 1. 系统安装 1.1 Vagrant Vagrant 是一款用于构建及配置虚拟开发环境的软件,基于 Ruby,主要以命令行的方式运行。Vagrant 由 HashiCorp 官方出品,相信提到大名鼎鼎的 HashiCorp 公司,大家还能够联想到著名的安全密码存……

阅读全文

VirtualBox VM 空间瘦身记(vmdk)

本文地址:https://www.ebpf.top/post/shrink_vbox_vmdk_size 在使用 VirtualBox( VMDK 模式)管理虚拟机的时候,我们经常会遇到一些编译安装场景(比如编译 Linux 内核),会导致磁盘空间急剧膨胀,但是在编译完成后即使我们删除了相关的文件,在 VM 虚……

阅读全文

BPF BTF 详解

本文地址:https://www.ebpf.top/post/kernel_btf/ 英文文档:https://www.kernel.org/doc/html/latest/bpf/btf.html 1. 介绍 BTF(BPF 类型格式)是一种元数据格式,对与 BPF 程序 /map 有关的调试信息进行编码。……

阅读全文

深入浅出 BPF TCP 拥塞算法实现原理

本文地址:https://www.ebpf.top/post/ebpf_struct_ops 1. 前言 eBPF 的飞轮仍然在快速转动,自从 Linux 内核 5.6 版本支持 eBPF 程序修改 TCP 拥塞算法能力,可通过在用户态修改内核中拥塞函数结构指针实现;在 5.13 版本中该功能又被进一步优化,增加了该类程序类型直接调用部分内核……

阅读全文

深入浅出 eBPF 安全项目 Tracee

1. Tracee 介绍 1.1 Tracee 介绍 Tracee 是一个用 于 Linux 的运行时安全和取证工具。它使用 Linux eBPF 技术在运行时跟踪系统和应用程序,并分析收集的事件以检测可疑的行为模式。Tracee 以 Docker 镜像的形式交付,监控操作系统并根据预定义的行为模式集检测可疑行为。官网文档参见这里。 Tracee 由以下子项目组成: Trace-eBPF - 使用 eBPF 进行 Linux 追踪和取证……

阅读全文

【BPF入门系列-12】【译】eBPF 和 Go 经验初探

原文地址:https://networkop.co.uk/post/2021-03-ebpf-intro/ 本站相关文档:使用 Go 语言管理和分发 ebpf 程序 1. 前言 eBPF 的生态欣欣向荣,无论是 eBPF 本身及其各种应用(包括 XDP) 方面都有大量的学习资源。但当涉及到选择库和工具来与 eBPF 进行交互时,会让人有……

阅读全文

【BPF入门系列-11】使用 eBPF 技术跟踪 Netfilter 数据流过滤结果

1. 网络层数据流向与 Netfilter 体系 图 1-1 为网络层内核收发核心流程图,在函数流程图中我们可以看到 Netfliter 在其中的位置(图中深色底纹圆角矩形)。图中对应的 hook 点有 5 个,每个hook 点中保存一组按照优先级排序的函数列表: NF_IP_PREROUTING:接收到的包进入协议栈后立即触发此 hook 中注册的对应函数列……

阅读全文