Cilium will Kommunikation von Microservices über BPF absichern

Mit Cilium startet ein neues Projekt, das die Kommunikation zwischen Microservices in Containern besser absichern will. Der Code steht unter Apache-2.0-Lizenz und nutzt BPF und XDP.

Bei BPF (Berkeley Packet Filter) handelt es sich um eine noch relativ neue Kerneltechnologie, die im Linux-Kernel auch als Linux Socket Filtering (LSF) zum Einsatz kommt. Ein Bytecode Interpreter erlaubt es Userspace-Anwendungen, einen Filter auf einen Socket zu setzen, damit letzterer nur bestimmte Datentypen durchlässt. Ein Verifier im Kernel prüft die Sicherheit von BPF-Programmen, ein Just-in-time-Compiler konvertiert den Bytecode in CPU-Instruktionen.

XDP (Express Data Path) ist Teil des IO-Visor-Projekts und geht noch einen Schritt weiter. Die Technologie erlaubt es, bestimmte Varianten von BPF-Programmen zusammen mit dem Netzwerktreiber auszuführen, die direkten Zugriff auf den DMA-Puffer der Pakete haben.

Cilium verändert BPF-Programme on the fly (Quelle: cilium.io).

Cilium verändert BPF-Programme on the fly (Quelle: cilium.io).

Cilium interagiert als zusätzlicher Layer mit dem Kernel und erstellt solche BPF-Programme dynamisch über Bytecode Injections. Der Cilium-Daemon ist in Go geschrieben, er generiert und kompiliert die BPF-Programme, verwaltete die BPF-Maps und spricht mit den lokalen Container-Laufzeitumgebungen. Der Vorteil besteht darin, dass Entwickler die Sicherheit anpassen, ohne die Anwendungsdaten oder Container-Konfigurationen anfassen zu müssen.

Während die traditionellen Paketfilter von Linux die Kommunikation auf Basis von IP-Adressen und TCP/UDP-Ports sichern, will Cilium über die Dienst-Identität gehen und API-Messages auf Anwendungsebene (etwa über HTTP) filtern. Die Macher versprechen sich davon, Security Policies in dynamischen (Container-)umgebungen einfacher umzusetzen und in großen Setups besser zu skalieren.

Die Entwickler beschreiben Cilium auf Github als experimentell, es arbeite zurzeit mit CNI (Container Networking Interface), Kubernetes und Docker zusammen.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben