BPF | Berkeley Packet Filter vorgestellt


Für die Ausführung seiner Funktionen wurde der Berkeley Packet Filter als Interpreter in Maschinensprache im Rahmen einer virtuellen Maschine eingebunden. Das hat zur Folge, dass der BPF ein vorgegebenes Format von Anweisungen ausführt. Als Interpreter liest der Berkeley-Filter dabei die Quelldateien, analysiert diese und führt Anweisung für Anweisung aus. Die Anweisungen übersetzt er wiederum in Maschinencodes, um so eine direkte Ausführung zu ermöglichen.

Mithilfe der SysCalls – also Aufrufen spezieller, einsatzbereiter Systemfunktionen – stellt der Berkeley-Filter Anfragen an den Betriebssystemkern, der auch als Kernel bezeichnet wird. Dieser prüft die Zugriffsrechte, bevor er die Anfrage bestätigt oder ablehnt. Zu den rund 330 Linux SysCalls zählen u. a. folgende:

  • read – Leseberechtigung, mit der eine Datei gelesen werden kann
  • write – Schreibberechtigung, damit eine Datei geschrieben werden kann
  • open – Dateien oder Geräte lassen sich öffnen
  • close – Dateien oder Geräte lassen sich schließen
  • stat – der Status einer Datei wird abgerufen

Durch die permanente Weiterentwicklung arbeitet BPF heute als universelle, virtuelle Maschine direkt im Betriebssystemkern, in dem die gesamte Prozess- und Datenorganisation stattfindet. Mit vielen neuen Features ist der Filter als Extended BPF oder kurz als eBPF bekannt. Er kann damit jeden verwendeten Zwischencode (Bytecode) sicher und während der Laufzeit (Just-in-time-Kompilierung) direkt im Betriebskern ausführen. Der Extended BPF läuft im Betriebskern innerhalb einer isolierten Umgebung und wird damit geschützt ausgeführt. Das als Sandbox bekannte Umgebungsmuster sorgt dafür, das Risiko zu minimieren, dass das System schädlichen Einfluss auf die Logik des Betriebskerns nimmt.



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.