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