eBPF-Programme mit Pythoncode erzeugen
Mit PythonBPF kann man eBPF-Programme direkt von Python-Code aus erzeugen, ohne selbst den C-Code schreiben zu müssen. PythonBPF generiert und compiliert das Programm im Hintergrund, und die entstehende Objektdatei kann man direkt ins System laden. Auch Hashmaps können mit Python-Mitteln definiert werden.
Dieser Blog-Post beschreibt das Vorgehen anhand eines Beispiels, und es gibt eine Präsentation dazu.
Was ist eBPF überhaupt? „Extended Berkeley Packet Filter“ steht für eine Methode, Code in den Linux-Kernel einzubringen, ohne Kernelmodule zu schreiben und in den Kernel hineinzubinden. Außerdem wird dieser Code formal verifiziert, damit er möglichst nicht den Kernel lahmlegen oder kompromittieren kann.