Blog de Amazon Web Services (AWS)
Analizar y comprender el uso de los roles de IAM con Amazon Detective
Por Pedro Gadelha, Arquitecto de Soluciones en AWS y
Pedro Rosinholi, Arquitecto de Soluciones en AWS
Los roles de AWS Identity and Access Management (IAM) proporcionan un mecanismo valioso que puede utilizar para delegar el acceso a usuarios y servicios para administrar y acceder a sus recursos de AWS, pero el uso de roles de IAM puede hacer que sea más complejo determinar quién llevó a cabo una acción determinada. Los registros de AWS CloudTrail rastrean el uso vinculado a los roles de IAM, pero la asignación de la actividad a un recurso específico que ha asumido un rol requiere almacenar los registros de CloudTrail y analizar la telemetría de esos registros. Comprender el uso de roles a través del análisis de registros se vuelve aún más complejo si se usan roles entre cuentas, debido a la necesidad de recopilar, agrupar y analizar registros de varias cuentas. En algunos casos, los permisos pueden permitir que un recurso asuma secuencialmente una serie de roles diferentes (encadenamiento de roles), lo que complica aún más la asignación de actividad a un recurso específico.
En este artículo, demostraremos cómo puede utilizar la nueva función de análisis de sesión de roles de Amazon Detective para investigar los hallazgos de seguridad relacionados con el uso de un rol de IAM. Aprenderá a utilizar esta nueva función de análisis de sesión de roles para determinar qué recurso de Amazon Web Services (AWS) asumió el rol que provocó un descubrimiento y para comprender el contexto de las actividades que recurso ejecutado cuando se desencadenó el descubrimiento. Como resultado de este tutorial, comprenderá cómo verificar rápidamente los comportamientos anómalos de identidad y acceso. Si bien esta demostración utiliza un descubrimiento de Amazon GuardDuty como punto de partida, las técnicas que se muestran en este artículo destacan cómo se puede utilizar Detective para investigar los comportamientos de acceso relacionados con el uso de roles de la IAM.
Con su análisis integrado de registros de varias cuentas, la nueva función de análisis de sesión de roles de Detective proporciona visibilidad sobre el uso de roles, y como fueron asumidos entre cuentas y cualquier actividad de encadenar roles que se hayan realizado en las cuentas. Con esta función, puede determinar rápidamente quién o qué asumió un rol, independientemente de si se trata de un usuario de IAM federado u otro recurso. La función muestra cuándo se asumieron los roles y durante cuánto tiempo, y ayuda a determinar las actividades que se realizaron mientras se usaba el rol. Detective visualiza estos resultados basándose en el análisis automático de los registros de CloudTrail y el tráfico de registros de flujo de VPC (VPC Flow Logs) que procesa continuamente para las cuentas activadas, independientemente de si estos registros están habilitados para cada cuenta.
Para demostrar esta funcionalidad, investigaremos un descubrimiento de “registro de CloudTrail deshabilitado” que se desencadena Amazon GuardDuty como resultado de la actividad realizada por un recurso que asumió un rol de IAM. Amazon GuardDuty es un servicio de AWS que supervisa continuamente el comportamiento malicioso o no autorizado para ayudar a proteger sus recursos de AWS, incluidas las cuentas, las claves de acceso y las instancias de AWS Amazon Elastic Compute Cloud (EC2). GuardDuty identifica actividades inusuales o no autorizadas, como la minería de criptomonedas, el acceso a los datos almacenados en S3 desde direcciones inusuales o las implementaciones de infraestructura en una región que nunca se ha utilizado.
Iniciar la investigación de GuardDuty
GuardDuty emite un resultado denominado CloudTrailLoggingDisabled para avisarle que el registro de CloudTrail que se ha desactivado en una de sus cuentas. Este es un hallazgo importante, ya que puede indicar que un usuario no autorizado está intentando ocultar sus rastros. Como Detective recibe una copia del tráfico de CloudTrail directamente de la infraestructura de AWS, Detective seguirá recibiendo llamadas a la API realizadas después de que se deshabilite el registro de CloudTrail.
Para investigar adecuadamente este tipo de descubrimiento y determinar si se trata de un problema del que debe preocuparse, deberá responder a algunas preguntas específicas:
- Deberá determinar qué usuario o función desactivó CloudTrail.
- Deberá ver qué otras acciones llevaron a cabo después de deshabilitar el registro en CloudTrail.
- Querrá saber si su patrón de acceso y su comportamiento son coherentes con los patrones y comportamientos de acceso anteriores.
Echemos un vistazo a un resultado denominado CloudTrailLoggingDisabled en GuardDuty a medida que comenzamos a tratar de responder a estas preguntas. Cuando accede a la consola de GuardDuty, aparece una lista de sus hallazgos recientes. En la figura 1, se aplicó un filtro para mostrar la detección de CloudTrailLoggingDisabled.
Después de seleccionar la detección de GuardDuty, puede ver los detalles de la detección, incluida parte de la información del usuario relacionada con la detección. La figura 2 muestra la sección de recursos afectados del descubrimiento.
El campo Recursos afectados (Affected Resources) indica que la ruta demo-trail-2 es donde se deshabilitaron los registros. También puede ver qué Tipo de usuario (User type) está establecido en AssumedRole y qué Nombre de usuario (User name) contiene el rol AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5. Este es el rol que se asumió para deshabilitar el registro de CloudTrail. Esta información puede ayudarlo a comprender las funciones a las que este rol delega el acceso y los permisos que proporciona. Aún debe identificar quién asumió específicamente el rol para deshabilitar el registro de CloudTrail y las actividades que realizaron más adelante. Puede utilizar Amazon Detective para responder a estas preguntas.
Investigue el hallazgo en Amazon Detective
Para investigar el descubrimiento de GuardDuty en Detective, seleccione el descubrimiento y, a continuación, seleccione Investigar (Investigate) en el menú Acciones (Actions), como se muestra en la Figura 3.
Consulte la página de ubicación del perfil
Cuando elija la acción Investigar (Investigate) para el hallazgo de CloudTrailLoggingDisabled en GuardDuty, se le redirigirá a la página del perfil de hallazgo en la consola de Detective, como se muestra en la Figura 4. Detective tiene el concepto de una página de perfil que muestra resúmenes y análisis recopilados de los registros de administración de CloudTrail, los registros de flujo de VPC y los hallazgos de GuardDuty para los recursos, las direcciones IP y los usuarios de AWS. Cada página de perfil puede mostrar hasta 12 meses de información para el recurso seleccionado y tiene como objetivo ayudar a los investigadores a revisar y comprender el comportamiento de un recurso o a evaluar rápidamente y profundizar en los posibles problemas. Detective no requiere que un cliente habilite el registro de CloudTrail o VPC Flow Logs para recuperar estos datos y, como se mencionó anteriormente, proporciona 12 meses de visibilidad independientemente de las políticas de retención o archivado de registros del cliente.
Ventana de tiempo
Para ayudar a enfocar su investigación, Detective estandariza el intervalo de tiempo y, por lo tanto, la información que se muestra en un perfil de hallazgo para cubrir el período de tiempo que se creó el descubrimiento hasta que se actualizó por última vez. En el ejemplo mencionado anteriormente, la ventana de tiempo cubre un periodo de 1 hora. Puede cambiar la ventana de tiempo eligiendo el icono del calendario en la esquina superior derecha de la página si desea examinar información adicional antes o después de crear el descubrimiento. La ventana temporal estándar es suficiente para esta investigación, así que podemos dejarlo como está.
Vision General de sesiones de roles
Detective usa pestañas para agrupar la información en las páginas de perfil y, para este descubrimiento, muestra la pestaña Descripción general de la sesión de rol de forma predeterminada. La sesión de rol representa las actividades y el comportamiento del recurso que asumió el rol vinculado a nuestro descubrimiento. En este caso, el rol fue asumido por una persona con el nombre de usuario Sara, como se muestra en la Figura 4, en el campo Asumido por (Assumed by). Asumiremos que el nombre del usuario es Sara. Al analizar la información de la sesión de roles en los registros de CloudTrail, el detective identificó de inmediato que Sara era el usuario que deshabilitó el registro de CloudTrail y generó el descubrimiento. Responder a la pregunta de quién llevó a cabo esta acción.
Antes de responder el resto de las preguntas sobre el comportamiento y las acciones de Sara, analicemos las sesiones de roles con más detalle. Cada sesión de rol tiene un nombre, Sara en este caso, y un identificador único de sesión de rol. El identificador de sesión de rol es el identificador de rol asumido y el nombre de la sesión del rol conjuntamente concatenado. Las mejores prácticas dictan que, para un rol especifico que asume un recurso específico, el nombre de la sesión de rol de función representa el nombre del usuario de IAM o el usuario federado, o incluye otra información útil sobre el recurso que asumió el rol (para obtener más información, consulte el artículo sobre cómo nombrar sesiones individuales de roles de IAM). En este caso, a medida que se siguen las prácticas recomendadas, el detective puede realizar un seguimiento de las actividades y el comportamiento de Sara cada vez que asume el rol AWSReservedsso_AdministratorAccess_598c5f73f8b2b4e5.
Detective hace un seguimiento de las estadísticas, como la primera vez que se observó una sesión de juego de roles (octubre en el caso de Sara para este rol), así como las acciones tomadas y los conocimientos de comportamiento, como los datos de geolocalización en los que Sara asumió el rol. Saber que Sara ha asumido este rol antes es útil, porque ahora puedes evaluar si el uso de su rol ha cambiado durante la ventana de 1 hora de la ventana de tiempo que estás revisando, en comparación con todas las veces que estuvo anteriormente se hizo cargo de este rol.
Analizar los cambios en los patrones de acceso y las operaciones de Sara
Durante una investigación de seguridad, determinar si los patrones de acceso han cambiado puede resultar útil para resaltar la actividad maliciosa. Amazon Detective realiza un seguimiento de los cambios en el acceso geográfico y las operaciones en la pestaña Nuevo Comportamiento (New Behavior). Vamos a elegir la pestaña Nuevo Comportamiento (New Behavior) para que la sesión de rol vea esta información, como se muestra en la figura 5.
Dado que el Detective rastrea cuando Sara asumió el rol de AWSReservedsso_AdministratorAccess_598c5f73f8b2B4e5, puede mostrar dónde Sara asumió este rol y si esa actividad se produjo en una ubicación recurrente.
En la figura 5, es posible ver que Sara tiene antecedentes de haber asumido el rol de AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5 de Bellevue, WA y Ashburn, VA, ya que estas ubicaciones se muestran en azul. Si hubiera tomado este papel desde una nueva ubicación, sería posible observar la nueva posición indicada en naranja en el mapa. Dado que las llamadas a la API realizadas por este usuario proceden de una ubicación observada anteriormente, es muy poco probable que las credenciales del usuario se vean comprometidas. Tomar esta determinación mediante un análisis manual de los registros de CloudTrail llevaría mucho más tiempo.
Otra información que puede recopilar en la pestaña sesión del rol Nuevo comportamiento (New behavior) incluye llamadas a la API realizadas recientemente, llamadas a la API de mayor volumen, organizaciones del sistema autónomo recientemente observadas y agentes de usuario recientemente observados. observado. Es útil poder validar que las operaciones realizadas por Sara durante la ventana de tiempo actual son relativamente consistentes con las operaciones que realizó en el pasado. Esto ayuda a estar más seguro de que en realidad era Sara quien dirigía esta actividad.
Investigar las actividades de la API
Ahora que hemos determinado que el patrón de acceso y las actividades de Sara son consistentes con su comportamiento anterior, usemos Detective para analizar más a fondo las actividades de Sara y determinar si inhabilitó accidentalmente el registro de CloudTrail o si hubo una posible intención maliciosa detrás de su acción.
Para investigar las acciones del usuario
- En la página de ubicación del perfil, en la lista de la parte superior de la pantalla, selecciona Descripción general: Sesión de roles (Overview: Role Session) para volver a la pestaña Descripción general (Overview).
- Una vez que estés en la pestaña Descripción general (Overview), navega hasta el panel Volumen general de llamadas a la API (Overall API call volume).
Este panel muestra un gráfico de las llamadas a la API correctas e incorrectas realizadas por Sara al asumir el rol AWSReservedsso_AdministratorAccess_598c5f73f8b2b4e5. El gráfico muestra un rectángulo negro alrededor de las actividades que se realizaron durante el período de ventana de tiempo de los descubrimientos de CloudTrail. También muestra la actividad histórica y muestra una línea de referencia en el gráfico para resaltar la forma en que utiliza activamente los permisos que se le han otorgado al asumir este rol.
- Haga clic en el botón mostrar detalles para el tiempo de alcance (display details for scope time) para obtener los detalles de la llamada a la API que Sara ejecutó durante la ventana de tiempo, de modo que sea posible determinar sus acciones después de deshabilitar los registros de CloudTrail.
El panel Volumen general de llamadas a la API (Overall API call volume) se expandirá para mostrar todas las direcciones IP, las llamadas a la API y las claves de acceso utilizadas por Sara durante la ventana de tiempo de este descubrimiento.
- Elija la pestaña Método de la API (API method) para ver una lista de todas las llamadas a la API que se realizaron.
En este caso, puede ver que solo invocó dos llamadas a la API durante este período de tiempo: las llamadas a la API StopLogging y AssumeRole. Ya sabías que Sara deshabilitó el registro de CloudTrail, pero no sabías que asumió otro rol. Cuando un usuario asume un rol mientras usa otro, esto se denomina encadenamiento de roles. Aunque el encadenamiento de roles se puede usar porque un usuario necesita permisos adicionales, también se puede usar para ocultar actividades. Como no sabemos qué otras acciones tomó Sara después de asumir este segundo papel, profundicemos más. Esto puede aclarar por qué eligió deshabilitar el registro de CloudTrail.
Examinar tareas encadenadas de asumir roles
Para obtener más información sobre el uso del encadenamiento de roles por parte de Sara, veamos el otro rol que asumió durante esta sesión.
Para analizar el otro rol del usuario
- Vuelve a la parte superior de la página de búsqueda de perfiles. En el panel Detalles de la sesión del rol (Role session details), elija AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5.
El Detective muestra la página de perfil del AWS Role para este rol y puede observar la actividad que se produjo en todos los recursos que asumieron ese rol. Para resaltar la información relevante para el período de su investigación, Detective mantiene su ventana de tiempo a medida que se mueve de la página de perfil de ubicación de CloudTrailLoggingDisabled a la página de perfil del rol.
- El propósito de acceder a esta página es determinar qué otro rol asumió Sara después de asumir AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5 y, a continuación, elegir la pestaña Interacción de recursos (Resource interaction). En esta pestaña, verás los tres paneles siguientes: Recursos que asumieron este rol (Resources that assumed this role), Roles asumidos (Assumed roles) y Sesiones involucradas (Sessions Involved). En la Figura 11, puede ver el panel Recursos que asumieron este rol (Resources that assumed this role), que enumera todos los recursos de AWS que asumieron este rol, su tipo (instancia EC2, usuario federados o IAM, rol de IAM), su cuenta y cuando asumieron el rol por primera y última vez. Sara está en esta lista, pero Detective no muestra una cuenta de AWS a su lado porque los usuarios federados no están vinculados a una cuenta específica. El campo de cuenta se rellena para otros tipos de funciones que se muestran en este panel y puede resultar útil para comprender la adopción de rol entre cuentas.
- En la misma pestaña Interacción de recursos (Resource interaction), al desplazarse hacia abajo, verá el panel Roles asumidos (Assumed Roles), Figura 12, que le ayuda a entender el encadenamiento de roles al enumerar las otras roles que asumió el rol AWSReservedSSO_AdministratorAccess_598c5f73f8b2B4e5. En este caso, el rol asumió otros roles, incluso DemoRole1, durante la misma ventana de tiempo en la que se produjo el hallazgo del evento CloudTrailLoggingDisabled.
- En la Figura 13, puede ver el panel Sesiones involucradas (Sessions involved), que muestra las sesiones de roles para todos los recursos que asumieron este rol y las sesiones de roles en las que ese rol asumió otras roles dentro de la ventana de tiempo. Como puede ver, hay dos sesiones de roles con el nombre de sesión Sara, una en la que asumió el rol AWSReservedSSO_AdministratorAccess_598C5F73f8B2B4e5 y otra en la que AWSReservedSSO_AdministratorAccess_ 598c5f73f8 b2b4e5 asumió DemoRole1.
Ahora que sabes que Sara también usó el rol de DemoRole1 durante su sesión de rol, echemos un vistazo más de cerca a las acciones que realizó.
Visualizar las operaciones de la API que se invocaron dentro de un rol encadenado
En este paso, se analizarán las actividades de Sara dentro del rol DemoRole1, centrándose en las llamadas a la API ejecutadas.
Para ver la actividad del usuario en otro rol
- En el panel Sesiones involucradas (Sessions involved), en la columna Nombre de la sesión (Session name), busque la fila en la que Demorole1 es el Rol asumido (Assumedrole). Elija el nombre de la sesión en esta fila, Sara, para ir a la página de perfil de la sesión de rol.
- Para investigar más a fondo los métodos de API a los que se llamó durante esta sesión de rol, puede verlos en el panel Volumen general de llamadas a la API (Overall API call volume). Como se muestra en la Figura 14, puede ver que Sara accedió a Demorole1 antes, porque hay llamadas grabadas en el gráfico antes de las llamadas en la ventana de tiempo.
- Elija los detalles de visualización para el botón de ventana de tiempo (display details for scope time) en el panel Volumen de llamadas a la API general y, a continuación, elija la pestaña Método de la API (API method).
En la figura 14, puede ver que las llamadas se realizaron a los métodos de API DescribeInstances y RunInstances. Ahora sabe que Sara determinó el tipo de instancias do Amazon EC2 que se estaban ejecutando en su cuenta y, a continuación, creó correctamente una instancia EC2 llamando al método de la API RunInstances. También puede ver que se realizaron llamadas correctas y fallidas al método de la API AttachRolePolicy como parte de la sesión. Esto podría ser un intento de elevar los permisos en la cuenta y justificaría una mayor investigación de las acciones del usuario.
Durante la investigación, se identificó que Sara era la usuaria que deshabilitó el registro de CloudTrail y que su patrón de acceso era consistente con sus accesos anteriores. También fue posible identificar las otras acciones que realizó después de desactivar el registro y asumir una segunda rol, pero puede continuar investigando más a fondo respondiendo preguntas adicionales, como:
- ¿Qué hizo Sara con Demorole1 cuando asumió este rol en el pasado? ¿Sus actividades actuales son consistentes con sus actividades pasadas?
- ¿Qué actividades se llevan a cabo en esta cuenta? ¿Son coherentes con las actividades de Sara?
Al usar las funciones de Detective que se demostraron en esta publicación, podrás responder preguntas como las enumeradas anteriormente.
Resumen
Después de leer este artículo, esperamos que comprenda mejor las formas en que Amazon Detective recopila, organiza y presenta los datos de registro para simplificar sus investigaciones de seguridad. Todas las suscripciones al servicio Detective incluyen las nuevas funciones de análisis de sesión de roles. Con estas funciones, puede asignar rápidamente la actividad realizada bajo un rol a un recurso específico en su entorno, comprender las actividades que asumen roles entre cuentas, determine el comportamiento del encadenamiento de roles y vea rápidamente las llamadas a la API.
Todos los clientes tienen un período gratuito de 30 días al activar Amazon Detective. Consulte la página de servicios regionales de AWS para comprobar todas las regiones en las que está disponible Detective. Para obtener más información, visite la página del producto o consulte los recursos adicionales al final de este artículo para ampliar aún más su conocimiento de las funciones y capacidades de Detective.
Recursos adicionales
Características de Amazon Detective
Descripción general y demostración de Amazon Detective (en ingles)
Preguntas frecuentes sobre de Amazon Detective
Puntos de enlace y cuotas de Amazon Detective
Nombrar sesiones de roles de IAM individuales (en ingles)
¿Desea obtener más contenido, noticias y anuncios de funciones de seguridad de AWS? Síguenos en Twitter.
Este artículo fue traducido del Blog de AWS en Inglés.
Sobre los autores
Pedro Gadelha es Arquitecto de Soluciones en AWS con experiencia en redes, migración y seguridad. Se esfuerza por ayudar a las empresas a utilizar todo el potencial de la nube.
Pedro Rosinholi es Arquitecto de Soluciones en AWS con más de 10 años de experiencia en soluciones de TI. Ayuda a las empresas de varios sectores en su transición a la nube de una manera segura, escalable y resiliente. En su tiempo libre pone discos de vinilo para reproducir.
Revisado por Fer Laguna