Recopila registros de AWS Elastic MapReduce

Compatible con:

En este documento, se explica cómo transferir registros de AWS Elastic MapReduce (EMR) a Google Security Operations. AWS EMR es una plataforma de macrodatos nativa de la nube que procesa grandes cantidades de datos rápidamente. La integración de los registros de EMR en Google SecOps te permite analizar la actividad del clúster y detectar posibles amenazas a la seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Acceso privilegiado a AWS

Configura el bucket de Amazon 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 del usuario: 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 el 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 adelante.
  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 las políticas AmazonS3FullAccess y CloudWatchLogsFullAccess.
  18. Haz clic en Siguiente.
  19. Haz clic en Agregar permisos.

Cómo configurar AWS EMR para reenviar registros

  1. Accede a la consola de administración de AWS.
  2. En la barra de búsqueda, escribe EMR y selecciona Amazon EMR en la lista de servicios.
  3. Haz clic en Clústeres.
  4. Busca y selecciona el clúster de EMR para el que deseas habilitar el registro.
  5. Haz clic en Editar en la página Detalles del clúster.
  6. En la pantalla Edit Cluster, ve a la sección Logging.
  7. Selecciona Habilitar el registro.
  8. Especifica el bucket de S3 en el que se almacenarán los registros.
  9. Especifica el URI de S3 en el formato s3://your-bucket-name/ (esto almacenará todos los registros de EMR en la raíz del bucket).
  10. Selecciona los siguientes tipos de registros:
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs (si usas Hadoop)
  11. Haz clic en Guardar.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds desde Configuración del SIEM > Feeds

Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.

Para configurar un solo feed, sigue estos pasos:

  1. Ve a SIEM Settings > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Registros de EMR de AWS).
  5. Selecciona Amazon S3 como el Tipo de fuente.
  6. Selecciona AWS EMR como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. 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 de tu bucket de S3.
    • El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios, según la estructura de tu bucket.
    • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.

    • ID de clave de acceso: Es la clave de acceso del usuario con permisos para leer desde el bucket de S3.

    • Clave de acceso secreta: Es la clave secreta del usuario con permisos para leer desde el 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.

  9. Haz clic en Siguiente.

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

Configura feeds desde el Centro de contenido

Especifica valores para los siguientes campos:

  • 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 de tu bucket de S3.
  • El URI es un: Selecciona Directorio o Directorio que incluye subdirectorios, según la estructura de tu bucket.
  • Opciones de eliminación de la fuente: Selecciona la opción de eliminación según tus preferencias de transferencia.
  • ID de clave de acceso: Es la clave de acceso del usuario con permisos para leer desde el bucket de S3.

  • Clave de acceso secreta: Es la clave secreta del usuario con permisos para leer desde el bucket de S3.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del recurso: Espacio de nombres asociado al feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
app_id additional.fields[].key El valor "APP" se asigna a través del analizador.
app_id additional.fields[].value.string_value Se asigna directamente desde el campo APP en el registro sin procesar.
app_name additional.fields[].key El valor "APPNAME" se asigna a través del analizador.
app_name additional.fields[].value.string_value Se asigna directamente desde el campo APPNAME en el registro sin procesar.
blockid additional.fields[].key El valor "blockid" se asigna a través del analizador.
blockid additional.fields[].value.string_value Se asigna directamente desde el campo blockid en el registro sin procesar.
bytes network.received_bytes Se asigna directamente desde el campo bytes en el registro sin procesar y se convierte en un número entero sin signo.
cliID additional.fields[].key El valor "cliID" se asigna a través del analizador.
cliID additional.fields[].value.string_value Se asigna directamente desde el campo cliID en el registro sin procesar.
cmd target.process.command_line Se asigna directamente desde el campo cmd en el registro sin procesar.
comp_name additional.fields[].key El valor "COMP" se asigna a través del analizador.
comp_name additional.fields[].value.string_value Se asigna directamente desde el campo COMP en el registro sin procesar.
configuration_version additional.fields[].key El valor "configuration_version" se asigna a través del analizador.
configuration_version additional.fields[].value.string_value Se asigna directamente desde el campo configuration_version en el registro sin procesar y se convierte en una cadena.
containerID additional.fields[].key El valor "containerID" se asigna a través del analizador.
containerID additional.fields[].value.string_value Se asigna directamente desde el campo CONTAINERID en el registro sin procesar.
description security_result.description Se asigna directamente desde el campo description en el registro sin procesar.
dfs.FSNamesystem.* additional.fields[].key La clave se genera concatenando "dfs.FSNamesystem." con la clave de los datos JSON.
dfs.FSNamesystem.* additional.fields[].value.string_value El valor se asigna directamente desde el valor correspondiente en el objeto JSON dfs.FSNamesystem y se convierte en una cadena.
duration additional.fields[].key El valor "duration" se asigna a través del analizador.
duration additional.fields[].value.string_value Se asigna directamente desde el campo duration en el registro sin procesar.
duration network.session_duration.seconds Se asigna directamente desde el campo duration en el registro sin procesar y se convierte en un número entero.
environment additional.fields[].key El valor "environment" se asigna a través del analizador.
environment additional.fields[].value.string_value Se asigna directamente desde el campo environment en el registro sin procesar. Se extrae del campo ip_port con grok y manipulación de cadenas. Se extrae del campo ip_port con grok y manipulación de cadenas, y se convierte en un número entero.
event_type metadata.event_type Se determina según la lógica del analizador en función de la presencia de información de principal y target. Puede ser NETWORK_CONNECTION, USER_RESOURCE_ACCESS, STATUS_UPDATE o GENERIC_EVENT.
file_path target.file.full_path Se asigna directamente desde el campo file_path en el registro sin procesar.
host principal.hostname Se asigna directamente desde el campo host en el registro sin procesar.
host target.hostname Se asigna directamente desde el campo host en el registro sin procesar.
host_ip principal.ip Se asigna directamente desde el campo host_ip en el registro sin procesar.
host_port principal.port Se asigna directamente desde el campo host_port en el registro sin procesar y se convierte en un número entero.
http_url target.url Se asigna directamente desde el campo http_url en el registro sin procesar.
index additional.fields[].key El valor "index" se asigna a través del analizador.
index additional.fields[].value.string_value Se asigna directamente desde el campo index en el registro sin procesar.
kind metadata.product_event_type Se asigna directamente desde el campo kind en el registro sin procesar. El valor "AWS_EMR" se asigna a través del analizador. El valor "AWS EMR" se asigna a través del analizador. El valor "AMAZON" se asigna a través del analizador.
offset additional.fields[].key El valor "offset" se asigna a través del analizador.
offset additional.fields[].value.string_value Se asigna directamente desde el campo offset en el registro sin procesar.
op metadata.product_event_type Se asigna directamente desde el campo op o OPERATION en el registro sin procesar.
proto network.application_protocol Se extrae del campo http_url con Grok y se convierte a mayúsculas.
puppet_version additional.fields[].key El valor "puppet_version" se asigna a través del analizador.
puppet_version additional.fields[].value.string_value Se asigna directamente desde el campo puppet_version en el registro sin procesar.
queue_name additional.fields[].key El valor "queue_name" se asigna a través del analizador.
queue_name additional.fields[].value.string_value Se asigna directamente desde el campo queue_name en el registro sin procesar.
report_format additional.fields[].key El valor "report_format" se asigna a través del analizador.
report_format additional.fields[].value.string_value Se asigna directamente desde el campo report_format en el registro sin procesar y se convierte en una cadena.
resource additional.fields[].key El valor "resource" se asigna a través del analizador.
resource additional.fields[].value.string_value Se asigna directamente desde el campo resource en el registro sin procesar.
result security_result.action_details Se asigna directamente desde el campo RESULT en el registro sin procesar.
security_id additional.fields[].key El valor "security_id" se asigna a través del analizador.
security_id additional.fields[].value.string_value Se asigna directamente desde el campo security_id en el registro sin procesar.
severity security_result.severity Se asigna desde el campo severity en el registro sin procesar. INFO se asigna a INFORMATIONAL y WARN se asigna a MEDIUM.
srvID additional.fields[].key El valor "srvID" se asigna a través del analizador.
srvID additional.fields[].value.string_value Se asigna directamente desde el campo srvID en el registro sin procesar.
status additional.fields[].key El valor "status" se asigna a través del analizador.
status additional.fields[].value.string_value Se asigna directamente desde el campo status en el registro sin procesar.
summary security_result.summary Se asigna directamente desde el campo summary en el registro sin procesar.
target_app target.application Se asigna directamente desde el campo TARGET en el registro sin procesar.
target_ip target.ip Se asigna directamente desde el campo target_ip o IP en el registro sin procesar.
target_port target.port Se asigna directamente desde el campo target_port en el registro sin procesar y se convierte en un número entero.
timestamp metadata.event_timestamp Se asigna directamente desde el campo timestamp en el registro sin procesar y se analiza como una marca de tiempo ISO8601.
timestamp event.timestamp Se asigna directamente desde el campo timestamp en el registro sin procesar y se analiza como una marca de tiempo ISO8601.
trade_date additional.fields[].key El valor "trade_date" se asigna a través del analizador.
trade_date additional.fields[].value.string_value Se asigna directamente desde el campo trade_date en el registro sin procesar.
transaction_uuid additional.fields[].key El valor "transaction_uuid" se asigna a través del analizador.
transaction_uuid additional.fields[].value.string_value Se asigna directamente desde el campo transaction_uuid en el registro sin procesar.
type additional.fields[].key El valor "type" se asigna a través del analizador.
type additional.fields[].value.string_value Se asigna directamente desde el campo type en el registro sin procesar.
user target.user.userid Se asigna directamente desde el campo USER o ugi en el registro sin procesar.

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