NOPASSWD
hat keinen großen Einfluss auf die Sicherheit. Seine offensichtlichste Wirkung besteht darin, Schutz zu bieten, wenn der Benutzer seine Workstation unbeaufsichtigt lässt:Ein Angreifer mit physischem Zugriff auf seine Workstation kann dann Daten extrahieren, Aktionen ausführen und Malware mit den Berechtigungen des Benutzers einschleusen, aber seinen Zugriff auf root nicht erhöhen. Dieser Schutz ist von begrenztem Nutzen, da der Angreifer ein Keylogger-ähnliches Programm einschleusen kann, das das Passwort des Benutzers aufzeichnet, wenn er es das nächste Mal an einer sudo-Eingabeaufforderung oder in einem Bildschirmschoner eingibt.
Nichtsdestotrotz legt die Anforderung des Passworts die Messlatte für den Angreifer höher. In vielen Fällen ist der Schutz vor ungeschickten Angreifern nützlich, insbesondere in Szenarios mit unbeaufsichtigten Arbeitsplätzen, bei denen der Angriff oft ein Gelegenheitsangriff ist und der Angreifer möglicherweise nicht weiß, wie er diskrete Malware kurzfristig finden und konfigurieren kann. Außerdem ist es schwieriger, Malware zu verstecken, wenn Sie keine Root-Berechtigungen haben – Sie können sich nicht vor Root verstecken, wenn Sie keinen Root haben.
Es gibt einige realistische Szenarien, in denen das Fehlen eines Passworts sogar vor raffinierten Angreifern schützt. Zum Beispiel ein gestohlener Laptop:Der Laptop des Benutzers wird gestohlen, komplett mit privaten SSH-Schlüsseln; Entweder schafft es der Dieb, das Passwort für die Schlüsseldatei zu erraten (möglicherweise durch Brute Force), oder er verschafft sich Zugriff auf sie aus einem Speicherauszug eines Schlüsselagenten. Wenn der Diebstahl erkannt wird, ist dies ein Signal, um die jüngsten Aktivitäten auf dem Konto dieses Benutzers zu untersuchen, und dies bedeutet, dass eine eingeschleuste Malware erkannt werden sollte. Wenn der Angreifer nur Zugriff auf Benutzerebene hatte, hinterlässt alles, was er getan hat, Spuren in Protokollen; Wenn der Angreifer das Passwort des Benutzers erhalten und sudo ausgeführt hat, sind jetzt alle Protokolle kompromittiert.
Ich weiß nicht, ob die Nachteile von NOPASSWD
Wägen Sie die Vorteile für Ihren Anwendungsfall ab. Sie müssen dies gegen alle anderen Faktoren Ihrer Situation abwägen. Beispielsweise scheint es, dass Sie unterschiedliche Passwörter zulassen, aber nicht erzwingen. Können Sie stattdessen eine zentralisierte Kontodatenbank verwenden? Wie viel Containment benötigen Sie zwischen Ihren Systemen? Erwägen Sie Alternativen zu Ansible, die unterschiedliche Sudo-Passwörter unterstützen würden? Haben Sie andere Authentifizierungsmechanismen in Erwägung gezogen?
Es gibt zwei spezielle Fälle, warum Sie kein passwortloses sudo wollen:
- Dies ist ein Abwehrmechanismus gegen böswillige Benutzer, die sich Zugriff auf ein Administratorkonto verschaffen. Dies kann entweder durch Ausnutzung geschehen oder weil ein Administrator seinen Arbeitsplatz unbeaufsichtigt lässt, ohne seine Sitzung zu sperren.
- Die erneute Ausgabe des Passworts bei der Verwendung von sudo gibt impulsiven Benutzern die Zeit, zweimal nachzudenken, bevor sie die Aktion tatsächlich ausführen.
Über Automatisierung:
Ich stimme zu, dass Sie dies passwortlos tun können, aber indem Sie das sudo-Passwort nicht benötigen, gewähren Sie tatsächlich ALLEN Zugriff auf Ihr Automatisierungstool. Überlegen Sie nun, wozu das Tool eigentlich benötigt wird? Braucht es wirklich all diese Zugänge? Wahrscheinlich nicht.
Sudo verfügt über eine nette Funktion, mit der Sie bestimmte Befehle mit dem NOPASSWD
konfigurieren können Flag in der sudoers-Datei:
username myhost = (root) NOPASSWD: /sbin/shutdown
username myhost = (root) NOPASSWD: /sbin/reboot
Eine Sache, auf die aus irgendeinem Grund niemand hingewiesen hat (korrigieren Sie mich, wenn ich falsch liege), ist, dass es jedem Programm, das Sie ausführen, ermöglicht, den Root-Zugriff zu erhöhen, ohne dass Sie es wissen. Wenn Sie ein bösartiges Programm oder Skript versehentlich als Nicht-Root-Benutzer ohne sudo ausführen, kann es normalerweise immer noch viel Schaden anrichten, hat aber (abgesehen von einem separaten Exploit) immer noch keine Root-Rechte. Sie müssen sich also zumindest keine Gedanken über ein Rootkit oder ähnliches machen. Aber mit dem NOPASSWD-Modus haben Sie diesen Schutz nicht. Jedes Programm, das unter Ihrem Benutzer ausgeführt wird, kann zu root eskalieren, indem es sich selbst mit sudo erneut aufruft. Die Malware muss dafür immer noch speziell programmiert werden und hat sonst keinen Root-Zugriff, aber was ist dann mit bösartigem Code, der dies tut?