Control de acceso basado en roles

Enfoque para restringir el acceso al sistema a usuarios autorizados

En seguridad de sistemas informáticos, el control de acceso basado en roles ( RBAC ) [1] [2] o seguridad basada en roles [3] es un enfoque para restringir el acceso al sistema a usuarios autorizados y para implementar el control de acceso obligatorio (MAC) o el control de acceso discrecional (DAC).

El control de acceso basado en roles es un mecanismo de control de acceso neutral en cuanto a políticas definido en torno a roles y privilegios. Los componentes de RBAC, como los permisos de roles, las relaciones rol-usuario y rol-rol, simplifican la realización de asignaciones de usuarios. Un estudio realizado por NIST ha demostrado que RBAC aborda muchas necesidades de organizaciones comerciales y gubernamentales. [4] RBAC se puede utilizar para facilitar la administración de la seguridad en grandes organizaciones con cientos de usuarios y miles de permisos. Aunque RBAC es diferente de los marcos de control de acceso MAC y DAC, puede aplicar estas políticas sin ninguna complicación.

Diseño

Dentro de una organización, se crean roles para diversas funciones laborales. Los permisos para realizar determinadas operaciones se asignan a roles específicos. Dado que a los usuarios no se les asignan permisos directamente, sino que solo los adquieren a través de su rol (o roles), la gestión de los derechos de cada usuario se convierte en una cuestión de simplemente asignar los roles adecuados a la cuenta del usuario; esto simplifica las operaciones comunes, como agregar un usuario o cambiar el departamento de un usuario.

Se definen tres reglas principales para RBAC:

  1. Asignación de roles: un sujeto puede ejercer un permiso solo si ha seleccionado o se le ha asignado un rol.
  2. Autorización de roles: el rol activo de un sujeto debe estar autorizado para el sujeto. Con la regla 1 anterior, esta regla garantiza que los usuarios solo puedan asumir roles para los que están autorizados.
  3. Autorización de permisos: un sujeto puede ejercer un permiso solo si el permiso está autorizado para el rol activo del sujeto. Con las reglas 1 y 2, esta regla garantiza que los usuarios solo puedan ejercer los permisos para los que están autorizados.

También se pueden aplicar restricciones adicionales y los roles se pueden combinar en una jerarquía donde los roles de nivel superior subsumen los permisos que pertenecen a los roles secundarios.

Con los conceptos de jerarquía de roles y restricciones, se puede controlar RBAC para crear o simular un control de acceso basado en red (LBAC). Por lo tanto, RBAC puede considerarse un superconjunto de LBAC.

Al definir un modelo RBAC, las siguientes convenciones son útiles:

  • S = Sujeto = Una persona o agente automatizado
  • R = Rol = Función laboral o título que define un nivel de autoridad
  • P = Permisos = Una aprobación de un modo de acceso a un recurso
  • SE = Sesión = Un mapeo que involucra S, R y/o P
  • SA = Asignación de asignatura
  • PA = Asignación de permisos
  • RH = Jerarquía de roles parcialmente ordenada. RH también se puede escribir: ≥ (La notación: x ≥ y significa que x hereda los permisos de y).
    • Un sujeto puede tener múltiples roles.
    • Un rol puede tener múltiples sujetos.
    • Un rol puede tener muchos permisos.
    • Se puede asignar un permiso a muchos roles.
    • A una operación se le pueden asignar muchos permisos.
    • Se puede asignar un permiso a muchas operaciones.

Una restricción impone una regla restrictiva sobre la herencia potencial de permisos de roles opuestos. Por lo tanto, se puede utilizar para lograr una separación adecuada de funciones . Por ejemplo, no se debe permitir que la misma persona cree una cuenta de inicio de sesión y autorice la creación de la cuenta.

Así, utilizando la notación de teoría de conjuntos :

  • PAG A PAG × R {\displaystyle PA\subseteq P\times R} y es una relación de asignación de roles de permiso de muchos a muchos.
  • S A S × R {\displaystyle SA\subseteq S\times R} y es una relación de muchos a muchos sujeta a asignación de roles.
  • R yo R × R {\displaystyle RH\subseteq R\times R}

Un sujeto puede tener múltiples sesiones simultáneas con/en diferentes roles.

RBAC

Niveles estandarizados

El estándar RBAC NIST/ANSI/ INCITS (2004) reconoce tres niveles de RBAC: [5]

  1. núcleo RBAC
  2. RBAC jerárquico, que agrega soporte para herencia entre roles
  3. RBAC restringido, que añade separación de funciones

Relación con otros modelos

RBAC es una tecnología de control de acceso flexible cuya flexibilidad le permite implementar DAC [6] o MAC . [7] DAC con grupos (por ejemplo, como se implementa en los sistemas de archivos POSIX) puede emular RBAC. [8] MAC puede simular RBAC si el gráfico de roles está restringido a un árbol en lugar de un conjunto parcialmente ordenado . [9]

Antes del desarrollo de RBAC, el modelo Bell-LaPadula (BLP) era sinónimo de MAC y los permisos del sistema de archivos eran sinónimos de DAC. Se consideraba que estos eran los únicos modelos conocidos para el control de acceso: si un modelo no era BLP, se consideraba un modelo DAC, y viceversa. La investigación de finales de los años 90 demostró que RBAC no entra en ninguna de las dos categorías. [10] [11] A diferencia del control de acceso basado en contexto (CBAC), RBAC no analiza el contexto del mensaje (como la fuente de una conexión). RBAC también ha sido criticado por conducir a una explosión de roles, [12] un problema en los grandes sistemas empresariales que requieren un control de acceso de mayor granularidad que la que RBAC puede proporcionar, ya que los roles se asignan inherentemente a operaciones y tipos de datos. De manera similar al CBAC, un sistema de control de acceso basado en relaciones entre entidades (ERBAC, aunque también se utiliza el mismo acrónimo para sistemas RBAC modificados, [13] como el control de acceso basado en roles extendido [14] ) es capaz de proteger instancias de datos al considerar su asociación con el sujeto que los ejecuta. [15]

Comparando con ACL

Las listas de control de acceso (ACL) se utilizan en los sistemas tradicionales de control de acceso discrecional (DAC) para afectar a los objetos de datos de bajo nivel. RBAC se diferencia de ACL en que asigna permisos a operaciones que cambian las relaciones directas entre varias entidades (consulte: ACLg a continuación). Por ejemplo, una ACL podría utilizarse para otorgar o denegar acceso de escritura a un archivo de sistema en particular, pero no dictaría cómo se podría cambiar ese archivo. En un sistema basado en RBAC, una operación podría ser la transacción de "crear una cuenta de crédito" en una aplicación financiera o "completar un registro de prueba de nivel de azúcar en sangre" en una aplicación médica. Por lo tanto, un rol es una secuencia de operaciones dentro de una actividad más grande. Se ha demostrado que RBAC es particularmente adecuado para los requisitos de separación de funciones (SoD), que garantizan que dos o más personas deben participar en la autorización de operaciones críticas. Se han analizado las condiciones necesarias y suficientes para la seguridad de SoD en RBAC. Un principio subyacente de SoD es que ningún individuo debe poder provocar una violación de la seguridad a través de un privilegio dual. Por extensión, ninguna persona puede desempeñar un cargo que ejerza autoridad de auditoría, control o revisión sobre otra función que ocupe simultáneamente. [16] [17]

Por otra parte, un "modelo RBAC mínimo", RBACm , se puede comparar con un mecanismo ACL, ACLg , donde solo se permiten grupos como entradas en el ACL. Barkley (1997) [18] demostró que RBACm y ACLg son equivalentes.

En las implementaciones modernas de SQL , como las ACL del marco de trabajo CakePHP , las ACL también administran grupos y herencia en una jerarquía de grupos. En este aspecto, las implementaciones específicas de "ACL modernas" se pueden comparar con las implementaciones específicas de "RBAC modernas", mejor que las implementaciones "antiguas (del sistema de archivos)".

Para el intercambio de datos y para "comparaciones de alto nivel", los datos de ACL se pueden traducir a XACML .

Control de acceso basado en atributos

El control de acceso basado en atributos o ABAC es un modelo que evoluciona a partir de RBAC para considerar atributos adicionales además de roles y grupos. En ABAC, es posible utilizar atributos de:

  • el usuario, por ejemplo, ciudadanía, autorización,
  • el recurso, por ejemplo, clasificación, departamento, propietario,
  • la acción, y
  • el contexto, por ejemplo, tiempo, ubicación, IP.

ABAC se basa en políticas en el sentido de que utiliza políticas en lugar de permisos estáticos para definir qué está permitido o qué no.

Control de acceso basado en relaciones

El control de acceso basado en relaciones o ReBAC es un modelo que evoluciona a partir del RBAC. En ReBAC, el permiso de un sujeto para acceder a un recurso se define por la presencia de relaciones entre esos sujetos y los recursos.

La ventaja de este modelo es que permite permisos de granularidad fina; por ejemplo, en una red social donde los usuarios pueden compartir publicaciones con otros usuarios específicos. [19]

Uso y disponibilidad

El uso de RBAC para gestionar los privilegios de los usuarios (permisos informáticos) dentro de un único sistema o aplicación se acepta ampliamente como una práctica recomendada. Un informe de 2010 preparado para el NIST por el Research Triangle Institute analizó el valor económico de RBAC para las empresas y estimó los beneficios por empleado a partir de la reducción del tiempo de inactividad de los empleados, un aprovisionamiento más eficiente y una administración más eficiente de las políticas de control de acceso. [20]

En una organización con una infraestructura de TI heterogénea y requisitos que abarcan docenas o cientos de sistemas y aplicaciones, el uso de RBAC para gestionar suficientes roles y asignar membresías de roles adecuadas se vuelve extremadamente complejo sin la creación jerárquica de roles y asignaciones de privilegios. [21] Los sistemas más nuevos amplían el antiguo modelo RBAC de NIST [22] para abordar las limitaciones de RBAC para implementaciones en toda la empresa. El modelo NIST fue adoptado como estándar por INCITS como ANSI/INCITS 359-2004. También se ha publicado un análisis de algunas de las opciones de diseño para el modelo NIST. [23]

Vulnerabilidades potenciales

La interferencia en el control de acceso basado en roles es un problema relativamente nuevo en las aplicaciones de seguridad, donde múltiples cuentas de usuario con niveles de acceso dinámicos pueden generar inestabilidad en la clave de cifrado, lo que permite que un usuario externo aproveche la debilidad para obtener acceso no autorizado. Las aplicaciones de uso compartido de claves en entornos virtualizados dinámicos han demostrado cierto éxito en la solución de este problema. [24]


Véase también

Referencias

  1. ^ Ferraiolo, DF y Kuhn, DR (octubre de 1992). "Control de acceso basado en roles" (PDF) . 15.ª Conferencia Nacional de Seguridad Informática : 554–563.
  2. ^ Sandhu, R., Coyne, EJ, Feinstein, HL y Youman, CE (agosto de 1996). "Role-Based Access Control Models" (PDF) . IEEE Computer . 29 (2): 38–47. CiteSeerX 10.1.1.50.7649 . doi :10.1109/2.485845. S2CID  1958270. {{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  3. ^ ABREU, VILMAR; Santin, Altair O.; VIEGAS, EDUARDO K.; STIHLER, MAICON (2017). "Un modelo de activación de roles multidominio". 2017 IEEE International Conference on Communications (ICC) (PDF) . IEEE Press. págs. 1–6. doi :10.1109/ICC.2017.7997247. ISBN 978-1-4673-8999-0.S2CID6185138  .
  4. ^ Gilbert MD, Lynch N, Ferraiolo FD (1995). "An examination of federal and commercial access control policy needs" (Un examen de las necesidades de políticas de control de acceso federales y comerciales). Actas de la Conferencia Nacional de Seguridad Informática, 1993 (16.° período de sesiones): Seguridad de los sistemas de información: opciones del usuario . DIANE Publishing. pág. 107. ISBN 9780788119248.
  5. ^ Alberto Belussi; Barbara Catania; Eliseo Clementini; Elena Ferrari (2007). Datos espaciales en la Web: modelado y gestión. Springer. pág. 194. ISBN 978-3-540-69878-4.
  6. ^ Ravi Sandhu; Qamar Munawer (octubre de 1998). "Cómo realizar un control de acceso discrecional mediante roles". Tercer taller de la ACM sobre control de acceso basado en roles : 47–54.
  7. ^ Sylvia Osborn; Ravi Sandhu y Qamar Munawer (2000). "Configuración del control de acceso basado en roles para aplicar políticas de control de acceso obligatorias y discrecionales". ACM Transactions on Information and System Security : 85–106.
  8. ^ Brucker, Achim D.; Wolff, Burkhart (2005). "Un enfoque de verificación para la seguridad de sistemas aplicados". Revista internacional sobre herramientas de software para transferencia de tecnología . 7 (3): 233–247. doi :10.1007/s10009-004-0176-3. hdl : 20.500.11850/52625 . S2CID  6427232.
  9. ^ DR Kuhn (1998). "Control de acceso basado en roles en sistemas MLS sin cambios en el núcleo". Actas del tercer taller de ACM sobre control de acceso basado en roles (PDF) . pp. 25–32. CiteSeerX 10.1.1.55.4755 . doi :10.1145/286884.286890. ISBN.  978-1-58113-113-0.S2CID 1711956  .
  10. ^ "Control de acceso basado en roles: preguntas frecuentes". csrc.nist.gov . Centro de investigación de seguridad informática. 2016-11-21 . Consultado el 15 de agosto de 2018 .
  11. ^ Ferraiolo, David; Kuhn, Richard (13 de octubre de 1992). "Controles de acceso basados ​​en roles" (PDF) . csrc.nist.gov : 554–563 . Consultado el 15 de agosto de 2018 .
  12. ^ AA Elliott y GS Knight (2010). "Role Explosion: Acknowledging the Problem" (Explosión de roles: reconocimiento del problema) (PDF) . Actas de la Conferencia internacional de 2010 sobre investigación y práctica en ingeniería de software .
  13. ^ "ERBAC – Control de acceso basado en roles empresariales (informática) – AcronymFinder". www.acronymfinder.com . Consultado el 15 de agosto de 2018 .
  14. ^ "Dr. Bhavani Thuraisingham y Srinivasan Iyer (PPT)" . Consultado el 15 de agosto de 2018 .
  15. ^ Korhonen, Kalle. "tapiz-seguridad-jpa". www.tynamo.org . Consultado el 15 de agosto de 2018 .
  16. ^ DR Kuhn (1997). "Exclusión mutua de roles como medio para implementar la separación de funciones en sistemas de control de acceso basado en roles". Actas del segundo taller de ACM sobre control de acceso basado en roles - RBAC '97 (PDF) . pp. 23–30. doi :10.1145/266741.266749. ISBN 0897919858. Número de identificación del sujeto  482687.
  17. ^ Li, Ninghui; Bizri, Ziad; Tripunitara, Mahesh V. (2004). "Sobre roles mutuamente excluyentes y separación de funciones". Actas de la 11.ª conferencia de la ACM sobre seguridad informática y de las comunicaciones (PDF) . pp. 42–51. CiteSeerX 10.1.1.159.2556 . doi :10.1145/1030083.1030091. ISBN .  978-1581139617.S2CID 798546  .
  18. ^ J. Barkley (1997) "Comparación de modelos simples de control de acceso basados ​​en roles y listas de control de acceso", en "Actas del segundo taller de ACM sobre control de acceso basado en roles", páginas 127-132.
  19. ^ Gates, Carrie (2007). "Requisitos de control de acceso para la seguridad y privacidad de la Web 2.0". IEEE Web . 2 : 12–15.
  20. ^ AC O'Connor y RJ Loomis (marzo de 2002). Análisis económico del control de acceso basado en roles (PDF) . Research Triangle Institute. pág. 145.
  21. ^ Sistemas, Hitachi ID. "Más allá de los roles: un enfoque práctico para la gestión de identidades y accesos empresariales". www.idsynch.com . Consultado el 15 de agosto de 2018 .
  22. ^ Sandhu, R., Ferraiolo, DF y Kuhn, DR (julio de 2000). "El modelo NIST para el control de acceso basado en roles" (PDF) . Actas del quinto taller de la ACM sobre control de acceso basado en roles . pp. 47–63. doi :10.1145/344287.344301. ISBN . 158113259X.S2CID14539795  .{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  23. ^ Ferraiolo, DF, Kuhn, DR y Sandhu, R. (noviembre-diciembre de 2007). "Fundamento del estándar RBAC: comentarios sobre una crítica del estándar ANSI sobre control de acceso basado en roles" (PDF) . IEEE Security & Privacy . 5 (6): 51–53. doi :10.1109/MSP.2007.173. S2CID  28140142. Archivado desde el original (PDF) el 17 de septiembre de 2008.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  24. ^ Marikkannu, P (2011). "Sistema de agente móvil adaptativo tolerante a fallos que utiliza control de acceso dinámico basado en roles". Revista internacional de aplicaciones informáticas . 20 (2): 1–6. Bibcode :2011IJCA...20b...1M. doi : 10.5120/2409-3208 .

Lectura adicional

  • David F. Ferraiolo; D. Richard Kuhn; Ramaswamy Chandramouli (2007). Control de acceso basado en roles (2.ª ed.). Artech House. ISBN 978-1-59693-113-8.
  • Preguntas frecuentes sobre los modelos y estándares RBAC
  • Controles de acceso basados ​​en roles en NIST
  • Perfil de control de acceso basado en roles jerárquicos y núcleo XACML
  • Instituto de Seguridad Cibernética de la Universidad de Texas en San Antonio
  • Experiencias prácticas en la implementación de RBAC
Obtenido de "https://es.wikipedia.org/w/index.php?title=Control_de_acceso_basado_en_roles&oldid=1249816867"