Para aislar el acceso a un punto de montaje para que solo puedan acceder a él determinados programas, puede usar MAC o DAC. Al usar DAC, debe proporcionar una manera de ejecutar automáticamente su programa objetivo como grupo.
Controles de acceso obligatorios
Un sistema de control de acceso obligatorio, o MAC, es un marco para limitar qué acciones puede utilizar un asunto (por ejemplo, un proceso o grupo de hilos) para operar en un objeto (por ejemplo, un archivo, directorio o interfaz de red). Los controles de acceso generalmente son aplicados por el kernel, y el proceso que se limita no tiene nada que decir sobre a qué objetos se les permite acceder y cómo. Para su caso de uso, debe usar SELinux en lugar de AppArmor. AppArmor requiere un perfil explícito para cada programa único que está limitando. Un nuevo programa no se limitará en absoluto. Hay formas de evitar esto mediante la configuración de un perfil para el proceso de inicio, lo que hace que sea heredado por todos los demás procesos en el sistema, pero es una técnica no probada y no probada. SELinux, por otro lado, está diseñado específicamente para políticas de aislamiento en todo el sistema, aunque por proceso directivas dirigidas .
Puede especificar un contexto SELinux particular para un punto de montaje determinado especificando la opción context=
durante el montaje, ya sea utilizando fstab(5)
o invocando directamente mount(8)
. El contexto se utiliza para determinar qué permisos de SELinux se requieren para acceder a él, sin necesidad de etiquetar cada archivo.
Controles de acceso discrecionales
Los controles de acceso discrecionales, o DAC, son los permisos estándar de UNIX que rigen todo el acceso al sistema de archivos en un sistema Linux. Se denomina discrecional porque un usuario que posee un archivo o directorio determinado puede, a su discreción, cambiar sus permisos. Para utilizar DAC para proteger un punto de montaje de modo que solo los programas específicos puedan leerlo y escribir en él, querrá que el punto de montaje sea el modo 0770, propiedad del usuario root y un nuevo grupo que cree. Cualquier proceso que se ejecute en este grupo podrá ingresar, leer, escribir y ejecutar cualquier cosa en el punto de montaje. Hay algunas maneras de lograr esto:
- Marque su programa
setgid
, lo que hará que se ejecute automáticamente como el grupo que posee el ejecutable. Cualquier transición a un contexto setgid
hará que el sistema descarte todas las variables de entorno potencialmente peligrosas , y proteger el proceso de los depuradores invasivos.
- Configure su
sudoers
para permitirle ejecutar sus programas aprobados como un grupo dado, ya sea con o sin el suministro de una contraseña. Esto funciona de manera similar a la opción anterior, pero usa sudo
.
Una técnica mucho más segura pero más invasiva sería crear un usuario completamente diferente, con su propio entorno de escritorio (si usa alguno) y su propio directorio principal. Cuando necesite acceder a algo sensible, asegúrese de que los archivos y directorios confidenciales sean legibles solo por el usuario root y su nuevo usuario seguro. Esto puede interrumpir su flujo de trabajo, ya que tendrá que iniciar sesión en un usuario diferente, pero no estará sujeto a las advertencias (no despreciables) con el aislamiento de la aplicación que se explican a continuación.
Advertencias
Es extremadamente importante que entienda completamente las implicaciones de un determinado proceso de acceso a información confidencial. A menos que el programa esté diseñado específicamente para permanecer seguro en estas circunstancias, podría haber formas imprevistas para piratearlo. Un administrador de archivos gráfico, por ejemplo, no puede ser aislado bajo Linux, ya que tendrá acceso a su cookie X11, y por lo tanto, cualquier otro programa gráfico con acceso X11 que se ejecute bajo el mismo usuario (incluso si el grupo es diferente) podrá tome capturas de pantalla, inyecte movimientos del mouse y pulsaciones del teclado , y más. Esto, por supuesto, derrotaría los intentos de aislamiento. Todos los demás temas serán específicos a los programas individuales. Intentar el aislamiento del proceso sin ajustarse a una política formal particular como Biba o Bell-LaPadula puede ser riesgoso.