
eBPF LSM प्रोग्राम जो CVE-2026-31431 को कम करने के लिए AF_ALG सॉकेट निर्माण को ब्लॉक करता है, जिसमें यूज़रस्पेस डेमॉन रिंग बफर के माध्यम से अस्वीकृत प्रयासों को लॉग करता है।
BPF LSM प्रोग्राम जो AF_ALG (Linux कर्नेल क्रिप्टो API) सॉकेट निर्माण को ब्लॉक करता है और सभी प्रयासों को रिंग बफर के माध्यम से यूज़रस्पेस में लॉग करता है।
lsm/socket_create हुक से जुड़ता हैsocket(AF_ALG, ...) कॉल को -EPERM के साथ अस्वीकार करता हैप्रोग्राम
deny_af_alg.bpf.c - मुख्य ब्लॉक लॉजिक, bpf में कार्य (कर्नेल स्पेस)deny_af_alg.user.c - यूज़रस्पेस प्रोग्राम
Systemd
deny-af-alg.service - मुख्य सेवा, इसमें यूज़रस्पेस ऐप और bpf प्रोग्राम शामिल हैdeny-af-alg-bpf.service - लीगेसी सेवा, bpftool के माध्यम से कार्य करती है, इसमें लॉगिंग शामिल नहीं हैयह eBPF प्रोग्राम CVE-2026-31431 को संबोधित करता है। यह क्रिप्टो सॉकेट तक प्रतिबंधित पहुंच द्वारा कमजोरी का समाधान करता है
lsm में bpf की आवश्यकता है
#cat /sys/kernel/security/lsm
lockdown,capability,yama,selinux,bpf
vmlinux.hपर नोट:vmlinux.hबिल्ड मशीन पर जनरेट किया गया है।
यदि आप किसी भिन्न कर्नेल को लक्षित कर रहे हैं, तो बिल्ड करने से पहले इसे लक्षित मशीन पर पुनः जनरेट करें:
bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h
makefile के माध्यम से बिल्ड करें
make
बिल्ड आर्टिफैक्ट प्रोजेक्ट रूट में रखे जाते हैं:
| फ़ाइल | विवरण |
|---|---|
deny_af_alg | यूज़रस्पेस डेमन |
deny_af_alg.bpf.o | संकलित BPF ऑब्जेक्ट |
deny_af_alg.skel.h |
sudo ./deny_af_alg
आउटपुट
Listening for AF_ALG socket create attempts... (Ctrl-C to stop)
BLOCKED pid=12345 comm=python3
deny-af-alg.service फ़ाइल और बाइनरी को लक्षित मशीन पर कॉपी करें।
systemd के माध्यम से चलाएँ
systemctl start deny-af-alg.service
bpftool prog loadall deny_af_alg.bpf.o /sys/fs/bpf/deny_af_alg autoattach
तैयारी
dnf install -y bpftool libbpf-devel clang llvm kernel-devel
संकलन
bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h
clang -O2 -g -target bpf -D__TARGET_ARCH_x86 -I/usr/include/bpf -c deny_af_alg.bpf.c -o deny_af_alg.bpf.o
जाँच
bpftool prog list | grep deny_af_alg
sudo cat /sys/kernel/debug/tracing/trace_pipe
| जनरेटेड BPF स्केलेटन हेडर |
vmlinux.h | btf के माध्यम से जनरेटेड linux हेडर |