
Un programme eBPF pour détecter les attaques contre CVE-2022-0847
Un programme eBPF pour détecter et se défendre contre les attaques sur CVE-2022-0847.
Dans l'espace noyau, le programme détecte les appels système splice() ; si un tel appel système contient un pipe comme fd de sortie et que les drapeaux du tampon du pipe sont définis sur PIPE_BUF_FLAG_CAN_MERGE, un événement est alors soumis. Dans l'espace utilisateur, le programme tue le processus correspondant qui appelle splice() et écrase /proc/sys/vm/drop_caches pour vider le cache de pages.
Testé sur Ubuntu Server 20.10 avec le noyau 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