Einführung: Die Sicherheitsproblematik im Linux-Kernel
Der Linux-Kernel ist der Herzschlag jedes Systems. Er übernimmt Aufgaben wie CPU- und Memoriemanagen, Network- und Dateisystemzugriff. Aber was passiert, wenn ein Angreifer seinen Weg in den Kernel findet? Die Folgen können katastrophal sein. Einmal erfolgreich ist es praktisch unmöglich, die Kontrolle wiederzuerlangen. Daher müssen wir aufpassen, wie wir Zugriff auf diesen kritischsten Bestandteil unseres Systems schaffen. Aber warum gibt es dann noch immer eine Menge Apps, die mit root-Rechten ausgeführt werden?
Warum sind wir noch immer mit Root beschäftigt?
Eigentlich ist es nicht so, als wollten wir damit so sein, aber vielmehr ist es ein Ergebnis aus einer Zeit vorher und Mangel an Alternativen. Zuletzt existierte es nicht, oder es war eine andere Technologie. Ein Beispiel wäre ein Script. Wenn du deine Anwendung per Cron job laufen lasse, musst du die Anwendung mit root-Utente ausführen, damit sie die Anwendungen ausführen kann, die sie benötigt. Einen ganzen Kernel Patch um an die eigene Anwendung anzupassen ist für das heutige Zeitalter nicht nur übertrieben, sondern würde auch nicht funktionieren, da diese Anwendungen dynamisch geladen werden, als nächstes wird der Linux-Daemon wiederum geladen.
Wie kann man das ändern?
Landlock ist eine Möglichkeit den Kernel sicher und vertrauenswürdig zu machen. Mit Landlock kannst du präzise Anwendungen von unbegrenztem Zugriff absondern. Er ist der eigentliche Wächter der Anweisungen, die ausgewählten Anwendungen erlaubst, sicherzustellen, dass diese nicht in die Verwaltungsmodule des Linux-Kernels wandern. Aber was passiert, wenn man mal wieder alles loslasse?
Example vom Beispiel
Ein einfaches Beispiel, wie man sicher arbeiten kann, wäre das folgende script. Eine einfache bash-Aktion ausführen, die rm aufruft, aber nicht in der root-Zone.
#!/bin/bash
declare -a uren=()
uren[0]=1; uren[1]=1; uren[2]=1; uren[3]=20;
uren[4]=400;uren[5]=400;uren[6]=10
for ((j=1;j<=6;j++)) do
rm -rf /var/www/html/$uren[$j]
done
Als nächstes müssen wir die Anwendung mit der Landlock Echtheitsdaten versehen. Wie das geht, bleibt für das Script egal, denn es kann den Kernel schon nicht erreichen, was bedeutet das für uns?
Die Sicherheitseinstellungen in unserem landlock- Policyfile, auf dem hier keine weiteren Sicherheitseinstellungen mehr möglich sind:
json
{
Top comments (0)