Recopila registros de hosts de AWS EC2

Compatible con:

En este documento, se explica cómo integrar los registros de hosts de AWS EC2 en Google Security Operations para la supervisión y el análisis. La integración implica analizar y asignar los registros de host de EC2 al modelo de datos unificado (UDM), realizar la transformación de datos y crear relaciones entre los hosts y las instancias de EC2. Los registros proporcionan información valiosa sobre las instancias, las propiedades del host, los tipos de instancias y las métricas de rendimiento que se pueden usar para la supervisión de seguridad, la auditoría y el cumplimiento.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de tener acceso con privilegios a AWS.

Configura AWS IAM y S3

  1. Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket.
  2. Guarda el Nombre y la Región del bucket para usarlos más adelante.
  3. Crea un usuario siguiendo esta guía: Cómo crear un usuario de IAM.
  4. Selecciona el Usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. Haz clic en Crear clave de acceso en la sección Claves de acceso.
  7. Selecciona Servicio de terceros como Caso de uso.
  8. Haz clic en Siguiente.
  9. Opcional: Agrega una etiqueta de descripción.
  10. Haz clic en Crear clave de acceso.
  11. Haz clic en Descargar archivo CSV para guardar la Clave de acceso y la Clave de acceso secreta para usarlas más tarde.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. Haz clic en Agregar permisos en la sección Políticas de permisos.
  15. Selecciona Agregar permisos.
  16. Selecciona Adjuntar políticas directamente.
  17. Busca y selecciona la política AmazonS3FullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Agregar permisos.

Configura CloudTrail para AWS KMS

  1. Accede a la consola de administración de AWS.
  2. En la barra de búsqueda, escribe CloudTrail y selecciónalo en la lista de servicios.
  3. Haz clic en Crear sendero.
  4. Proporciona un Nombre de ruta, por ejemplo, EC2-Activity-Trail.
  5. Selecciona la casilla de verificación Habilitar para todas las cuentas de mi organización.
  6. Escribe el URI del bucket de S3 que creaste antes (el formato debe ser s3://your-log-bucket-name/) o crea un bucket de S3 nuevo.
  7. Si la SSE-KMS está habilitada, proporciona un nombre para el alias de AWS KMS o elige una clave de AWS KMS existente.
  8. Puedes dejar el resto de la configuración predeterminada.
  9. Haz clic en Siguiente.
  10. Selecciona Eventos de administración y Eventos de datos en Tipos de eventos para capturar la actividad del host de EC2.
  11. Haz clic en Siguiente.
  12. Revisa la configuración en Revisar y crear.
  13. Haz clic en Crear sendero.
  14. Opcional: Si creaste un bucket nuevo, continúa con el siguiente proceso:
    • Ve a S3.
    • Identifica y selecciona el bucket de registros que creaste.
    • Selecciona la carpeta AWSLogs.
    • Haz clic en Copiar URI de S3 y guárdalo.

Configura un feed en Google SecOps para transferir hosts de AWS EC2

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de hosts de AWS EC2.
  4. Selecciona Amazon S3 como el Tipo de fuente.
  5. Selecciona Hosts de AWS EC2 como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifica valores para los siguientes parámetros de entrada:

    • Región: Es la región en la que se encuentra el bucket de Amazon S3.
    • URI de S3: Es el URI del bucket.
      • s3://your-log-bucket-name/
        • Reemplaza your-log-bucket-name por el nombre real del bucket.
    • El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios.
    • Opciones de eliminación de fuentes: Selecciona la opción de eliminación según tus preferencias.

    • ID de clave de acceso: Es la clave de acceso del usuario con acceso al bucket de S3.

    • Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3.

    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.

    • Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.

  8. Haz clic en Siguiente.

  9. Revisa la configuración del nuevo feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
AllocationTime entity.metadata.creation_timestamp El campo AllocationTime se analiza como una marca de tiempo y se asigna al campo creation_timestamp. El analizador intenta varios formatos (aaaa-MM-dd HH:mm:ss, RFC 3339, UNIX, ISO8601).
AllowsMultipleInstanceTypes entity.entity.asset.attribute.labels.value El valor de AllowsMultipleInstanceTypes del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en allows_multiple_instance_types.
AutoPlacement entity.entity.asset.attribute.labels.value El valor de AutoPlacement del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en auto_placement.
AvailabilityZone entity.entity.asset.attribute.cloud.availability_zone El campo AvailabilityZone se asigna directamente al campo availability_zone.
AvailabilityZoneID entity.entity.asset.attribute.labels.value El valor de AvailabilityZoneID del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en availability_zone_id.
AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity entity.entity.asset.attribute.labels.value El valor de AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity (o AvailableCapacity.Instance.Available después de cambiar el nombre) se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en available_instance_capacity_available_capacity.
AvailableCapacity.AvailableInstanceCapacity.InstanceType entity.entity.asset.attribute.labels.value El valor de AvailableCapacity.AvailableInstanceCapacity.InstanceType (o AvailableCapacity.Instance.Type después de cambiar el nombre) se usa como el valor de una etiqueta. La clave se establece en available_instance_capacity_instance_type.
AvailableCapacity.AvailableInstanceCapacity.TotalCapacity entity.entity.asset.attribute.labels.value El valor de AvailableCapacity.AvailableInstanceCapacity.TotalCapacity (o AvailableCapacity.Instance.Total después de cambiar el nombre) se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en total_capacity.
AvailableCapacity.AvailableVCpus entity.entity.asset.attribute.labels.value El valor de AvailableCapacity.AvailableVCpus (o AvailableCapacity.VCPUs después de cambiar el nombre) se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en available_v_cpus.
ClientToken entity.entity.asset.attribute.labels.value El valor de ClientToken del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en client_token.
HostID entity.metadata.product_entity_id El campo HostID (o ID después de cambiar el nombre) se asigna directamente al campo product_entity_id.
HostID entity.entity.asset.asset_id El campo HostID (o ID después de cambiar el nombre) se asigna directamente al campo asset_id.
HostMaintenance entity.entity.asset.attribute.labels.value El valor de HostMaintenance (o Maintenance después de cambiar el nombre) del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en host_maintenance.
HostProperties.Cores entity.entity.asset.hardware.cpu_number_cores El valor de HostProperties.Cores se convierte en un número entero sin firma y se asigna a cpu_number_cores.
HostProperties.InstanceFamily entity.entity.asset.attribute.labels.value El valor de HostProperties.InstanceFamily del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en host_properties_instance_family.
HostProperties.InstanceType entity.entity.asset.attribute.labels.value El valor de HostProperties.InstanceType del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en host_properties_instance_type.
HostProperties.Sockets entity.entity.asset.attribute.labels.value El valor de HostProperties.Sockets se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en host_properties_sockets.
HostProperties.TotalVCpus entity.entity.asset.attribute.labels.value El valor de HostProperties.TotalVCpus (o HostProperties.TotalVCPUs después de cambiar el nombre) se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en host_properties_total_v_cpus.
HostRecovery entity.entity.asset.attribute.labels.value El valor de HostRecovery (o Recovery después de cambiar el nombre) del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en host_recovery.
HostReservationID entity.entity.asset.attribute.labels.value El valor de HostReservationID (o ReservationID después de cambiar el nombre) del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en host_reservation_id.
MemberOfServiceLinkedResourceGroup entity.entity.asset.attribute.labels.value El valor de MemberOfServiceLinkedResourceGroup se convierte en una cadena y se usa como el valor de una etiqueta. La clave se establece en member_of_service_linked_resource_group.
OwnerID entity.entity.asset.attribute.labels.value El valor de OwnerID del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en owner_id.
ReleaseTime entity.entity.asset.attribute.labels.value El valor de ReleaseTime del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en release_time.
State entity.entity.asset.attribute.labels.value El valor de State del registro sin procesar se usa como el valor de una etiqueta. La clave de esta etiqueta se establece en state.
TagSet entity.entity.asset.attribute.labels Se itera en el array TagSet, y Key y Value de cada etiqueta se usan como clave y valor de una etiqueta, respectivamente. El analizador asigna el valor AMAZON_WEB_SERVICES a este campo. El collection_time del registro sin procesar se asigna al campo collected_timestamp. El analizador asigna el valor ASSET a este campo. El analizador asigna el valor AWS EC2 HOSTS a este campo. El analizador asigna el valor AWS a este campo. Las relaciones se derivan de los campos Instances y OutpostArn, pero estos campos no se asignan directamente al objeto IDM. La lógica del analizador crea objetos de relación en función de estos campos y los combina en el array relations.
collection_time entity.metadata.collected_timestamp El collection_time del registro se usa como el collected_timestamp del evento.

Cambios

2024-01-31

  • Se agregó compatibilidad con el nuevo esquema.

2023-12-14

  • Es un analizador creado recientemente.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.