Perf / Ring Buffer对比-牛翰网

Perf / Ring Buffer对比

Perf Buffer常规用法: struct addrinfo //需要上传给应用层的数据结构 { int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_socktype;
Cilium/eBPF令人无语的加载机制记录-牛翰网

Cilium/eBPF令人无语的加载机制记录

前段时间编译bpf c文件,都是用的bpf2go这个go包,这个包虽然很方便,但是指定参数比较困难, 学习到tracee falco这种大型项目都是通过makefile直接编译bpf代码,因此打算自己写Makefile clang ...
eBPF编写避坑指南-牛翰网

eBPF编写避坑指南

0x1:基本概念 当使用tracepoint的时候,函数参数如何确认? cat /sys/kernel/debug/tracing/events/syscalls/xxx/format. xxx为要跟踪的函数,在这里有函数参数定义。 2. 0x2:注意事项 写结构体...
eBPF代码流程分析-牛翰网

eBPF代码流程分析

0x1:应用层流程 基于Linux kernel source v5.13 1.加载bpf.o文件并处理elf section信息 1.int bpf_object__open(char *path) //参数是bpf.o文件路径 -- __bpf_object__open(const char *
eBPF-AntiRootkit-牛翰网

eBPF-AntiRootkit

背景: 针对最近几年频繁出现的通过eBPF进行容器逃逸、rootkit等攻击,需要考虑如何收敛服务器ebpf相关权限,防止被黑客利用。 静态方案: 宿主机层面: 非root用户不赋予CAP_BPF及CAP_SYS_ADMI...
eBPF开发指南-牛翰网

eBPF开发指南

0x1:技术背景 bpf: BPF 的全称是 Berkeley Packet Filter,是一个用于过滤(filter)网络报文(packet)的架构。(例如tcpdump),目前称为Cbpf(Classical bpf) Ebpf: eBPF全称 extended BPF,Li...
eBPF简介-牛翰网

eBPF简介

基础概念 eBPF是kernel 3.15中引入的全新设计,将原先的BPF发展成一个指令集更复杂、应用范围更广的“内核虚拟机”。 eBPF支持在用户态将C语言编写的一小段“内核代码”注入到内核中运行,注入...