SELinux

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 1 de junio de 2018; las comprobaciones requieren 9 ediciones .
SELinux

GUI de administración de SELinux en Fedora 8
Tipo de La seguridad
Desarrollador sombrero rojo
Escrito en xi
Sistema operativo Componente del kernel de Linux
Primera edición 1998
ultima versión
candidato de lanzamiento
Licencia GNU GPL
Sitio web selinuxproject.org
 Archivos multimedia en Wikimedia Commons

SELinux ( English  Security-Enhanced Linux - Linux con seguridad mejorada) es una implementación de un sistema de control de acceso forzado que puede funcionar en paralelo con un sistema de control de acceso selectivo clásico .

Breve descripción

Al permanecer dentro de un sistema de control de acceso selectivo , el sistema operativo tiene una limitación fundamental en términos de compartir el proceso de acceso a los recursos: el acceso a los recursos se basa en los derechos de acceso de los usuarios. Estos son derechos clásicos rwxen tres niveles: propietario, grupo de propietarios y otros.

En SELinux, los derechos de acceso los determina el propio sistema utilizando políticas especialmente definidas. Las políticas operan en el nivel de llamada del sistema y son aplicadas por el propio kernel (pero también pueden implementarse en el nivel de la aplicación). SELinux opera según el modelo de seguridad clásico de Linux. En otras palabras, no puede permitir a través de SELinux lo que está prohibido a través de permisos de usuario o grupo. Las políticas se describen utilizando un lenguaje flexible especial para describir las reglas de acceso. En la mayoría de los casos, las reglas de SELinux son "transparentes" para las aplicaciones y no se requiere ninguna modificación. Algunas distribuciones incluyen políticas listas para usar en las que los derechos se pueden determinar en función de una coincidencia entre los tipos de proceso (sujeto) y archivo (objeto); este es el mecanismo principal de SELinux. Otras dos formas de control de acceso son el acceso basado en roles y el acceso basado en seguridad. Por ejemplo, " DSP ", "secreto", "ultrasecreto", " OV ".

El tipo de política más fácil de trabajar y mantener es la llamada política "dirigida" desarrollada por el proyecto Fedora . La política describe más de 200 procesos que pueden ejecutarse en el sistema operativo. Todo lo que no está descrito por la política de "objetivo" se realiza en el dominio (con tipo) unconfined_t. Los procesos que se ejecutan en este dominio no están protegidos por SELinux. Así, todas las aplicaciones de los usuarios de terceros funcionarán sin problemas en un sistema con una política “dirigida” dentro de los permisos clásicos de un sistema de control de acceso selectivo.

Además de la política "dirigida", algunas distribuciones incluyen una política con un modelo de seguridad en capas (compatible con el modelo Bell-LaPadula ).

La tercera opción de política es "estricta". Aquí se aplica el principio “lo que no está permitido está prohibido” ( principio de mínimos derechos ). La política se basa en la Política de referencia de Tresys .

SELinux fue desarrollado por la Agencia de Seguridad Nacional de EE. UU. , y luego su código fuente estuvo disponible para su descarga.

Texto original  (inglés)[ mostrarocultar] Del equipo de Linux con seguridad mejorada de la NSA :

NSA Security-enhanced Linux es un conjunto de parches para el kernel de Linux y algunas utilidades para incorporar una arquitectura de control de acceso obligatorio (MAC) sólida y flexible en los principales subsistemas del kernel. Proporciona un mecanismo para hacer cumplir la separación de la información en función de los requisitos de confidencialidad e integridad, lo que permite abordar las amenazas de manipulación y elusión de los mecanismos de seguridad de la aplicación y permite limitar el daño que pueden causar las aplicaciones maliciosas o defectuosas. Incluye un conjunto de archivos de configuración de políticas de seguridad de muestra diseñados para cumplir objetivos de seguridad comunes y de propósito general".

SELinux está incluido en el kernel de Linux (desde la versión 2.6).

Además, SELinux requiere versiones modificadas de algunas utilidades ( ps , ls y otras) que brindan soporte para nuevas funciones del kernel y soporte del sistema de archivos.

Conceptos básicos

Descripción general de LSM

LSM ( Módulos de seguridad de Linux en inglés -  Módulos de seguridad de Linux) se implementan en forma de módulos de kernel cargables. Principalmente, los LSM se utilizan para admitir el control de acceso. Por sí mismos, los LSM no proporcionan al sistema ninguna seguridad adicional, sino que solo sirven como una especie de interfaz para soportarlo. El sistema LSM proporciona la implementación de funciones de interceptor, que se almacenan en una estructura de política de seguridad que cubre las principales operaciones que deben protegerse. El control de acceso al sistema se realiza gracias a las políticas configuradas.

Métodos de control de acceso

La mayoría de los sistemas operativos tienen funciones y métodos de control de acceso que, a su vez, determinan si una entidad a nivel del sistema operativo (usuario o programa) puede acceder a un recurso en particular. Se utilizan los siguientes métodos de control de acceso:

Arquitectura interna de SELinux

Al comienzo de su aparición, SELinux se implementó como un parche. En este caso, no fue fácil configurar la política de seguridad. Con la llegada de los mecanismos LSM, la configuración y administración de la seguridad se ha simplificado enormemente (se han separado los mecanismos de cumplimiento de políticas y seguridad), SELinux se ha implementado como complementos del núcleo. Antes de acceder a los objetos internos del sistema operativo, se cambia el código del kernel. Esto se implementa utilizando funciones especiales ( interceptores de llamadas del sistema ) , las llamadas funciones de gancho .  Las funciones de los interceptores se almacenan en alguna estructura de datos, su finalidad es realizar determinadas acciones de seguridad en base a una política preestablecida. El módulo en sí incluye seis componentes principales: un servidor de seguridad; acceder a la memoria caché vectorial ( ing. Acceder a la memoria caché vectorial , AVC); tablas de interfaz de red; código de señal de notificación de red; su sistema de archivos virtual (selinuxfs) y la implementación de funciones interceptoras.  

Características

Implementaciones

SELinux ha estado disponible comercialmente como parte de Red Hat Enterprise Linux desde la versión 4.

Distribuciones de Linux compatibles en la comunidad:

  1. CentOS
  2. Debian
  3. ArchLinux (no oficial)
  4. Fedora Core desde la versión 2
  5. Gentoo endurecido
  6. openSUSE desde la versión 11.1
  7. ubuntu
  8. ROSA
  9. ALT Linux SPT 6

Otros sistemas

SELinux es uno de varios enfoques posibles para limitar las acciones realizadas por el software instalado.

El sistema AppArmor hace lo mismo que SELinux. Una diferencia importante entre estos sistemas es la forma en que se identifican los objetos del sistema de archivos: AppArmor usa la ruta completa, SELinux profundiza usando el inodo .

Estas diferencias aparecen en dos casos:

Estos problemas se pueden evitar en ambos sistemas aplicando la política predeterminada "sin acceso".

Véase también

Notas

  1. https://github.com/SELinuxProject/selinux/commit/ee1809f453038f7f34719f3fbd448893853d473f
  2. Versión 3.4 - 2022.

Literatura

Enlaces