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.
Contenido
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:
-
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). -
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 instanciat3.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.
-
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
-
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.
-
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 --tacticsdiscovery
python3 guardduty_tester.py --ec2
--eks
--tacticsbackdoor
policy
execution
python3 guardduty_tester.py --eks
--runtime
only python3 guardduty_tester.py --ec2
--runtime
only --tacticsimpact
python3 guardduty_tester.py --log-sourcedns
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.
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:
-
Ejecute el siguiente comando:
cdk destroy
-
Elimine la pila AWS CloudFormation con el nombre GuardDutyTesterStack. Para obtener información sobre los pasos, consulte Eliminar una pila en la consola de AWS CloudFormation.
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:-
Elija el método que prefiera para determinar qué zonas de disponibilidad admiten el tipo de instancia:
-
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
-
Configure la región predeterminada en el archivo
bin/cdk-gd-tester.ts
. -
Para especificar la zona de disponibilidad, abra el archivo
amazon-guardduty-tester/lib/common/network/vpc.ts
. -
En este archivo, sustituya
maxAzs: 2,
poravailabilityZones: ['
donde debe especificar las zonas de disponibilidad para el tipo de instancia.us-east-1a
', 'us-east-1c
'], -
Continúe con los pasos restantes en Pasos para implementar recursos de AWS.
-
-