
Un programma eBPF per rilevare attacchi su CVE-2022-0847
Un programma eBPF per rilevare e difendere da attacchi su CVE-2022-0847.
Nello spazio kernel, il programma rileva le chiamate di sistema splice(); se tale chiamata di sistema contiene un pipe come fd di output e i flag del buffer del pipe sono impostati a PIPE_BUF_FLAG_CAN_MERGE , allora viene inviato un evento. Nello spazio utente, il programma uccide il processo corrispondente che chiama splice() e sovrascrive /proc/sys/vm/drop_caches per cancellare la cache delle pagine.
Testato su Ubuntu Server 20.10 con kernel 5.8.0-25.
clang -g -O2 -target bpf -D__TARGET_ARCH_x86_64 -I/usr/src/linux-headers-5.8.0-25/include -I/usr/include -c ./splice.bpf.c -o splice.bpf.o
bpftool gen skeleton ./splice.bpf.o > splice.skel.h
clang -I/usr/include -c splice.c -o splice_epbf.o
clang splice_epbf.o -lbpf -lelf -lz -o splice_epbf