DEV Community

Uhltak Therestismysecret
Uhltak Therestismysecret

Posted on

Landlock LSM: Schütze Ihre Anwendungen mit Kernel-Sandboxing

Einleitung

Wenn Sie täglich mit Linux arbeiten, haben Sie möglicherweise schon einmal die Problematik konstatiert, dass Anwendungen, die in einem Root-Umgebung laufen, in der Lage sind, System-Dateien zu verändern und Angriffe wie ein root-Exploit durchführen zu können. Dies ist ein grundlegendes Sicherheitsproblem, das den Nutzern und Administratoren einiges Kopfzerbrechen bereitet. Ein neuer Ansatz stellt der Linux-Kernel-Modul Landlock LSM dar, das durch die Entwicklungsteams von Cloudflare und Google finanziert wurde. Wir werden uns in diesem Artikel daran machen, die Grundlagen des Landlock LSM zu präsentieren, seine Funktionsweise zu erklären und ihm in verschiedenen Beispielen eine praktische Umsetzung zu demonstrieren.

Was ist Landlock LSM?

Vor dem Hintergrund dieses Problems ging das Team von Cloudflare an die Arbeit, um auf dieses Problem eine Lösung zu finden, indem man direkt im Kernels einen Sandboxing-Mechanismus für Anwendungen implementiert und so das Sandboxing von Anwendungen innerhalb des Betriebssystems mit verhältnismäßig geringem Aufwand und ohne die Notwendigkeit einer Anwendung von System-Root-Berechtigungen (Root-Privilegien) ermöglichte.

Das Landlock ist ein Kernel-Module der Linux-Kernel-Reihe, das in Fedora 29 (März 2019) zur Verwendung in einer ersten Version als Experimentalcode implementiert wurde. Anlässlich des Linux-Konferenz LINUXCON 2019 im August 2019 berichtete der CTO von Cloudflare, Matthew Prince, über die Implementierung einer Linux-Kernelsandboxing-Technologie im Namen von Cloudflare in Fedora34, die dann aber wieder entfernt wurde, weil ein großer Fehler dabei vorgekommen ist. Am 19. Mai 2020 hat die Linux-Kernel-Autorenkonferenz in Linux 5.13 die Sandboxanwendung ausgestattet mit einem Landlock-Modul, das Sandboxfunktionalität für alle Linux-Systeme, Linux-Server und auch die Nutzung von Linux im lokalen Desktop bereitstellt.

Neben diesem ersten Implementierungsversuch als Sandbox-Schutz hat das Team Cloudflare sich nach der Erprobung dieser Funktion gemeinsam mit Google an die Aufgabenstellung gemacht, dieses Sandbox-Modul weiter zu optimieren.

Funktionen von Landlock LSM

Bevor wir uns den Ausführungen der Anwendung von Landlock LSM annehmen, erläutern wir die verschiedenen Möglichkeiten der Sandboxfunktionalität dieses Module, um die Vielfalt der Anwendungsmöglichkeiten dieses Moduls verständlicher zu machen.

  • Durchsetzung von Regeln (Policy Regel)
    Mit dieser Regel kann den Kernel erzählt werden, was man erreichen muss. Das Regulierrecht in der Sandboxtechnologie des Kernels erfasst die wichtigsten Regeln und die Beziehungen der Sandboxfunktion sowie die Anpassungen in Sandboxregeln für den Benutzer.

  • Berechtigungen (Labelen) und Sandboxzonen
    Das Labeling des Kernmoduls Landlock ermöglicht die Definition von Sandboxzonen. Durch das Anheften (Labeling) des Linux-Objekts ist es definitiv möglich durch eine Sandboxeinstellung das Label des Objekts mit einem spezifischen Objektlabel zu fassen. Da die Kernel-Einstufung nach dem Label-Spezifizierung von Linux-Objekten erfasst wird, ist es definitiv möglich mit der Anwendung von Linux-Objekten eine Sandboxzone zu konfigurieren.

  • Regulierung von Interaktionen (Rule-Regel)
    Das Kern-Modul Landlock ermöglicht die Ausführung einer Kontrollfunktion in der Sandboxzone, wo es definitiv möglich ist, das Regulierrechtt zu treffen und bestimmte Berechtigungen der Anordnung der Interaktionsfunktion von der Sandboxzone an der Sandboxzone mit der Sandboxanordnung zu ermöglichen.

Beispiele, um die Funktionsweise von Landlock LSM zu verstehen

Um diese neue Technologie zu verstehen, werden wir uns anhand zweier Beispiele mit einem Landlock LSM-Modul näher bringen. Diese Beispiele werden helfen, die Funktionsweise von Landlock LSM zu demonstrieren und ihre vielfältige Anwendungsmöglichkeit zu verstehen.

Beispiel 1:

Fassen wir zwei Dateien (datei1 und datei2) fest. Beide Dateien werden in einer Verzeichnis-Struktur wie folgt erstellt:
/home/user/verzeichnis-1/datei1
/home/user/verzeichnis-1/datei2

Beide Dateien werden an unterschiedlichen Speicherschnitten festgehalten und sind mit unterschiedlichen Dateilabels (user.label_1 und user.label_2) markiert.

Durch die Label-Untersuchung ist es definitiv möglich dem Benutzer die Anwenderzonen zu fassen und dem Benutzer über das labeling die Sandboxzone zu ermitteln.

Anschließend kann eine Sandbox-Rolle festgestellt werden und auf die Sandbox-fügerliche Sandboxzone angewendet werden.

Mit einem execve, was den Vorgang der Anwendungssandboxing ist, ist es definitiv möglich, durch diesen Sandbox-Vorgang die Sandbox-Rolle mit der Anordnung einer Sandbox-Rolle zu ermöglichen und eine Sandboxaktion vorzunehmen.

Beachten Sie die Sandbox-Rollen, die mit jeder Aktion vor oder nach einem System-Befehl ausgeführt wird, und schließen Sie daraus, dass diese Sandbox-Rollen sicherstellen, dass sich die Sandbox-Rollen mit den Aktionen der Sandboxzone befreunden.

Beispiel 2

Durch den Vorgang des Aufrufens einer Sandbox-Rolle kann eine Sandboxaktion vor der Ausführung von Systembefehlen angenommen werden.

Beispiel: Das Aufrufen des Befehls cat /etc/passwd führt nicht zum Erhalten von Informationen im Verzeichnis /etc/passwd, da cat an eine Sandbox-Rolle gebunden ist, die im Kernmodul Landlock eine Sandbox-Rolle bestimmt, die im System verboten hat.

Häufige Fehler

  • Unerklärliche Fehler und Angriffe nach dem Implementieren des Landlock MSM in der Sandbox Im Internet finden sich mehrere Artikel in Bezug auf die Unerklärlichkeit der Fehler und angriffe in Bezug auf die Implementierung des Landlock MSM in der Sandboxzone. Wir erklären nun die Unerklärlichkeit der Fehler und der angriffe.

Ermöglichen Sie mir damit, ein verständliches Beispiel zu finden:

  • Die Sandbox-Rolle ist in der Sandboxzone nicht korrekt bestimmt, was dazu führt, dass sich Anwendungs-Beispiel in der Sandboxzone der Korrektheit der Sandboxrollen nicht sicher ist.

  • Nach der Richtigstellung der Sandbox-Rolle ist die Sandboxaktion in der Sandboxzone nicht korrekt bestimmt.

Fazit

  • Während der Ausführung des Systems können Sie eine Sandbox-Rolle oder Sandboxaktion vor dem Aufruf von System-Befehlen anwenden, um die notwendigen Anpassungen für die Sandboxzone zu treffen.
  • Eine Sandbox-Rolle oder Sandboxaktion kann im Kern mit den Sandboxfunktionen des Kernmoduls Landlock erstellt werden.

Top comments (0)