Introducción
Los sistemas de control de acceso obligatorio (MAC), como AppArmor y SELinux, permiten a los administradores de sistemas conceder o denegar el acceso a los recursos y sistemas de control integrados en el kernel de Linux. Si bien ambos realizan las mismas tareas, estos sistemas funcionan de manera diferente y ofrecen varias funciones.
Este artículo explica las diferencias entre AppArmor y SELinux y muestra las características principales de los dos sistemas.
AppArmor frente a SELinux
Tanto SELinux como AppArmor brindan herramientas de seguridad que aíslan las aplicaciones y limitan el acceso a un atacante que haya comprometido una parte del sistema.
AppArmor funciona otorgando acceso primero y luego aplicando restricciones. SELinux, sin embargo, restringe el acceso a todas las aplicaciones de forma predeterminada y otorga acceso solo a los usuarios que presentan las certificaciones adecuadas.
Los dos sistemas tienen muchas características en común pero también algunas diferencias:
Punto de comparación | AppArmor | SELinux |
---|---|---|
Control de acceso | Utiliza perfiles de seguridad basados en rutas. | Utiliza políticas de seguridad basadas en etiquetas de archivos. |
Disponibilidad | Disponible para cualquier distribución, pero se usa principalmente en SUSE y Ubuntu. | Disponible para cualquier distribución, pero se usa principalmente en sistemas RHEL/Fedora. |
Dificultad para aprender | Una curva de aprendizaje más corta, más fácil de configurar y administrar. | Más complejo y menos intuitivo. |
Verificación independiente | Posible. | No es posible. |
Requiere una configuración compleja | No. | Sí. |
MLS/MCS | No. | Sí. |
Impacto en el rendimiento del sistema | Ninguno, pero el tiempo de inicio es más largo. | Ninguno. |
Reglas de política | Carece de flexibilidad. | Flexible. |
Nivel de control | Medio. | Alto. |
AppArmor
AppArmor es un práctico módulo de seguridad de Linux que se incluye de forma predeterminada con Ubuntu desde la versión 7.10. El módulo permite a los desarrolladores restringir el uso de archivos específicos por parte de las aplicaciones. Por lo tanto, AppArmor previene cualquier daño a las aplicaciones potencialmente vulnerables y protege el software fácil de explotar, como los servidores web.
El módulo utiliza perfiles de seguridad para determinar qué permisos requiere la aplicación. Los perfiles son archivos de texto que se cargan en el núcleo, normalmente al arrancar.
AppArmor aplica dos tipos principales de reglas en los perfiles:
- Entradas de ruta . Determinan a qué archivos puede acceder una aplicación.
- Entradas de capacidad . Estas reglas especifican los privilegios que puede usar un proceso confinado.
Los perfiles están diseñados para confinar aplicaciones específicas y funcionan en dos modos. en el
- Modo de quejas . En este modo, el sistema informa sobre los intentos de infracción de la política, pero no aplica las reglas.
- Modo de aplicación . En el modo Enforce, se inspecciona el nuevo perfil y se detienen todas las infracciones.
AppArmor consta de los siguientes componentes:
- Analizador de servidores . Escanea puertos y localiza aplicaciones escuchándolos automáticamente. También detecta aplicaciones sin perfiles y aquellas que AppArmor necesita confinar.
- Generador de perfiles . Un proceso estático que analiza aplicaciones y crea una plantilla de perfil.
- Optimizador . Este componente registra y recopila eventos en el perfil de comportamiento normal.
Además de Ubuntu, AppArmor se ejecuta en Debian, SUSE Enterprise Server, distribuciones de OpenSUSE y otras distribuciones de forma predeterminada. Para verificar el estado del módulo, ejecute lo siguiente:
sudo apparmor_status
El resultado muestra que AppArmor está activo en el sistema. El comando también imprime la lista de perfiles instalados y los procesos confinados activos.
Ventajas de AppArmor
Las principales ventajas de AppArmor son la simplicidad y la corta curva de aprendizaje. Este módulo es mucho menos complejo que SELinux, por lo que es más fácil de configurar y administrar.
La herramienta funciona directamente con perfiles (archivos de texto) para el control de acceso y las operaciones con archivos son más sencillas. Esta función hace que AppArmor sea más fácil de usar que SELinux con sus políticas de seguridad.
Gracias a la implementación basada en rutas, AppArmor protege cualquier archivo del sistema y permite especificar reglas incluso para archivos que aún no existen. El modo de aprendizaje del programa hace que AppArmor se adapte a los cambios y aplica el comportamiento preferido de la aplicación.
Inconvenientes de AppArmor
Con AppArmor, más de una ruta puede hacer referencia a la misma aplicación. Estas diferentes rutas al mismo ejecutable crean múltiples perfiles para una aplicación, lo que es un posible problema de seguridad.
Además, la mayor fortaleza de AppArmor, la simplicidad, también es la razón por la cual el programa se considera menos seguro.
AppArmor no tiene seguridad multinivel (MLS) ni seguridad multicategoría (MCS). La falta de compatibilidad con MCS hace que AppArmor sea casi ineficaz en entornos que requieren MLS.
Otro inconveniente es que la política de carga también tarda más, por lo que el sistema se inicia más lentamente.
SELinux
SELinux (Security Enhanced Linux) es un módulo de seguridad de Linux integrado en el kernel de Linux. El sistema brinda a los administradores de sistemas más control sobre quién tiene acceso a los recursos.
SELinux asigna etiquetas a los archivos, procesos y puertos del sistema. Tipo de etiqueta es vital para las políticas específicas, mientras que la aplicación de tipo es el segundo concepto más crucial en SELinux.
El etiquetado sirve como un mecanismo de agrupación que otorga a los archivos y procesos diferentes tipos de etiquetas. El modelo de seguridad de aplicación de tipo ayuda a SELinux a determinar si un proceso con un tipo de etiqueta en particular tiene acceso a un archivo con otro tipo de etiqueta.
El sistema restringe el acceso de forma predeterminada (a diferencia de AppArmor). Los usuarios deben estar correctamente configurados para acceder a cualquier recurso.
SELinux cobra decisiones anteriores en el Caché de vectores de acceso (AVC ), por ejemplo, permitir o restringir el acceso. Las decisiones de cobro aceleran el proceso de control de acceso. Por ejemplo, si una aplicación intenta acceder a un archivo, SELinux comprueba el AVC y permite o deniega el acceso según la decisión anterior.
RHEL, CentOS y Fedora tienen SELinux instalado o disponible de forma predeterminada. Para conocer el estado actual de SELinux, ejecute lo siguiente:
sudo sestatus
Nota :Siga nuestras guías para habilitar SELinux en CentOS o para deshabilitar SELinux en CentOS.
Ventajas de SELinux
A pesar de (y debido a) las políticas complejas, SELinux se considera la opción más segura para la seguridad de Linux.
El etiquetado y la aplicación de tipos permiten que SELinux otorgue acceso solo si una regla de política lo permite. Este proceso implementa un control de acceso más robusto y profundo.
Al ser compatible con MLS, SELinux ofrece mejores funciones de acceso. Por ejemplo, uno de los principios básicos de MLS es que los usuarios solo pueden leer archivos en su nivel de sensibilidad e inferior. Sin embargo, con SELinux, los administradores de sistemas pueden leer y escribir archivos en sus propios niveles de sensibilidad y en niveles más bajos.
De forma predeterminada, el sistema separa los archivos entre sí y del host y mantiene la separación. Por ejemplo, un archivo tiene diferentes conjuntos de permisos para:
- El propietario (usuario).
- Un grupo sosteniendo el archivo.
- Otros usuarios/grupos accediendo al archivo.
Nota :El almacenamiento en caché de las decisiones de acceso también es un beneficio significativo, ya que el proceso mejora la eficiencia.
Inconvenientes de SELinux
SELinux proporciona a los administradores de sistemas una herramienta de control de acceso versátil. Sin embargo, este módulo de seguridad tiene algunas desventajas.
SELinux es bastante difícil de aprender, configurar y administrar. Si bien el programa controla de manera eficiente el acceso a las aplicaciones y los archivos, la solución de problemas potenciales es difícil para los principiantes. No siempre es fácil determinar qué significa realmente un mensaje de error y dónde buscar el problema. En general, SELinux no es fácil de usar y los administradores sin experiencia pueden enfrentar una curva de aprendizaje pronunciada.
Importante :SELinux a menudo niega una acción si los archivos están etiquetados incorrectamente.
Conclusión
Después de leer este texto, conoce las ventajas y desventajas de SELinux y AppArmor. Ambos sistemas ofrecen diferentes enfoques para la seguridad de Linux y protegen las máquinas contra el acceso no autorizado y la modificación de los recursos del sistema.
Es posible que desee obtener información sobre otras formas de proteger su sistema, como usar copias de seguridad inmutables para combatir el ransomware o diferentes procedimientos para la protección de la base de datos.