Kops: Safely Extending the eBPF Compilation Pipeline with Native Operations
Kops ist eine sichere Erweiterungsschnittstelle, die eBPF-Programme beschleunigt, indem sie es Userspace-Compilern und Kernel-Modulen ermöglicht, neue native Operationen einzuführen – verifiziert über Vanilla-eBPF-Proof-Sequenzen –, wodurch signifikante Leistungssteigerungen erzielt werden, ohne die Trusted Computing Base des Kernels zu erweitern.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, das Betriebssystem (das „Gehirn“ Ihres Computers) hat einen sehr strengen Sicherheitswächter. Dieser Wächter, genannt eBPF-Verifier, überprüft jedes kleine Programm (wie einen Verkehrspolizisten oder einen Sicherheitsscanner), bevor er es im Kernel ausführen lässt. Der Wächter ist unglaublich vorsichtig: Er lässt nur Programme zu, die in einer sehr einfachen, sicheren Sprache geschrieben sind.
Wenn der Wächter sagt: „Okay, das ist sicher“, verwandelt ein Übersetzer (der JIT-Compiler) diese einfache Sprache in die native Sprache des Computers, damit sie schnell ausgeführt werden kann.
Das Problem: Der „Ein-Wort-nach-dem-Anderen“-Übersetzer
Das Paper erklärt, dass der aktuelle Übersetzer darauf ausgelegt ist, super einfach und vertrauenswürdig zu sein. Er übersetzt das sichere Programm ein Instruktion nach der anderen, in einem einzigen Durchgang. Er schaut nicht voraus und versucht nicht, besonders clever zu sein.
Stellen Sie sich das wie einen Übersetzer vor, dem es verboten ist, Redewendungen oder Abkürzungen zu verwenden. Wenn Sie „eine Zahl rotieren“ wollen, hat die sichere Sprache kein einzelnes Wort dafür. Also muss der Übersetzer einen langen, umständlichen Satz mit zehn verschiedenen Wörtern schreiben, um dasselbe zu erklären.
- Ergebnis: Der Computer muss einen langen, unordentlichen Satz lesen und ausführen, anstatt eines einzigen, mächtigen Befehls. Das führt dazu, dass eBPF-Programme bis zu doppelt so langsam laufen, wie sie es könnten, wenn sie direkt in der nativen Sprache geschrieben wären.
Die Lösung: Kops (Der „Magische Reisepass“)
Die Autoren haben ein System namens Kops entwickelt. Denken Sie an Kops als ein spezielles „Magisches Reisepass“-System, das es dem Computer ermöglicht, leistungsstarke, native Abkürzungen zu nutzen, ohne die Regeln des Sicherheitswächters zu brechen.
So funktioniert es, unter Verwendung einer einfachen Analogie:
Der zweiteilige Reisepass: Jede neue „Abkürzung“ (wie eine Hardware-Rotation oder eine bedingte Auswahl) kommt mit zwei Teilen:
- Der Beweis (Die sichere Version): Eine lange, langweilige, schrittweise Erklärung, die in der sicheren Sprache geschrieben ist. Der Sicherheitswächter prüft diese, um sicherzustellen, dass sie sicher ist.
- Das Native Emit (Die magische Version): Eine einzige, mächtige Instruktion, die die Hardware des Computers tatsächlich ausführt.
Der Prozess:
- Bevor das Programm läuft, sucht ein „Recognizer“ (ein intelligentes Werkzeug außerhalb des Kernels) nach Mustern. Wenn er einen langen, umständlichen Satz sieht, der einer bekannten Abkürzung entspricht, tauscht er diesen gegen den „Magischen Reisepass“ aus.
- Der Sicherheitswächter sieht immer noch die lange, langweilige „Beweis“-Version. Er prüft diese, sagt „Sicher“ und gibt das grüne Licht.
- Der Übersetzer sieht dann den „Magischen Reisepass“. Anstatt den langen Satz zu übersetzen, tauscht er ihn einfach gegen die einzelne, mächtige native Instruktion aus.
- Die Sicherheitsgarantie: Der Sicherheitswächter sieht die „magische“ Version nie. Er vertraut nur dem „Beweis“. Das einzige Neue, dem das System vertrauen muss, ist der spezifische Code, der den „Beweis“ in die „magische“ Instruktion umwandelt. Die Autoren haben mathematisch (unter Verwendung eines Tools namens Lean 4) bewiesen, dass die „magische“ Instruktion genau dasselbe tut wie der lange „Beweis“-Satz.
Was haben sie gebaut? (EInsn)
Unter Verwendung von Kops haben sie einen Satz von sieben spezifischen Abkürzungen namens EInsn entwickelt. Dies sind Dinge, die Computer sehr gut in einem Schritt erledigen können (wie das Rotieren von Bits oder das Auswählen zwischen zwei Werten), die die sichere Sprache aber normalerweise dazu zwingt, in vielen Schritten zu erfolgen.
Die Ergebnisse
- Geschwindigkeit: Durch die Verwendung dieser Abkürzungen haben sie eBPF-Programme auf einigen Computern um 24 % schneller und auf anderen um 22 % schneller gemacht. In realen Anwendungen (wie dem Management von Netzwerkverkehr) sahen sie eine Geschwindigkeitssteigerung von bis zu 12 %.
- Sicherheit: Sie mussten die Regeln des Sicherheitswächters nicht ändern oder den Übersetzer komplexer machen. Der „vertrauenswürdige“ Teil des Systems blieb winzig und sicher.
- Flexibilität: Wenn ein Computer eine bestimmte Abkürzung nicht unterstützt, fällt das System einfach auf die lange, sichere Version zurück. Es geht nicht kaputt.
Das große Ganze
Stellen Sie sich vor, Sie fahren ein Auto (den Computer). Die aktuellen Regeln besagen, dass Sie mit 20 mph fahren müssen, weil der Tacho defekt ist und nur in 5-mph-Schritten messen kann. Sie können nicht schneller fahren, selbst wenn die Straße frei ist.
Kops ist wie ein spezieller Führerschein, der besagt: „Wir wissen, dass Sie sicher fahren (der Beweis), also erlauben wir Ihnen, den tatsächlichen Tacho des Autos zu benutzen (das Native Emit), um schneller zu fahren, aber nur auf vorab genehmigten Straßen.“
Sie haben bewiesen, dass diese neue Art zu fahren genauso sicher ist wie die alte, aber Sie bringen Sie viel schneller an Ihr Ziel.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.