Frage:
Warum wird es als sicher angesehen, etwas als Nicht-Root-Benutzer in Linux-Umgebungen zu installieren?
user1717828
2016-04-29 19:20:06 UTC
view on stackexchange narkive permalink

Wir hören immer, dass es sicher ist, unbekannte Programme als Nicht-Root-Benutzer unter Linux auszuführen, da Nicht-Root-Benutzer von der Systemebene aus eine Sandbox haben und nichts an ihrem Berechtigungsbereich ändern können. Falls erforderlich, kann man als Root-Benutzer jederzeit einen Nicht-Root-Benutzer löschen und sicher sein, dass der Rest des Systems nicht betroffen ist.

Dies ist jedoch für einen Benutzer auf niedriger Ebene nicht möglich Installieren Sie beispielsweise ein Skript mit einem Keylogger, das auf einen su - - oder sudo -Aufruf wartet und von dort aus die Systemsteuerung übernimmt?

Im Idealfall wäre die Installation eines Keyloggers als Nicht-Root-Benutzer nicht möglich.
Um ehrlich zu sein, macht es auf einem Einzelbenutzersystem (wie einem Personal Computer) nicht viel Sinn, root zu werden, da alle wichtigen Daten bereits über Ihr Benutzerkonto zugänglich sind.
Die [obligatorische XKCD] (https://xkcd.com/1200/)
Sechs antworten:
Steffen Ullrich
2016-04-29 19:25:52 UTC
view on stackexchange narkive permalink

Wir hören immer ...

Tun wir das? Ich nicht.

Das Installieren eines nicht vertrauenswürdigen Programms als normaler Benutzer ist unter Linux eine schlechte Idee, genau wie unter Windows oder Mac: Dieses Programm hat Zugriff auf alle Ihre Daten und kann diese Daten löschen und senden Diese Daten können an andere weitergegeben werden. Darüber hinaus können Screenshots erstellt, andere Anwendungen gesteuert werden, die auf demselben X-Windows-Bildschirm ausgeführt werden (auch wenn sie als ein anderer Benutzer ausgeführt werden), Schlüssel (z. B. Keylogger) abgerufen werden. Weitere Informationen finden Sie unter Der Linux-Sicherheitszirkus: Auf GUI-Isolation.

Abgesehen davon treten regelmäßig Fehler bei der Eskalation von Berechtigungen auf, selbst bei Linux-Fehlern, die von einem nicht privilegierten Benutzer verwendet werden können, um Berechtigungen auf Root- oder sogar Kernel-Ebene zu erhalten

Installieren Sie daher keine nicht vertrauenswürdigen Programme auf einem System, es sei denn, Sie sind bereit, dieses System oder die darauf gespeicherten Daten zu gefährden.

Kann als Neuling in * nix-Systemen bestätigen, dass ich das schon einmal gehört habe.
Unter Linux haben Sie viele Benutzer für viele Dinge und es wird als sicherer und besonders üblicher angesehen, Apps als separate Benutzer auszuführen.Es ist nicht sicher, etwas als separaten Benutzer auszuführen, aber es stoppt viele Dinge wie die durchschnittliche Ransomware.
Um fair zu sein, würde ich erwarten, dass ein Programm alles kann, was mein normaler Benutzer kann, aber ich wusste nicht, dass ein nicht privilegiertes Programm die Eingabe in sudo riechen kann (gilt das heute noch für moderne Distributionen?).Das scheint mir ein ziemlich unerwarteter Fehler zu sein, insbesondere wenn man bedenkt, dass beim Wechsel zum Administrator unter Windows nicht dasselbe passieren kann, da dies eine Sicherheitsgrenze überschreitet.
@Voo Das stimmt nicht, Sie mischen zu viele Konzepte zusammen und treffen einige Annahmen.Um die Eingabe in sudo zu schnüffeln, müssen Sie nur von der Tastatur lesen.Viele Apps können Tastatureingaben lesen, auch wenn sie keinen Fokus haben - denken Sie an einen Musik-Player oder ein Spiel-Overlay.Dies wird normalerweise nicht als "Verwaltungsaufgabe" angesehen.Der Unterschied zu Windows besteht darin, dass Sie Ihren Admin-Pass in ein dediziertes Overlay eingeben, während einem Terminalfenster kein spezielles Sandboxing zugewiesen wird, selbst wenn Sie "sudo" eingeben.Der Linux-Befehl `gksudo` macht das Overlay-Ding, das Sie mögen.
@Mike Ja, ich bin mir bewusst, dass viele Apps Tastatureingaben lesen können und dass Windows eine separate Sicherheitsgrenze erzwingt, um dieses Problem zu vermeiden.Ich hätte angenommen, dass Sudo eine Möglichkeit hat, etwas Ähnliches zu tun.Ich meine, wenn jedes nicht vertrauenswürdige Programm das sudo-Passwort trotzdem lesen kann, scheint mir dies ein perfektes Beispiel für Sicherheit durch Dunkelheit zu sein.Ich meine, was ist der Zweck von Sudo im Moment?Offensichtlich keine zusätzliche Sicherheit.
@Voo ... Ich glaube nicht, dass Sie verstehen, was "sudo" ist, es ist ein Kommandozeilen-Tool.Es sind keine Dinge wie Tastaturtreiber oder die umgebende GUI-Umgebung bekannt.Jetzt macht `gksudo` all die schönen Dinge, an die Sie denken.Wenn Sie im Gnom sind, sollten Sie Gksudo anstelle von Sudo verwenden.
@Mike Der Punkt ist, dass Linux mit einem von Natur aus unsicheren Tool geliefert wird, das in so ziemlich jedem Handbuch im Internet verwendet wird, um Sonderrechte zu erlangen (ein schneller Google-Vergleich für "site: http: //askubuntu.com/" sudo "" vs "gksudo` gibt 223.000 vs. 8.500 Einträge für mich zurück).Es ist klar, dass das Tool entweder sicher sein sollte oder dass große Anstrengungen unternommen werden sollten, um die Benutzer darüber aufzuklären.Die kanonische Antwort auf askubuntu erwähnt diesen Unterschied auch nicht (sondern spricht nur darüber, wie Sie grafische Anwendungen mit gksudo starten sollten - den Teil, den ich bereits kannte).
[Links] (http://askubuntu.com/questions/11760/what-is-the-difference-between-gksudo-nautilus-and-sudo-nautilus) [als Referenz] (http://askubuntu.com/questions/ 163884 / Unterschied zwischen Gksudo und Sudo).
Mike Ounsworth
2016-04-29 19:40:24 UTC
view on stackexchange narkive permalink

Kurz gesagt: Ja, ein Konto mit geringen Berechtigungen schützt Sie vor Malware, macht Sie jedoch nicht immun. Wie bei jeder Sicherheitsmaßnahme werden Sie durch keine einzige Sache zu 100% geschützt sicher.

TL; DR: Das Ausführen auf einem Konto mit geringen Berechtigungen (auch bekannt als " Prinzip der geringsten Berechtigungen") sollte Teil eines ausgewogenen Frühstücks sein Dazu gehören auch gute Firewall-Konfigurationen. Tools zur Überwachung von Prozessen, Systemressourcen, offenen Ports, Netzwerkverkehr usw. auf verdächtige Aktivitäten; Eine Richtlinie, die nur signierte ausführbare Dateien ausführt, den sicheren SELinux-Kernel-Mod konfiguriert, das Betriebssystem und die Anwendung mit Sicherheitspatches und anderen Dingen auf dem neuesten Stand hält.


Ihre Frage ist sehr umfassend zu beantworten direkt. Stattdessen werde ich es in mehrere Fälle aufteilen, basierend auf der Konfiguration des Systems und dem, wonach der Angreifer sucht:

Fall 1: Personal Computer

Nehmen wir an, der Linux-Computer in Frage ist mein persönlicher Laptop. Ich benutze dies effektiv als Einzelbenutzersystem und tippe ziemlich regelmäßig sudo - also gelten alle von Ihnen genannten Dinge. Wenn der Angreifer versucht, meine persönlichen Daten wie Kreditkartennummern, Steuerdokumente usw. zu stehlen, befindet sich alles in meinem Home-Verzeichnis, auf das dieser Benutzer Zugriff hat. Wenn es Ransomware ist und meine persönlichen Dateien verschlüsseln möchte - das Gleiche. Sie möchten einen Hintergrundprozess installieren, um meinen Computer zu einem Teil eines Botnetzes zu machen, für das keine besonderen Berechtigungen erforderlich sind.

Fall 2: Server, Administratorkonto

Der Schaden, Malware auf das Konto eines Administrators zu übertragen, ist geringer als im obigen Fall des Endbenutzers, da das Administratorkonto wahrscheinlich keine wertvollen Daten enthält. Trotzdem kann ein Angreifer wahrscheinlich Schaden anrichten, indem er einen Paket-Sniffer im Netzwerk hat oder einen Port öffnet, über den der Angreifer Pen-Tests im Netzwerk durchführen kann. Hier würden Sie sich auf Ihre Firewall-Konfiguration verlassen, um Sie vor einigen dieser Probleme zu schützen, und Sie hoffentlich über verdächtige Aktivitäten informieren, damit Sie sie bereinigen können.

Wenn der Administrator sudo aktiviert Regelmäßig, dann sind Sie wahrscheinlich in Schwierigkeiten.

Fall 3: Server, Nicht-Administratorkonto

Stellen Sie sich vor, die fragliche Verwendung ist tomcat - Ein Benutzer mit sehr geringen Berechtigungen, der die Webserveranwendungen ausführt. Dies ist der Fall, an den die Leute normalerweise denken, wenn sie über das " Prinzip des geringsten Privilegs" sprechen, und Malware auf dieses Konto zu bekommen, ist der am wenigsten gefährliche der drei Fälle, die ich erwähnt habe.

Beachten Sie auch, dass für Linux Exploits zur Eskalation von Berechtigungen existieren, die es einem Benutzer mit geringen Berechtigungen ermöglichen würden, die Sicherheit des Betriebssystems zu umgehen und sich selbst in root zu verwandeln. Im Allgemeinen schützt Sie das Aktualisieren von Sicherheitspatches davor, aber Akteure, die reich genug sind, um Exploits auf dem Schwarzmarkt zu kaufen, kennen Zero-Day-Exploits, die nicht öffentlich bekannt sind und nicht gepatcht wurden.

Hinweis: Es ist durchaus möglich, ein separates Benutzerkonto für eine etwas nicht vertrauenswürdige Installation auf Ihrem PC zu haben.Es hat keinen Zugriff auf Ihre Daten und kann Ihr Sudo nicht abfangen.Außerdem ist leicht zu erkennen, ob ein Hintergrundjob ausgeführt wird, da eine bestimmte Benutzer-ID vorhanden ist.
@spectras Sicher, Sie könnten, aber tun Sie?Nur die Installation von nicht vertrauenswürdiger Software (die realistischerweise die meiste Software ist) auf einem dedizierten Konto mit geringen Berechtigungen würde einen Personal Computer fast unbrauchbar machen.
Ich denke, es sollte klarer gemacht werden.Es kann sehr, sehr und ** unglaublich ** gefährlich sein, Dinge selbst auf Ihrem eigenen nicht privilegierten Benutzer auszuführen.Stellen Sie sich vor, Sie würden eine These einen Tag vor Fälligkeit von Ransomware löschen lassen ...
@MikeOunsworth eigentlich habe ich mich entschieden, dem Repository meiner Distribution zu vertrauen.Alles, was ich * wirklich * brauche und nicht darin habe, habe ich für ein separates Benutzerkonto und kopiere Dokumente in einen gemeinsam genutzten Bereich.Zugegeben, wenn es oft passieren würde, wäre es ärgerlich.
@spectras Kudos, das ist eine gute Sicherheitspraxis.
Robert Mennell
2016-04-29 23:54:43 UTC
view on stackexchange narkive permalink

Dies ist ein schrecklicher Fall von Sicherheitstheater.

Sicherheitstheater ist die Praxis oder der Glaube an etwas, das die Sicherheit verbessert, aber in Wirklichkeit wenig / schadet.

Diese falsche Überzeugung gibt es schon, solange das folgende Gerücht

Linux aufgrund seines Berechtigungssystems

keine Viren hat Das ist fast so gut wie zu sagen

Ich habe keinen Virus auf meinem Computer, weil ich nichts blinken sehe

Nur weil Sie es nicht tun. Ich sehe es nicht, heißt nicht, dass es wahr ist. Das Schließen der Augen schützt Sie nicht vor dem Eindringling.

In der Realität von Linux, Mac OS, Windows, Android und Xbox weist alles Schwachstellen auf, die eine Eskalation zu einem System ermöglichen würden Kontrollstufe.

JEDOCH Nur weil der Angriff nicht auf Systemebene eskaliert, heißt das nicht, dass er nicht EXTREM gefährlich ist. Diese Anwendungen mit nur Zugriff auf Benutzerebene können weiterhin Ihre Informationen stehlen, jede Bewegung aufzeichnen und Ihre Daten als Lösegeld aufbewahren! Alles, ohne dass es jemals zu einer Eskalation kommt, da dies die Daten sind, auf die nur Ihr Benutzer zugreifen kann.

Diese Fakten gelten für JEDES Betriebssystem, unabhängig vom Gerät. Wenn Sie Zugriff auf den Speicher haben, hat er Zugriff auf den Speicher. Das heißt, auch wenn Sie es nicht sehen können, hat es dennoch Zugriff darauf.


Die gute Nachricht

Da Sie ein regelmäßiger Benutzer sind, bedeutet dies, dass der Angriff nicht erfolgt Nicht bereits auf Root-Ebene, dh der Zugriff ist auf den Benutzerzugriff beschränkt, und hilft , andere Benutzer im System zu schützen. Das bedeutet natürlich nicht, dass es nicht zu einer Eskalation kommen kann, sondern nur, dass es viel schwieriger ist.

Peter Cordes
2016-04-29 23:04:31 UTC
view on stackexchange narkive permalink

Das System selbst ist vor Konten sicher, die nicht root-äquivalent sind, aber auf einem Desktop, auf dem Sie sich hauptsächlich um Ihre eigenen Daten kümmern, hilft dies nicht viel. Sie authentifizieren sich regelmäßig, um von Ihrem Konto aus root zu werden

Wenn jemand ein Konto auf einem korrekt konfigurierten Mehrbenutzersystem hat und keine sudo -Berechtigungen oder das Root-Kennwort hat, werden Fehler in privilegierter Software ausgeschlossen Es gibt nichts, was der Benutzer tun kann, um die Kontrolle über die Maschine zu erlangen. Ein Benutzerkonto, auf dem möglicherweise schädliche Software installiert ist, sollte vom Rest des Systems als potenzieller Angreifer angesehen werden.

Auf meinem Desktop habe ich ein nicht privilegiertes Konto hinzugefügt, dem ich sudo hinzufügen kann , aber es kann nicht sudo rooten. Ich führe manchmal Software aus, der ich ein bisschen vertraue, aber nicht ganz, unter diesem Konto, insb. Wenn Netzwerk verwendet wird.

Da ich diesem Konto theoretisch Zugriff auf meinen X-Server erteile, kann es seine Berechtigungen durch Angriffe auf die Zwischenablage / Tastenanschlag-Simulation erweitern. Es befindet sich in derselben Unix-Gruppe wie mein reguläres Konto, und ich bin sicher, dass ich die Gruppenschreibberechtigung für einige wichtige Dateien nicht vollständig entfernt habe, aber ich habe chmod 0644 ~ / .bash {rc, _profile} und einige andere wichtige Dateien. Es ist also eine zusätzliche Hürde, die manche Malware möglicherweise nicht erwartet hat.

bmargulies
2016-05-01 17:26:00 UTC
view on stackexchange narkive permalink

Das Rezept hier ist zwar keineswegs narrensicher, aber unvollständig oder falsch.

Die Installation nicht vertrauenswürdiger Software unter Ihrem nicht privilegierten Konto ist eine Katastrophe.

Installation in einem sorgfältig vorbereiteten anderen nicht privilegierten Konto? Weniger riskant, aber keinesfalls garantiert sicher.

Wenn:

  • Sie sicher sind, dass Ihr System als sicheres Mehrbenutzersystem eingerichtet ist (kein Zufall) Schreibzugriff auf Systemverzeichnisse, wahrscheinlich volles SE Linux)
  • Sie erstellen ein Konto, das keine Gruppen mit Ihrem Konto teilt.
  • Sie haben den Zugriff auf alle Ihre Daten sorgfältig auf festgelegt Seien Sie so etwas wie 0770 - kein Zugriff auf "andere" -

Dann sind Sie so sicher wie jede Umgebung, die von der Mehrbenutzersicherheit auf einem gemeinsam genutzten Linux-System abhängt. Diese Kugeln bedeuten jedoch ziemlich viel Arbeit. Wäre es nicht einfacher, eine CD oder eine VM zu starten?

symcbean
2016-04-29 19:37:45 UTC
view on stackexchange narkive permalink

Ist es einem Benutzer auf niedriger Ebene nicht möglich, ein Skript mit einem Keylogger zu installieren, das beispielsweise auf einen su- oder sudo-Aufruf wartet und von dort aus die Systemsteuerung übernimmt?

Nein - und Sie haben die Antwort bereits gegeben, da dies "außerhalb ihres Berechtigungsbereichs" liegt. Linux war schon immer ein Mehrbenutzersystem, und (fast) alles, was außerhalb des Kernels implementiert werden kann, wird außerhalb des Kernels implementiert und unterliegt daher den Einschränkungen des Berechtigungssystems.

Ein Benutzer kann Code installieren / ausführen, der seine eigenen Daten in den Papierkorb wirft. Der einzige Weg, um weiteren Schaden zu verursachen, besteht darin, eine Sicherheitsanfälligkeit in der Implementierung auszunutzen.

Ja, wenn dieser Benutzer 'su' hat 'oder sudo Zugriff dann ist es möglich, dass Malware den Pfad ändern könnte, um auf ihren eigenen Code anstelle von su / sudo zu verweisen und dadurch die Interaktion MITM. In der Praxis ist dies jedoch etwas schwieriger, da su oder sudo aus dem Prozessbaum aufgerufen werden müssten, der bereits die laufende Malware enthält.

Leider ermöglicht das Sicherheitsmodell von X11 Schlüsselprotokollierer auch für nicht privilegierte Benutzer.
@Steffen: Verwenden Sie immer noch MIT Magic Cookies?(OK, dies ist auch mit XDM-Authentifizierung möglich.)
@SteffenUllrich Wie kann ein Keylogger als normaler Benutzer installiert werden, wenn das Konto "root / sudo" nicht bereits komprimiert wurde?Bei Betrachtung aller X11-Berechtigungen (auf meiner Box) müssten alle Änderungen als root erfolgen ... Nur um besser zu verstehen, wie ein Keylogger als Nicht-root-Benutzer überhaupt möglich ist
Weitere Informationen finden Sie unter [Der Linux-Sicherheitszirkus: Auf GUI-Isolation] (http://theinvisiblethings.blogspot.de/2011/04/linux-security-circus-on-gui-isolation.html) oder spielen Sie einfach als Nicht-Benutzer herumprivilegierter Benutzer mit `xinput` oder` xev`.Sie werden sehen, dass es einfach ist, Schlüssel in X11 zu schnüffeln.
@SteffenUllrich Vielen Dank.Ich habe gerade mit den Sicherheitsaspekten von Systemen und einer ziemlichen Lernkurve begonnen (obwohl faszinierend).


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...