Bei Sicherheit geht es immer um Kompromisse. Genau wie der sprichwörtliche Server, der sich in einem sicheren, nicht angeschlossenen Bereich am Grund des Ozeans befindet, rootwäre er am sichersten, wenn es überhaupt keine Möglichkeit gäbe, darauf zuzugreifen.
LD_PRELOAD- und PATH-Angriffe, wie Sie sie beschreiben, setzen voraus, dass es einen Angreifer gibt, der bereits Zugriff auf Ihr Konto oder zumindest auf Ihre Punktedateien hat. Sudo schützt sich überhaupt nicht sehr gut davor - wenn sie Ihr Passwort haben, müssen sie es schließlich nicht versuchen, Sie für später auszutricksen ... sie können es sudo jetzt verwenden .
Es ist wichtig zu überlegen, wofür Sudo ursprünglich entwickelt wurde: Übertragung von bestimmten Befehlen (z. B. zum Verwalten von Druckern) an "Subadministratoren" (möglicherweise Studenten in einem Labor), ohne Root vollständig zu verraten. Die Verwendung von sudo für alles ist die häufigste Verwendung, die ich derzeit sehe, aber es ist nicht unbedingt das Problem, das das Programm lösen sollte (daher die lächerlich komplizierte Syntax der Konfigurationsdatei).
Aber sudo-for unbeschränkter root tut ein weiteres Sicherheitsproblem Adresse: Verwaltung von Root - Passwörter. In vielen Organisationen werden diese häufig wie Süßigkeiten herumgereicht, auf Whiteboards geschrieben und für immer unverändert gelassen. Das hinterlässt eine große Sicherheitslücke, da das Widerrufen oder Ändern des Zugriffs zu einer großen Produktionsnummer wird. Sogar das Verfolgen, welche Maschine welches Passwort hat, ist eine Herausforderung - geschweige denn das Verfolgen, wer welches kennt .
Denken Sie daran, dass das meiste "Cyber-Verbrechen" von innen kommt. Bei der beschriebenen Root-Passwort-Situation ist es schwierig, herauszufinden, wer was getan hat - etwas, was Sudo bei der Remote-Protokollierung recht gut erledigt.
Ich denke, auf Ihrem Heimsystem geht es eher darum, dass Sie sich nicht zwei Passwörter merken müssen. Es ist wahrscheinlich, dass viele Leute sie einfach auf den gleichen Wert eingestellt haben - oder schlimmer noch, indem sie sie anfangs auf den gleichen Wert eingestellt haben und sie dann nicht mehr synchronisiert wurden, sodass das root-Passwort verrottet.
Kennwörter verwenden überhaupt für SSH ist gefährlich, da Passwort-Sniffing trojaned ssh - Dämonen an ihren Platz in so etwas wie 90% der realen System Kompromisse gesetzt werden ich gesehen habe. Es ist viel besser, SSH-Schlüssel zu verwenden, und dies kann auch ein funktionsfähiges System für den Remotestammzugriff sein.
Das Problem ist jedoch, dass Sie jetzt von der Kennwortverwaltung zur Schlüsselverwaltung übergegangen sind und die SSH-Schlüssel nicht mehr so einfach zu verwalten sind. Es gibt keine Möglichkeit, Kopien einzuschränken, und wenn jemand eine Kopie erstellt, hat er alle Versuche, die Passphrase brachial zu erzwingen. Sie können festlegen, dass Schlüssel auf Wechseldatenträgern gespeichert und nur bei Bedarf bereitgestellt werden müssen. Dies kann jedoch nicht durchgesetzt werden. Jetzt haben Sie die Möglichkeit eingeführt, dass ein Wechseldatenträger verloren geht oder gestohlen wird.
Die höchste Sicherheit wird durch einmalige Schlüssel oder zeit- / zählerbasierte kryptografische Token erreicht. Dies kann in Software erfolgen, aber manipulationssichere Hardware ist noch besser. In der Open Source-Welt gibt es WiKiD , YubiKey oder LinOTP und natürlich auch das proprietäre Schwergewicht RSA SecurID . Wenn Sie in einer mittelgroßen bis großen Organisation oder sogar in einer sicherheitsbewussten kleinen Organisation arbeiten, empfehle ich dringend, einen dieser Ansätze für den administrativen Zugriff in Betracht zu ziehen.
Wahrscheinlich ist es ein Overkill für zu Hause, wo Sie die Verwaltungsprobleme nicht wirklich haben - solange Sie vernünftige Sicherheitspraktiken befolgen.