¿Cuántos roles tiene su sistema SAP? ¿Cuáles incumplen la política de segregación de funciones? ¿Los usuarios tienen solo las autorizaciones estrictamente necesarias? ¿El sistema saldría bien parado de una auditoría de seguridad? Estas cuestiones se pueden resolver con reingeniería manual, sin embargo, debido al volumen de datos y la complejidad del sistema de roles, no estamos hablando de algo sencillo, ni rápido.
En SAP, los roles definen los permisos y privilegios de los usuarios dentro de la organización. Si no se sigue una política estricta en su gestión, con el tiempo, este esquema tiende a degradarse rápidamente. Además, hay que tener en cuenta que el sistema evoluciona con la compañía y puede pasar por diferentes etapas (como fusiones o escisiones, cambios de personal, creación y supresión de departamentos, etc.), lo que agudiza aún más el problema. El resultado, en la mayoría de las ocasiones, es que el número de roles crece de forma descontrolada, y muchos de ellos no se gestionan adecuadamente, de modo que se generan deficiencias muy graves de seguridad que pueden afectar al cumplimiento de regulaciones como el RGPD o la LOPD.
Volver a una situación ordenada requiere una reingeniería de roles que, si se realiza manualmente, presenta una complejidad muy elevada, con una duración media de entre 10 y 18 meses. Una alternativa es usar machine learning (ML) y análisis de datos para detectar puestos tipo, clasificar los usuarios en función de ellos, detectar fallos de segregación en los roles, así como generar un nuevo esquema de autorizaciones que cumpla con la ley y la política de seguridad corporativa a partir de los datos reales de uso del sistema.
Manos a la obra
Para plasmar un escenario sobre el que trabajar, usaré un ejemplo ficticio que representa un sistema SAP productivo de alguno de los clientes con los que he trabajado. Pongamos que la empresa en cuestión cuenta con 5000 usuarios y alrededor de 3000 transacciones activas, en un sistema SAP que se instaló en 2004 y que ha pasado por varios upgrades. Además, la empresa ha vivido diferentes cambios estructurales que se han realizado sin llevar a cabo una política adecuada en cuanto a la gestión de roles y el control de puestos tipo.
Es posible automatizar todo el proceso, desde la extracción de datos hasta la definición del nuevo esquema
El resultado es que, dieciséis años después, y ya con más de 200 000 roles generados, el esquema de autorizaciones tiene un estado muy deficiente: muchos de ellos están repetidos o cuentan con más permisos de los adecuados, hay usuarios con exceso de roles o que arrastran autorizaciones de puestos en los que ya no trabajan… Se hace complicado el mantenimiento de este esquema y lo que suele ocurrir es que, además, constantemente se crean nuevos roles a petición. De hecho, el concepto de “puesto tipo” queda difuminado y, en la práctica, cada usuario tiene su propio conjunto de roles a medida.
Reingeniería de roles
La mejor opción para reconducir esta situación es llevar a cabo una reingeniería de roles. Para ello es necesario identificar los puestos tipo de la empresa y qué funciones realizan, para conocer qué transacciones son necesarias para esas funciones, y qué roles y autorizaciones se requieren para cada una de esas transacciones.
No suelen estar documentadas adecuadamente las funciones que desarrolla cada empleado y por qué
El primer paso se antoja complicado, ya que no suelen estar documentadas adecuadamente las funciones que desarrolla cada empleado y por qué. De hecho, en ocasiones resulta difícil justificar las razones por las que la misma persona realiza funciones heterogéneas en la organización. En el ejemplo que estamos utilizando, una empresa de este tipo podría disponer de una matriz usuarios-transacciones con quince millones de celdas, algo inmanejable de forma manual. Por tanto, enumerar los puestos tipo no es una tarea trivial.
Hay dos posibles formas de afrontar este análisis: el reconocimiento de patrones y el agrupamiento (clustering). En cuanto al primero de estos modelos, se puede realizar también con varios enfoques, aunque el más interesante es el basado en datos gráficos en lugar de numéricos. Sin entrar en mayores detalles, modelizando la actividad de un usuario mediante una escala de color se obtienen una serie de bandas, muy parecidas a las que se generan en los análisis de ADN o en las espectrografías de radioastronomía. A través de inteligencia artificial se puede efectuar un reconocimiento de patrones para la definición “canónica” de puestos tipo. Finalmente, enfrentando estos patrones con el conjunto de datos extraídos del sistema, se obtiene una identificación aproximada de quién hace qué.
En cuanto al agrupamiento a partir de una muestra estadística, permitirá actuar cuando no se cuenta con una definición ajustada de los puestos tipo y se quiere utilizar la reingeniería de roles para redefinirlos a partir del uso real del sistema. Hay una gran variedad de algoritmos de agrupamiento, y no todos son adecuados para estos conjuntos de datos. Lo que sí podemos hacer es reducir las dimensiones mediante el uso de información heurística y aplicando criterios que ya conocemos. Por ejemplo, en SAP hay ciertas transacciones que se suelen ejecutar unidas y, normalmente, por la misma persona: quien da de alta un pedido también se encarga de modificarlo. Además, a través de la matriz de covarianzas podemos detectar aquellas transacciones cuya relación mutua no es evidente. El resultado final de estos y otros procesos devuelve un conjunto acotado de grupos que, a grandes rasgos, representan los puestos tipo reales de la empresa.
A través de inteligencia artificial se puede efectuar un reconocimiento de patrones para la definición “canónica” de puestos tipo
Con el conjunto obtenido se vuelve a la matriz inicial y se identifican las transacciones propias de cada grupo, descartando aquellas que son residuales desde el punto de vista estadístico. Cada grupo tendrá asignado un conjunto de transacciones y de funciones y, a través de una herramienta de generación automática, se utiliza el conjunto de resultados obtenido —usuarios, grupos, funciones, transacciones, roles y autorizaciones— para crear un nuevo esquema de seguridad.
Cinco etapas clave
Una forma de afrontar esta reingeniería de roles es a través de soluciones como euKaria, que permite automatizar el proceso completo, desde la extracción de datos del sistema SAP y su procesamiento hasta la definición final del nuevo esquema de seguridad. El camino está dividido en cinco etapas:
- Obtención automática del esquema de roles y usuarios del sistema mediante un extractor, con opción de anonimización de datos.
- Análisis de los usuarios, aplicando IA para encontrar patrones y agruparlos en un conjunto limitado de puestos tipo.
- Se crea una base de datos de grafos que genera un esquema lógico de relaciones entre entidades: usuarios, roles, autorizaciones y funciones. Al compararlo con la matriz de segregación de funciones es posible detectar roles que contienen funciones incompatibles entre sí, funciones críticas o incorrectamente asignadas, o accesos a datos de negocio por parte de usuarios técnicos.
- Se genera un esquema completo de roles y autorizaciones que puede importarse directamente en un sistema, o bien utilizarse como guía para llevar a cabo una reingeniería de roles.
- Por último, la solución permite efectuar controles continuos para detectar cambios que no cumplan con la segregación de funciones vigente.