Por qué es importante tener un sistema centralizado de Gestión de Acceso (O: “Autorización-como-Servicio”)

Image by TU Lankide, <​https://www.flickr.com/photos/tulankide/37639204310/> under CC license <​https://creativecommons.org/licenses/by-nc-nd/2.0/>

En el dominio de la Seguridad de la Información, la Gestión de Identidad y Acceso (IAM, por sus siglas en inglés) es el campo que trata de asegurar que los usuarios adecuados tienen acceso apropiado a diferentes recursos (datos, aplicaciones, etc). En otras palabras, garantiza que estos usuarios solo puedan acceder a aquello para lo que han sido autorizados, según decisiones tomadas por los propietarios de esos recursos, y basadas en los riesgos que suponen.

Esta es la teoría, al menos. Pero esta teoría puede aplicarse de diferentes maneras:

Si nuestra organización usa (u ofrece) múltiples aplicaciones, simplemente podemos asegurarnos de que cada aplicación administre de forma independiente el acceso de usuarios (es decir, quién puede hacer qué).

O bien podemos administrar ese nivel de acceso de manera centralizada, en lo que se conoce como un sistema de Gestión de Acceso (AM, por sus siglas en inglés). De esta manera, nuestras aplicaciones simplemente deben preguntar a este sistema si un usuario específico puede realizar una acción determinada o no. Este sistema de AM se convierte en el cerebro de las decisiones de autorización, una solución única donde el acceso se define y mantiene, y expone sus capacidades a las aplicaciones consumidoras y a otros servicios. Estas capacidades encarnan el concepto de "Autorización-como-servicio", lo que significa que las aplicaciones cliente pueden simplemente consumir este servicio y centrarse mejor en el desarrollo de las funcionalidades de su misión principal.

Como veremos, el uso de un sistema de AM centralizado es la única apuesta de futuro para la nueva era digital en términos de seguridad, escalabilidad, gestión y gobierno. Pero a pesar de que, en mi opinión, esto resulta claro sobre el papel, no dejo de encontrarme sorprendentemente a menudo con un profundo desacuerdo por parte de los propietarios y administradores de aplicaciones:

Ya controlamos el acceso de nuestros usuarios directamente desde de nuestra aplicación. ¿Por qué deberíamos cambiar esto ahora e invertir esfuerzo para acabar haciendo lo mismo con esta nueva solución de Gestión de Acceso?

En primer lugar, quiero aclarar que adoro la mentalidad de los ingenieros. Este tipo de forma de pensar, desafiante e inquisitiva, es lo que evita que implementemos lo que no debemos, asegura que no construyamos sistemas por el simple hecho de hacerlo y nos obliga a recabar la información de forma concienzuda, ya que hemos de asegurarnos de tener las respuestas a las preguntas que sabemos que nos van a lanzar (y a algunas otras que aún no esperamos). Por tanto, es una pregunta del todo acertada: ¿Cuáles son los motivos para utilizar un sistema de AM centralizado? Según mi experiencia, se pueden resumir en los siguientes puntos:

  1. Aplicar restricciones estratégicas. El origen de este desafío en particular es un malentendido muy simple y común: "Nosotros ya sabemos quién debe tener acceso". O, en otras palabras: "Esa decisión queda totalmente en nuestras manos, como propietarios de los recursos". Es cierto que, como propietarios, la decisión de quién debe tener acceso al recurso es sólo suya. Pero la decisión de quién no debe tenerlo puede también provenir de niveles superiores en la organización, y esta podría exceder la comprensión o el alcance del propietario del recurso. A modo de ejemplo, digamos que este propietario afirma que todos los abogados de la empresa necesitan acceder a su aplicación. Sin embargo, después de que nuestra empresa haya adquirido a otra organización que resulta ser competidora de algunos de nuestros clientes, el departamento de Riesgos establece que, por razones legales y de competitividad, nadie de la empresa recién adquirida debe tener acceso a los datos de estos clientes. ¿Pretendemos que el propietario del recurso esté al tanto de esta decisión? De hecho, ¿pretendemos que TODOS los propietarios de recursos se mantengan alerta e informados de TODOS estos tipos de decisiones? Después de todo, la mayoría de las restricciones no serán aplicables a la mayoría de las aplicaciones. Y lo que es aún peor, ¿pretendemos inspeccionar todas estas aplicaciones para verificar y recopilar evidencias de que tales restricciones se han implementado correctamente en todas partes? Una solución de AM centralizada eliminará este problema, ya que dicha restricción solo debe definirse en un único lugar. Como resultado, sólo un subconjunto de la población de usuarios autorizada por el propietario del recurso obtendrá realmente acceso, mediante la intersección de todos los criterios definidos, para asegurar que no se permite ningún acceso inapropiado.
  2. Hacer cumplir la Segregación de Funciones (SoD, por sus siglas en inglés) entre sistemas. Incluso si los propietarios de los recursos tuvieran la capacidad de analizar y responder a tiempo a todas estas restricciones estratégicas, existe otro tipo de restricción que nunca van a lograr controlar. Algunos procesos de negocio requieren evitar que el mismo usuario lleve a cabo diferentes pasos del proceso (por ejemplo, para evitar fraude, un usuario no puede aprobar gastos qué él mismo envió). A veces, esto también significa que el usuario no puede acceder a un recurso en particular si ya tiene acceso a algún otro recurso que se considera en conflicto, y que potencialmente reside en una aplicación diferente. En otras palabras, estos conflictos de SoD a menudo se basan en información que no está disponible localmente para la aplicación, por lo que la única forma de garantizar las restricciones de SoD entre distintos sistemas es utilizar una solución de AM centralizada. De nuevo, la aplicación ya no tendrá que preocuparse por esos conflictos, y sólo debe hacer una sencilla pregunta (¿puede el usuario hacer esto?) y actuar en función de una respuesta de tipo Sí/No.
  3. Compartir permisos existentes. La Autorización-como-servicio significa, entre otras cosas, que podremos tener varias aplicaciones haciendo lo mismo desde una perspectiva de la autorización (por ejemplo, "¿Puede el usuario ver el nombre del cliente?"). Si este es el caso, una solución de AM central permite tener un único permiso coherente que consumirán múltiples aplicaciones en lugar de duplicarlo en todas ellas, lo que garantizaría inconsistencias y discrepancias en el futuro.
  4. Tener un portal único para la información. A medida que las organizaciones crecen en tamaño y complejidad, la información sobre "quién puede hacer qué" se convierte en un activo en sí mismo, que debe poder utilizarse por motivos de seguridad, cumplimiento normativo y legales. Si nuestro equipo legal pregunta “¿a qué tienen acceso los entrevistadores del departamento de IT?”, tener un sistema de AM centralizado nos da la oportunidad de ofrecer una respuesta completa y rápida. De lo contrario, debemos entrar en el doloroso proceso de enviar solicitudes a múltiples aplicaciones (en el rango de cientos o incluso miles, según la organización), hacer un seguimiento de todas ellas, verificar la integridad de los resultados, armonizarlos para su coherencia, etc.
  5. Implementar controles y gobierno coherentes. La Gestión de Identidad y Accesos es una función extremadamente crítica, siempre en el centro de la Seguridad de la Información. Como tal, está bajo un estrecho escrutinio por parte de las funciones de gobierno y cumplimiento normativo. A menudo, se deben implementar múltiples controles para garantizar que los riesgos se mitiguen y minimicen de acuerdo con el apetito de la empresa. Tener una única solución de AM significa que estos controles deben implementarse solo una vez, de manera centralizada y consistente, en lugar de hacerlo para cada una de las aplicaciones consumidoras, replicando así el esfuerzo e introduciendo inconsistencias en la estrategia de gobierno.
  6. Mejorar la usabilidad. Claramente, ofrecer a los usuarios una interfaz única donde las solicitudes de acceso se puedan crear y administrar supondrá una experiencia mucho más amigable que pretender que interactúen con cientos de aplicaciones, con procesos y usabilidad inconsistentes. Facilitar a los usuarios la realización de estas actividades de gestión de acceso reducirá el descontrol (es decir, acceso inadecuado) a largo plazo.

Una vez implementado dicho sistema de AM, seremos capaces de transferir todos estos objetivos, específicos de IAM, a un componente central y podremos permitir que los sistemas consumidores los ignoren por completo y continúen con su propósito real. Por supuesto, no nos hemos centrado aquí en los requisitos reales y los detalles de implementación de una solución de este tipo, lo que de ninguna manera es una tarea fácil. Pero confío en que el concepto fundamental de “Autorización-como-servicio” haya quedado claro y sus beneficios sean evidentes de cara a permitir que las organizaciones crezcan y se adentren en una nueva realidad donde la flexibilidad y el dinamismo serán primordiales.

Comentarios

Entradas populares de este blog

No hay que preocuparse por los usuarios privilegiados (O: Controlando acciones, no personas)

La importancia de la gramática en IAM (AKA: Un permiso es un verbo)