03 diciembre, 2024

Modelos de Seguridad

En una oportunidad tuve que abordar estos conceptos en un desarrollo de software que combinaba algunos modelos , ya vistos en su oportunidad para el CISSP. 


Diferencia entre un mecanismo y un modelo de seguridad

  • Modelo de seguridad: Un modelo de seguridad define una estructura teórica o un conjunto de reglas para gestionar el acceso a los recursos en un sistema. Los modelos de seguridad, como RBAC, Bell-LaPadula, BIBA, entre otros, definen principios generales de cómo gestionar el acceso y la protección de la información.

  • Mecanismo de control de acceso: Un mecanismo de control de acceso, como una ACL, es una implementación práctica que aplica las reglas de un modelo de seguridad en un sistema real, como un sistema de archivos o una red.

 

Modelos de seguridad más populares (a mi entender)

1. Modelo RBAC (Control de Acceso Basado en Roles)

RBAC es un modelo de control de acceso en el cual los permisos son asignados a roles y no a los usuarios directamente. Los usuarios son asignados a esos roles, y a través de los roles obtienen permisos para acceder a ciertos recursos.

Cómo funciona

  • Usuarios: Son las personas que acceden al sistema.
  • Roles: Son conjuntos de permisos que definen lo que los usuarios pueden hacer en el sistema. Los roles agrupan permisos comunes.
  • Permisos: Son las acciones que un usuario puede realizar sobre un recurso (por ejemplo, leer, escribir, borrar).


Ejemplo simple

Imaginar una empresa con tres tipos de empleados: Administradores, Gerentes y Empleados.

  • Administrador: Tiene permisos para crear, editar, eliminar documentos.
  • Gerente: Puede editar y leer documentos.
  • Empleado: Solo puede leer documentos.

En este caso, a cada persona se le asigna un rol:

  • Juan es Administrador, por lo que tiene todos los permisos.
  • Ana es Gerente, por lo que puede editar y leer documentos.
  • Luis es Empleado, por lo que solo puede leer documentos.

Esto permite gestionar de forma sencilla los permisos de acceso, ya que no se asignan directamente a los usuarios, sino que se gestionan a través de los roles.

Ventajas de RBAC

  • Facilita la administración de permisos.
  • Permite mantener una política de seguridad clara y consistente.

2. Modelo BIBA (Integridad de la Información)

BIBA es un modelo de seguridad enfocado en la integridad de los datos. Su objetivo es evitar que los datos sean modificados de manera no autorizada y asegurarse de que la información se mantenga precisa.

En este modelo, se aplican dos reglas fundamentales:

  1. Regla de No Escribir Hacia Arriba (No Write Up - NWU): Un usuario no puede escribir información en un nivel más alto que el suyo.
  2. Regla de No Leer Hacia Abajo (No Read Down - NRD): Un usuario no puede leer información de un nivel más bajo que el suyo.

Cómo funciona

  • Nivel de Integridad: Los datos se organizan en diferentes niveles de integridad. Los niveles más bajos representan información que podría estar menos protegida y los niveles más altos son información más confiable.
  • Un usuario con un nivel de integridad bajo no puede modificar (escribir) información en un nivel de integridad más alto, para evitar que los datos de baja integridad afecten a datos de alta integridad.
  • Un usuario con un nivel de integridad alto no puede leer información de un nivel bajo, ya que los datos de baja integridad podrían estar corruptos o incorrectos.


 

Ejemplo simple

Imagina un sistema de control de calidad en una empresa:

  • Nivel de integridad bajo: "Empleados de producción" (información sobre el proceso de fabricación).

  • Nivel de integridad medio: "Supervisores" (información sobre la calidad de los productos).

  • Nivel de integridad alto: "Gerentes" (información sobre las decisiones estratégicas y finales de calidad).

  • Un Empleado de producción no puede modificar (escribir) los datos de los Supervisores ni de los Gerentes (porque no tiene el nivel suficiente de integridad para hacerlo).

  • Un Supervisor puede ver los datos de los Empleados de producción, pero no puede leer los datos de los Gerentes, ya que esa información es de nivel más alto y está protegida por un nivel superior de integridad.

Ventajas de BIBA

  • Garantiza que la información no se corrompa o altere de manera incorrecta.
  • Se enfoca en proteger la precisión y fiabilidad de los datos.

3. Modelo Bell-LaPadula (Confidencialidad de la Información)

Bell-LaPadula es un modelo enfocado en la confidencialidad de la información. Desarrollado en el contexto de la informática militar para proteger la información sensible y asegurarse de que solo las personas autorizadas puedan acceder a ciertos datos.

Estructura de los niveles de seguridad

Los niveles de seguridad en Bell-LaPadula se asignan de acuerdo a la clasificación de la información y las credenciales de los usuarios. Por ejemplo:

  • Confidencial (bajo)
  • Secreto (medio)
  • Muy Secreto (alto)

Las Reglas de Bell-LaPadula:

  1. Regla de No Leer Hacia Abajo (No Read Down - "Star Property"): Un usuario o proceso con un nivel de seguridad alto no podrá leer documentos de un nivel de seguridad bajo. Esto se hace para evitar que usuarios con acceso a información más sensible accedan a datos menos confidenciales.

    Ejemplo: Si un usuario tiene un nivel de seguridad "Secreto", no podrá acceder a archivos clasificados como "Confidencial".

  2. Regla de No Escribir Hacia Arriba (No Write Up - "Simple Security Property"): Un usuario con un nivel de seguridad bajo no puede escribir información en un nivel de seguridad más alto. Esto evita que los usuarios de bajo nivel filtren información a personas con un nivel de seguridad más alto.

    Ejemplo: Si un usuario tiene un nivel de seguridad "Confidencial", no puede escribir ni modificar archivos clasificados como "Secreto" o "Muy Secreto".

Resumen de las reglas:

  1. No Leer Hacia Abajo (No Read Down): Los usuarios no pueden leer información de niveles más bajos que el suyo.
  2. No Escribir Hacia Arriba (No Write Up): Los usuarios no pueden escribir información en niveles de seguridad más altos que el suyo.

 

Ejemplo simple

Imaginemos un sistema de seguridad con tres niveles de clasificación de información:

  • Confidencial (bajo)
  • Secreto (medio)
  • Muy Secreto (alto)

Y tenemos tres personas con diferentes niveles de autorización:

  • Juan: Nivel de seguridad "Secreto"
  • Ana: Nivel de seguridad "Confidencial"
  • Carlos: Nivel de seguridad "Muy Secreto"

Accesos según Bell-LaPadula:

  1. Juan (Nivel "Secreto"):

    • Puede leer archivos clasificados como "Secreto" y "Confidencial" (puede leer archivos en su nivel y en niveles inferiores).
    • No puede leer archivos clasificados como "Muy Secreto" (porque no tiene el nivel de autorización necesario para acceder a esa información).
    • Puede escribir solo en archivos de nivel "Secreto" o "Confidencial". No puede escribir en archivos de nivel "Muy Secreto".
  2. Ana (Nivel "Confidencial"):

    • Puede leer archivos clasificados como "Confidencial" (y, en teoría, podría leer archivos de un nivel más bajo si existieran, pero en este caso no hay información de nivel inferior).
    • No puede leer archivos clasificados como "Secreto" ni "Muy Secreto".
    • No puede escribir en archivos de nivel "Secreto" o "Muy Secreto", ya que no tiene el nivel de seguridad suficiente para modificar esa información.
  3. Carlos (Nivel "Muy Secreto"):

    • Puede leer archivos clasificados como "Muy Secreto", "Secreto" y "Confidencial".
    • No puede escribir en archivos de nivel "Confidencial" (no tiene el permiso de escritura hacia abajo), pero podría escribir en archivos clasificados como "Muy Secreto" o "Secreto".

Ejemplo de aplicación:

  • Juan (Secreto) tiene un archivo "Informe de Investigación Secreta" (clasificado como Secreto) y un archivo "Resumen Confidencial" (clasificado como Confidencial).

    • Juan puede leer ambos archivos, pero no puede leer un archivo clasificado como "Muy Secreto".
    • Juan no puede escribir en el archivo "Muy Secreto", pero puede escribir en el archivo "Secreto" y en el archivo "Confidencial".
  • Ana (Confidencial) tiene acceso solo a archivos clasificados como Confidencial.

    • Ana no puede leer el archivo "Secreto" ni el archivo "Muy Secreto".
    • Ana no puede escribir ni en el archivo "Secreto" ni en el "Muy Secreto".
  • Carlos (Muy Secreto) tiene acceso completo, puede ver todos los archivos clasificados como Muy Secreto, Secreto y Confidencial.

    • Carlos puede leer todos los archivos, pero no puede escribir en los archivos clasificados como "Confidencial" o "Secreto" (por la regla de No Escribir Hacia Arriba).

Ventajas de Bell-LaPadula

Diseñado para evitar la filtración de información (que un usuario de bajo nivel pueda acceder a información más sensible) y proteger la confidencialidad. Esto significa que la idea principal es evitar que los usuarios con acceso a información menos sensible puedan propagarla hacia niveles más altos de seguridad.

Resumen de los Modelos

  • RBAC se basa en asignar roles a los usuarios y otorgarles permisos en función de su rol. Ideal para manejar grandes sistemas con muchos usuarios.
  • BIBA se enfoca en la integridad de los datos, impidiendo que los usuarios de bajo nivel puedan modificar información crítica y que accedan a datos menos confiables.
  • Bell-LaPadula se enfoca en proteger la confidencialidad de la información evitando que usuarios con acceso a datos menos sensibles (o de menor nivel) puedan filtrarlos a niveles más altos o acceder a información que no deberían.

 

Conceptos aplicados a NTFS

Los permisos en NTFS (New Technology File System), que es el sistema de archivos usado por versiones modernas de Windows, se basan principalmente en un modelo de control de acceso basado en listas de control de acceso (ACLs) y están fuertemente influenciados por el modelo RBAC (Control de Acceso Basado en Roles). Aunque NTFS no sigue un modelo de seguridad específico como BIBA o Bell-LaPadula, se puede decir que su funcionamiento es más cercano a RBAC en cuanto a la asignación de permisos a los usuarios y grupos de usuarios.

Detalles del Modelo de Seguridad en NTFS

NTFS permite controlar el acceso a archivos y carpetas mediante permisos específicos que se pueden asignar a usuarios y grupos. Estos permisos se gestionan a través de ACLs, que son listas de permisos asociados a los recursos del sistema (archivos o carpetas).

1. Listas de Control de Acceso (ACLs)

Cada archivo o carpeta en un sistema NTFS tiene una lista de control de acceso (ACL), que contiene una lista de entradas de control de acceso (ACE). Cada ACE define qué acciones puede realizar un usuario o grupo en ese archivo o carpeta. Estas acciones incluyen:

  • Leer: Ver el contenido del archivo o carpeta.
  • Escribir: Modificar el contenido del archivo o carpeta.
  • Ejecutar: Ejecutar el archivo si es un programa.
  • Eliminar: Eliminar el archivo o carpeta.
  • Cambiar permisos: Modificar los permisos de acceso.
  • Tomar posesión: Asumir la propiedad de un archivo o carpeta.

2. Grupos y Roles (RBAC)

En NTFS, los usuarios y grupos se asignan permisos sobre los archivos y carpetas, lo cual es muy similar a lo que hace el modelo RBAC. En lugar de asignar permisos individualmente a cada usuario, se asignan a grupos (como "Administradores", "Usuarios", "Invitados", etc.), y luego los usuarios dentro de esos grupos heredarán esos permisos.

Ejemplo de cómo NTFS sigue un modelo RBAC:
  • Grupo Administradores: Este grupo tiene permisos completos sobre todos los archivos y carpetas del sistema.
  • Grupo Usuarios: Este grupo puede tener permisos de solo lectura o escritura en ciertas carpetas, pero no puede modificar permisos ni eliminar archivos importantes.
  • Grupo Invitados: Este grupo tiene permisos muy restringidos, solo para ver algunos archivos o carpetas específicas.

3. Herencia de Permisos

Los permisos en NTFS también pueden heredarse. Esto significa que los permisos asignados a una carpeta se aplican a los archivos y subcarpetas dentro de ella, a menos que se indique lo contrario. Este modelo de herencia facilita la administración de permisos, lo que es otra característica clave de RBAC, donde los permisos se gestionan a nivel de grupo o rol en lugar de a nivel individual.

Ejemplo de herencia:

Si un usuario tiene permisos de lectura en una carpeta, esos permisos se aplicarán también a todos los archivos dentro de esa carpeta, a menos que se configure lo contrario.


4. Ejemplo práctico de permisos NTFS:

Supón que tienes una carpeta llamada "Documentos" con los siguientes permisos configurados:

  • Administrador: Tiene permisos completos (lectura, escritura, ejecución, eliminación, etc.).
  • Grupo "Usuarios": Tiene permisos de lectura y escritura, pero no puede eliminar la carpeta ni cambiar permisos.
  • Grupo "Invitados": Solo tiene permisos de lectura.

Si un usuario llamado Carlos pertenece al grupo Usuarios, hereda los permisos de lectura y escritura para la carpeta Documentos. Si Ana pertenece al grupo Invitados, solo podrá leer los documentos en esa carpeta.

 

Referencias

  • https://www.cybrary.it/blog/information-security-models 
  • https://cissprep.net/security-access-control-models/
  • https://sprinto.com/blog/types-of-security-models/
  • https://en.wikipedia.org/wiki/Computer_security_model
  • https://www.geeksforgeeks.org/introduction-to-classic-security-models/ 
  • https://medium.com/@foxpass28/how-to-implement-role-based-access-control-rbac-8ee954ff861e

0 comments:

Publicar un comentario