jueves, 26 de septiembre de 2013

¿Qué es SELinux?

Según Wikipedia, SELinux (del inglés Security-Enhanced Linux, Linux con Seguridad Mejorada) es una característica de seguridad de Linux que provee una variedad de políticas de seguridad, incluyendo controles de acceso del estilo de los del Departamento de Defensa de Estados Unidos, a través del uso de módulos de Seguridad en el núcleo Linux. No es una distribución de Linux, sino un conjunto de modificaciones que puede ser aplicado a un sistema tipo Unix como Linux y BSD.

Pero más allá de esta simple definición, SELinux es un mecanismo de seguridad basado en control de acceso mandatorio (MAC) implementado en el kernel.

La lista de control de accesos (ACL) o el sistema de permisos tradicional en los sistemas tipo Unix, son conocidos por proveer un control de acceso discrecional (DAC). Esto implica que usuarios y programas pueden llegar a tener permisos insguros o ganar acceso a partes del sistema a las que no necesitan para su correcto funcionamiento.

En consecuencia los SysAdmins no tienen manera de controlar a los usuarios, ya que uno podría asignar  permisos de lectura, escritura y ejecución a archivos sensibles como las llaves ssh ubicadas en ~/.ssh. Inclusive un proceso podría cambiar las propiedades de seguridad de un fichero, provocando que terceros desconocidos tengan acceso a este. Y otras aplicaciones podrían tener acceso a archivos sin razón lógica.

Imagen: nixCraft

Estos son los problemas que SELinux vino a resolver. Siguiendo el modelo de privilegios mínimos, en modo enforcing, todo es denegado y una serie de políticas son definidas para dar a cada elemento del sistema (un servicio, programa o usuario) solo el acceso requerido para funcionar. Por lo que si uno de estos elementos intenta acceder o modificar un recurso no necesario para su funcionamiento, el acceso es denegado y dicha acción es guardada en una bitácora o log.

Imagen: Centos 5 documentation

En una próxima entrega veremos una guía de cómo configurar SELinux efectivamente, ya que con mucha frecuencia, al terminar una instalación nueva de GNU/Linux, lo primero que hacemos es deshabilitarlo y dejar nuestro sistema expuesto.

No hay comentarios:

Publicar un comentario