GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie werden die Dateien gegenseitig nicht vertrauenswürdiger Apps in Linux geschützt?

Ich verwende eine Ubuntu-Linux-Maschine. Wenn ich Anwendungen ausführe, die von verschiedenen Anbietern wie Chrome und Firefox geschrieben wurden, bemerke ich, dass sie alle mit meiner uid ausgeführt werden. Aber wenn das der Fall ist, hat jede Datei, die sie im Dateisystem erstellen, auch dieselbe UID. Wie können dann unter Linux zwei gegenseitig nicht vertrauenswürdige Apps ihre Dateien voreinander schützen?

  • Die Verwendung einer ACL-Richtlinie durch App A kann App B immer noch erlauben, die Dateien von A zu lesen – über den Benutzerteil von (Benutzer, Gruppe, Andere)
  • Müssen Apps Verschlüsselung verwenden, um ihre Daten voreinander zu schützen?

Akzeptierte Antwort:

Die wörtliche Antwort lautet, dass es keine nicht vertrauenswürdige Anwendung gibt, die unter Ihrem Konto ausgeführt wird. Wenn Sie eine nicht vertrauenswürdige Anwendung ausführen möchten, führen Sie sie unter einem anderen Konto oder in einer virtuellen Maschine aus.

Typische Desktop-Betriebssysteme wie Unix und Windows und typische mobile Betriebssysteme wie Android und iOS haben unterschiedliche Sicherheitsmodelle. Unix ist ein Mehrbenutzer-Betriebssystem mit gegenseitig nicht vertrauenswürdigen Benutzern. Anwendungen gelten als vertrauenswürdig:Alle Anwendungen eines Benutzers laufen im selben Sicherheitskontext. Dienste , sind dagegen etwas weniger vertrauenswürdig:Sie werden normalerweise unter einem dedizierten Konto ausgeführt, um die Auswirkungen im Falle einer Sicherheitslücke zu verringern.

Es gibt zwei Hauptgründe, warum das Unix-Sicherheitsmodell so funktioniert:

  • Ein negativer Grund ist die Geschichte:Als Unix entworfen wurde, kamen Anwendungen von einer kleinen Gruppe von Programmierern und wurden durch den Ruf des Anbieters unterstützt oder als Quellcode bereitgestellt oder beides. Backdoors wurden in Anwendungen selten gefürchtet. Außerdem kommunizierten nur wenige Anwendungen über das Netzwerk, sodass es relativ wenige Möglichkeiten gab, Schwachstellen auszulösen und auszunutzen. Daher gab es keinen starken Anreiz, Anwendungen voneinander zu isolieren.
  • Ein positiver Grund ist die Funktionalität:Das Isolieren von Anwendungen macht vieles unmöglich. Wenn jede Anwendung ihren eigenen Datenbereich hat, erschwert dies das Teilen von Daten zwischen Anwendungen. Auf einem typischen Unix-System ist es üblich, dass dieselben Daten von mehreren Anwendungen verarbeitet werden. Dies gilt insbesondere, da Unix keine klare Trennung zwischen „Anwendungen“ und „dem Betriebssystem“ kennt. Ein Webbrowser ist eine Anwendung. Eine Datei nicht in das gewünschte Verzeichnis herunterladen zu können, weil der Browser auf sein eigenes Verzeichnis beschränkt ist, ist ärgerlich. Das Programm, das Menüs und Symbole anzeigt, wenn Sie sich anmelden, ist ebenfalls eine Anwendung auf der gleichen Grundlage. Dies gilt auch für Dateimanager, die per Definition Zugriff auf alle Ihre Dateien benötigen. Ebenso die Shells und andere Interpreter, die überall Skripte ausführen. Wenn Sie ein Dokument aus einem Textverarbeitungsprogramm drucken, kann dies eine Anwendung beinhalten, um das Dokument in ein druckbares Format zu konvertieren, und eine andere Anwendung, um die Daten an den Drucker zu senden.

Obwohl es heute viel mehr Anwendungsautoren gibt als vor 40 Jahren, werden Anwendungen in der Regel immer noch über vertrauenswürdige Kanäle vertrieben, die eine Reputationsangabe enthalten. (Dies gilt deutlich mehr für Linux als für Windows, was einer der Gründe dafür ist, warum Viren unter Windows häufiger vorkommen.) Wird eine Anwendung mit einer Hintertür gefunden, würde sie umgehend aus den Linux-Software-Repositories gezogen werden.

Verwandte:Debian – Größe der Root-Partition ändern, ohne Linux zu deinstallieren und neu zu installieren (oder Daten zu verlieren)?

Mobile Betriebssysteme wurden unter Berücksichtigung verschiedener Bedrohungen entwickelt. Sie wurden für Einzelbenutzersysteme entwickelt, aber mit Anwendungen, die aus völlig nicht vertrauenswürdigen Quellen stammen.

Die Anwendungsisolierung beginnt sich auf Desktop-Unix-Systemen auszubreiten. Einige Distributionen führen bestimmte Programme unter Sicherheitsframeworks wie AppArmor oder SELinux aus, die die Möglichkeiten der Anwendung einschränken. Der Preis dieser Sicherheitseinschränkungen besteht darin, dass sie manchmal wünschenswerte Verwendungen unmöglich machen, zum Beispiel verhindern, dass eine eingeschränkte Anwendung Dateien in bestimmten Verzeichnissen öffnet.

Eine Verschlüsselung wäre völlig nutzlos. Die Verschlüsselung schützt nur Daten während der Übertragung (über das Netzwerk) oder im Ruhezustand (auf einer Festplatte gespeichert) schützt es keine Daten auf einem Live-System – wenn Subsystem A seine Daten entschlüsselt, ist es Sache des Betriebssystems, Subsystem B daran zu hindern, den Zugriff auf die entschlüsselten Daten zu verhindern, und daher spielt es keine Rolle, ob die Daten wurden von A entschlüsselt oder unverschlüsselt gespeichert. Das Betriebssystem kann Daten verschlüsseln, aber nur, um sie zu schützen, falls das Speichermedium gestohlen wird.

Wenn Sie Code ausführen möchten, dem Sie nicht vertrauen, führen Sie ihn am besten in einer virtuellen Maschine aus. Geben Sie der virtuellen Maschine nur Zugriff auf die Dateien, die die Anwendung benötigt (geben Sie z. B. Ihr Home-Verzeichnis nicht frei).


Linux
  1. So verschlüsseln Sie Dateien mit gocryptfs unter Linux

  2. So benennen Sie Dateien unter Linux um

  3. So verbessern Sie die Startzeit von Anwendungen unter Linux

  4. So installieren Sie die Spotify-Anwendung unter Linux

  5. So komprimieren Sie mehrere Dateien unter Linux

So kürzen Sie (leere) Dateien in Linux

So zählen Sie Dateien im Verzeichnis in Linux

So defragst du dein Linux-System

So benennen Sie eine Datei (en) in Linux um

So komprimieren Sie eine Datei unter Linux

So erstellen Sie eine passwortgeschützte Zip-Datei oder Verzeichnisse in Linux