lunes, 17 de octubre de 2016

Certificación de accesos: el problema de los grupos anidados (1/3)

Resultado de imagen de certification of accessLa mayoría de las compañías, por no decir todas, utilizan el directorio activo además de para autenticar quién ha accedido a la organización también, y creo que es una buena práctica, para autorizar los accesos a aplicaciones (VPN, aplicaciones de terceros, aplicaciones desarrolladas en “casa”, recursos de red, workflows de aprobación…etc) a través de grupos (seguridad locales, universales… de directorio activo). Esto hace que el directorio activo sea parte del “core” de las compañías o el “core” principal (esto dependerá de la propia organización) y todo el modelo de autorización gire alrededor de el.

A la hora de autorizar los accesos, la práctica más común es añadir usuarios a los grupos para que dependiendo de su pertenencia o no tengan o no autorización de acceso a la aplicación, recurso…etc. Esta práctica ha ido degenerando en reutilizar ya grupos existentes y añadir el modelo de autorización definido a estos grupos en otros grupos, es decir, que además de añadir usuarios añadimos grupos. Y esto hace que se produzcan lo que hemos titulado, como parte del post, grupos anidados…es anidar grupos, de grupos, de grupos…y así de forma ilimitada. En la siguiente imagen se puede ver de forma gráfica a qué me refiero.

image

Esto a priori no parece que produzca ningún problema pero sólo a priori ya que dos problemas muy extendidos son:

  1. Referencias circulares: se pierde la noción de anidamiento de los grupos y al final uno de los grupos de jerarquías inferiores (Group G) hace referencia a una jerarquía superior (Group A).
  2. Certificación de accesos: es totalmente imposible realizar un seguimiento del modelo de autorización dado los niveles de anidamiento que se tienen implantado. No se podrá conocer si un usuario puede acceder a un recurso (modelo de autorización) de manera directa (definido en el modelo de autorización) o de forma indirecta por el anidamiento de grupo al cual el usuario pertenece a uno de esos niveles de anidamiento.

Estos dos problemas creo que son los más preocupantes dentro del directorio activo y desde el punto de vista de seguridad, el punto 2 genera un alto riesgo corporativo ya que alguien sin tener acceso a una aplicación podría acceder, incluso con permisos administrativos, únicamente por el anidamiento de grupos.

Después de realizar multitud de pruebas de concepto, proyectos…etc alrededor delResultado de imagen de afirmar con la cabeza si directorio activo y el modelo de autorización desplegado en el, la opción 2, que se ha descrito con anterioridad, es más extendida de lo que todos creemos (si ahora hacéis un parón en la lectura del post y pensáis en vuestro entorno seguro que giráis la cabeza de forma afirmativa y os sentís identificados)

Una vez expuesto la problemática os voy a dar las pautas a seguir y donde One Identity Manager (1IM) os puede ayudar a identificar (que ya es un punto muy importante) y mitigar este tipo de problemas en el directorio activo. Es importante destacar que todo lo que vamos a contar aquí sobre cómo identificar/mitigar esta problemática sobre el directorio activo se podrá realizar sobre cualquier plataforma (SAP, Notes, Exchange, O365, ServiceNow, aplicaciones personalizadas, aplicaciones de terceros…etc) que está siendo gestionada por One Identity Manager.

Partiendo de una instalación de One Identity Manager (ver cómo se puede realizar de forma sencilla en el siguiente link Instalación y Configuración de 1IM) configurado el proceso de sincronización con directorio activo (ver el siguiente link One Identity Manager: Instalación, configuración y sincronización con directorio activo en 6 pasos (no más de 45 minutos) (2/2) el paso 5) vamos a explicar los pasos para poder identificar y mitigar el problema de los grupos anidados.

 

Paso 0: Identificar los grupos anidados

Nota: Este paso realmente no es un paso como tal sino una explicación de donde vamos a recoger la información de los grupos y demás.

Una vez se ha realizar el proceso de sincronización, One Identity Manager expone la información de grupos anidados en una tabla de la base de datos: ADSGroupCollection. Iniciar la consola “Object Browser” y seleccionar la tabla ADSGroupCollection. Doble Click y seleccionar un registro.

image

En mi caso he seleccionado un registro que me indica de un sólo vistazo si el anidamiento crea una referencia circular (IsCircular) y además el nivel de anidamiento (LevelNumber)

image

El aspecto de la tabla desde SQL Management Studio es el siguiente

image

 
Paso 1: Visualizar la información a nivel de usuario/grupo

La información que se obtiene de esta tabla es el anidamiento de grupos en el directorio activo pero nosotros necesitamos la información a nivel de cuenta de usuario (incluidos si fuera necesario empleados) de directorio más que a nivel de grupos porque sino estaríamos en el mismo problema de partida (no es el mismo porque ya que esta información tenemos identificados qué grupos están anidados, su nivel de anidamiento y si producen referencia circular). Para obtener esta información necesitamos realizar JOIN entre diversas tablas del gestor de identidades: ADSAccountInADSGroup, ADSGroupCollection, ADSAccount, Person, ADSGroup y ESetHasEntitlement). Vamos a ir por pasos:

Conocer qué grupos están anidados entre sí:

Select grpParent.SAMAccountName  as GroupParent, 
    grpChild.SAMAccountName as GroupChild, agc.LevelNumber, agc.IsCircular
    from ADSGroupCollection AGC, ADSGroup grpParent, ADSGroup grpChild
    where AGC.UID_ADSGroupParent = grpParent.UID_ADSGroup
    and AGC.UID_ADSGroupChild = grpChild.UID_ADSGroup
    and AGC.UID_ADSGroupParent <> AGc.UID_ADSGroupChild
    order by 1


image

Conocer qué accesos tiene un usuario por el anidamiento de grupos (ejemplo: alejandro.fernandez)

Select grpParent.SAMAccountName  as GroupParent, grpChild.SAMAccountName as GroupChild,
    aa.SAMAccountName as AccountChild, agc.LevelNumber, agc.IsCircular
    from ADSGroupCollection AGC, ADSGroup grpParent, ADSGroup grpChild,
    ADSAccount AA,  ADSAccountInADSGroup AAIA
    where AGC.UID_ADSGroupParent = grpParent.UID_ADSGroup
    and AGC.UID_ADSGroupChild = grpChild.UID_ADSGroup
    and AGC.UID_ADSGroupParent <> AGc.UID_ADSGroupChild
    -- members Parent
    and AAIA.UID_ADSGroup = grpChild.UID_ADSGroup
    and AAIA.UID_ADSAccount = AA.UID_ADSAccount
    and aa.SAMAccountName = 'Alejandro.Fernandez'
    order by 1


image

A través de esta última consulta tenemos la información necesaria para comenzar la certificación de acceso por aplicación de la compañía.

 

Paso 2: Extender el esquema de One Identity Manager

Para facilitar la gestión y administración del proceso de certificación en One Identity Manager crearemos una nueva vista uniendo la información de las consultas que previamente hemos visto. Para ello utilizaremos la utilidad “Schema eXtension”

image

image

SELECT DISTINCT a.CanonicalName, e.DisplayName AS ApplicationName
    FROM dbo.ADSAccountInADSGroup AS aig INNER JOIN
    dbo.ADSGroupCollection AS c ON aig.UID_ADSGroup = c.UID_ADSGroupChild INNER JOIN
    dbo.ADSAccount AS a ON aig.UID_ADSAccount = a.UID_ADSAccount INNER JOIN
    dbo.Person AS P ON P.UID_Person = a.UID_Person INNER JOIN
    dbo.ADSGroup AS g ON c.UID_ADSGroupParent = g.UID_ADSGroup INNER JOIN
    dbo.ESetHasEntitlement AS ehe ON ehe.Entitlement = g.XObjectKey INNER JOIN
    dbo.ESet AS e ON e.UID_ESet = ehe.UID_ESet


image 

image

image

Paso 3: Identificar las aplicaciones en One Identity Manager

El proceso de identificación de las aplicaciones es algo conocido por la organización ya que es cómo están trabajando en la actualidad con las aplicaciones. En mi directorio activo del laboratorio tengo una aplicación definida como Salesforce (unidad organizativa) y dentro de esta todos los grupos que definen el modelo de autorización en dicha aplicación

image

Ahora en One Identity Manager, se definirá un paquete de recursos (resources packages) para identificar la aplicación (Salesforce) y todos los grupos del directorio activo implicados en dicha aplicación (GRP Salesforce – Administration, GRP Salesforce – Full Access…etc)

image

Nota: si la estructura del directorio activo es como en mi laboratorio (OU=<Aplicación>\Grupos <de la aplicación>) se podrá realizar la carga de forma automatizada

 

Espero que os sirva de ayuda

lunes, 10 de octubre de 2016

One Identity Manager: Añadiendo más módulos y funcionalidades

Resultado de imagen de building blocksComo ya se ha comentado, One Identity Manager es un solución flexible y modular. Esta característica, muy importante desde mi punto de vista, hace que no existe dependencia entre módulos y a nivel parches, nuevas mejoras en los módulos…etc hace que se puedan aplicar sin verse afectados otros módulos del gestor de identidades. Por ello, es necesario activar cada uno de los módulos que vamos a utilizar en el gestor de identidades en el proceso de instalación pero ¿qué ocurre si tengo que añadir un nuevo módulo después de haber desplegado la solución?

La respuesta es fácil:

  • Desde la ruta donde se encuentran los binarios de One Identity, pulsar el fichero ConfigWizard.exe

image

image

  • Seleccionar Update database

image

  • Seleccionar Add New Modules

image

seleccionar los módulos que se desean activar y listo. A pesar de parecer obvio, en otros gestores de identidades al existir una dependencia entre los módulos hace que se despliegue toda la solución con independencia de lo que se vaya a utilizar. Desde mi punto de visto no es lo más adecuado y se nota que dicha solución además de antigua es arcaica y hace que pensar.

Espero que os sirva de ayuda

viernes, 26 de agosto de 2016

UPDATE: One Identity Manager: Instalación, configuración y sincronización con directorio activo en 6 pasos (no más de 45 minutos) (1/2)

Se ha añadido un paso muy importante, que parece que no añadí (gracias Iker Garcia por comentármelo), al proceso de instalación de One Identity Manager que es la selección de módulos a instalar. Este paso es el que indica al gestor de identidades qué plataformas va a gestionar inicialmente.

image

Aquí os dejo un diagrama de todos modelos de la estructura de One Identity Manager

image

Cada uno de estos módulos tiene una funcionalidad que está descrita en el web del producto pero creo que con los nombre a priori uno se puede hacer la idea de lo que abarca cada uno de ellos.

 

Espero que os sirva de ayuda.

miércoles, 17 de agosto de 2016

One Identity Manager: Instalación, configuración y sincronización con directorio activo en 6 pasos (no más de 45 minutos) (2/2)

Una vez realizada la instalación de los binarios, desplegada la base de datos con la estructura de tablas que el producto necesita y la configuración del job services que es el encargado de la ejecución de los procesos (con los pasos 1 a 3 ya estaríamos listos para comenzar) vamos a realizar una configuración muy básica de la solución (añadir auditoría de los procesos y poco más…)Veremos en siguientes posts la parametrización tan útil que One Identity evitando así desarrollo personalizado)

Paso 4: Configuración básica (auditoría)

  • Desde el wizard de configuración, pulsar el botón Run en la sección Designer. Si no está disponible la ventana del Wizard, buscar Designer y listo.

image_thumb[22]

  • Seleccionar Edit configuration parameters

image

  • Añadir la configuración que se muestra en las siguiente imagenes

image

image

image

Más información sobre qué es lo que significa cada uno de los parámetros: http://support-public.cfm.software.dell.com/33711_D1IM_QBM_ConfigurationGuide.pdf

  • Pulsar Commit Database | Save
  • Pulsar Add job server

image

  • Seleccionar el servidor y en la parte inferior añadir las siguientes funciones al servidor

image

  • Pulsar Commit Database | Save
  • Pulsar Database | Compile database…

image

  • Pulsar Next
  • Pulsar Next

image

  • Pulsar Next

image

  • Pulsar Next
  • Pulsar Finish
  • Reiniciar el servicio “Dell One Identity Manager”

 

Paso 5: Configuración del proceso de sincronización con AD

  • Iniciar la aplicación Synchronization Editor.

image

image

  • Pulsar Start a new syncrhonization project
  • Pulsar Next

image

  • Seleccionar Active Directory Connector. Pulsar Next
  • Pulsar Next
  • Pulsar Next

image

  • Añadir los datos de conexión y pulsar Next

image

  • Pulsar Next

image

  • Pulsar Next

image

  • Pulsar Finish

image

  • Incorporar los datos de conexión a la base de datos de One Identity Manager. Pulsar Next

image

image

  • Pulsar Next

image

  • Seleccionar el servidor encargado del proceso de sincronización (Job Server). Pulsar Next

image

  • Pulsar Finish

image

image

  • Pulsar Yes

image

image

  • Pulsar start up configurations

image

  • Pulsar el botón Execute. Posteriormente aparecerá un cuadro de diálogo, pulsar Yes y por último Ok

Pasados unos minutos (dependerá del entorno que estemos probando). Iniciar la consola Manager | ADS

image

image

Pulsar la pestaña Employees. Aparecerán todos los empleados de la compañía. Se ha tomado como plataforma para la creación de la identidad digital el directorio activo por eso, por cada usuario de AD se ha creado una identidad.

 

Paso 6: Desplegar portar web (It-shop)

Paso previo al despliegue del portal web, el servidor tendrá que tener los siguientes prerrequisitos:

image

image

  • Iniciar la aplicación Web Installer

image 

image

  • Seleccionar install a new web portal. Pulsar Next
  • Incorporar los datos de conexión a la base de datos. Pulsar Next

image

  • Configurar el portal como se muestra en la siguiente imagen

image

  • pulsar el botón configuration y añadir un usuario válido (viadmin, usuario creado en el proceso de instalación). Pulsar Ok

image

  • Pulsar Next

image

image

  • Pulsar Next

image

  • Pulsar Next
  • Pulsar Finish

Para verificar que se puede acceder correctamente al portal, acceder a través de la siguiente url http://<server>/IdentityManager

 

Con estos 6 pasos que hemos detallado en el blog y no más de 45 minutos (partiendo de que teníamos un servidor virtual con SQL Server ya montado) ya tenemos en funcionamiento One Identity Manager como gestor de identidades, eso si, únicamente de directorio activo pero poco a poco iremos construyendo la identidad digital del empleado en los siguiente posts.

 

Artículos relacionados:

Espero que os sirva de ayuda