Usar SELinux y AppArmor con Docker: Para Mejorar la Seguridad de los Contenedores
Docker ha revolucionado la forma en que desplegamos y gestionamos aplicaciones. Si bien ofrece flexibilidad y escalabilidad, ejecutar contenedores conlleva sus propios desafíos de seguridad. Para mitigar estos riesgos, aprovechar módulos de seguridad como SELinux (Security-Enhanced Linux) y AppArmor puede proporcionar una capa adicional de seguridad para los contenedores Docker. Este artículo profundizará en la integración de SELinux y AppArmor con Docker, proporcionando una comprensión integral de sus roles, configuraciones y mejores prácticas.
Understanding the Need for Enhanced Security in Docker
Los contenedores comparten el kernel del sistema operativo host, lo que significa que una vulnerabilidad en un contenedor puede comprometer potencialmente todo el sistema. Por defecto, Docker utiliza un conjunto de características de seguridad predeterminadas, incluyendo espacios de nombres de usuario y perfiles seccomp. Sin embargo, estos por sí solos pueden no ser suficientes para entornos de alta seguridad. Aquí es donde entran en juego SELinux y AppArmor.
Panorama de Amenazas
Before diving into SELinux and AppArmor, let’s briefly explore the potential threats faced by Docker containers:
- Escalada de privilegiosLos atacantes podrían explotar vulnerabilidades para obtener permisos elevados, comprometiendo potencialmente el sistema anfitrión.
- Container Breakout: If a container can escape its isolation, it can access resources on the host system.
- Data ExfiltrationLos datos sensibles almacenados en contenedores pueden ser accedidos si no se implementan medidas de seguridad adecuadas.
- Denegación de Servicio: Overloading system resources could lead to service outages.
El papel de SELinux y AppArmor
Both SELinux and AppArmor are Linux kernel security modules aimed at enforcing access controls. They operate on the principle of least privilege, allowing only the necessary permissions for processes to function.
- SELinuxUtiliza controles de acceso obligatorios (MAC) y etiquetas para hacer cumplir las políticas de seguridad basadas en reglas definidas por el administrador del sistema.
- AppArmorPermite a los administradores establecer perfiles por aplicación que determinan los recursos a los que una aplicación puede acceder.
Resumen de SELinuxSELinux (Security-Enhanced Linux) es una implementación de seguridad obligatoria para el kernel de Linux. Originalmente desarrollado por la Agencia de Seguridad Nacional de los Estados Unidos (NSA), SELinux es un proyecto de seguridad de código abierto que implementa políticas de seguridad obligatorias en el kernel de Linux. SELinux es un componente clave de la seguridad de Red Hat Enterprise Linux y proporciona un mecanismo para soportar políticas de seguridad de acceso, incluyendo control de acceso obligatorio (MAC).En Red Hat Enterprise Linux, SELinux proporciona:- Un marco de seguridad obligatoria para el kernel de Linux. - Un conjunto de políticas de seguridad para un sistema base Red Hat Enterprise Linux. - Un conjunto de herramientas y utilidades para administrar y configurar el marco de seguridad y las políticas.SELinux complementa el modelo de seguridad discrecional tradicional de Linux, donde los usuarios y aplicaciones tienen control sobre sus propios archivos y procesos. SELinux agrega una capa adicional de seguridad al imponer reglas de control de acceso obligatorio definidas por el administrador del sistema. Estas reglas determinan qué procesos pueden acceder a qué archivos, directorios y puertos de red, independientemente de los permisos tradicionales de Linux.Las características clave de SELinux incluyen:- Control de acceso obligatorio (MAC): SELinux impone reglas de acceso basadas en políticas de seguridad definidas por el administrador, en lugar de depender únicamente de los permisos tradicionales de Linux. - Etiquetado de objetos: SELinux etiqueta todos los objetos del sistema (archivos, directorios, procesos, etc.) con etiquetas de seguridad que definen su tipo y nivel de confidencialidad. - Políticas de seguridad: SELinux utiliza políticas de seguridad para definir las reglas de acceso entre objetos etiquetados. Estas políticas son altamente configurables y pueden adaptarse a las necesidades específicas de un sistema. - Modos de operación: SELinux puede funcionar en diferentes modos, incluyendo modo estricto (enforcing), modo permisivo (permissive) y modo deshabilitado (disabled). En modo estricto, SELinux impone activamente las reglas de acceso definidas en la política. En modo permisivo, SELinux registra las violaciones de las reglas pero no las impide. En modo deshabilitado, SELinux está completamente desactivado.SELinux es una herramienta poderosa para mejorar la seguridad de los sistemas Red Hat Enterprise Linux. Sin embargo, su configuración y administración pueden ser complejas, especialmente para usuarios no familiarizados con los conceptos de seguridad obligatoria. Red Hat proporciona documentación y herramientas para ayudar a los administradores a configurar y administrar SELinux de manera efectiva.
Cómo funciona SELinuxSELinux funciona como un módulo de seguridad dentro del kernel de Linux. A diferencia de las listas de control de acceso (ACL) tradicionales, que se basan en el usuario y el grupo propietario de un archivo, SELinux utiliza etiquetas de seguridad para determinar qué procesos pueden acceder a qué archivos y recursos del sistema.Estas etiquetas de seguridad, llamadas contextos de seguridad, se asignan a procesos, archivos, directorios y otros objetos del sistema. Cada contexto de seguridad contiene información sobre el rol, el tipo y el nivel de sensibilidad del objeto. Por ejemplo, un contexto de seguridad podría verse así:system_u:system_r:httpd_t:s0En este ejemplo, "system_u" es el usuario de seguridad, "system_r" es el rol de seguridad, "httpd_t" es el tipo de seguridad y "s0" es el nivel de sensibilidad.Cuando un proceso intenta acceder a un archivo o recurso del sistema, SELinux compara el contexto de seguridad del proceso con el contexto de seguridad del objeto al que intenta acceder. Si el contexto del proceso tiene los permisos necesarios para acceder al objeto, se permite la operación. Si no, se deniega el acceso y se registra un mensaje en el log del sistema.SELinux utiliza dos mecanismos principales para hacer cumplir sus políticas de seguridad:1. Type Enforcement (TE): Este mecanismo utiliza los tipos de seguridad para definir qué procesos pueden acceder a qué archivos y recursos del sistema. Cada proceso y objeto tiene asignado un tipo de seguridad, y las reglas de política definen qué tipos de procesos pueden acceder a qué tipos de objetos.2. Multi-Level Security (MLS): Este mecanismo utiliza niveles de sensibilidad para controlar el acceso a la información confidencial. Los niveles de sensibilidad se basan en el modelo Bell-LaPadula y se utilizan para evitar que la información fluya de un nivel de seguridad más alto a uno más bajo sin la autorización adecuada.Además de estos mecanismos, SELinux también proporciona otras características de seguridad, como:- Role-Based Access Control (RBAC): Este mecanismo utiliza roles de seguridad para definir qué usuarios pueden asumir qué roles y qué procesos pueden ejecutarse en cada rol.- Domain Type Enforcement (DTE): Este mecanismo utiliza dominios de seguridad para aislar procesos y evitar que interactúen entre sí de manera no autorizada.- Transition de contexto: Este mecanismo permite que un proceso cambie su contexto de seguridad cuando ejecuta otro programa, lo que permite un control más granular sobre los permisos de acceso.En resumen, SELinux funciona como un módulo de seguridad en el kernel de Linux que utiliza etiquetas de seguridad para controlar el acceso a los recursos del sistema. Utiliza mecanismos como Type Enforcement, Multi-Level Security, Role-Based Access Control y Domain Type Enforcement para hacer cumplir sus políticas de seguridad y proteger el sistema contra accesos no autorizados y otras amenazas de seguridad.
SELinux funciona aplicando políticas de seguridad que rigen cómo los procesos interactúan entre sí y con el sistema. A cada proceso se le asigna un contexto de seguridad, que incluye un usuario, rol, tipo y nivel. Las políticas de SELinux se definen utilizando estos contextos.
Modos de SELinuxSELinux puede funcionar en uno de tres modos: modo de aplicación, modo permisivo o modo deshabilitado. El modo de aplicación es el modo más seguro, ya que SELinux aplica activamente la política de seguridad. En el modo permisivo, SELinux no aplica la política de seguridad, pero registra las acciones que habrían sido denegadas. El modo deshabilitado desactiva completamente SELinux.El modo de SELinux se puede configurar en el archivo /etc/selinux/config. El valor predeterminado es modo de aplicación. Para cambiar el modo, edite el archivo y establezca SELINUX=enforcing, SELINUX=permissive o SELINUX=disabled. Después de cambiar el modo, reinicie el sistema para que los cambios surtan efecto.En resumen, SELinux tiene tres modos: aplicación, permisivo y deshabilitado. El modo de aplicación es el más seguro, mientras que el modo permisivo permite acciones que habrían sido denegadas pero las registra. El modo deshabilitado desactiva completamente SELinux. El modo se puede configurar en /etc/selinux/config y requiere un reinicio para que los cambios surtan efecto.
- Enforcing: SELinux blocks any action that violates the policy.
- Permissive: SELinux allows actions but logs violations for review.
- DiscapacitadoSELinux está desactivado.
Configuring SELinux for Docker
To use SELinux with Docker, follow these steps:
Install SELinux: Ensure that SELinux is installed and configured on your system.
sudo yum install -y selinux-policy selinux-policy-targetedVerify the Status: Verifica si SELinux está activo y en modo enforcing.
sestatusHabilitar SELinux para Docker: By default, Docker runs in a restricted SELinux domain. You can use the
--opciones-de-seguridadOpción para especificar la configuración de SELinux.docker run --security-opt label:type:container_t my_imageEtiquetado de archivosYou can add labels to files to make them easier to find. Labels are visible in the file list and in the file preview. You can filter files by label in the file list.Puede agregar etiquetas a los archivos para facilitar su búsqueda. Las etiquetas son visibles en la lista de archivos y en la vista previa del archivo. Puede filtrar archivos por etiqueta en la lista de archivos.To add a label to a file:Para agregar una etiqueta a un archivo:1. Click the file's More icon ( ) and select Edit.1. Haga clic en el icono Más del archivo ( ) y seleccione Editar.2. In the Edit dialog, click Add label.2. En el cuadro de diálogo Editar, haga clic en Agregar etiqueta.3. Select a label color and enter a name.3. Seleccione un color de etiqueta e ingrese un nombre.4. Click Save.4. Haga clic en Guardar.To remove a label from a file:Para eliminar una etiqueta de un archivo:1. Click the file's More icon ( ) and select Edit.1. Haga clic en el icono Más del archivo ( ) y seleccione Editar.2. In the Edit dialog, click the X next to the label.2. En el cuadro de diálogo Editar, haga clic en la X junto a la etiqueta.3. Click Save.3. Haga clic en Guardar.: When mounting host files into a container, you may need to relabel them.
chcon -Rt svirt_sandbox_file_t /path/to/dir
Políticas de SELinux para DockerSELinux (Security-Enhanced Linux) es un módulo de seguridad del kernel de Linux que proporciona un mecanismo para apoyar políticas de seguridad de control de acceso. En el contexto de Docker, las políticas de SELinux son cruciales para asegurar que los contenedores se ejecuten en un entorno aislado y seguro.Configuración de SELinux para DockerPara configurar SELinux para Docker, es necesario asegurarse de que SELinux esté habilitado en el sistema. Esto se puede verificar con el siguiente comando:``` getenforce ```Si SELinux está deshabilitado, se puede habilitar temporalmente con:``` setenforce 1 ```O permanentemente editando el archivo `/etc/selinux/config` y estableciendo `SELINUX=enforcing`.Políticas de SELinux para DockerDocker proporciona políticas de SELinux predefinidas que se pueden utilizar para asegurar los contenedores. Estas políticas se pueden encontrar en el directorio `/usr/share/docker/container-selinux/`.Para aplicar una política de SELinux a un contenedor, se puede utilizar la opción `--security-opt` al ejecutar el contenedor. Por ejemplo:``` docker run --security-opt label:type:docker_t -d nginx ```En este ejemplo, se aplica la política `docker_t` al contenedor nginx.Creación de políticas de SELinux personalizadasEn algunos casos, puede ser necesario crear políticas de SELinux personalizadas para satisfacer requisitos de seguridad específicos. Esto se puede hacer utilizando la herramienta `audit2allow`, que genera reglas de política basadas en los mensajes de denegación de SELinux registrados en el archivo `/var/log/audit/audit.log`.Por ejemplo, para crear una política personalizada para un contenedor que necesita acceder a un directorio específico, se puede ejecutar el siguiente comando:``` audit2allow -M mypolicy -i /var/log/audit/audit.log ```Esto generará un archivo de política llamado `mypolicy.pp` que se puede cargar en el sistema con:``` semodule -i mypolicy.pp ```ConclusiónLas políticas de SELinux son una herramienta poderosa para asegurar los contenedores Docker. Al configurar y aplicar las políticas adecuadas, se puede garantizar que los contenedores se ejecuten en un entorno aislado y seguro, protegiendo así el sistema host y otros contenedores de posibles amenazas.
Las políticas de SELinux definen qué acciones están permitidas. Puedes crear políticas personalizadas para permitir o restringir ciertas interacciones para tus contenedores. Aquí tienes un ejemplo de cómo crear una política de SELinux simple:
Crear un archivo de política p. ej.,
my_docker_policy.te):module my_docker_policy 1.0; require { type container_t; type httpd_t; class tcp_socket { name_connect }; } # Permitir que httpd se conecte a sockets de red allow httpd_t container_t:tcp_socket name_connect;Compilar y Cargar la Política:
checkmodule -M -m -o my_docker_policy.mod my_docker_policy.te semodule_package -o my_docker_policy.pp -m my_docker_policy.mod sudo semodule -i my_docker_policy.ppPruebas: Realizar pruebas para garantizar que la política se comporte según lo esperado.
Overview of AppArmor
Cómo funciona AppArmor
AppArmor protects applications by enforcing a security profile for each application. Unlike SELinux, which focuses on the process’s security context, AppArmor restricts the capabilities of a program based on its profile.
Perfiles de AppArmor
Los perfiles definen qué archivos, capacidades y recursos puede acceder una aplicación. Los perfiles pueden estar en uno de dos modos:
- Enforce: Blocks access that is not permitted.
- Complain: Logs violations without blocking access.
Configuring AppArmor for Docker
To use AppArmor with Docker, perform the following steps:
Para instalar AppArmor en tu sistema, sigue estos pasos:1. **Actualizar el sistema**: Primero, asegúrate de que tu sistema esté actualizado. Abre una terminal y ejecuta: ```bash sudo apt update && sudo apt upgrade ```2. **Instalar AppArmor**: AppArmor generalmente viene preinstalado en muchas distribuciones de Linux, especialmente en Ubuntu. Sin embargo, si no está instalado, puedes instalarlo con el siguiente comando: ```bash sudo apt install apparmor apparmor-utils ```3. **Verificar la instalación**: Después de la instalación, verifica que AppArmor esté funcionando correctamente: ```bash sudo apparmor_status ``` Este comando mostrará el estado actual de AppArmor, incluyendo los perfiles cargados y las aplicaciones que están siendo restringidas.4. **Configurar perfiles de AppArmor**: AppArmor utiliza perfiles para definir las reglas de seguridad para cada aplicación. Puedes crear o modificar perfiles utilizando la herramienta `aa-genprof` o `aa-complain`. Por ejemplo, para generar un perfil para una aplicación específica: ```bash sudo aa-genprof /ruta/a/la/aplicación ``` Sigue las instrucciones en pantalla para completar la generación del perfil.5. **Activar o desactivar perfiles**: Para activar un perfil, utiliza: ```bash sudo aa-enforce /ruta/al/perfil ``` Para desactivar un perfil, utiliza: ```bash sudo aa-complain /ruta/al/perfil ```6. **Reiniciar el servicio de AppArmor**: Si realizas cambios en los perfiles, es posible que necesites reiniciar el servicio de AppArmor: ```bash sudo systemctl restart apparmor ```7. **Verificar el estado de los perfiles**: Para verificar el estado de los perfiles, utiliza: ```bash sudo apparmor_status ```8. **Configurar AppArmor para que se inicie automáticamente**: AppArmor debería iniciarse automáticamente al arrancar el sistema. Sin embargo, si necesitas asegurarte de que esté habilitado, ejecuta: ```bash sudo systemctl enable apparmor ```9. **Monitorear los registros de AppArmor**: AppArmor registra eventos de seguridad en los archivos de registro del sistema. Puedes revisar estos registros utilizando: ```bash sudo grep "apparmor" /var/log/syslog ```10. **Desinstalar AppArmor**: Si en algún momento decides desinstalar AppArmor, puedes hacerlo con: ```bash sudo apt remove apparmor apparmor-utils ```Recuerda que AppArmor es una herramienta poderosa para mejorar la seguridad de tu sistema, pero requiere una configuración cuidadosa para evitar problemas de compatibilidad con ciertas aplicaciones.Asegúrese de que AppArmor esté instalado y en funcionamiento.
sudo apt-get install apparmor apparmor-utilsActivar AppArmor: Check if AppArmor is enabled.
sudo aa-statusCreate a ProfilePuedes crear un perfil personalizado para tu contenedor Docker. Un perfil simple podría verse así:
perfil docker-default flags=(attach_disconnected,mediate_deleted) { # Permitir acceso de lectura a ciertos directorios /etc/** r, /usr/** r, # Denegar acceso de escritura deny /** w, }Loading the Profile:
sudo apparmor_parser -r /path/to/docker-defaultRunning Docker with AppArmor: You can specify the profile to use with the
--opciones-de-seguridadbandera.docker run --security-opt apparmor=docker-default my_image
Gestión de perfiles de AppArmor
To manage profiles, use the following commands:
List profiles:
sudo aa-statusPoner un perfil en modo de queja:
sudo aa-complain /path/to/profileEliminar un perfil:
sudo apparmor_parser -R /ruta/del/perfil
Prácticas recomendadas para usar SELinux y AppArmor con DockerSELinux y AppArmor son sistemas de control de acceso obligatorio (MAC) que proporcionan una capa adicional de seguridad para los contenedores Docker. A continuación, se presentan algunas prácticas recomendadas para utilizar estas herramientas de manera efectiva:1. Habilitar SELinux o AppArmor: - SELinux: Asegúrate de que SELinux esté habilitado en tu sistema operativo. Puedes verificarlo con el comando `sestatus`. - AppArmor: Asegúrate de que AppArmor esté instalado y habilitado. Puedes verificarlo con el comando `apparmor_status`.2. Utilizar perfiles predefinidos: - SELinux: Docker incluye perfiles SELinux predefinidos para contenedores. Utiliza estos perfiles para aplicar políticas de seguridad consistentes. - AppArmor: Docker también incluye perfiles AppArmor predefinidos. Utiliza estos perfiles para restringir las capacidades de los contenedores.3. Personalizar perfiles: - Si los perfiles predefinidos no cumplen con tus requisitos de seguridad, puedes crear perfiles personalizados para SELinux o AppArmor. Esto te permite adaptar las políticas de seguridad a tus necesidades específicas.4. Monitorear y auditar: - Utiliza herramientas de monitoreo y auditoría para rastrear las actividades de los contenedores y detectar posibles violaciones de seguridad. Esto te ayudará a identificar y responder a amenazas de manera oportuna.5. Mantener actualizados los perfiles: - Asegúrate de mantener actualizados los perfiles SELinux y AppArmor para protegerte contra nuevas vulnerabilidades y amenazas.6. Probar y validar: - Antes de implementar perfiles personalizados en producción, pruébalos y validalos en un entorno de prueba para asegurarte de que no afecten negativamente el funcionamiento de tus contenedores.7. Documentar y comunicar: - Documenta las políticas de seguridad implementadas con SELinux o AppArmor y comunícalas a tu equipo. Esto garantizará que todos estén al tanto de las medidas de seguridad en vigor.8. Revisar y ajustar regularmente: - Realiza revisiones periódicas de tus políticas de seguridad y ajusta los perfiles según sea necesario para mantener un nivel óptimo de protección.Al seguir estas prácticas recomendadas, puedes mejorar significativamente la seguridad de tus contenedores Docker utilizando SELinux o AppArmor. Recuerda que la seguridad es un proceso continuo y requiere atención y mantenimiento constantes.
1. Utilice la lista blanca
Al definir políticas de SELinux o AppArmor, siempre se debe comenzar con un conjunto mínimo de permisos y añadir gradualmente los permisos necesarios. Este enfoque reduce la superficie de ataque.
2. Audite periódicamente las políticas
Realice auditorías periódicas de las políticas de SELinux y AppArmor para garantizar que cumplan con los estándares de seguridad organizacionales. Busque cualquier modificación no autorizada o violación.
3. Monitorear RegistrosLos registros son una herramienta esencial para monitorear y solucionar problemas en cualquier sistema. Proporcionan información valiosa sobre el funcionamiento de las aplicaciones, servicios y componentes de hardware. Monitorear los registros de manera efectiva puede ayudar a identificar problemas potenciales antes de que se conviertan en fallas críticas, así como a optimizar el rendimiento del sistema.Para monitorear los registros de manera eficiente, es importante seguir estos pasos:1. Identificar los registros relevantes: No todos los registros son igualmente importantes. Es crucial determinar qué registros son relevantes para su sistema y sus necesidades específicas. Por ejemplo, si está monitoreando un servidor web, los registros de acceso y error del servidor web serán de gran importancia.2. Establecer umbrales de alerta: Una vez que haya identificado los registros relevantes, es importante establecer umbrales de alerta para notificarle cuando se produzcan eventos críticos o inusuales. Estos umbrales pueden basarse en la frecuencia de los eventos, el nivel de gravedad o cualquier otro criterio relevante para su sistema.3. Utilizar herramientas de monitoreo: Existen numerosas herramientas de monitoreo de registros disponibles, tanto gratuitas como de pago. Estas herramientas pueden ayudar a automatizar el proceso de monitoreo, proporcionar análisis en tiempo real y generar informes detallados. Algunas opciones populares incluyen ELK Stack (Elasticsearch, Logstash y Kibana), Splunk y Graylog.4. Analizar los datos: Una vez que haya recopilado los datos de los registros, es importante analizarlos para identificar patrones, tendencias y anomalías. Esto puede ayudar a detectar problemas potenciales antes de que se conviertan en fallas críticas, así como a optimizar el rendimiento del sistema.5. Tomar medidas correctivas: Basándose en el análisis de los datos de los registros, es importante tomar medidas correctivas cuando sea necesario. Esto puede incluir la resolución de problemas, la optimización del rendimiento o la implementación de medidas de seguridad adicionales.6. Mantener los registros organizados: A medida que los registros se acumulan con el tiempo, es importante mantenerlos organizados y accesibles. Esto puede implicar la implementación de una estrategia de rotación de registros, la compresión de archivos antiguos o la migración de datos a un almacenamiento a largo plazo.7. Capacitar al personal: Es fundamental capacitar al personal responsable del monitoreo de registros para que comprendan la importancia de esta tarea y sepan cómo utilizar las herramientas y técnicas adecuadas. Esto puede incluir la formación en el uso de herramientas de monitoreo, la interpretación de datos de registros y la toma de decisiones basada en la información recopilada.8. Revisar y mejorar continuamente: El monitoreo de registros es un proceso continuo que requiere revisión y mejora constantes. Es importante evaluar regularmente la eficacia de las estrategias de monitoreo, identificar áreas de mejora y adaptarse a los cambios en el entorno del sistema.En resumen, el monitoreo efectivo de los registros es crucial para mantener la salud y el rendimiento de cualquier sistema. Al seguir estos pasos y utilizar las herramientas y técnicas adecuadas, puede garantizar que su sistema funcione sin problemas y esté preparado para enfrentar cualquier desafío que se presente.
Both SELinux and AppArmor provide logging capabilities. Use tools such as auditd supervisar los registros en busca de actividad inusual.
4. Mantener las políticas actualizadas
As your application evolves, so should the security policies. Regularly review and update SELinux and AppArmor profiles to accommodate new features and dependencies.
5. Utilice Docker Bench Security
Utiliza herramientas como Docker Bench Security para evaluar la seguridad de tu instalación de Docker, incluyendo la configuración de SELinux y AppArmor.
Conclusión
Integrar SELinux y AppArmor con Docker es un enfoque poderoso para mejorar la seguridad de sus aplicaciones en contenedores. Al comprender cómo funcionan estos módulos de seguridad e implementar prácticas recomendadas, puede reducir significativamente los riesgos asociados con las implementaciones de contenedores.
En un mundo donde las brechas de seguridad son cada vez más comunes, tomar medidas proactivas para asegurar tu entorno Docker no es simplemente recomendable; es esencial. Al aprovechar las capacidades de SELinux y AppArmor, puedes construir una defensa sólida contra posibles amenazas, garantizando que tus aplicaciones se ejecuten de manera segura y confiable.
Al aprovechar las fortalezas de SELinux y AppArmor, las organizaciones pueden crear un modelo de seguridad en capas que proporcione control granular sobre sus entornos containerizados. Este enfoque no solo asegura los propios contenedores, sino que también protege los sistemas host y los datos sensibles, alineándose con los objetivos más amplios de las estrategias de seguridad empresarial.
