Pruebe los resultados de GuardDuty en cuentas dedicadas - Amazon GuardDuty

Pruebe los resultados de GuardDuty en cuentas dedicadas

Utilice este documento para ejecutar un script de pruebas que genera resultados de GuardDuty respecto a recursos de prueba que se implementarán en la Cuenta de AWS. Siga estos pasos para comprender y familiarizarse con determinados tipos de resultados de GuardDuty, así como para explorar cómo se presentan los detalles de los resultados en recursos reales dentro de la cuenta. Esta experiencia es diferente a la de generar Hallazgos de ejemplo. Para obtener más información sobre cómo probar los resultados de GuardDuty, consulte Consideraciones.

Consideraciones

Antes de continuar, tenga en cuenta las siguientes consideraciones:

  • GuardDuty recomienda implementar la herramienta de pruebas en una Cuenta de AWS dedicada que no sea de producción. Este enfoque garantizará que pueda identificar correctamente los resultados de GuardDuty generados por la herramienta de pruebas. Además, la herramienta de pruebas de GuardDuty implementa una variedad de recursos que podrían requerir permisos de IAM adicionales a los permitidos en otras cuentas. Al utilizar una cuenta dedicada, se garantiza que los permisos se puedan delimitar correctamente con un límite de cuenta claro.

  • El script de la herramienta de pruebas genera más de 100 resultados de GuardDuty con diferentes combinaciones de recursos de AWS. Actualmente, esto no incluye todos los Tipos de resultados de GuardDuty. Para obtener una lista de los tipos de resultados que puede generar con este script de la herramienta de pruebas, consulte El script de la herramienta de pruebas de resultados de GuardDuty puede generar.

  • Para que la herramienta de pruebas de GuardDuty funcione según lo previsto, GuardDuty debe estar habilitado en la cuenta en la que se implementan los recursos de la herramienta de pruebas. Según las pruebas que se ejecutarán, la herramienta de pruebas evalúa si los planes de protección GuardDuty apropiados están habilitados o no. Para cualquier plan de protección que no esté habilitado, GuardDuty solicitará permiso para habilitar los planes de protección necesarios el tiempo suficiente para que GuardDuty realice las pruebas que generarán resultados. Posteriormente, GuardDuty desactivará el plan de protección una vez que la prueba haya finalizado.

    Habilitar GuardDuty por primera vez

    Cuando GuardDuty se habilita en la cuenta dedicada por primera vez en una región específica, la cuenta quedará automáticamente inscrita en una prueba gratuita de 30 días.

    GuardDuty ofrece planes de protección opcionales. Al habilitar GuardDuty, ciertos planes de protección también se habilitan y se incluyen en la prueba gratuita de 30 días de GuardDuty. Para obtener más información, consulte Utilizar la prueba gratuita de 30 días de GuardDuty.

    GuardDuty ya está habilitado en la cuenta antes de ejecutar el script de la herramienta de pruebas

    Cuando GuardDuty ya está habilitado, en función de los parámetros, el script de la herramienta de pruebas verificará el estado de configuración de ciertos planes de protección y otros ajustes a nivel de cuenta que se requieren para generar los resultados.

    Al ejecutar este script de la herramienta de pruebas, es posible que ciertos planes de protección se habiliten por primera vez en la cuenta dedicada en una región. Esto iniciará la prueba gratuita de 30 días para ese plan de protección. Para obtener información sobre la prueba gratuita asociada a cada plan de protección, consulte Utilizar la prueba gratuita de 30 días de GuardDuty.

El script de la herramienta de pruebas de resultados de GuardDuty puede generar

Actualmente, el script de la herramienta de pruebas genera los siguientes tipos de resultados relacionados con los registros de auditoría de Amazon EC2, Amazon EKS, Amazon S3, IAM y EKS:

Paso 1: Requisitos previos

Para preparar el entorno de prueba, necesitará los siguientes elementos:

  • Git: instale la herramienta de línea de comandos git en función del sistema operativo que utilice. Esto se necesita para clonar el repositorio de amazon-guardduty-tester.

  • AWS Command Line Interface: una herramienta de código abierto que permite interactuar con Servicios de AWS mediante el uso de comandos en el intérprete de la línea de comandos. Para obtener más información, consulte Introducción a AWS CLI en la Guía del usuario de AWS Command Line Interface.

  • AWS Systems Manager: para iniciar sesiones del Administrador de sesiones con los nodos administrados mediante AWS CLI, debe instalar el complemento del Administrador de sesiones en la máquina local. Para obtener más información, consulte Instalar el complemento del Administrador de sesiones para AWS CLI en la Guía del usuario de AWS Systems Manager

  • Administrador de paquetes de nodos (NPM): instale el NPM para instalar todas las dependencias.

  • Docker: debe tener Docker instalado. Para obtener instrucciones de instalación, consulte el sitio web de Docker.

    Para verificar que Docker ha sido instalado, ejecute el siguiente comando y confirme que hay una salida similar a la siguiente:

    $ docker --version Docker version 19.03.1
  • Suscríbase a la imagen de Kali Linux en el AWS Marketplace.

Paso 2: Implementar los recursos de AWS

Esta sección proporciona una lista de conceptos clave y los pasos para implementar determinados recursos de AWS en la cuenta dedicada.

Conceptos

En la siguiente lista se ofrecen conceptos clave relacionados con los comandos que sirven para implementar los recursos:

  • AWS Cloud Development Kit (AWS CDK): CDK es un marco de desarrollo de software de código abierto para definir la infraestructura en la nube en el código y su aprovisionamiento a través de AWS CloudFormation. CDK admite un par de lenguajes de programación para definir componentes en la nube reutilizables conocidos como constructos. Puedes combinarlos en pilas y aplicaciones. A continuación, puede implementar las aplicaciones CDK en AWS CloudFormation para aprovisionar o actualizar los recursos. Para obtener más información, consulte ¿Qué es AWS CDK? en la Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK).

  • Arranque: es el proceso para preparar el entorno de AWS para su uso con AWS CDK. Antes de implementar una pila de CDK en un entorno de AWS, primero se debe arrancar el entorno. Este proceso de aprovisionamiento de recursos específicos de AWS en el entorno que AWS CDK utiliza forma parte de los pasos que seguirá en la siguiente sección: Pasos para implementar recursos de AWS.

    Para obtener más información sobre cómo funciona el arranque, consulte Arranque en la Guía del desarrollador de AWS Cloud Development Kit (AWS CDK).

Pasos para implementar recursos de AWS

Siga los siguientes pasos para comenzar a implementar los recursos:

  1. Configure la cuenta y la región predeterminadas de la AWS CLI, a menos que las variables de región de la cuenta dedicada se configuren manualmente en el archivo bin/cdk-gd-tester.ts. Para obtener más información, consulte Entornos en la Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK).

  2. Ejecute los siguientes comandos para implementar los recursos:

    git clone https://github.com/awslabs/amazon-guardduty-tester && cd amazon-guardduty-tester npm install cdk bootstrap cdk deploy

    El último comando (cdk deploy) crea una pila AWS CloudFormation en su nombre. El nombre de esta pila es GuardDutyTesterStack.

    Como parte de este script, GuardDuty crea nuevos recursos para generar resultados de GuardDuty en la cuenta. Además, agrega el siguiente par de clave y valor de etiqueta a las instancias de Amazon EC2:

    CreatedBy:GuardDuty Test Script

    Las instancias de Amazon EC2 también incluyen las instancias de EC2 que alojan nodos de EKS y clústeres de ECS.

    Tipos de instancias

    GuardDuty crea t3.micro para todos los recursos, excepto para el grupo de nodos de Amazon EKS. Dado que EKS requiere al menos 2 núcleos, el nodo de EKS tiene el tipo de instancia t3.medium. Para obtener más información sobre los tipos de instancias, consulte Tamaños disponibles en la Guía de tipos de instancias de Amazon EC2.

Paso 3: Ejecute los scripts de la herramienta de pruebas

Este es un proceso de dos pasos en el que primero es necesario iniciar una sesión con el controlador de pruebas y luego, ejecutar scripts para generar resultados de GuardDuty con combinaciones específicas de recursos.

  1. Una vez implementados los recursos, guarde el código de la región en una variable de la sesión de terminal actual. Utilice el siguiente comando y sustituya us-east-1 por el código de la región en la que ha implementado los recursos:

    $ REGION=us-east-1
  2. El script de la herramienta de pruebas solo está disponible a través de AWS Systems Manager (SSM). Para iniciar un intérprete de comandos interactivo en la instancia del host de la herramienta de pruebas, consulte el InstanceID del host.

  3. Utilice el siguiente comando para iniciar la sesión para el script de la herramienta de pruebas:

    aws ssm start-session --region $REGION --document-name AWS-StartInteractiveCommand --parameters command="cd /home/ssm-user/py_tester && bash -l" --target $(aws ec2 describe-instances --region $REGION --filters "Name=tag:Name,Values=Driver-GuardDutyTester" --query "Reservations[].Instances[?State.Name=='running'].InstanceId" --output text)

El script de la herramienta de pruebas es un programa basado en Python que crea dinámicamente un script bash para generar resultados en función de los datos introducidos. Tiene flexibilidad para generar resultados basados en uno o más tipos de recursos de AWS, planes de protección de GuardDuty, Propósitos de amenaza (tácticas), Orígenes de datos fundamentales, o El script de la herramienta de pruebas de resultados de GuardDuty puede generar.

Utilice los siguientes ejemplos de comandos como referencia y ejecute uno o varios comandos para generar los resultados que desee explorar:

python3 guardduty_tester.py python3 guardduty_tester.py --all python3 guardduty_tester.py --s3 python3 guardduty_tester.py --tactics discovery python3 guardduty_tester.py --ec2 --eks --tactics backdoor policy execution python3 guardduty_tester.py --eks --runtime only python3 guardduty_tester.py --ec2 --runtime only --tactics impact python3 guardduty_tester.py --log-source dns vpc-flowlogs python3 guardduty_tester.py --finding 'CryptoCurrency:EC2/BitcoinTool.B!DNS'

Para obtener más información sobre los parámetros válidos, puede ejecutar el siguiente comando de ayuda:

python3 guardduty_tester.py --help

Elija el método que prefiera para ver los resultados generados en la cuenta.

GuardDuty console
  1. Inicie sesión en la AWS Management Console y abra la consola de GuardDuty en https://console.aws.amazon.com/guardduty/.

  2. En el panel de navegación, seleccione Findings (Resultados).

  3. En la tabla de resultados, seleccione el resultado del que desea ver los detalles. Se abrirá el panel de detalles del resultado. Para obtener más información, consulte Comprender y generar resultados de Amazon GuardDuty.

  4. Si desea filtrar estos resultados, utilice la clave y el valor de la etiqueta del recurso. Por ejemplo, para filtrar los resultados generados para las instancias de Amazon EC2, utilice el par de clave y valor de etiqueta CreatedBy:GuardDuty Test Script para la Clave de etiqueta de instancia y Clave de etiqueta de instancia.

API
AWS CLI
  • Ejecute el siguiente comando de la AWS CLI para ver los resultados generados y sustituya us-east-1 y 12abc34d567e8fa901bc2d34EXAMPLE por los valores adecuados:

    aws guardduty list-findings --region us-east-1 --detector-id 12abc34d567e8fa901bc2d34EXAMPLE

    Para encontrar el detectorId correspondiente a la cuenta y la región actual, consulte la página de Configuración en la consola https://console.aws.amazon.com/guardduty/ o ejecute la API ListDetectors.

    Para obtener más información sobre los parámetros que puede utilizar para filtrar los resultados, consulte list-findings en la Referencia de comandos de AWS CLI.

Paso 4: Limpiar los recursos de pruebas de AWS

La configuración a nivel de cuenta y otras actualizaciones del estado de la configuración realizadas durante Paso 3: Ejecute los scripts de la herramienta de pruebas vuelven al estado original cuando finaliza el script de la herramienta de pruebas.

Después de ejecutar el script de la herramienta de pruebas, podrá optar por limpiar los recursos de pruebas de AWS. Para ello, puede optar por uno de los siguientes métodos:

Solución de problemas comunes

GuardDuty ha identificado problemas comunes y recomienda pasos para solucionarlos:

  • Cloud assembly schema version mismatch: actualice la CLI de AWS CDK a una versión compatible con la versión de ensamblaje en la nube requerida, o a la versión más reciente disponible. Para obtener más información, consulte Compatibilidad de la CLI con AWS CDK.

  • Docker permission denied: agregue el usuario de la cuenta dedicada a los docker-users de modo que la cuenta dedicada pueda ejecutar los comandos. Para obtener más información sobre los pasos, consulte Acceso denegado a Docker.

  • Your requested instance type is not supported in your requested Availability Zone: algunas zonas de disponibilidad no admiten determinados tipos de instancias. Para identificar qué zonas de disponibilidad admiten el tipo de instancia de su preferencia y volver a intentar implementar recursos de AWS, siga los pasos que se indican a continuación:

    1. Elija el método que prefiera para determinar qué zonas de disponibilidad admiten el tipo de instancia:

      Console
      Para identificar las zonas de disponibilidad que admiten el tipo de instancia de su preferencia
      1. Inicie sesión en la AWS Management Console y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

      2. Utilice el selector de regiones de AWS situado en la esquina superior derecha de la página para elegir la región en la que desea lanzar la instancia.

      3. En el panel de navegación, en Instancias, seleccione Tipos de instancias.

      4. Elija el tipo de instancia de su preferencia de la tabla Tipos de instancias.

      5. En Redes, consulte las regiones enumeradas en Zonas de disponibilidad.

        Según esta información, es posible que tenga que elegir una nueva región en la que implementar los recursos.

      AWS CLI

      Ejecute el siguiente comando para ver una lista de las zonas de disponibilidad. Asegúrese de especificar el tipo de instancia de su preferencia y la región (us-east-1).

      aws ec2 describe-instance-type-offerings --location-type availability-zone --filters Name=instance-type,Values=Preferred instance type --region us-east-1 --output table

      Para obtener más información sobre este comando, consulte describe-instance-type-offerings en la Referencia de comandos de la AWS CLI.

      Al ejecutar este comando, si se produce un error, asegúrese de que utiliza la versión más reciente de la AWS CLI. Para obtener más información, consulte Solución de problemas en la Guía del usuario de AWS Command Line Interface.

    2. Intente volver a implementar los recursos de AWS y especifique una zona de disponibilidad que sea compatible con el tipo de instancia de su preferencia.

      Para volver a intentar implementar los recursos de AWS
      1. Configure la región predeterminada en el archivo bin/cdk-gd-tester.ts.

      2. Para especificar la zona de disponibilidad, abra el archivo amazon-guardduty-tester/lib/common/network/vpc.ts.

      3. En este archivo, sustituya maxAzs: 2, por availabilityZones: ['us-east-1a', 'us-east-1c'], donde debe especificar las zonas de disponibilidad para el tipo de instancia.

      4. Continúe con los pasos restantes en Pasos para implementar recursos de AWS.