AppArmor y SELinux (Introducción)

CiberSeguridad 23 de jun. de 2023

Una de las prioridades de ciberseguridad a cumplir en cualquier entorno, es reducir la superficie de exposición, es decir limitar el número de recursos y servicios por los que un atacante puede conseguir entrar a nuestros sistemas.

En GNU/Linux hay dos herramientas, AppArmor y SELinux que nos permiten que aunque tengamos expuestos ciertos servicios, podemos securizar estos con una politica de "cero confianza".

AppArmor y SELinux comparten la característica de ser módulos de seguridad del kernel, aunque tienen a su vez ciertas características que les diferencian bastante.

SELinux se integró con el Kernel de Linux 2.6 en el año 2003, AppArmor se creó como alternativa a SELinux  como código cerrado, pero en 2006 fue publicado como código abierto.

Antes de seguir con esta herramientas os dejo una pequeña tabla comparativa:

Ventajas de SELinux Ventajas de AppArmor
SELinux proporciona un control muy detallado sobre el acceso a los recursos del sistema. AppArmor es más fácil de configurar e implementar que SELinux.
Le permite especificar diferentes políticas de seguridad para diferentes usuarios, grupos y procesos. Proporciona un lenguaje de políticas de seguridad más simple e intuitivo.
Es compatible con el control de acceso basado en roles (RBAC), lo que facilita la gestión de políticas de seguridad complejas. Requiere menos mantenimiento porque tiene menos reglas.
Proporciona un enfoque centralizado para la gestión de políticas de seguridad. Tiene un buen rendimiento e impone una sobrecarga mínima en el sistema
Puede proteger contra ataques dirigidos a vulnerabilidades en el kernel de Linux. Se puede utilizar junto con otras medidas de seguridad, como cortafuegos y sistemas de detección de intrusos.
Puede aplicar políticas de control de acceso obligatorio (MAC), que son más seguras que las políticas de control de acceso discrecional (DAC). Proporciona una fuerte protección contra las infracciones de seguridad, incluidas las vulnerabilidades de día cero
Es ampliamente utilizado y ha sido probado exhaustivamente en entornos de producción. Se puede usar para proteger contra software malicioso o comprometido
Su desarrollo original fue corre por cuenta de la NSA (sin documentar nada) y es la comunidad quen los documenta. El mantenedor y desarrollador oficial es Canonical Ltd.
Está disponible en una amplia gama de distribuciones de Linux, como RedHat, Debian, CentOS, Rocky Linux e incluso Android. Está bien documentado y tiene una gran comunidad de usuarios y desarrolladores. Las distribuciones que lo pueden usar son Debian, Ubuntu, SUSE y derivados de todas las anteriores.
Es un software gratuito y de código abierto. Es un software gratuito y de código abierto

Detalles sobre SELinux

Una aplicación supervisada por SELinux posee acceso únicamente a los recursos que necesita, los cuales están descritos en una política de seguridad para dicho proceso.
El acceso a procesos, puertos, archivos y directorios está controlado mediante reglas definidas en dicha política, es decir, el módulo de seguridad del kernel (SELinux), autoriza o deniega todas las operaciones del sistema con base en unas políticas de seguridad que definen por completo qué recursos del sistema pueden acceder las aplicaciones individuales y con qué privilegios.

SELinux implementa una política centrada en los objetos del sistema.
Cada objeto del sistema (proceso, puerto, archivo, directorio,..) se le asigna una etiqueta (contexto de seguridad), que será utilizada por la política de seguridad para determinar el acceso a este.
El contexto de seguridad incluye distintos atributos como la identidad del usuario, rol, tipo, nivel,...

Detalles sobre AppArmor

AppArmor implementa una política centrada en la tarea, lo que significa que los atributos de control de acceso están vinculados a las tareas.
Las reglas con las restricciones para cada aplicación están definidas en los llamadas perfiles de tareas.
​Estos pueden incluir habilidades para manipular ficheros específicos, usar red o montar dispositivos.

​El control de acceso está basado en rutas (de directorios, archivos, puertos,...) que se especifican.
Los programas que no tienen un perfil definido se ejecutan sin restricciones por su parte (solo las restricciones del sistema de permisos UNIX).

Resumen de diferencias entre SELinux y AppArmor

Ambos sistemas usan el principio de "denegación por defecto" (todas las operaciones son denegadas a menos que esté específicamente permitida por la política).
Sin embargo, cada uno lo aplica de distinta manera:

  • AppArmor: Al implementar una política centrada en la tarea, solo aplica el principio para aquellas tareas que controla.
  • SELinux: aplica el principio en todo caso.

En general podemos decir que SELinux facilita un control de acceso de grado más fino que AppArmor. Por otro lado, AppArmor es más fácil de usar que SELinux ya que la configuración es más fácil de realizar (menos extensa).

Fuente: Wikipedia y elaboración propia.

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux