Dedizierter Benutzer vs. Selinux

Dedizierter Benutzer vs. Selinux

Was sind die Vor- und Nachteile der Ausführung eines Prozesses mit einem dedizierten (nicht Root-)Benutzer im Vergleich zu SELinux (wo ein SE-Benutzer an einen Linux-Benutzer gebunden sein kann)?

Antwort1

Kurze Antwort: Der Vorteil der Verwendung eines dedizierten Selinux-Benutzers für jeden Dienst liegt in der erhöhten Sicherheit bzw. der Trennung von Berechtigungen, die dadurch ermöglicht wird. Andererseits handelt es sich um eine invasive Änderung, die bei den meisten Linux-Distributionen nicht standardmäßig angewendet wird.

Aus diesem Grund werden Dienste häufig mit einem dedizierten Benutzerkonto ausgeführt (z. B.: httpd) und sind in dem, was sie über dedizierte Selinux-Profile abrufen/abhören können, weiter eingeschränkt, ohne jedoch bestimmte Selinux-Benutzer/-Rollen einzubeziehen (z. B.: httpd_twird mit der systemeigenen Standardbenutzerrolle system_uund nicht mit einer dedizierten ausgeführt). Dies wird getan, um die Systemsicherheit zu erhöhen, ohne zu sehr in die Arbeitsweise normaler Benutzer einzugreifen.

Lange Antwort:Der Hauptunterschied besteht zwischenDiskretionäre Zugriffskontrolle (DAC)UndObligatorische Zugriffskontrolle (MAC)

Das erste (DAC) ist das traditionelle Unix-Berechtigungssystem, bei dem ein Benutzer die Berechtigung aller Dateien ändern kann, die ihm gehören. Darüber hinaus ist eine Anwendung berechtigt, alle Vorgänge auszuführen, die auf der Ebene „normaler Benutzer“ zulässig sind (z. B. das Abhören eines hohen TCP-Ports). Obwohl DAC sehr intuitiv und sinnvoll ist, lässt es die Möglichkeit einer Fehlkonfiguration durch den Benutzer (z. B. versehentliches Gewähren des Zugriffs auf eine vertrauliche Datei) oder einer Schadsoftware (z. B. ein Pufferüberlauf, der einen Shellcode startet, der einen Abhörport für die Fernsteuerung des Zielhosts öffnet) offen.

Geben Sie MAC ein, wo nur der Systemadministrator die Regeln festlegt, was getan werden kann und was nicht. Beispielsweise kann der Systemadministrator über Selinux einschränken, welche Dateien der Benutzer (dem die Dateien gehören!) ändern darf oder bei welchen Dateien das „andere“ Bit gesetzt werden darf. Auf ähnliche Weise kann einer Anwendung das Abhören von allem außer einer eingeschränkten Anzahl von Ports untersagt werden, unabhängig vom standardmäßigen Unix-Berechtigungssystem.

Von hier aus ist es leicht zu erkennen, wie ein bestimmtes System auf DAC oder MAC voll integriert sein kann. Im ersten Fall hat der Benutzer die vollständige Kontrolle darüber, was es tun kann, abgesehen von den Dingen, die traditionell auf Root beschränkt sind. Ein „einfaches“ (sprich: ohne Selinux/Apparmor/Grsec/was auch immer) Linux-System ist ein gutes Beispiel für ein reines DAC-Setup. Am anderen Extrem, auf einem reinen MAC-SystembeliebigEin Benutzer kann potenziell privilegiert sein, ohne wirklich die Möglichkeit zu haben, mit vertraulichen Informationen zu interagieren (in einem solchen System kann nur ein speziell ausgewiesenes „echtes“ Root-Konto die MAC-Richtlinien selbst ändern).

Das gesagt,DAC und MAC sind praktisch orthogonal: Sie können (und werden oft) beide gleichzeitig verwendet, um die allgemeine Systemsicherheit zu stärken.Dies ist der Hauptgrund für die targetedSelinux-Richtlinie: Da die Umwandlung von Linux in ein reines MAC-System zu invasiv wäre (und in 99 % der Fälle auch nicht wirklich nötig), bietet RedHat eine Richtlinie an, diewendet selektiv restriktivere Regeln auf die sensibelsten Dienste an, Interaktive Benutzer bleiben davon weitgehend unberührt.Aus diesem Grund werden Benutzern standardmäßig die unconfined_uSelinux-Benutzer zugewiesen, die wiederum über system_rRollen verfügen unconfined_r.

Antwort2

Dedizierter Benutzer:

Ein dedizierter Benutzer ist ein Konto, das ausschließlich für einen bestimmten Zweck oder Dienst verwendet wird. Diese Art von Benutzerkonto wird im Allgemeinen erstellt, um eine sichere Umgebung für eine bestimmte Funktion oder einen bestimmten Dienst bereitzustellen, z. B. das Ausführen eines bestimmten Dienstes oder einer bestimmten Anwendung.

SELinux:

SELinux (Security-Enhanced Linux) ist ein Sicherheitsmodul des Linux-Kernels, das einen Mechanismus zur Unterstützung von Sicherheitsrichtlinien für die Zugriffskontrolle, einschließlich obligatorischer Zugriffskontrollen (MAC), bietet. Es soll das System und seine Anwendungen vor böswilligen oder versehentlichen Schäden durch Benutzer, Prozesse oder Anwendungen schützen. Es soll außerdem eine sichere Umgebung für Systemadministratoren und Benutzer bieten, indem der Zugriff auf Systemressourcen und Anwendungen eingeschränkt wird.

Vorteile der Prozessausführung mit dediziertem Benutzer:

  • Erhöhte Sicherheit:Indem Sie einen Prozess mit einem dedizierten Benutzer ausführen, können Sie den Zugriff des Prozesses auf bestimmte Ressourcen einschränken und den potenziellen Schaden begrenzen, den ein kompromittierter Prozess verursachen kann.
  • Verbesserte Leistung:Dedizierte Benutzer können zur Verbesserung der Systemleistung beitragen, indem sie den Zeitaufwand von Root-Benutzern für sicherheitsrelevante Aufgaben reduzieren.
  • Vereinfachte Wartung:Dedizierte Benutzer können die Systemwartung vereinfachen, indem sie isolierte Kontexte für jeden Prozess bereitstellen, sodass Sie etwaige Probleme schnell identifizieren und beheben können.

Nachteile beim Ausführen von Prozessen mit dediziertem Benutzer:

  • Erhöhte Komplexität:Das Ausführen eines Prozesses mit einem dedizierten Benutzer kann die Systemadministration komplexer machen, da Sie die Berechtigungen und Privilegien des Benutzers verwalten müssen.
  • Eingeschränkte Möglichkeiten:Dedizierten Benutzern fehlen möglicherweise die für manche Prozesse erforderlichen Berechtigungen, beispielsweise der Zugriff auf privilegierte Systemressourcen.

Vorteile der Prozessausführung mit SELinux:

  • Erhöhte Sicherheit:SELinux bietet einen leistungsstarken Zugriffskontrollmechanismus, mit dem Prozesse isoliert und das Schadenspotenzial eines bösartigen Prozesses begrenzt werden kann.

  • Verbesserte Leistung:SELinux kann zur Verbesserung der Systemleistung beitragen, indem es den für sicherheitsrelevante Aufgaben aufgewendeten Zeitaufwand begrenzt.

  • Erhöhte Flexibilität:SELinux ermöglicht es Benutzern, einen SE-Benutzer an einen Linux-Benutzer zu binden und so eine feinere Kontrolle über Zugriff und Berechtigungen zu ermöglichen.

Nachteile der Prozessausführung mit SELinux:

  • Erhöhte Komplexität:SELinux kann komplex und schwierig zu konfigurieren sein, was die Systemadministration erschwert.
  • Eingeschränkte Kompatibilität:SELinux ist nicht mit allen Anwendungen kompatibel, was seine Nützlichkeit in bestimmten Kontexten einschränkt.

verwandte Informationen