Usuario dedicado vs selinux

Usuario dedicado vs selinux

¿Cuáles son las ventajas y desventajas de ejecutar un proceso con un usuario dedicado (no root) versus SELinux (donde un usuario SE puede estar vinculado a un usuario de Linux)?

Respuesta1

Respuesta corta: La ventaja de utilizar un usuario de Selinux dedicado para cada servicio es la mayor seguridad/separación de privilegios que permite. Por otro lado, es un cambio invasivo que no se aplica de forma predeterminada en la mayoría de las distribuciones de Linux.

Por esta razón, los servicios a menudo se ejecutan con una cuenta de usuario dedicada (es decir: httpd) y están aún más restringidos en cuanto a lo que pueden acceder/escuchar a través de perfiles de Selinux dedicados, pero sin involucrar usuarios/roles de Selinux específicos (es decir, se ejecuta con el usuario httpd_tpredeterminado del sistema). system_upapel más que dedicado). Esto se hace para aumentar la seguridad del sistema sin ser demasiado invasivo en la forma en que trabajan los usuarios normales.

Respuesta larga:la diferencia clave es la que existe entreControl de acceso discrecional (DAC)yControl de acceso obligatorio (MAC)

El primero (DAC) es el sistema de permisos tradicional de Unix, donde un usuario puede cambiar los permisos de todos los archivos que posee. Además, una aplicación tiene derecho a realizar cualquier operación otorgada en el nivel de "usuario normal" (por ejemplo, escuchar en un puerto TCP alto). Si bien es muy intuitivo y razonable, el DAC en sí deja abierta la puerta a una mala configuración por parte del usuario (es decir, dar acceso inadvertidamente a un archivo confidencial) o software malicioso (es decir, una saturación del búfer que inicia un código shell que abre un puerto de escucha para el control remoto del host objetivo).

Ingrese MAC, donde solo el administrador del sistema impone las reglas de lo que se puede o no hacer. Por ejemplo, el administrador del sistema puede, a través de selinux, restringir qué archivos el usuario (¡quién posee los archivos!) puede cambiar, o qué archivos pueden tener el conjunto de bits "otro". De manera similar, se puede impedir que una aplicación escuche en cualquier cosa que no sea un conjunto restringido de puertos, independientemente del sistema de permisos predeterminado de Unix.

Desde aquí, es fácil ver cómo un sistema específico puede funcionar con DAC o MAC. En el primer caso, el usuario tiene control total sobre lo que puede hacer, salvo las cosas tradicionalmente restringidas al root. Un sistema Linux "simple" (léase: sin selinux/apparmor/grsec/lo que sea) es un buen ejemplo de una configuración solo DAC. En el otro extremo, en un sistema sólo MACcualquierEl usuario puede ser potencialmente privilegiado sin tener realmente ninguna posibilidad de interactuar con información confidencial (en un sistema de este tipo, sólo una cuenta raíz "verdadera" específicamente designada puede modificar las políticas MAC).

Dicho eso,DAC y MAC son efectivamente ortogonales: pueden usarse (y a menudo se usan) al mismo tiempo para fortalecer la seguridad general del sistema.Este es el razonamiento clave detrás de la targetedpolítica de selinux: como transformar Linux en un sistema sólo MAC sería demasiado invasivo (y realmente innecesario en el 99% de los casos), RedHat ofrece una política queaplica selectivamente normas más restrictivas a los servicios más sensibles, dejando a los usuarios interactivos prácticamente sin verse afectados.Esta es la razón por la que los usuarios, de forma predeterminada, están asignados al unconfined_uusuario de Selinux que, a su vez, tiene system_rroles unconfined_r.

Respuesta2

Usuario dedicado:

Un usuario dedicado es una cuenta utilizada exclusivamente para un propósito o servicio específico. Este tipo de cuenta de usuario generalmente se crea para proporcionar un entorno seguro para una función o servicio particular, como ejecutar un servicio o aplicación específica.

SELinux:

SELinux (Security-Enhanced Linux) es un módulo de seguridad del kernel de Linux que proporciona un mecanismo para admitir políticas de seguridad de control de acceso, incluidos los controles de acceso obligatorios (MAC). Está diseñado para proteger el sistema y sus aplicaciones de daños maliciosos o accidentales causados ​​por usuarios, procesos o aplicaciones. También pretende proporcionar un entorno seguro para los administradores y usuarios del sistema restringiendo el acceso a los recursos y aplicaciones del sistema.

Ventajas de ejecutar el proceso con un usuario dedicado:

  • Seguridad incrementada:Al ejecutar un proceso con un usuario dedicado, puede restringir el acceso del proceso a recursos específicos y limitar el daño potencial que puede causar un proceso comprometido.
  • Desempeño mejorado:Los usuarios dedicados pueden ayudar a mejorar el rendimiento del sistema al reducir la cantidad de tiempo que dedican los usuarios root a tareas relacionadas con la seguridad.
  • Mantenimiento simplificado:Los usuarios dedicados pueden simplificar el mantenimiento del sistema al proporcionar contextos aislados para cada proceso, lo que le permite identificar y abordar rápidamente cualquier problema.

Desventajas de ejecutar el proceso con un usuario dedicado:

  • Mayor complejidad:Ejecutar un proceso con un usuario dedicado puede agregar complejidades a la administración del sistema, ya que debe administrar los permisos y privilegios del usuario.
  • Capacidades limitadas:Los usuarios dedicados pueden carecer de las capacidades requeridas por algunos procesos, como el acceso a recursos privilegiados del sistema.

Ventajas de ejecutar procesos con SELinux:

  • Seguridad incrementada:SELinux proporciona un poderoso mecanismo de control de acceso que se puede utilizar para aislar procesos y limitar el daño potencial de un proceso malicioso.

  • Desempeño mejorado:SELinux puede ayudar a mejorar el rendimiento del sistema limitando la cantidad de tiempo dedicado a tareas relacionadas con la seguridad.

  • Mayor flexibilidad:SELinux permite a los usuarios vincular un usuario de SE con un usuario de Linux, lo que permite un control más detallado sobre el acceso y los privilegios.

Desventajas de ejecutar procesos con SELinux:

  • Mayor complejidad:SELinux puede ser complejo y difícil de configurar, lo que dificulta la administración del sistema.
  • Compatibilidad limitada:SELinux no es compatible con todas las aplicaciones, lo que limita su utilidad en ciertos contextos.

información relacionada