Seguridad avanzada con protección contra amenazas - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguridad avanzada con protección contra amenazas

Tras crear el grupo de usuarios, tendrá acceso a la protección contra amenazas en el menú de navegación de la consola de Amazon Cognito. Puede activar las funciones de protección contra amenazas y personalizar las acciones que se toman en respuesta a los distintos riesgos. También es posible utilizar el modo de auditoría para recopilar métricas sobre los riesgos detectados sin necesidad de aplicar mitigación alguna de seguridad. En el modo auditoría, Threat Protection publica las métricas en Amazon CloudWatch. Puede ver las métricas después de que Amazon Cognito genere su primer evento. Consulte Visualización de las métricas de protección contra amenazas.

La protección contra amenazas, anteriormente denominada funciones de seguridad avanzadas, consiste en un conjunto de herramientas de supervisión para detectar actividades no deseadas en su grupo de usuarios y herramientas de configuración para detener automáticamente cualquier actividad potencialmente maliciosa. La protección contra amenazas tiene diferentes opciones de configuración para las operaciones de autenticación estándar y personalizadas. Por ejemplo, puede que quiera enviar una notificación a un usuario con un inicio de sesión de autenticación personalizado sospechoso, en el que haya configurado factores de seguridad adicionales, pero también bloquear a un usuario con el mismo nivel de riesgo con una autenticación básica de nombre de usuario y contraseña.

La protección contra amenazas está disponible en el plan de funciones Plus. Para obtener más información, consulte Planes de funciones para grupos de usuarios.

Las siguientes opciones de grupos de usuarios son los componentes de la protección contra amenazas.

Credenciales comprometidas

Los usuarios reutilizan las contraseñas de varias cuentas de usuario. La característica de credenciales comprometidas de Amazon Cognito recopila datos de filtraciones públicas de nombres de usuario y contraseñas y compara las credenciales de los usuarios con listas de credenciales filtradas. La detección de credenciales comprometidas también comprueba las contraseñas que se suelen adivinar. Puede comprobar si hay credenciales comprometidas en los flujos de autenticación username-and-password estándar de los grupos de usuarios. Amazon Cognito no detecta las credenciales comprometidas en la contraseña remota segura (SRP) ni en la autenticación personalizada.

Puede elegir las acciones del usuario que solicitan la comprobación de credenciales comprometidas y la acción que desea que Amazon Cognito realice en respuesta. Para los eventos de inicio de sesión, registro y cambio de contraseña, Amazon Cognito puede Bloquear el inicio de sesión o Permitir el inicio de sesión. En ambos casos, Amazon Cognito genera un registro de actividad del usuario, donde puede encontrar más información sobre el evento.

Autenticación flexible

Amazon Cognito puede revisar la información sobre la ubicación y el dispositivo de las solicitudes de inicio de sesión de los usuarios y aplicar una respuesta automática para proteger las cuentas de usuario del grupo de usuarios contra actividades sospechosas. Puede supervisar la actividad de los usuarios y automatizar las respuestas relativas a los niveles de riesgo detectados en el nombre de usuario, la contraseña, la SRP y la autenticación personalizada.

Al activar la protección contra amenazas, Amazon Cognito asigna una puntuación de riesgo a la actividad de los usuarios. Puede asignar una respuesta automática a una actividad sospechosa: puede solicitar la MFA, bloquear el inicio de sesión o simplemente registrar los detalles de la actividad y la puntuación de riesgo. También puede enviar automáticamente mensajes de correo electrónico para notificar al usuario la actividad sospechosa para que pueda restablecer la contraseña o realizar otras acciones autoguiadas.

Lista de direcciones IP permitidas y denegadas

Con la protección contra amenazas de Amazon Cognito en el modo de función completa, puede crear direcciones IP, bloquear siempre y permitir excepciones. A una sesión de una dirección IP en la lista de excepciones Always block (Bloquear siempre) no se le asigna un nivel de riesgo mediante la autenticación adaptativa y no puede iniciar sesión en su grupo de usuarios.

Exportación de registros

La protección contra amenazas registra detalles detallados de las solicitudes de autenticación de los usuarios en su grupo de usuarios. Estos registros incluyen evaluaciones de amenazas, información del usuario y metadatos de las sesiones, como la ubicación y el dispositivo. Para conservar y analizar estos registros, puede crear con ellos archivos externos. Los grupos de usuarios de Amazon Cognito exportan los registros de protección contra amenazas a Amazon S3, CloudWatch Logs y Amazon Data Firehose. Para obtener más información, consulte Visualización y exportación del historial de eventos de los usuarios.

Consideraciones y limitaciones para la protección contra amenazas

Las opciones de protección contra amenazas varían según los flujos de autenticación

Amazon Cognito admite tanto la autenticación flexible como la detección de credenciales comprometidas con los flujos de autenticación USER_PASSWORD_AUTH y ADMIN_USER_PASSWORD_AUTH. Solo puede habilitar la autenticación flexible para USER_SRP_AUTH. No puede utilizar la protección contra amenazas con el inicio de sesión federado.

Bloquee siempre la IPs contribución para solicitar cuotas

Las solicitudes bloqueadas de direcciones IP que figuran en una lista de excepciones Bloquear siempre del grupo de usuarios contribuye a las cuotas de tasas de solicitudes para los grupos de usuarios.

La protección contra amenazas no aplica límites de tasas

Parte del tráfico malintencionado se caracteriza por un gran volumen de solicitudes, como los ataques de denegación de servicio (DDoS) distribuidos. Las clasificaciones de riesgo que Amazon Cognito aplica al tráfico entrante se basan en la solicitud y no tienen en cuenta el volumen de solicitudes. Las solicitudes individuales en un evento de gran volumen pueden recibir una puntuación de riesgo y una respuesta automática por motivos relacionados con la capa de aplicaciones y no por su papel en un ataque volumétrico. Para implementar defensas contra los ataques volumétricos en sus grupos de usuarios, añada la AWS WAF web ACLs. Para obtener más información, consulte Asociar una ACL AWS WAF web a un grupo de usuarios.

La protección contra amenazas no afecta a las solicitudes de M2M

La concesión de credenciales de cliente está destinada a la autorización machine-to-machine (M2M) sin conexión con las cuentas de usuario. La protección contra amenazas solo supervisa las cuentas de usuario y las contraseñas de su grupo de usuarios. Para implementar funciones de seguridad en su actividad M2M, tenga en cuenta las capacidades de monitoreo de AWS WAF las tasas de solicitudes y el contenido. Para obtener más información, consulte Asociar una ACL AWS WAF web a un grupo de usuarios.

Activar la protección contra amenazas en los grupos de usuarios

Amazon Cognito user pools console
Para activar la protección contra amenazas para un grupo de usuarios
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, introduzca sus AWS credenciales.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Si aún no lo ha hecho, active el plan de funciones Plus desde el menú de configuración.

  5. Selecciona el menú Protección contra amenazas y selecciona Activar.

  6. Elija Guardar cambios.

API

Configura tu plan de funciones como Plus en una solicitud CreateUserPoolo a una UpdateUserPoolAPI. El siguiente ejemplo parcial del cuerpo de la solicitud establece la protección contra amenazas en el modo de función completa. Para ver un ejemplo de solicitud completo, consulte Ejemplos.

"UserPoolAddOns": { "AdvancedSecurityMode": "ENFORCED" }

La protección contra amenazas es el término colectivo que designa a las características que supervisan las operaciones de los usuarios en busca de indicios de apropiación de cuentas y responden automáticamente para proteger las cuentas de usuario afectadas. Puede aplicar la configuración de protección contra amenazas a los usuarios cuando inician sesión con flujos de autenticación estándar y personalizados.

La protección contra amenazas genera registros que detallan el inicio y el cierre de sesión de los usuarios y otras actividades. Puede exportar estos registros a un sistema de terceros. Para obtener más información, consulte Visualización y exportación del historial de eventos de los usuarios.

Conceptos de aplicación de la protección contra amenazas

La protección contra amenazas comienza en un modo de solo auditoría, en el que el grupo de usuarios supervisa la actividad de los usuarios, asigna los niveles de riesgo y genera registros. Como práctica recomendada, ejecute el modo de solo auditoría durante dos semanas o más antes de activar el modo de función completa. Este modo incluye un conjunto de reacciones automáticas ante la detección de actividades peligrosas y contraseñas comprometidas. Con el modo de solo auditoría, puede supervisar las evaluaciones de amenazas que realiza Amazon Cognito. También puede proporcionar comentarios que servirán para entrenar la característica sobre falsos positivos y negativos.

Puede configurar la aplicación de la protección contra amenazas en el nivel del grupo de usuarios para que abarque a todos los clientes de aplicaciones del grupo de usuarios y en el nivel de los clientes de aplicaciones individuales. Las configuraciones de protección contra amenazas de los clientes de aplicación anulan la configuración del grupo de usuarios. Para configurar la protección contra amenazas para un cliente de aplicaciones, vaya a los ajustes del cliente de aplicaciones desde el menú de clientes de aplicaciones de su grupo de usuarios en la consola de Amazon Cognito. Allí, en Utilizar configuración de nivel de cliente, configure la aplicación de la protección exclusivamente para el cliente de aplicación.

Además, puede configurar la protección contra amenazas por separado para los tipos de autenticación estándar y personalizada.

Protección contra amenazas para la autenticación estándar y la autenticación personalizada

Las formas de configuración de la protección contra amenazas dependen del tipo de autenticación que realice en el grupo de usuarios y en los clientes de aplicaciones. Cada uno de los siguientes tipos de autenticación puede tener su propio modo de aplicación y respuestas automáticas.

Autenticación estándar

La autenticación estándar consiste en el inicio de sesión, el cierre de sesión y la gestión de contraseñas de los usuarios con flujos de nombre de usuario y contraseña y en el inicio de sesión gestionado. La protección contra amenazas de Amazon Cognito monitorea las operaciones en busca de indicadores de riesgo cuando inician sesión con un inicio de sesión administrado o utilizan los siguientes parámetros de APIAuthFlow:

InitiateAuth

USER_PASSWORD_AUTH, USER_SRP_AUTH. La característica de credenciales comprometidas no tiene acceso a las contraseñas en inicio de sesión con USER_SRP_AUTH y no supervisa los eventos relacionados con este flujo ni actúa en consecuencia.

AdminInitiateAuth

ADMIN_USER_PASSWORD_AUTH, USER_SRP_AUTH. La característica de credenciales comprometidas no tiene acceso a las contraseñas en inicio de sesión con USER_SRP_AUTH y no supervisa los eventos relacionados con este flujo ni actúa en consecuencia.

Puede configurar el Modo de cumplimiento de la autenticación estándar en las opciones Solo auditoría o Función completa. Para deshabilitar la supervisión de amenazas para la autenticación estándar, defina la protección contra amenazas como Sin aplicación.

Autenticación personalizada

La autenticación personalizada consiste en el inicio de sesión del usuario con desencadenadores de Lambda de desafío personalizados. No puede realizar una autenticación personalizada en el inicio de sesión gestionado. La protección contra amenazas de Amazon Cognito supervisa las operaciones en busca de indicadores de riesgo cuando se inicia sesión con el parámetro AuthFlow de la API CUSTOM_AUTH de InitiateAuth y AdminInitiateAuth.

Puede configurar el Modo de cumplimiento de la autenticación personalizada en las opciones Solo auditoría, Función completa o Sin aplicación. La opción de no aplicación inhabilita la supervisión de amenazas para una autenticación personalizada sin afectar a otras funciones de protección contra amenazas.

Requisitos previos de la protección contra amenazas

Antes de comenzar, necesitará lo siguiente:

  • Un grupo de usuarios con un cliente de aplicación. Para obtener más información, consulte Introducción a los grupos de usuarios.

  • Establezca la autenticación multifactor (MFA) en Optional (Opcional) en la consola de Amazon Cognito para utilizar la característica de autenticación flexible basada en riesgos. Para obtener más información, consulte Adición de MFA a un grupo de usuarios..

  • Si utiliza notificaciones por correo electrónico, diríjase a la consola de Amazon SES para configurar y verificar un dominio o una dirección de correo electrónico con el fin de usar notificaciones por correo electrónico. Para obtener más información sobre Amazon SES, consulte Verificación de identidades en Amazon SES.

Configuración de la protección contra amenazas

Siga estas instrucciones para configurar la protección contra amenazas para el grupo de usuarios.

nota

Para configurar una configuración de protección contra amenazas diferente para un cliente de aplicaciones en la consola de grupos de usuarios de Amazon Cognito, seleccione el cliente de aplicación en el menú Clientes de aplicaciones y elija Usar configuración a nivel de cliente.

AWS Management Console
Para configurar la protección contra amenazas para un grupo de usuarios
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, introduzca sus AWS credenciales.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Elija el menú Protección contra amenazas y seleccione Activar.

  5. Elija el método de protección contra amenazas que desee configurar: Autenticación estándar y personalizada. Puede configurar diferentes modos de aplicación para la autenticación personalizada y estándar, pero ambas comparten la configuración de las respuestas automatizadas en el modo Función completa.

  6. Seleccione Editar.

  7. Elija un Modo de aplicación. Para empezar a responder inmediatamente a los riesgos detectados, seleccione Función completa y configure las respuestas automatizadas para las credenciales en riesgo y la autenticación flexible. Para recopilar información en los registros de nivel de usuario y en ellos CloudWatch, seleccione Auditar únicamente.

    Se recomienda mantener la protección contra amenazas en modo auditoría durante dos semanas antes de activar las acciones. Durante este tiempo, Amazon Cognito puede aprender los patrones de uso de los usuarios de la aplicación y, por su parte, puede enviar comentarios sobre eventos para ajustar las respuestas.

  8. Si seleccionó Audit only (Solo auditoría), elija Save changes (Guardar los cambios). Si seleccionó Full function (Función completa):

    1. Seleccione si va a realizar una acción Custom (Personalizada) o a utilizar los Cognito defaults (Valores predeterminados de Cognito) para responder ante supuestas Compromised credentials (Credenciales atacadas). Los Cognito defaults (Valores predeterminados de Cognito) son:

      1. Detectar credenciales atacadas enSign-in (Inicio de sesión), Sign-up (Registro), y Password change (Cambio de contraseña).

      2. Responder ante credenciales atacadas con la acción Block sign-in (Bloquear inicio de sesión).

    2. Si ha seleccionado acciones Custom (Personalizadas) para Compromised credentials (Credenciales comprometidas), elija las acciones del grupo de usuarios que Amazon Cognito utilizará para la Event detection (Detección de eventos) y las Compromised credentials responses (Respuestas contra credenciales atacadas) que desearía que Amazon Cognito realizara. PuedeBlock sign-in (Bloquear inicio de sesión) o Allow sign-in (Permitir inicio de sesión) con supuestas credenciales atacadas.

    3. Elija cómo responder a los intentos de inicio de sesión maliciosos en Adaptive authentication (Autenticación flexible). Seleccione si va a realizar una acción Custom (Personalizada) o a utilizar los Cognito defaults (Valores predeterminados de Cognito) para responder ante supuestas Compromised credentials (Credenciales atacadas). Cuando selecciona Cognito defaults (Valores predeterminados de Cognito), Amazon Cognito bloquea el inicio de sesión en todos los niveles de riesgo y no notifica al usuario.

    4. Si selecciona acciones Custom (Personalizadas) para Adaptive Authentication (Autenticación flexible), elija acciones de Automatic risk response (Respuesta automática al riesgo) que Amazon Cognito llevará a cabo en respuesta a los riesgos detectados en función del nivel de gravedad. Cuando asigna una respuesta a un nivel de riesgo, no se puede asignar una respuesta menos restrictiva a un nivel de riesgo más alto. Puede asignar las siguientes respuestas a los niveles de riesgo:

      1. Allow sign-in (Permitir inicio de sesión): No se realizan acciones preventivas.

      2. Optional MFA (MFA opcional): si el usuario tiene MFA configurada, Amazon Cognito siempre requerirá que el usuario proporcione un SMS adicional o un factor de contraseña temporal de un solo uso (TOTP) cuando inicie sesión. Si el usuario no tiene MFA configurada, puede seguir iniciando sesión normalmente.

      3. Require MFA (Requerir MFA): si el usuario tiene MFA configurada, Amazon Cognito siempre requerirá que el usuario proporcione un SMS adicional o un factor de contraseña temporal de un solo uso (TOTP) cuando inicie sesión. Si el usuario no tiene MFA configurada, Amazon Cognito le pedirá que configure la MFA. Antes de requerir automáticamente la MFA para los usuarios, configure un mecanismo en la aplicación para capturar números de teléfono para la MFA por SMS o para registrar aplicaciones autenticadoras para la MFA por TOTP.

      4. Block sign-in (Bloquear inicio de sesión): impide que el usuario inicie sesión.

      5. Notify user (Notificar al usuario): envía un mensaje de correo electrónico al usuario con información sobre el riesgo que Amazon Cognito detectó junto con la respuesta que se ha realizado. Puede personalizar plantillas de correo electrónico para los mensajes que envíe.

  9. Si eligió Notify user (Notificar al usuario) en el paso anterior, puede personalizar la configuración de entrega de correo electrónico y las plantillas de menajes de correo electrónico para una autenticación flexible.

    1. En Email configuration (Configuración de correo electrónico), elija las opciones SES Region (Región SES), FROM email address (DE dirección de correo electrónico), FROM sender name (DE remitente) y REPLY-TO email address (Dirección de correo electrónico del DESTINATARIO) que desea utilizar con la autenticación flexible. Para obtener más información sobre cómo integrar los mensajes de correo electrónico del grupo de usuarios con Amazon Simple Email Service, consulte Configuración de correo electrónico para grupos de usuarios de Amazon Cognito.

      Historial de eventos del usuario
    2. Expanda Email templates (Plantillas de correo electrónico) para personalizar las notificaciones de autenticación flexible con versiones de correo electrónico en HTML y de texto sin formato. Para obtener más información sobre las plantillas de mensajes de correo electrónico, consulte Plantillas de mensaje.

  10. Amplíe las excepciones de direcciones IP para crear una lista de rangos de direcciones o rangos de IPv6 direcciones que siempre estén permitidos IPv4 o bloqueados, independientemente de la evaluación de los riesgos de protección contra amenazas. Especifique los intervalos de direcciones IP en CIDR notation (Notación CIDR) (como por ejemplo: 192.168.100.0/24).

  11. Elija Guardar cambios.

API (user pool)

Para establecer la configuración de protección contra amenazas para un grupo de usuarios, envíe una solicitud de SetRiskConfigurationAPI que incluya un UserPoolId parámetro, pero no uno. ClientId A continuación, se muestra un ejemplo de cuerpo de solicitud de un grupo de usuarios. Esta configuración de riesgo ejecuta una serie de acciones cada vez mayores en función de la gravedad del riesgo y envía notificaciones a los usuarios en todos los niveles de riesgo. Aplica un bloqueo de credenciales comprometidas a las operaciones de registro.

Para aplicar esta configuración, debe AdvancedSecurityMode configurarla ENFORCED en una solicitud independiente CreateUserPoolo de UpdateUserPoolAPI. Para obtener más información sobre las plantillas de marcadores de posición, como {username} en este ejemplo, consulte Configuración de los mensajes de verificación e invitación.

{ "AccountTakeoverRiskConfiguration": { "Actions": { "HighAction": { "EventAction": "MFA_REQUIRED", "Notify": true }, "LowAction": { "EventAction": "NO_ACTION", "Notify": true }, "MediumAction": { "EventAction": "MFA_IF_CONFIGURED", "Notify": true } }, "NotifyConfiguration": { "BlockEmail": { "Subject": "You have been blocked for suspicious activity", "TextBody": "We blocked {username} at {login-time} from {ip-address}." }, "From": "admin@example.com", "MfaEmail": { "Subject": "Suspicious activity detected, MFA required", "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA." }, "NoActionEmail": { "Subject": "Suspicious activity detected, secure your user account", "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password." }, "ReplyTo": "admin@example.com", "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" } }, "CompromisedCredentialsRiskConfiguration": { "Actions": { "EventAction": "BLOCK" }, "EventFilter": [ "SIGN_UP" ] }, "RiskExceptionConfiguration": { "BlockedIPRangeList": [ "192.0.2.0/24","198.51.100.0/24" ], "SkippedIPRangeList": [ "203.0.113.0/24" ] }, "UserPoolId": "us-west-2_EXAMPLE" }
API (app client)

Para establecer la configuración de protección contra amenazas para un cliente de aplicaciones, envía una solicitud de SetRiskConfigurationAPI que incluya un UserPoolId parámetro y un ClientId parámetro. A continuación, se muestra un ejemplo de cuerpo de solicitud de un cliente de aplicación. Esta configuración de riesgo es más estricta que la configuración del grupo de usuarios y bloquea las entradas de alto riesgo. También aplica bloques de credenciales comprometidas a las operaciones de registro, inicio de sesión y restablecimiento de contraseñas.

Para aplicar esta configuración, debes AdvancedSecurityMode configurarla ENFORCED en una solicitud independiente CreateUserPoolo de UpdateUserPoolAPI. Para obtener más información sobre las plantillas de marcadores de posición, como {username} en este ejemplo, consulte Configuración de los mensajes de verificación e invitación.

{ "AccountTakeoverRiskConfiguration": { "Actions": { "HighAction": { "EventAction": "BLOCK", "Notify": true }, "LowAction": { "EventAction": "NO_ACTION", "Notify": true }, "MediumAction": { "EventAction": "MFA_REQUIRED", "Notify": true } }, "NotifyConfiguration": { "BlockEmail": { "Subject": "You have been blocked for suspicious activity", "TextBody": "We blocked {username} at {login-time} from {ip-address}." }, "From": "admin@example.com", "MfaEmail": { "Subject": "Suspicious activity detected, MFA required", "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA." }, "NoActionEmail": { "Subject": "Suspicious activity detected, secure your user account", "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password." }, "ReplyTo": "admin@example.com", "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" } }, "ClientId": "1example23456789", "CompromisedCredentialsRiskConfiguration": { "Actions": { "EventAction": "BLOCK" }, "EventFilter": [ "SIGN_UP", "SIGN_IN", "PASSWORD_CHANGE" ] }, "RiskExceptionConfiguration": { "BlockedIPRangeList": [ "192.0.2.1/32","192.0.2.2/32" ], "SkippedIPRangeList": [ "192.0.2.3/32","192.0.2.4/32" ] }, "UserPoolId": "us-west-2_EXAMPLE" }