Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Das Prinzip der geringsten Rechte

Nach dieser Lektion: Ich kann erklären, wie ein kleiner Rechtefehler die Kontrolle über ein System verschenkt.

Lektion, 45 Min.2 BefehleLab zur Rechteausweitung unter Linux: eine setuid-Binärdatei, eine sudo-Regel und ein Cron-Job zum Knacken

Wie ein kleiner Fehler die Kontrolle verschenkt

Das Prinzip der geringsten Rechte heißt: Jedes Konto und jedes Programm bekommt nur die Rechte, die es für seine Arbeit braucht. Ein kleiner Fehler bei den Rechten kann sonst ein ganzes System verschenken.

Du lernst, Rechte zu lesen und zu prüfen. Die Regel: Du prüfst nur Rechte in deiner eigenen Lab-Kopie, nie an fremden Systemen und nie ohne Erlaubnis.

Am Ende dieser Lektion

Notiz

Ich kann erklären, wie ein kleiner Rechtefehler die Kontrolle über ein System verschenkt.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Rechtdie Erlaubnis, eine Datei zu lesen, zu ändern oder zu starten
Rootdas Konto mit allen Rechten auf einem Linux-System
Besitzerdas Konto, dem eine Datei gehört
Schreibrechtdie Erlaubnis, eine Datei zu ändernw
Prüfungdie Kontrolle, ob die Rechte zur Aufgabe passen
Rechteausweitungein Konto bekommt mehr Rechte, als vorgesehen war

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Wie liest man die Rechte einer Datei?

Unter Linux zeigt eine Zeile wie -rwxr-xr-x die Rechte. Das erste Zeichen sagt die Art: - ist eine Datei, d ein Ordner. Danach folgen drei Gruppen zu je drei Zeichen.

Die Gruppen gelten für den Besitzer, für die Gruppe und für alle anderen. In jeder steht r für lesen, w für ändern und x für ausführen.

Beispiel: -rwxr-x--- Zeichen für Zeichen

StelleZeichenBedeutung
1-eine normale Datei
2 bis 4rwxder Besitzer darf lesen, ändern und ausführen
5 bis 7r-xdie Gruppe darf lesen und ausführen
8 bis 10---alle anderen dürfen nichts

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die eine Regel

Warnung

Drück oben auf Lab starten und warte, bis die Maschine läuft. Du liest nur die Rechte bekannter Systemdateien in deiner eigenen Kopie. Das Lab hat noch eigene Schwachstellen. Die suchst du später selbst. Hier zeigen wir sie nicht.

Rechte von drei Systemdateien lesen

Befehl
stat -c '%A %U %n' /etc/passwd /etc/shadow /usr/bin/passwd

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Rechte des Ordners /tmp lesen

Befehl
stat -c '%A %U %n' /tmp

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die Ausgabe sagt

DateiRechteWarum so
/etc/passwd-rw-r--r--Alle dürfen die Kontenliste lesen, nur Root ändert sie
/etc/shadow-rw-r-----Die Hashes der Passwörter sehen nur Root und eine Gruppe
/usr/bin/passwd-rwsr-xr-xDas s lässt es mit den Rechten des Besitzers Root laufen
/tmpdrwxrwxrwtAlle dürfen schreiben, das t schützt fremde Dateien

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Warum ist ein Schreibrecht für alle gefährlich?

Stell dir ein Skript vor, das jede Nacht automatisch als Root läuft. Darf jedes Konto die Datei ändern, kann eine Schülerin oder ein Gast dort eigene Befehle eintragen. In der Nacht führt Root sie aus.

So wird aus einem kleinen Konto ein mächtiges. Das nennt man Rechteausweitung. Der Fehler war nur ein einziges w zu viel.

Ein häufiger Fehler

Warnung

Viele denken, ein Konto ohne Rechte sei harmlos. Das stimmt nur, wenn die Rechte der Dateien und Programme drumherum stimmen. Ein schwaches Konto wird gefährlich, sobald ein Programm oder Skript mit mehr Rechten ihm etwas überlässt.

Worauf eine Rechteprüfung achtet

AuffälligkeitWarum sie auffälltBesser
Eine Datei, die alle ändern dürfenJedes Konto kann sie umbauenNur der Besitzer darf schreiben
Ein Programm mit s, das nicht erwartet wirdEs läuft mit fremden RechtenDas s nur dort lassen, wo es nötig ist
Ein Konto mit Root-Rechten für allesEin Fehler trifft das ganze SystemNur den einen Befehl erlauben, den man braucht

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: Lab zur Rechteausweitung unter Linux: eine setuid-Binärdatei, eine sudo-Regel und ein Cron-Job zum Knacken

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.