Gestión de permisos

La gestión de permisos es el conjunto de controles de seguridad lógicos y reglas de acceso que determinan con precisión qué acciones (lectura, modificación, ejecución, eliminación) puede realizar cada usuario, grupo o proceso sobre los distintos objetos del sistema (archivos, directorios, dispositivos de hardware, claves del registro).

Para un profesional técnico, la gestión de permisos es la última línea de defensa interna para garantizar la confidencialidad e integridad de la información, aislar procesos entre sí y aplicar con rigor el control de acceso en entornos de trabajo multiusuario o corporativos.

Sistemas de Control de Acceso y Modelos de Permisos

Los sistemas operativos modernos gestionan las autorizaciones a través de modelos de permisos específicos y listas de control estructuradas:

Modelo / Mecanismo Descripción y Componentes Técnicos Objetivo Principal
Permisos Estándar POSIX (Linux/Unix) Asignación de privilegios basada en tres tipos de acciones: Lectura (r), Escritura (w) y Ejecución (x), aplicadas a tres niveles de sujetos: Propietario (u), Grupo (g) u Otros (o). Se representan habitualmente en notación octal (ej. 755 o 644). Proporcionar una gestión de accesos rápida, ligera e inherente al sistema de archivos básico.
Listas de Control de Acceso (ACLs) Mecanismo avanzado (presente en NTFS de Windows y en ext4/xfs con soporte ACL) que permite definir reglas de permisos específicas para múltiples usuarios o grupos concretos sobre un mismo recurso. Ofrecer una granularidad mucho mayor cuando el esquema simple de Propietario-Grupo-Otros resulta insuficiente.
Herencia de Permisos Propiedad por la cual los subdirectorios y ficheros creados dentro de una carpeta principal heredan de forma automática las reglas de control de acceso establecidas en la carpeta contenedora o padre. Estandarizar y automatizar el control de acceso en estructuras jerárquicas complejas de archivos.
Control de Acceso Discrecional (DAC) vs Obligatorio (MAC) DAC: El dueño del archivo decide quién accede.
MAC: El sistema/núcleo impone políticas de seguridad globales inalterables (ej. SELinux, AppArmor).
Contener el impacto de posibles exploits aislando procesos incluso ante fallos del propietario del recurso.

Estrategias de Administración y Principios de Control

Para evitar brechas de seguridad o fugas de información, la administración de permisos se rige por directrices fundamentales:

  • Principio de Mínimo Privilegio (PoLP): Otorgar únicamente los derechos strictly necesarios para que un usuario o servicio realice la función prevista, ni un solo permiso más.
  • Separación de Funciones (Segregación de Deberes): Garantizar que las tareas críticas de administración o auditoría requieran la autorización combinada de diferentes roles para prevenir fraudes o manipulaciones no detectadas.
  • Auditoría Transversal de Permisos Efectivos: Revisar no solo los permisos asignados de forma directa, sino el cálculo final de acceso resultatorio del cruce entre permisos implícitos, denegaciones explícitas y la pertenencia a múltiples grupos.

Analogía: Imagina las cerraduras y pases de seguridad dentro de un laboratorio de alta tecnología. La gestión de permisos es el plan de accesos físicos: los investigadores de planta tienen llave para abrir la puerta de sus laboratorios (lectura y escritura), el personal de limpieza solo puede pasar a ciertas horas y a zonas comunes (lectura) y solo el equipo de mantenimiento de calderas tiene autorización para manipular las válvulas del sótano (ejecución), quedando terminantemente prohibido que cualquier trabajador pueda entrar en el despacho de dirección sin autorización explícita.

Actividad práctica

Objetivo:

Inspeccionar, modificar y auditar los permisos de acceso sobre una carpeta y un fichero de pruebas a través de la interfaz de comandos.

Tareas:

  1. Abre la terminal de comandos (Bash en Linux o PowerShell/CMD en Windows).
  2. Crea una carpeta de pruebas y un fichero dentro de ella.
  3. Comprueba sus permisos iniciales utilizando ls -l (Linux) o Get-Acl / icacls (PowerShell/Windows).
  4. Modifica los permisos para restringir el acceso de escritura al resto de usuarios (ej. usando chmod 750 archivo en Linux o retirando los permisos del grupo "Usuarios" con icacls en Windows) y verifica que el cambio se ha aplicado correctamente.
  5. Reflexiona sobre qué peligro entraña aplicar de forma masiva permisos totales de control (ej. chmod 777 en Unix o "Control Total a Todos" en Windows) para solucionar rápidamente un problema de acceso.

Preguntas de reflexión:

  1. ¿Qué diferencia existe en la práctica entre una "Denegación Explícita" de permisos y simplemente "No Otorgar" un permiso en un sistema basado en ACLs como NTFS?
  2. ¿Por qué la asignación de permisos 777 (lectura, escritura y ejecución para todo el mundo) en sistemas de archivos tipo POSIX se considera una vulnerabilidad crítica de seguridad?
  3. ¿Cómo interactúa la herencia de permisos con la acción de mover o copiar un archivo de un directorio a otro dentro de la misma unidad o entre unidades diferentes?
  4. ¿Qué función desempeñan las máscaras de usuario (como umask en Linux) al determinar los permisos por defecto de los archivos y carpetas recién creados?
  5. ¿De qué manera el uso de Control de Acceso Obligatorio (MAC), como SELinux o AppArmor, protege al sistema en caso de que una aplicación web con permisos de escritura sea vulnerada por un atacante?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué diferencia existe en la práctica entre una "Denegación Explícita" de permisos y simplemente "No Otorgar" un permiso en un sistema basado en ACLs como NTFS?

Una "Denegación Explícita" invalida y bloquea de forma prioritaria cualquier otra regla o permiso positivo que el usuario pudiera haber heredado a través de su pertenencia a otros grupos. En cambio, "No Otorgar" un permiso simplemente no concede el acceso, pero si el usuario pertenece a otro grupo que sí tiene el permiso concedido, podrá acceder al recurso.


2. ¿Por qué la asignación de permisos 777 (lectura, escritura y ejecución para todo el mundo) en sistemas de archivos tipo POSIX se considera una vulnerabilidad crítica de seguridad?

Porque permite que absolutamente cualquier usuario, proceso o servicio invitado que se ejecute en el equipo tenga la capacidad de leer la información sensible, alterar/corromper el contenido del archivo o ejecutar código potencialmente malicioso dentro de esa ruta sin ningún tipo de barrera ni control.


3. ¿Cómo interactúa la herencia de permisos con la acción de mover o copiar un archivo de un directorio a otro dentro de la misma unidad o entre unidades diferentes?

Por lo general (como en NTFS), cuando un archivo se copia a una nueva ubicación o se mueve a una unidad diferente, hereda de forma limpia los permisos de la carpeta de destino. Sin embargo, cuando se mueve dentro de la misma unidad, el archivo suele conservar los permisos originales que tenía en su directorio de origen.


4. ¿Qué función desempeñan las máscaras de usuario (como umask en Linux) al determinar los permisos por defecto de los archivos y carpetas recién creados?

La máscara umask define qué permisos deben "restarse" o deshabilitarse de forma automática a la base predeterminada (generalmente 666 para archivos y 777 para directorios) en el momento exacto en que un usuario o proceso genera un nuevo recurso, garantizando que no se creen elementos con permisos inseguros por defecto.


5. ¿De qué manera el uso de Control de Acceso Obligatorio (MAC), como SELinux o AppArmor, protege al sistema en caso de que una aplicación web con permisos de escritura sea vulnerada por un atacante?

Confina la aplicación web dentro de un perfil estricto e inalterable. Aunque el atacante logre comprometer el servicio web y tenga permisos tradicionales para escribir en el sistema de archivos, las directivas MAC del sistema operativo le impedirán acceder o modificar cualquier archivo o recurso que no esté explícitamente etiquetado para ese servicio en el perfil de seguridad.