Frage:
Ist Ubuntus Systemaufforderung zur Eingabe meines Passworts nicht fälschbar?
Arseni Mourzenko
2017-08-13 18:10:06 UTC
view on stackexchange narkive permalink

Manchmal zeigt Ubuntu das folgende Fenster:

Screen shot of "Authenticate" dialog box asking for password

Dieses Fenster kann durch einige Hintergrundprozesse verursacht werden, die ausgeführt werden, z. B. eine automatische Update oder ein Prozess, der Fehler an Canonical meldet, der sich folgendermaßen manifestiert:

Screen shot of "System program problem detected" query box

Da es sich um Hintergrundprozesse handelt, ist das erste Fenster Wird nicht als Antwort auf eine von mir selbst ausgeführte Aktion angezeigt, in einer Situation, in der ich erwartet hatte, dass das System mich nach dem Kennwort fragt. Dies bedeutet:

  • Aus Sicht des Benutzers gibt es keine Garantie dafür, dass die Eingabeaufforderung vom Betriebssystem stammt. Es kann sich um ein beliebiges Schadprogramm handeln, das nur über eine eingeschränkte Berechtigung zum Anzeigen eines Fensters verfügt und durch Aufforderung zur Eingabe meines Kennworts uneingeschränkten Zugriff auf den gesamten Computer erhält.

  • By Das System fordert den Benutzer regelmäßig zur Eingabe eines Kennworts auf und lehrt den Benutzer, dass es ganz natürlich ist, sein Systemkennwort zu geben, wenn eine Anwendung danach fragt.

Meine Fragen sind :

  • Gibt es unter Linux im Allgemeinen oder unter Ubuntu im Besonderen einen Sicherheitsmechanismus, der verhindert, dass eine Anwendung einen Dialog anzeigt, der mit dem des Systems identisch ist, und mich nach meinem Passwort fragt?

  • Wie sollten solche Fenster gestaltet werden, um die Sicherheit des Benutzers zu erhöhen? Warum nicht ein System implementieren, das Windows Strg kbd> + Alt kbd> + Entf kbd> bei der Anmeldung ähnelt?

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Dieses Gespräch wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/64019/discussion-on-question-by-arseni-mourzenko-isnt-ubuntus-system-prompt-for-my-p).
Sechs antworten:
Mike Ounsworth
2017-08-13 20:55:53 UTC
view on stackexchange narkive permalink

Ihre Punkte sind alle gut und Sie haben Recht, aber bevor wir uns darüber empören, müssen wir uns daran erinnern, wie das Linux-Sicherheitsmodell funktioniert und was es schützen soll.

Denken Sie daran, dass Linux Das Sicherheitsmodell wurde für einen Mehrbenutzer-Terminal- oder SSH-Server entwickelt. Windows wurde speziell für Endbenutzer-Workstations entwickelt (aber ich habe gehört, dass die neueste Windows-Generation terminalfreundlicher ist). Insbesondere macht die Linux-Konvention das Sandboxing von Apps für Benutzer besser, während unter Windows alles Wichtige als System ausgeführt wird, während die Linux-GUI (X Server) die Sicherheit beeinträchtigt und die Windows-GUI ausgefallene Dinge wie die integrierte Benutzerkontensteuerung enthält. Grundsätzlich ist (und war) Linux zuerst ein Server und dann eine Workstation, während Windows umgekehrt ist.


Sicherheitsmodelle

Soweit "the OS "(dh der Kernel) ist betroffen, Sie haben 7 tty-Konsolen und eine beliebige Anzahl von SSH-Verbindungen (auch als" Anmeldesitzungen "bezeichnet) - es kommt nur so vor, dass Ubuntu mit Skripten geliefert wird, um die GUI auf dem tty7 automatisch zu starten -Sitzung, aber für den Kernel ist es nur eine andere Anwendung.

Anmeldesitzungen und Benutzerkonten sind recht gut voneinander getrennt, aber Linux geht von einer Sicherheitseinstellung aus, die Sie nicht schützen müssen Benutzer von sich selbst. Wenn in diesem Sicherheitsmodell Ihr Konto durch Malware kompromittiert wird, ist dies eine verlorene Ursache. Wir möchten es jedoch weiterhin von anderen Konten isolieren, um das gesamte System zu schützen.

Beispielsweise tendieren Linux-Apps dazu Erstellen Sie einen Benutzer mit geringen Berechtigungen wie apache oder ftp , den er so ausführt, als ob er keine Root-Aufgaben ausführen müsste. Wenn es einem Angreifer gelingt, die Kontrolle über einen laufenden Apache -Prozess zu übernehmen, kann er andere Apache -Prozesse durcheinander bringen, hat jedoch Probleme beim Springen zu ftp -Prozessen .

Beachten Sie, dass Windows hier einen grundlegend anderen Ansatz verfolgt, hauptsächlich aufgrund der Konvention, dass alle wichtigen Dinge ständig als System ausgeführt werden. Ein bösartiger Dienst unter Linux hat weniger Möglichkeiten, schlechte Dinge zu tun als ein bösartiger Prozess, der als System ausgeführt wird. Daher muss Windows zusätzliche Anstrengungen unternehmen, um jemanden mit Administratorrechten vor "sich selbst" zu schützen.

GUI-Umgebungen und ein X-Server, der nicht für die Sicherheit ausgelegt ist, werfen einen Schraubenschlüssel in dieses Sicherheitsmodell.


Gnome gksudo gegen Windows-Benutzerkontensteuerung und Keylogger

Wenn ein Benutzerprozess unter Windows eine Eskalation von Berechtigungen anfordert, löst der Kernel eine spezielle geschützte Eingabeaufforderung aus, deren Speicher und Tastatur- / Mausbus vom Rest der restlichen Desktop-Umgebung isoliert sind. Dies ist möglich, da die GUI in das Betriebssystem integriert ist. Unter Linux ist die GUI (X-Server) nur eine andere Anwendung, und daher gehören die Kennwortabfragen zu dem Prozess, der sie aufgerufen hat. Sie werden wie Sie ausgeführt, teilen Speicherberechtigungen und einen Eingabebus mit jedem anderen Fenster und Prozess, der wie Sie ausgeführt wird.

Die Root-Eingabeaufforderung kann nicht die ausgefallenen UAC-Dinge ausführen, die die Tastatur sperren, da diese entweder bereits root sein müssen oder den X-Server komplett neu entwerfen müssen (siehe Wayland unten). Ein Catch-22, der in diesem Fall ein Nachteil beim Trennen der GUI vom Kernel ist. Aber zumindest entspricht dies dem Linux-Sicherheitsmodell.

Wenn wir das Sicherheitsmodell überarbeiten würden, um dies zu verhindern, indem wir Sandboxing zwischen Kennwortansagen und anderen Prozessen hinzufügen, die als Benutzer in derselben GUI-Sitzung ausgeführt werden Wir könnten sehr viele Dinge neu schreiben müssen. Zumindest müsste der Kernel GUI-fähig werden, damit er Eingabeaufforderungen erstellen kann (heute nicht mehr wahr). Das andere Beispiel ist, dass alle Prozesse in einer GUI-Sitzung einen Tastaturbus gemeinsam nutzen.

Beobachten Sie, wie ich einen Keylogger schreibe und dann einige Tasten in einem anderen Fenster drücke:

  x ~ xinput list
⎡ ID des virtuellen Kernzeigers = 2 [Hauptzeiger (3)] X XTEST-Zeiger-ID des virtuellen Kerns = 4 [Slave-Zeiger (2)] ite Logitech K400 Plus-ID = 9 [Slave-Zeiger (2)] ⎜ ETPS / 2 Elantech Touchpad id = 13 [Slave-Zeiger (2)] x ~ xinput test 9Tastenfreigabe 36 Tastendruck 44 Tastendruck 44 Tastendruck 40 Tastendruck 40 Tastendruck 33 Tastendruck 33 Tastendruck 33 Tastendruck 39 Tastenfreigabe 33 Tastendruck 39 Taste Drücken Sie die 66-Taste. Drücken Sie die Taste 31.  

Jeder Prozess, der ausgeführt wird, während Sie das Kennwort an der Eingabeaufforderung oder am Terminal eines anderen Prozesses abhören und dann sudo selbst aufrufen können (dies folgt direkt aus der Meldung "Keine Notwendigkeit, Sie zu schützen" Sie "Denkweise), daher ist es nutzlos, die Sicherheit der Kennwortabfragen zu erhöhen, es sei denn, wir ändern das Sicherheitsmodell grundlegend und schreiben alle möglichen Dinge massiv neu.

(das ist erwähnenswert Gnome scheint zumindest den Tastaturbus auf dem Sperrbildschirm und die neue Sitzung zu sandboxen s über "Benutzer wechseln", da die dort eingegebenen Dinge nicht im Tastaturbus meiner Sitzung angezeigt werden.


Wayland

Wayland ist ein neues Protokoll, das darauf abzielt X11 ersetzen. Client-Anwendungen werden gesperrt, sodass sie keine Informationen stehlen oder irgendetwas außerhalb ihres Fensters beeinflussen können. Die Clients können nur außerhalb des externen IPC miteinander kommunizieren, indem sie den Compositor durchlaufen, der sie alle steuert. Dies behebt jedoch nicht das zugrunde liegende Problem und verlagert einfach das Vertrauensbedürfnis auf den Compositor.


Virtualisierung und Container

Wenn Sie mit Cloud-Technologien arbeiten, müssen Sie Ich springe wahrscheinlich auf und ab und sage "Docker ist die Antwort !!". In der Tat, Brownie Punkte für Sie. Docker selbst soll zwar nicht wirklich die Sicherheit verbessern (danke @SvenSlootweg), weist jedoch darauf hin, Containerisierung und / oder Virtualisierung als Forward zu verwenden, das mit der aktuellen Linux-Architektur kompatibel ist.

Zwei bemerkenswerte Linux-Distributionen, die unter Berücksichtigung der Prozessisolation erstellt wurden:

Qubes OS , mit dem Apps auf Benutzerebene in mehreren VMs ausgeführt werden, die in "Sicherheitsdomänen" unterteilt sind, z B. Arbeit, Banking, Surfen im Internet.

Android , das jede App als separater Benutzer mit geringen Berechtigungen installiert und ausführt und so die Isolation auf Prozessebene und die Isolation des Dateisystems (jeweils) erreicht App ist auf ein eigenes Home-Verzeichnis beschränkt) zwischen Apps.


Fazit: Aus Sicht eines Endbenutzers ist es nicht unangemessen zu erwarten, dass sich Linux so verhält Genau wie Windows, aber dies ist einer der Fälle, in denen Sie ein wenig verstehen müssen, wie das zugrunde liegende System funktioniert und warum es so entworfen wurde. Durch einfaches Ändern der Implementierung der Kennwortansagen wird nichts erreicht, solange es sich um einen Prozess handelt, der Ihnen gehört. Damit Linux im Kontext einer Einzelbenutzer-GUI-Workstation das gleiche Sicherheitsverhalten wie Windows aufweist, muss das Betriebssystem erheblich neu gestaltet werden. Daher ist es unwahrscheinlich, dass dies geschieht. Dinge wie Docker bieten jedoch möglicherweise einen Weg nach vorne in einem Linux-System. native Methode.

In diesem Fall besteht der wichtige Unterschied darin, dass Linux auf niedriger Ebene als Mehrbenutzerserver konzipiert ist und die Entscheidung trifft, einen Benutzer während Windows nicht vor sich selbst zu schützen ist als Einzelbenutzer-Workstation konzipiert, sodass Sie innerhalb einer Anmeldesitzung über prozessübergreifende Schutzfunktionen verfügen müssen. Es ist auch wichtig, dass unter Windows die GUI Teil des Betriebssystems ist, während unter Linux die GUI nur eine andere Anwendung auf Benutzerebene ist.

Ich konnte nicht herausfinden, wie ich das in den Körper einpassen sollte, aber [obligatorisch xkcd] (https://xkcd.com/1200/)
Ich denke, "auf der niedrigen Ebene" sind beide Betriebssysteme vollwertige, völlig vergleichbare Mehrbenutzerserver.Es ist der Teil "GUI ist Teil von Windows (!)" Gegenüber "Die X-Sitzung ist nur ein weiteres Benutzerprogramm", der wichtig ist.
Während all dies sachlich korrekt ist, sehe ich wenig Beziehung zu der Frage ...
Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/63876/discussion-on-answer-by-mike-ounsworth-isnt-ubuntus-system-prompt-for-my-passw).
_Erinnern Sie sich daran, dass das Linux-Sicherheitsmodell für einen Headless- oder SSH-Server mit mehreren Benutzern konzipiert wurde und Linux in diesem Zusammenhang mehr Schutz bietet.Windows wurde speziell für Endbenutzer-Workstations entwickelt. In diesem Zusammenhang bietet Windows mehr Schutzfunktionen. Woher haben Sie daraus geschlossen?
@JopV.Hauptsächlich aus meinen eigenen Erfahrungen;Der X-Server schadet der Sicherheit, und obwohl ich kein Windows-Experte bin, scheint es schade zu sein, dass mehrere Benutzer gleichzeitig an der GUI angemeldet sind und die Konvention, dass alles Wichtige als System ausgeführt wird, anstatt das Prinzip der geringsten Berechtigung anzuwenden.Ich bin froh, dass sich meine Meinung geändert hat.
"* Ich wäre nicht schockiert, wenn wir in den kommenden Jahren sehen würden, wie Linux-Distributionen Webbrowser und andere Anwendungen mit hohem Risiko containerisieren *" [Qubes] (https://www.qubes-os.org/) tut dies.
Diese Antwort sollte sich wahrscheinlich mit Waylands Sicherheitsübernahme und der Verbesserung der Dinge befassen (fügt aber letztendlich nur den Compositor als eine andere Sache hinzu, der Sie vertrauen sollten).
@Timidger Ich weiß eigentlich nicht genug über Wayland, um darüber zu sprechen.Sie können jedoch gerne eine Bearbeitung vorschlagen.
@Will, das Code sicherer macht, der direkt in dem Compositor ausgeführt wird, dem Sie nicht vertrauen (oder Code, der möglicherweise Fehler enthält).Sie müssen jedoch weiterhin der Compositor-Implementierung vertrauen, da dies die Hauptsache ist, mit der die Clients sprechen.Anders ausgedrückt: Wenn Sie sich einen Compositor als Server und die Windows / Anwendungen als Clients vorstellen, spielt es keine Rolle, ob der Server nicht in Ihr Zuhause schreiben kann, sondern alles, was Sie eingeben, einem Client zur Verfügung stellt oder einen Client zeichnen lässtalles irgendwo und kratzen die Pixel von angeblich "vertrauenswürdigen" Anwendungen.Alle Eingaben erfolgen über den Compositor.
@Timidger Wie üblich liegt das, was als "sicher" gilt, im Auge des Betrachters und relativ zu dem, was Sie schützen möchten;)
Es ist bedauerlich, dass diese Antwort von Docker als Isolationsmaßnahme spricht.__Docker bietet keine sichere Isolierung gegen schädliche Anwendungen__, da dies für Docker nicht geeignet ist (Isolierung gegen versehentliche Kontamination von Abhängigkeiten und dergleichen).Bestimmte Containerisierungstechnologien (OpenVZ, nicht privilegiertes LXC) * können * eine sichere Isolation bieten, aber Docker ist sicherlich keine davon.Außerdem sind "Container" und "VMs" nicht dasselbe.
@SvenSlootweg Ich verwende (kleine c) Container in dem Sinne, dass alle VMs Container sind, aber nicht alle Container VMs.In dem verlinkten Wikipedia-Artikel heißt es: "Zusätzlich zu den Isolationsmechanismen bietet der Kernel häufig Ressourcenverwaltungsfunktionen, um die Auswirkungen der Aktivitäten eines Containers auf andere Container zu begrenzen." _ Das klingt für mich nach einer gewissen sicheren Isolation.
@MikeOunsworth "Ein gewisses Maß" reicht jedoch nicht aus, und "Isolation gegen böswilliges Verhalten" vs. "Isolation gegen versehentliche Kontamination / Überbeanspruchung von Ressourcen" sind zwei sehr unterschiedliche Dinge.Docker kümmert sich nur um Letzteres, nicht um Ersteres und ist daher * völlig * unzureichend, wenn es um Malware geht.Siehe auch https://gist.github.com/joepie91/1427c8fb172e07251a4bbc1974cdb9cd#secure-isolation
@SvenSlootweg Stimmt diese Bearbeitung mit Ihren Gedanken überein?
deviantfan
2017-08-13 20:12:22 UTC
view on stackexchange narkive permalink

Gibt es unter Linux im Allgemeinen oder unter Ubuntu im Besonderen einen Sicherheitsmechanismus, der verhindert, dass eine Anwendung einen Dialog anzeigt, der mit dem des Systems identisch ist, und mich nach meinem Kennwort fragt?

Schnelle Antwort: Nein.

Aus Sicht des Benutzers gibt es keine Garantie dafür, dass die Eingabeaufforderung vom Betriebssystem stammt. Es kann sich um jedes Schadprogramm handeln, das nur eine eingeschränkte Berechtigung zum Anzeigen eines Fensters hatte und durch Aufforderung zur Eingabe meines Kennworts uneingeschränkten Zugriff auf den gesamten Computer erhält.

Wenn ein Schadprogramm aktiviert ist Auf dem Computer spielt es keine Rolle, welches Programm den Dialog anzeigt.
Wenn es sich um ein Schadprogramm handelt, wie im nächsten Satz beschrieben, muss es Ihnen nicht einmal einen Dialog anzeigen. Wenn es sich um ein legitimes Programm handelt, kann das Schadprogramm das Fenster und das, was Sie dort eingeben, in X-Server-Umgebungen "beobachten" (das Terminal ist besser).

Lösung?

Wenn Sie Grund zu der Annahme haben, dass ein Programm nicht vertrauenswürdig ist, Sandboxing (VM oder kleinere Dinge).

Andernfalls wird nicht nach Passwörtern gefragt . Dieser Dialog ist für nicht technische Benutzer praktisch. Wenn Sie Sicherheitsbedenken oder einen Administrator oder ähnliches haben, müssen Sie auf keinen Fall eine GUI-Kennwortabfrage anzeigen. Konfigurieren Sie die Berechtigungen von Nicht-Root-Benutzerkonten ordnungsgemäß (Ja oder Nein, aber nicht nachfragen) und verwenden Sie keinen Desktop als Root (aus diesem Grund und weil es eine Versuchung ist, Root häufiger als nötig zu verwenden).

Durch regelmäßige Aufforderung des Benutzers zur Eingabe des Kennworts lehrt das System den Benutzer, dass es selbstverständlich ist, sein Systemkennwort zu geben, wenn eine Anwendung danach fragt.

Wie beschrieben, fragen Sie sie einfach nicht. Als Administrator sollen "Ihre" Benutzer klar definierte Berechtigungen haben.

Und zu automatischen Updates als Organisationsadministrator: Sind Sie verrückt :) Im Ernst, lassen Sie nicht zu, dass viele Ubuntu-Clients zufällige Dinge zu zufälligen Zeiten aktualisieren. Wie wäre es mit zentralen Bildern, die von Ihnen gepflegt und getestet und dann ausgerollt werden? oder in die andere Richtung Dinge wie Ansible?
Völlig unabhängig von der Sicherheit können Updates zu Problemen führen. Deshalb.

Während die Anarchie unkontrollierter Updates in der Tat gefährlich ist, besteht die einfachste (und wahrscheinlich häufigste) Möglichkeit, Updates zu steuern, darin, sie nicht durchzuführen, was ebenfalls gefährlich ist.
Dies ist in Ordnung für Unternehmen, aber was ist mit Heimanwendern und kleinen Unternehmen?Sie verwenden es wahrscheinlich nur so wie es ist.In der Tat ist dies ein Verkaufsargument von Ubuntu (keine aufwändige Konfiguration).Wenn es in seiner Standardeinstellung unsicher ist, sollten sie dies an einzelne Benutzer vermarkten?
@Kevin Nun, "sollte" ... oft ist Bequemlichkeit das Gegenteil von Sicherheit.Und das ist leider Grund genug, dass die Sicherheit viele Manager und andere Mitarbeiter stört.Wenn Ubuntu sagt "Wir lassen Sie niemals ein Passwort in eine GUI eingeben, nicht einmal XTerm, müssen Sie immer ein Root-Terminal öffnen, um solche Dinge zu tun", hilft ihnen dies nicht bei ihrem Marktanteil.
Ein "sicheres" Betriebssystem ist sowieso nicht möglich, solange wir nicht wissen, vor was wir uns schützen sollen und wie hoch die Risiken sind.Ubuntu kann diese Wahl nicht für "alle" Benutzer treffen, nur für einen Teil davon mit angemessener Größe.(Und dieser Teil hat keine Ahnung, was ein Terminal ist).
@deviantfan Und dieser Teil ist auch anfälliger für Sudo-Parodien.Windows hat aufgrund seines Marktanteils nur die heutige Anzahl von Malware.Wenn Ubuntu seinen Anteil erweitert, wird es zu einem interessanteren Ziel für Malware, und die aktuelle Version des Betriebssystems kann Endbenutzer nicht vor intelligenten Angreifern schützen.Dies ist ein sehr schwerwiegender Konstruktionsfehler.
@T.Sar Nun ja, aber was ist dann die Lösung, die für alle Zielgruppen geeignet ist?Das Erfordernis von Terminals ist für nicht technische Benutzer ohne qualifizierten Administrator (= die meisten Benutzer) nicht in Ordnung.Das Sichern dieses Dialogs ist nicht wirklich möglich, solange X existiert (und Wayland ist noch nicht so fertig).
@deviantfan Ich sage nicht, dass Sie alle Zielgruppen anpassen sollten, nur dass für Ubuntus größte Benutzerbasis (Endbenutzer, die keine Ahnung haben, wie das Terminal verwendet werden soll) die aktuelle Implementierung schrecklich ist.Zusammen mit dem falschen Sicherheitsgefühl, das durch jahrelange Propaganda "Linux-basierte Systeme können nicht mit Viren infiziert werden" erzeugt wird, schafft dies eine sehr unsichere Umgebung für den durchschnittlichen Benutzer.Ubuntu ist so wie es ist gefährlich.Bis Ubuntu einen Weg findet, den Laien vor dieser Art von albernem Angriff zu schützen, würde ich es niemandem empfehlen.
@deviantfan Sie müssen X nicht vollständig ersetzen - Sie können das Gleiche wie die Benutzerkontensteuerung tun - wenn Sie die Eingabeaufforderung anzeigen müssen, wechseln Sie in einer separaten Terminalsitzung in eine vollständig separate privilegierte Anwendung, in der nur die alte GUI angezeigt wird.Dies ist wesentlich einfacher als das Ersetzen von X. Nicht ganz so stark wie die Benutzerkontensteuerung, aber viel stärker als das, was sie jetzt haben, und Sie können die Eingabe des Kennworts vermeiden (also keine gefälschten Dialoge).Wenn Sie sich über Remotesitzungen wundern, sind diese auch unter Windows anfällig (für Key-Logger auf der Clientseite) - genau wie das Ausführen des Systems in einer VM.
@Luaan Gute Idee, ich bin mir nur nicht sicher, ob das Mischen von Sessions so viel einfacher ist als das Ersetzen von X ...
Stig Hemmer
2017-08-14 12:41:16 UTC
view on stackexchange narkive permalink

Ja. Das ist unsicher!

Ich persönlich brich diesen Dialog immer ab. Nicht weil es gefälscht sein könnte, sondern weil es echt sein könnte.

Ich soll "einer Anwendung" eskalierte Berechtigungen erteilen, nur weil sie fragt? Nein, das glaube ich nicht.

Systemaktualisierungen sind in Ordnung, ich mache diese manuell, aber es ärgert mich, dass das Fehlerberichtssystem dies erfordert. Schlechtes Design.

Nun, der * Dialog * ist nicht besonders unsicher.Dass Programme alleine * darum bitten können, erhöht zu werden *, ist ein Risiko (es wäre das gleiche Risiko in der Befehlszeile).Wie so oft ist es eine Frage der Bequemlichkeit.Wenn Sie nicht sofort Programme ausführen möchten, die Root-Rechte als Root benötigen (stellen Sie eine Verbindung zu Ihrem WLAN her, aktualisieren Sie Ihre Installation usw.), müssen Sie eine Root-Shell öffnen oder dafür sudo ausführen (was Sie anscheinend mit Ihrem tunAktualisierung).Keine schlechte Idee, aber für ein GUI-orientiertes Betriebssystem als zu umständlich angesehen.
Das Problem ist, dass Programme, die Root-Rechte benötigen, noch nicht suid sind.Deshalb gibt es Suid.(Hinweis: Führen Sie ** NICHT ** das gesamte große Grafikprogramm aus. Erstellen Sie ein kleines suid-Programm, das die erforderliche Operation ausführt, und nicht mehr.)
Sie sind eindeutig kein Fan von Ubuntu oder GUIs, oder?
Ich bin im Allgemeinen ein Fan von Ubuntu, aber ich denke, sie haben den Ball auf diesen fallen lassen.
@oldmud0 Erinnern Sie sich nicht, als Vista herauskam und sich buchstäblich Millionen von Menschen darüber beschwerten, dass sie in einem UAC-Dialog ständig auf "OK" klicken müssen?Die Beschwerde wird in Ubuntu noch schlimmer, wenn Sie das Passwort tatsächlich jedes Mal eingeben müssen.Einige Dinge verblüffen mich, wenn sie nach Eskalationsberechtigungen fragen ... wie die Installation von Software aus dem Software Center, die nur der aktuelle Benutzer jemals verwenden wird (möglicherweise hat sich dies geändert).Ich denke, Stig macht einen Punkt.Zu viele Dinge erfordern eine Eskalation der Privilegien.
Peter - Reinstate Monica
2017-08-14 09:41:05 UTC
view on stackexchange narkive permalink

Im Gegensatz zu Ihrer Meinung sind die (modernen) Windows- und Ubuntu-Methoden zum Umgang mit Berechtigungsstufen und zur Erhöhung von Berechtigungen ziemlich ähnlich. Der Grund ist sicherlich, dass die Betriebssysteme beide Mehrbenutzersysteme mit ähnlichen Anwendungsfällen sind, die mit ähnlichen Problemen konfrontiert sind.

Beide Betriebssysteme schränken die Möglichkeiten eines normalen Benutzers ein (natürlich durch Ausführen von Programmen). Ein Benutzer kann seine eigenen Daten zerstören, im Idealfall jedoch nicht die anderer Personen (es sei denn, sie haben sie geteilt), und kann das System im Idealfall nicht gefährden oder beschädigen. Zum Lesen und Schreiben von Systemdaten benötigt ein Programm Administratorrechte (Root) auf beiden Betriebssystemen, über die normalerweise nur vom Administrator / Root gestartete Programme verfügen.

Um dies zu vereinfachen, bieten beide Betriebssysteme dem Standardbenutzer die Möglichkeit, einzelne Programme mit "erhöhten Berechtigungen" über sudo bzw. UAC auszuführen. Beide Betriebssystem-GUIs starten einen Dialog, um dem Benutzer die Möglichkeit zu geben, zu verhindern, dass Programme als Administrator / Root ausgeführt werden. Beide Systeme haben auch die Vorstellung von Benutzern, die überhaupt keine privilegierten Programme ausführen dürfen.

Im Ubuntu-Dialogfeld werden Sie nach einem Kennwort gefragt. Das Windows-UAC-Dialogfeld funktioniert nicht. (Sie scheinen zu glauben, dass ein Programm spezielle Berechtigungen benötigt, um diesen Dialog anzuzeigen. Dies ist nicht der Fall. Das Programm fragt nach ihnen mit dem Dialog. Wenn jemand den Dialog vortäuscht, erhält er Ihren (Benutzer) Passwort, das für ein Programm, das bereits als dieser Benutzer ausgeführt wird, kein Gewinn ist.)

Unter dem Strich kann ein Schadprogramm so tun, als ob es erhöhte Berechtigungen für etwas Nützliches benötigt, und den Dialog starten, aber Sobald sie diese erhalten haben, formatieren Sie die Festplatte. 1 sup> Dies gilt für beide Betriebssysteme. Da unter Windows normalerweise mehr Software von Drittanbietern installiert wird, ist die Wahrscheinlichkeit, ein solches Programm zu starten, wahrscheinlich höher als bei Ubuntu.

Sie erwähnen, dass in Windows das UAC-Dialogfeld normalerweise das Ergebnis einer Benutzeraktion ist, beispielsweise der Installation eines Programms, während Ubuntu das Dialogfeld ohne ersichtlichen Grund startet. Ein Grund, den ich mir vorstellen kann, ist, dass Windows-Softwareupdates vom Betriebssystem initiiert werden, sodass sie bereits über erhöhte Berechtigungen verfügen. Vielleicht fragt Ubuntu vor der Installation.

Es wäre in der Tat schön, mehr Informationen zu haben als nur "Ich brauche Ihren Reisepass, Ihre Stiefel und Ihre Jacke." Ich habe hier kein Ubuntu-System zur Hand, aber auf der linken Seite des Dialogfelds wird eine Beschriftung "Details" angezeigt. Hast du nachgesehen, was gesagt wird? (Natürlich könnte ein Schadprogramm dort jeden Text fälschen, aber Sie können möglicherweise überprüfen, ob das angebliche Programm tatsächlich ausgeführt wird.)


1 sup> Was nicht wäre das schrecklich im Vergleich zum tatsächlichen Überschreiben von Daten.
Nun, die Windows-Benutzerkontensteuerung bietet zusätzlichen Schutz, der das Spoofing erschwert (siehe https://blogs.msdn.microsoft.com/uac/2006/05/03/user-account-control-prompts-on-the-secure-).Desktop / so unter Ubuntu ist es für ein Schurkenprogramm viel einfacher, den Dialog zu fälschen.
@schlenk Sie haben Recht;Durch die Integration der GUI in das Betriebssystem erhält MS Windows die Berechtigung, vor der Erhöhung der Berechtigungen einen obligatorischen UAC-Dialog zu verlangen.Ich frage mich, wie Windows-Server, deren Konsole möglicherweise nicht belegt ist, damit umgehen.Wahrscheinlich werden alle Programme, die irgendwann eine Erhöhung benötigen würden, sofort als Administrator ausgeführt.Das Grundproblem scheint jedoch zu sein, dass Linux "aus heiterem Himmel" auffordert, während die UAC-Eingabeaufforderung von Windows (fast?) Immer das Ergebnis einer Benutzerinteraktion (Starten eines Programms usw.) ist.Der wichtigste Sicherheitsvorteil der UAC-Eingabeaufforderung besteht darin, dass keine falschen Informationen angezeigt werden können.
@PeterA.Schneider Sie erhalten die Windows-UAC-Eingabeaufforderung, wenn Sie über RDP verbunden sind, genauso wie an der Konsole.Ich weiß nicht, ob es unter der Haube signifikant anders ist, aber ich vermute, dass es nicht sehr viel ist.
Sie müssen ein Kennwort für die Benutzerkontensteuerung angeben, wenn Sie nicht als Administrator angemeldet sind oder wenn Sie die Benutzerkontensteuerung so einstellen, dass sie immer danach fragt
Ich weiß nur, wo die UAC-Eingabeaufforderung von Windows aus heiterem Himmel angezeigt wird, wenn für ein Programm, das beim Start gestartet wird, Administratorrechte erforderlich sind.Normalerweise werden sie nur innerhalb der ersten 10 Minuten (auf einer Festplatte) oder 2-5 Minuten (auf einer SSD) nach dem Start angezeigt.
@T.Sar Ja, aber es gibt einen guten Grund, warum dies nicht die Standardeinstellung ist - es ist tatsächlich weniger sicher.Es macht Sie anfällig für gefälschte UAC-Eingabeaufforderungen, die nach Ihrem Administratorkennwort fragen (was vom System nicht verhindert werden kann).Wenn Sie nur das Passwort kennen, können Sie sich auch ohne die UAC-Eingabeaufforderung nicht erheben, aber es kann Ihnen Probleme bereiten.Wenn Sie Administrator sind, macht es keinen Sinn, nach dem Passwort zu fragen.Wenn dies nicht der Fall ist, wird davon ausgegangen, dass der tatsächliche Administrator vorsichtig genug ist, um dies zu verhindern (und ~ 99% der Zeit, in der der Administrator ohnehin abbricht - denken Sie an ein Unternehmen).
Unter Windows können privilegierte Anwendungen andere privilegierte Anwendungen ohne Aufforderung starten. Daher werden Update-Dienste normalerweise als privilegiert installiert und es ist keine Erhöhung erforderlich.Wenn sie sich gut benehmen, übernehmen sie * nur * die Installation und autorisieren die Binärdateien ordnungsgemäß, sodass dies einen Netto-Sicherheitsgewinn darstellt.Viele Programme verhalten sich nicht gut, aber es wird besser - es beginnt, dass nur Installationen und tatsächlich gefährliche Funktionen eine Erhöhung erfordern.Was die GUI betrifft, können Sie ein benutzerdefiniertes Subsystem * hinzufügen * - aber Sie haben Recht, dass es im Gegensatz zu X keine 100% ige Anwendung im Benutzermodus ist.
o11c
2017-08-14 10:05:04 UTC
view on stackexchange narkive permalink

Der sicherste Weg, um sicherzustellen, dass Ihr Passwort nicht abgehört wurde, ist die Verwendung der SAK-Sequenz: alt-sysrq-k . Dadurch werden alle Programme auf dem aktuellen VT (einschließlich X11) beendet, und init gibt Ihnen eine neue Anmeldeaufforderung. Die einzigen mir bekannten Angriffe betreffen entweder das Ändern der Kernel-Keymap oder das Kompromittieren von init selbst. Beide erfordern bereits Root-oder-besseren Zugriff.

Es gibt verschiedene, etwas weniger vollständige Möglichkeiten (XTerm hat Möglichkeit, auf die Option "Exklusive Eingabe" von X11 zuzugreifen), je nachdem, wie viel von Ihrem System Sie vertrauen, aber ... warum sollten Sie Ihrem System nicht vertrauen können?

Der Hauptunterschied zwischen Linux und Windows-Sicherheitsmodelle besagen, dass Sie unter Linux nicht nur zufällige ausführbare Dateien aus dem Internet herunterladen und ausführen. (Es gibt einige Bemühungen, nicht vertrauenswürdige Linux-Anwendungen in eine Android-ähnliche Paket-Sandbox zu packen, aber niemand verwendet sie.)

Ich würde das nicht als "Sicherheitsmechanismus" bezeichnen, der "unter Linux" implementiert ist ... Es ist eher eine Problemumgehung.
Es ist nicht garantiert, dass Magic SysRq-Unterstützung verfügbar ist.Wie vieles im Linux-Kernel ist es eine auswählbare Option.
@MichaelKjörling und ähnlich wie im Linux-Kernel haben Sie es wahrscheinlich nicht deaktiviert, es sei denn, Sie wissen, was Sie tun.
@o11c: Viele Distributionen deaktivieren die meisten SysRQ-Funktionen sofort.Zum Beispiel setzt Ubuntus `/ etc / sysctl.d / 10-magic-sysrq.conf`` kernel.sysrq = 176` = 128 + 32 + 16 = reBoot / powerOff, remount Ro und Sync sind die einzigen aktivierten Befehle.Siehe auch https://askubuntu.com/questions/11002/alt-sysrq-reisub-doesnt-reboot-my-laptop.IDK, warum sie SAK deaktivieren und Speicherinhalte auf die Konsole übertragen (die sie aus Sicherheitsgründen deaktivieren).Aber anscheinend verwendet OpenSUSE auch 176.Siehe auch https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1025467: enable 176, war zuvor vollständig deaktiviert.
Wie ist das eine Antwort auf die Frage?
Joshua
2017-08-15 08:16:04 UTC
view on stackexchange narkive permalink

Schrecklicher, schrecklicher Mangel an Sicherheit. Als ich das Design von grafischem Sudo sah, biss ich in die Kugel und machte sudo passwd root gefolgt von apt-get remove sudo , dann ärgerte ich die Ubuntu-IRC-Leute wirklich, indem ich die Deinstallation befürwortete sudo.

Trotzdem ist das völlig unsicher. Auf dem Terminal war es ein bisschen in Ordnung (mehr noch, wenn die Muscheln schwächer waren, war es relativ unbekannt und Angriffe dagegen hatten sich nicht wirklich entwickelt), aber es ist jetzt ein eklatanter Schwachpunkt.

Ich werde lieber eine zweite X-Instanz starten Als root jetzt für weniger als einmal im Jahr muss ich ein grafisches Programm root geben. (Ich starte dazu X: 1 direkt und nicht startx, sodass nur die Zielanwendung in der X-Instanz von root ausgeführt wird.) Wenn Sie häufiger root benötigen, empfehle ich apt-get install ssh und ssh -X root @ localhost .

Wenn Sie Gründe für Abstimmungen wünschen ... a) Die Deinstallation von sudo hilft nicht, da dieser Dialog nicht sudo ist.b) Bei dieser Frage geht es nicht darum, dass Sudo unsicher ist, weil es nicht so ist.c) Eine zweite X-Instanz hilft nicht viel.d) X als Wurzel?Überhaupt nicht zu empfehlen.e) Das Versenden des eigenen lokalen Computers ist nicht sicherer als sudo, ganz im Gegenteil (mehr Möglichkeiten für Codefehler oder falsche Konfigurationen)
@deviantfan: Der Bildschirmschnappschuss ist eindeutig eine Sudo-Eingabeaufforderung.X als Wurzel ist nicht unsicher;Es sind die modernen X-Umgebungen, die sich nicht darum kümmern.
Was Sie als "sudo-Eingabeaufforderung" bezeichnen, wird nicht vom Programm sudo ausgeführt und kann daher nicht durch Deinstallation von sudo entfernt werden.Probieren Sie es einfach aus, z.durch Anzeigen der Prozessliste bei geöffnetem Fenster.... Ich weiß nicht, was die Modernität von X-Umgebungen mit irgendetwas zu tun hat.X, alt und neu, basiert auf Prinzipien, die sichere Kennwortfenster verhindern.Es ist nicht möglich, das zu ändern, ohne X zu brechen.
@deviantfan: Ctrl-Alt-Fx-Sequenzen zum Wechseln von X-Umgebungen und Terminals funktionieren einwandfrei.Der Mythos, dass "X als Wurzel unsicher ist", stammt von der Vielzahl moderner Fenstermanager, von denen fast keiner aus der Ferne gehärtet ist und daher niemals Wurzel bekommen sollte.Früher gab es ein paar sichere.Ich hielt Ratpoison herum, bis meine Augenprobleme zu schlimm wurden, um nicht die Unterstützung für Barrierefreiheit zu haben.
a) Imho-Schlüsselkombinationen und Rattengift spielen hier keine Rolle.b) Ich habe nicht gesagt, dass X als Root automatisch unsicher ist.c) Vielen Dank, dass Sie mich davor gewarnt haben, an Sicherheitsmythen zu glauben.Zum Glück bin ich sowieso ein natürlicher Skeptiker und überprüfe viele Dinge selbst, bevor ich ihnen glaube.d) Ich diskutiere das nicht weiter, es gibt keinen Grund.
Die fragliche Eingabeaufforderung stammt von Polkit.Ganz anderes System.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...