Conoce Atico34 - Solicita presupuesto
Ciberseguridad

Control de acceso basado en roles (RBAC): Una forma de mejorar la seguridad del sistema

Cuando en una empresa es necesario gestionar los derechos de acceso de los empleados al sistema y sus recursos, existen diferentes paradigmas que se pueden aplicar para limitar privilegios y reducir los riesgos de seguridad para la empresa y su infraestructura. En este artículo trataremos sobre el control de acceso basado en roles (RBAC), qué es, cómo funciona y cómo implementarlo.

¿Qué es el control de acceso basado en roles?

RBAC, en español control de acceso basado en roles (de las siglas role based access control), es un paradigma de seguridad basado en la asignación de funciones y autorizaciones dentro de la infraestructura informática de una organización. En este modelo, esas funciones y autorizaciones se engloban en los denominados roles de usuario, que determinan el grado de acceso que tienen los usuarios dentro del sistema y las acciones que pueden llevar a cabo dentro del mismo.

El control de acceso basado en roles tiene como objetivo asegurar la confidencialidad, integridad y disponibilidad de la información, puesto que basándose en el principio de privilegio mínimo, limita el acceso de los usuarios (los empleados) y las acciones que pueden llevar a cabo a lo que necesitan para poder desempeñar su trabajo. De esta forma, se reduce el riesgo de sufrir violaciones de la seguridad informática de la compañía cuando la cuenta de un usuario se ve comprometida.

A diferencia de otros modelos de seguridad o tipos de control de acceso, con RBAC se crean roles determinados, que después se asignan a los usuarios en función del trabajo o funciones que necesitan llevar a cabo.

Por ejemplo, si utilizáis WordPress para crear vuestra página web, estaréis familiarizados con los perfiles de superadministrador, administrador, autor, suscriptor… Estos perfiles son roles mediante los cuales se asignan privilegios de acceso, edición, gestión del sitio y de usuarios, solo visualización, etc., en vuestra web. Estos roles determinan qué puede hacer el usuario dentro de la web y a qué áreas y recursos puede acceder y gestionar.

En una empresa con un alto número de empleados, el control de acceso basado en roles facilita la gestión de los permisos y niveles de acceso que se asignan a estos dentro del sistema informático, puesto que en vez de hacerlo de manera individual, yendo usuario a usuario, se crean roles con permisos específicos que se asignan a los usuarios en base a las funciones laborales que necesiten desempeñar.

Modelos de role based access control

El Instituto Nacional de Estándares y Tecnología (NIST) propuso un estándar para el RBAC que contempla cuatro modelos de implementación de este sistema de seguridad, que en realidad funcionan como cuatro niveles del mismo modelo, es decir, se puede recurrir a la implementación de uno solo de los modelos o ir escalando y añadiendo nuevas funcionalidades incorporando el resto.

Cabe señalar que no todas las organizaciones que adoptan el control de acceso basado en roles implementan todos estos modelos, puesto que algunos niveles son más complejos, pero no está de más conocerlos desde un punto de vista teórico.

RBAC plano

RBAC plano es el modelo base del control de acceso basado en roles; en él a los usuarios se les asignan roles, que tienen asignados permisos, de manera que a través del rol, los usuarios adquieren esos permisos asociados. Este modelo requiere que el usuario-rol y el permiso-rol se puedan asignar de muchos-a-muchos, de manera que un usuario puede tener asignados muchos roles y un único rol puede asignarse a muchos usuarios. Lo mismo se aplica a los permisos.

En este modelo, los usuarios pueden tener de forma simultánea varios roles y permisos, pero requiere determinar los roles asignados a un usuario y los usuarios asignados a un rol específico, lo que se conoce como revisión de rol de usuarios.

RBAC jerárquico

En el modelo RBAC jerárquico se incorporan las reglas del RBAC plano, pero los roles se organizan por jerarquías, de manera que los roles superiores contienen los permisos de los roles inferiores (en el ejemplo de WordPress, un superadministrador adquiere los permisos del rol administrador y de todos los que están por debajo).

El modelo deja la configuración de las jerarquías abierta, de manera que cada organización puede determinarlas en función de sus necesidades y de las capacidades del software que se utilice para crear el sistema de control de acceso basado en roles (por ejemplo, el RBAC de Azure, que se puede emplear para limitar el acceso a los recursos de la nube que tienen los empleados o colaboradores de una compañía).

RBAC restringido

El RBAC restringido suma a las reglas del RBAC jerárquico el soporte para un sistema de separación de funciones (SoD). La separación de funciones es un sistema que precede a la informática y que se creó para minimizar la comisión de actos fraudulentos dentro de las organizaciones, puesto que se basa en la necesidad de implicar a más de un miembro o empleado para completar una tarea. De esa forma, si una persona quiere cometer un acto fraudulento, necesita, al menos, de la participación de otra, lo que incrementa la dificultad de llevarlo a cabo y las posibilidades de ser descubiertos.

Llevado al control de acceso basado en roles, implica que al aplicar un RBAC restringido, determinados accesos y acciones requieren de los permisos de más de un rol.

En ese modelo, el SoD puede ser estático, cuando se basa en la asignación de usuario-rol, o puede ser dinámico, cuando se basa en la activación de roles.

La implementación de un modelo RBAC restringido resulta compleja y requiere del apoyo de sofisticados productos de control de acceso.

RBAC simétrico

El RBAC simétrico es el último nivel del modelo y también el más complicado de implementar. A las normas de los anteriores niveles se suma el requisito de revisión de roles de permisos de forma similar a la revisión de roles de usuarios. De manera que se pueden determinar los roles a los que se les ha asignado un permiso en concreto, así como los permisos que se han asignado a un rol específico.

Se trata de poder revisar y ajustar los roles y permisos de cada función de forma periódica, para mantener un control sobre las asignaciones de permisos que tiene cada rol y poder adaptarse a posibles cambios de manera efectiva.

Control de acceso basado en roles

¿Cómo funciona el RBAC?

El control de acceso basado en roles funciona creando roles específicos, que pueden estar basados en la propia estructura de la empresa (por ejemplo, roles basados en los departamentos que tiene) y asignando a estos roles una serie de autorizaciones para acceder a recursos y llevar a cabo tareas o acciones en función del trabajo que los empleados desempeñen en la empresa. Esos roles después se asignan a los usuarios.

Para poder llevar a cabo sus tareas, el usuario debe activar el rol adecuado, es decir, el que tiene los permisos necesarios para poder realizarla. Para activar ese rol, debe tenerlo asignado previamente.

Volviendo al ejemplo de la página web en WordPress, el superadministrador cuenta con todos los permisos de acceso y gestión, puede no solo editar el contenido de la web, sino también gestionar los permisos del resto de usuarios, asignando los roles correspondientes a las funciones que van a desempeñar. Así, a un colaborador que publique artículos en el blog de la web, le asignará el rol de autor, que tiene permiso para editar y publicar sus propios artículos y acceso a los recursos multimedia de la web, pero no puede llevar a cabo otras acciones, como editar los artículos de otros colaboradores.

Por lo tanto, al usar un sistema RBAC lo que se hace es limitar el acceso de los usuarios a los sistemas y recursos informáticos en base a lo que necesitan para poder desempeñar sus labores, lo que reduce a su vez el impacto que un ciberataque puede tener sobre el sistema, especialmente cuando el punto de entrada son las cuentas de usuario. Si se complementa con otros sistemas de autenticación, como la verificación en 2 pasos o el uso de datos biométricos, como el fingerprinting, la seguridad de toda la infraestructura puede quedar muy reforzada.

¿Cuándo usar un sistema de acceso basado en roles?

Por sus características, el RBAC se emplea sobre todo en grandes empresas con un alto número de empleados, donde la gestión individual de usuarios llevaría mucho más tiempo. En estas empresas, el sistema de acceso basado en roles simplifica esta labor, puesto que a los empleados de un departamento en concreto se les puede asignar un rol de usuario en bloque.

Pero esto no quiere decir que empresas más pequeñas no puedan beneficiarse del RBAC, sobre todo aquellas con una orientación más digital y tecnológica, cuyos recursos se comparten a través de la nube y es necesario establecer un mejor control de quienes pueden acceder a qué recursos y llevar a cabo qué acciones.

¿Cómo implantar un control de acceso basado en roles?

Para que un sistema RBAC funcione correctamente, es imprescindible que se definan y especifiquen los roles y los permisos de la manera más detallada y concreta posible, así quedarán claros tanto el nivel de acceso como las autorizaciones que tendrán los usuarios en función de los roles que se les asignen.

Si se quiere implementar un sistema de control basado en accesos, por lo tanto, lo primero que debe hacerse es determinar qué funciones se van a desempeñar en cada puesto o departamento de la empresa, para, en base a ellas, establecer qué herramientas y recursos se necesitan para llevarlas a cabo y qué niveles de permiso serán necesarios para acceder a ellas. De aquí se determinarán los roles y los permisos que tendrán asociados.

Una vez definidos los roles, estos se asignarán a los usuarios en base a las tareas o puesto que ocupan en la empresa. Es posible, como ya hemos visto, asignar más de un rol a un usuario, e incluso asignarlo de manera temporal, puesto que el sistema también permite, de forma sencilla, revocar los roles de forma individual.

El proceso de creación de los roles es quizás el más complicado, puesto que exige comprender qué necesidades tiene cada puesto de trabajo y departamento para desempeñar sus funciones y que, como hemos visto, es lo que determina el nivel de acceso a los recursos y las acciones que pueden llevar cabo los usuarios en base a su rol asignado.

Por ello, si se está pensando en adaptar el RBAC, es recomendable hacerlo poco a poco, comenzando con pequeños grupos de usuarios y a través de etapas, que permitan controlar y supervisar el proceso y corregir los errores que se puedan cometer (por ejemplo, granular en exceso los roles, creando más de los que puedan ser necesarios).

Ventajas y desventajas del RBAC

Como todos los sistemas de seguridad, el control de acceso basado en roles tiene tanto ventajas como desventajas que deben valorarse antes de decidir si se implementa o no en la empresa.

  • Ventajas:
    • Permite asignar permisos de una forma sencilla en base al puesto de trabajo o el departamento del usuario, lo que facilita el trabajo al departamento de TI, que no necesita ir usuario a usuario concediendo permisos.
    • Es menos susceptible a los errores en la asignación de permisos, puesto que los roles los tienen asociados por defecto.
    • Aumenta la seguridad de todo el sistema, puesto que al conceder un rol, los usuarios tienen limitado el nivel de acceso a los permisos que concede ese rol en concreto, que serán los mínimos necesarios para poder desempeñar su trabajo.
    • Mejora el rendimiento, puesto que reduce el trabajo administrativo y del equipo de TI, ya que los roles pueden asignarse y revocarse en bloque.
    • Facilita el control de privilegios de los usuarios y permite corregir los problemas que se detecten.
    • Permite que nuevos empleados o empleados que han cambiado de posición o puesto, puedan ponerse a trabajar de manera prácticamente inmediata, al asignarle el rol o roles de su nueva posición o departamento.
  • Desventajas:
    • Pasar a un sistema RBAC es complejo y lleva tiempo, puesto que es necesario definir y determinar las funciones de cada puesto de trabajo o departamento, para poder crear roles definidos y los permisos necesarios para poder desempeñar el trabajo.
    • No es adecuado para pequeñas empresas, donde resulta más sencillo y menos costoso asignar permisos y niveles de acceso de forma individual.
    • Se puede cometer tanto el error de granular en exceso los roles, creando demasiados, o no granularlo lo suficiente y conceder niveles de acceso que exceden las funciones y necesidades del usuario.

RBAC vs. ABAC. Diferencias

ABAC es otro paradigma de seguridad que, a diferencia de RBAC, se basa en un conjunto de normas predefinidas basadas en atributos para gestionar los derechos de acceso. Estos atributos pueden ser de diferente índole (información del usuario, información del sistema, etc.) y aplica la lógica booleana para conceder o denegar el acceso a recursos o la realización de acciones (ejemplo: si quien hace la solicitud es un administrador, entonces puede acceder y leer los datos).

En vez de basarse en roles para asignar los permisos, ABAC se basa en conjuntos de atributos, lo que puede limitar más el acceso a determinados recursos, ya que permite crear más variables para controlar los accesos y los privilegios.

Por lo tanto, en un enfrentamiento entre RBAC vs. ABAC en cuanto a seguridad, el segundo es mucho más restrictivo y permite crear un sistema mucho más segmentado en cuanto a nivel de acceso, pero también es más complejo y requiere un mayor poder de procesamiento.