Articulo de referencia

Control de acceso basado en atributos

El control de acceso basado en atributos ( ABAC ), también conocido como control de acceso basado en políticas para IAM , define un paradigma de control de acceso en el que la a...

El control de acceso basado en atributos ( ABAC ), también conocido como control de acceso basado en políticas para IAM , define un paradigma de control de acceso en el que la autorización de un sujeto para realizar un conjunto de operaciones se determina evaluando los atributos asociados con el sujeto, el objeto, las operaciones solicitadas y, en algunos casos, los atributos del entorno. [ 1 ]

ABAC es un método para implementar políticas de control de acceso que es altamente adaptable y se puede personalizar utilizando una amplia gama de atributos, lo que lo hace adecuado para su uso en entornos distribuidos o de rápido cambio. Las únicas limitaciones en las políticas que se pueden implementar con ABAC son las capacidades del lenguaje computacional y la disponibilidad de atributos relevantes. [ 2 ] Las reglas de política de ABAC se generan como funciones booleanas de los atributos del sujeto, los atributos del objeto y los atributos del entorno. [ 3 ]

A diferencia del control de acceso basado en roles (RBAC), que define roles con un conjunto específico de privilegios asociados y a los que se asignan sujetos, ABAC permite expresar conjuntos de reglas complejos que evalúan diversos atributos. Al definir atributos consistentes para sujetos y objetos en las políticas de seguridad, ABAC elimina la necesidad de autorizaciones explícitas para los sujetos individuales, necesarias en métodos de acceso que no utilizan ABAC , lo que reduce la complejidad de la gestión de listas de acceso y grupos.

Los valores de los atributos pueden ser conjuntos o atómicos. Los atributos conjuntos contienen más de un valor atómico. Ejemplos de ello son rol y proyecto . Los atributos atómicos contienen solo un valor atómico. Ejemplos de ello son autorización y sensibilidad . Los atributos se pueden comparar con valores estáticos o entre sí, lo que permite el control de acceso basado en relaciones.

Aunque el concepto en sí existía desde hace muchos años, ABAC se considera un modelo de autorización de "próxima generación" porque proporciona un control de acceso dinámico, contextual e inteligente en cuanto al riesgo a los recursos, lo que permite definir políticas de control de acceso que incluyen atributos específicos de muchos sistemas de información diferentes para resolver una autorización y lograr un cumplimiento normativo eficiente, lo que permite a las empresas flexibilidad en sus implementaciones en función de sus infraestructuras existentes.

El control de acceso basado en atributos a veces se denomina control de acceso basado en políticas ( PBAC ) o control de acceso basado en reclamaciones ( CBAC ), que es un término específico de Microsoft. Los estándares clave que implementan ABAC son XACML y ALFA (XACML) . [ 4 ]

Dimensiones del control de acceso basado en atributos

ABAC puede verse como:

  • Gestión de autorizaciones externalizada [ 5 ]
  • Gestión dinámica de autorizaciones [ 6 ]
  • Control de acceso basado en políticas
  • Autorización detallada

Componentes

Arquitectura

ABAC viene con una arquitectura recomendada que es la siguiente:

  1. El PEP o Punto de Aplicación de Políticas: es responsable de proteger las aplicaciones y los datos a los que se desea aplicar ABAC. El PEP inspecciona la solicitud y genera una solicitud de autorización que envía al PDP.
  2. El PDP o Punto de Decisión de Política es el cerebro de la arquitectura. Es el componente que evalúa las solicitudes entrantes en función de las políticas con las que se ha configurado. El PDP devuelve una decisión de Permitir/Denegar. El PDP también puede utilizar PIP para recuperar metadatos faltantes.
  3. El PIP o Punto de Información de Políticas conecta el PDP con fuentes externas de atributos, por ejemplo, LDAP o bases de datos.

Atributos

Los atributos pueden referirse a cualquier cosa y a cualquier persona. Suelen clasificarse en 4 categorías diferentes:

  1. Atributos del sujeto: atributos que describen al usuario que intenta acceder, por ejemplo, edad, nivel de autorización, departamento, rol, cargo.
  2. Atributos de acción: atributos que describen la acción que se intenta realizar, por ejemplo, leer, eliminar, ver, aprobar.
  3. Atributos del objeto: atributos que describen el objeto (o recurso) al que se accede, por ejemplo, el tipo de objeto (historial médico, cuenta bancaria), el departamento, la clasificación o confidencialidad, la ubicación.
  4. Atributos contextuales (ambientales): atributos que se ocupan del tiempo, la ubicación o los aspectos dinámicos del escenario de control de acceso [ 7 ].

Políticas

Las políticas son declaraciones que combinan atributos para expresar lo que puede suceder y lo que no. En ABAC, las políticas pueden ser de concesión o denegación. También pueden ser locales o globales y estar redactadas de forma que anulen otras políticas. Algunos ejemplos son:

  1. Un usuario puede ver un documento si el documento está en el mismo departamento que el usuario.
  2. Un usuario puede editar un documento si es el propietario y si el documento está en modo borrador.
  3. Denegar el acceso antes de las 9 AM

Con ABAC puede tener un número ilimitado de políticas que se adaptan a muchos escenarios y tecnologías diferentes. [ 7 ]

Otros modelos

Históricamente, los modelos de control de acceso han incluido el control de acceso obligatorio (MAC), el control de acceso discrecional (DAC) y, más recientemente, el control de acceso basado en roles (RBAC). Estos modelos se centran en el usuario y no tienen en cuenta parámetros adicionales como la información del recurso, la relación entre el usuario (la entidad solicitante) y el recurso, ni información dinámica, como la hora del día o la dirección IP del usuario.

ABAC intenta solucionar esto definiendo el control de acceso en función de atributos que describen la entidad solicitante (el usuario), el objeto o recurso de destino, la acción deseada (ver, editar, eliminar) e información contextual o del entorno. Por eso se dice que el control de acceso se basa en atributos.

Implementaciones

Existen tres implementaciones principales de ABAC:

XACML , el lenguaje de marcado de control de acceso extensible, define una arquitectura (compartida con ALFA y NGAC), un lenguaje de políticas y un esquema de solicitud/respuesta. No gestiona la administración de atributos (asignación de atributos de usuario, asignación de atributos de objeto, asignación de atributos de entorno), que se deja a las herramientas, bases de datos y directorios tradicionales de IAM .

Las empresas, incluidas todas las ramas de las fuerzas armadas de Estados Unidos, han comenzado a utilizar ABAC. En su nivel básico, ABAC protege los datos con reglas condicionales (SI/ENTONCES/Y) en lugar de asignarlos a usuarios. El Departamento de Comercio de Estados Unidos ha convertido esta práctica en obligatoria y su adopción se está extendiendo a varias agencias gubernamentales y militares. [ 8 ]

Aplicaciones

El concepto de ABAC se puede aplicar en cualquier nivel de la pila tecnológica y de la infraestructura empresarial. Por ejemplo, se puede utilizar en el firewall, el servidor, la aplicación, la base de datos y la capa de datos. El uso de atributos aporta contexto adicional para evaluar la legitimidad de cualquier solicitud de acceso y fundamentar la decisión de concederlo o denegarlo.

Un aspecto importante a considerar al evaluar las soluciones ABAC es comprender su posible impacto en el rendimiento y en la experiencia del usuario. Se espera que cuanto más detallados sean los controles, mayor sea dicho impacto.

Seguridad de API y microservicios

ABAC se puede utilizar para aplicar una autorización granular basada en atributos a los métodos o funciones de la API. Por ejemplo, una API bancaria puede exponer un approveTransaction(transId)método. ABAC se puede utilizar para proteger la llamada. Con ABAC, el autor de una política puede escribir lo siguiente:

  • Política : los gerentes pueden aprobar transacciones hasta su límite de aprobación.
  • Atributos utilizados : rol, identificador de acción, tipo de objeto, cantidad, límite de aprobación.

El flujo sería el siguiente:

  1. La usuaria, Alice, llama al método API.approveTransaction(123)
  2. La API recibe la llamada y autentica al usuario.
  3. Un interceptor en la API llama al motor de autorización (normalmente llamado Punto de Decisión de Política o PDP) y pregunta: ¿Puede Alice aprobar la transacción 123?
  4. El PDP recupera la política ABAC y los atributos necesarios.
  5. El PDP toma una decisión, por ejemplo, Permitir o Denegar, y la devuelve al interceptor de la API.
  6. Si la decisión es Permitir, se ejecuta la lógica de negocio subyacente de la API. De lo contrario, la API devuelve un error o un mensaje de acceso denegado.

Seguridad de la aplicación

Una de las principales ventajas de ABAC es que las políticas y atributos de autorización se pueden definir de forma independiente de la tecnología. Esto significa que las políticas definidas para API o bases de datos se pueden reutilizar en el entorno de la aplicación. Algunas aplicaciones comunes que pueden beneficiarse de ABAC son:

  1. Sistemas de gestión de contenido (CMS)
  2. Sistemas de planificación de recursos empresariales (ERP)
  3. Aplicaciones desarrolladas localmente
  4. Aplicaciones web

El mismo proceso y flujo que se describe en la sección de la API se aplica también aquí.

Seguridad de la base de datos

La seguridad de las bases de datos ha sido durante mucho tiempo específica de los proveedores de bases de datos: Oracle VPD, IBM FGAC y Microsoft RLS son todos métodos para lograr una seguridad granular similar a la de ABAC.

Un ejemplo sería:

  • Política: los gerentes pueden ver las transacciones en su región.
  • Política reelaborada de forma centrada en los datos: los usuarios con role = managerpueden realizar la acción SELECTen table = TRANSACTIONSsiuser.region = transaction.region

seguridad de los datos

La seguridad de datos suele ir un paso más allá de la seguridad de la base de datos y aplica el control directamente al elemento de datos. Esto se conoce como seguridad centrada en los datos. En las bases de datos relacionales tradicionales, las políticas ABAC pueden controlar el acceso a los datos en la tabla, columna, campo, celda y subcelda mediante controles lógicos con condiciones de filtrado y enmascaramiento basados ​​en atributos. Los atributos pueden basarse en datos, usuario, sesión o herramientas para ofrecer el mayor nivel de flexibilidad en la concesión/denegación dinámica del acceso a un elemento de datos específico. En big data y sistemas de archivos distribuidos como Hadoop, ABAC aplicado en la capa de datos controla el acceso a carpetas, subcarpetas, archivos, subarchivos y otros niveles granulares.

Seguridad de macrodatos

El control de acceso basado en atributos también se puede aplicar a sistemas de Big Data como Hadoop. Se pueden aplicar políticas similares a las utilizadas anteriormente al recuperar datos de lagos de datos. [ 9 ] [ 10 ]

Seguridad del servidor de archivos

A partir de Windows Server 2012, Microsoft implementó un enfoque ABAC para controlar el acceso a archivos y carpetas. Esto se logra mediante el control de acceso dinámico (DAC) [ 11 ] y el lenguaje de definición de descriptores de seguridad (SDDL). SDDL puede considerarse un lenguaje ABAC, ya que utiliza metadatos del usuario (declaraciones) y del archivo/carpeta para controlar el acceso.

Véase también

Referencias

  1. División de Seguridad Informática, Laboratorio de Tecnología de la Información (24-05-2016). "Control de acceso basado en atributos | CSRC | CSRC" . CSRC | NIST . Consultado el 25-11-2021 .
  2. Hu, Vincent C.; Kuhn, D. Richard; Ferraiolo, David F.; Voas, Jeffrey (febrero de 2015). "Control de acceso basado en atributos". Computer . 48 (2): 85– 88. Bibcode : 2015Compr..48b..85H . doi : 10.1109/MC.2015.33 . ISSN 1558-0814 . S2CID 54967881 .  
  3. "Guía para servicios web seguros: Recomendaciones del Instituto Nacional de Estándares y Tecnología" (PDF) .
  4. Silva, Edelberto Franco; Muchaluat-Saade, Débora Christina; Fernandes, Natalia Castro (2018-01-01). "ACROSS: Un marco genérico para el control de acceso basado en atributos con políticas distribuidas para organizaciones virtuales" . Future Generation Computer Systems . 78 : 1–17 . doi : 10.1016/j.future.2017.07.049 . ISSN 0167-739X . 
  5. "Descripción general de la tecnología para la gestión de autorizaciones externalizadas" . www.gartner.com . Consultado el 31 de mayo de 2017 .
  6. "Brújula de liderazgo: Gestión dinámica de autorizaciones - 71144" . KuppingerCole . 14 de julio de 2020. Consultado el 14 de julio de 2020 .
  7. 1 2 "Alternativas para sistemas de control de acceso basados ​​en roles/reclamaciones" . stackoverflow.com .
  8. Sanford, Jim (28 de marzo de 2019). "Cifrado con esteroides: control de acceso basado en atributos (ABAC)" . Siemens . Consultado el 13 de octubre de 2023 .
  9. "La autorización dinámica y granular protege los macrodatos" .
  10. "Primer control de acceso a datos de grano fino en Hadoop" . Archivado del original el 23 de marzo de 2016.
  11. "Información general sobre el control de acceso dinámico (Windows 10) - Seguridad de Windows" . 13 de febrero de 2024.
  • CONTROL DE ACCESO BASADO EN ATRIBUTOS (ABAC) - DESCRIPCIÓN GENERAL
  • Modelo de control de acceso basado en atributos unificado (ABAC) que abarca DAC, MAC y RBAC.
  • Modelos de control de acceso basados ​​en atributos (ABAC) e implementación en infraestructura como servicio en la nube