Recopila registros del EDR de Uptycs

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo puedes transferir registros de EDR de Uptycs a las Operaciones de seguridad de Google con Amazon S3. El analizador transforma los registros JSON sin procesar en un modelo de datos unificado (UDM). Primero, extrae los campos del JSON, realiza la limpieza y el enriquecimiento de los datos, y, luego, asigna la información pertinente a los campos correspondientes del UDM, controlando varios tipos de datos y casos extremos para garantizar una representación precisa y coherente dentro del esquema del UDM.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Acceso con privilegios a Uptycs
  • Acceso con privilegios a AWS (S3, IAM)

Obtén los requisitos previos de Uptycs

  1. Accede a la Consola del administrador de Uptycs.
  2. Ve a Configuración > Usuarios.
  3. Selecciona tu usuario o crea un usuario de cuenta de servicio.
  4. Haz clic en Clave de API del usuario.
  5. Copia y guarda en una ubicación segura los siguientes detalles:
    • Clave de API
    • Secreto de API
    • ID de cliente
    • Dominio de la API (derivado de tu URL de Uptycs, por ejemplo, mystack.uptycs.io)

Configura el bucket de AWS S3 y el IAM para Google SecOps

  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 futuras referencias (por ejemplo, uptycs-telemetry-export).
  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 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 consultarlas en el futuro.
  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 la política AmazonS3FullAccess.
  18. Selecciona la política.
  19. Haz clic en Siguiente.
  20. Haz clic en Agregar permisos.

Configura la política y el rol de IAM para las cargas de S3

  1. En la consola de AWS, ve a IAM > Políticas.
  2. Haz clic en Crear política > pestaña JSON.
  3. Ingresa la siguiente política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Sid": "AllowListBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
    • Reemplaza uptycs-telemetry-export si ingresaste un nombre de bucket diferente.
  4. Haz clic en Siguiente > Crear política.

  5. Asigna a la política el nombre uptycs-s3-write-policy.

  6. Ve a IAM > Usuarios.

  7. Selecciona el usuario creado para las exportaciones de Uptycs.

  8. Haz clic en Agregar permisos > Adjuntar políticas directamente.

  9. Busca y selecciona uptycs-s3-write-policy.

  10. Haz clic en Siguiente > Agregar permisos.

Configura la exportación de telemetría sin procesar de Uptycs

  1. Accede a la consola de Uptycs.
  2. Ve a la sección de configuración de exportación.
  3. Configura el destino de exportación de S3.
  4. Proporciona los siguientes detalles de configuración:
    • Tipo de exportación: Selecciona Telemetría sin procesar.
    • Destino: Selecciona Amazon S3.
    • Formato: Selecciona JSON.
    • Depósito de S3: Ingresa uptycs-telemetry-export.
    • Prefijo de ruta de acceso de S3: Ingresa telemetry/.
    • Región de AWS: Selecciona la región de tu bucket.
    • ID de clave de acceso de AWS: Ingresa la clave de acceso del usuario de IAM.
    • Clave de acceso secreta de AWS: Ingresa la clave de acceso secreta.
    • Tipos de eventos: Selecciona todos los tipos de telemetría necesarios.
  5. Prueba y habilita la exportación.

Crea un usuario de IAM con acceso de lectura para Google SecOps

  1. Ve a Consola de AWS > IAM > Usuarios.
  2. Haz clic en Agregar usuarios.
  3. Proporciona los siguientes detalles de configuración:
    • Usuario: Ingresa secops-reader.
    • Tipo de acceso: Selecciona Clave de acceso: Acceso programático.
  4. Haz clic en Crear usuario.
  5. Adjunta una política de lectura mínima (personalizada): Usuarios > secops-reader > Permisos > Agregar permisos > Adjuntar políticas directamente > Crear política.
  6. En el editor de JSON, ingresa la siguiente política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
  7. Configura el nombre como secops-reader-policy.

  8. Ve a Crear política > busca o selecciona > Siguiente > Agregar permisos.

  9. Ve a Credenciales de seguridad > Claves de acceso > Crear clave de acceso.

  10. Descarga el archivo CSV (estos valores se ingresan en el feed).

Configura un feed en Google SecOps para transferir registros de Uptycs

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en + Agregar feed nuevo.
  3. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Uptycs EDR logs).
  4. Selecciona Amazon S3 V2 como el Tipo de fuente.
  5. Selecciona Uptycs EDR como el Tipo de registro.
  6. Haz clic en Siguiente.
  7. Especifica valores para los siguientes parámetros de entrada:
    • URI de S3: s3://uptycs-telemetry-export/telemetry/
    • Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.
    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.
    • ID de clave de acceso: Clave de acceso del usuario con acceso al bucket de S3.
    • Clave de acceso secreta: Clave secreta del usuario con acceso al bucket de S3.
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.
    • Etiquetas de transmisión: Es la etiqueta que se aplica a los eventos de este feed.
  8. Haz clic en Siguiente.
  9. Revisa la nueva configuración del 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
osquery_raw_data.answer read_only_udm.network.dns.answers.name Valor tomado de osquery_raw_data.answer si osquery_raw_data.answer no está vacío.
osquery_raw_data.container_id read_only_udm.metadata.product_log_id Valor tomado de osquery_raw_data.container_id si osquery_raw_data.container_id no está vacío.
osquery_raw_data.local_address read_only_udm.principal.ip Valor tomado de osquery_raw_data.local_address si osquery_raw_data.local_address no está vacío y es una dirección IP válida.
osquery_raw_data.local read_only_udm.principal.ip De lo contrario, se toma el valor de osquery_raw_data.local si no está vacío y es una dirección IP válida.
osquery_raw_data.local_port read_only_udm.principal.port Valor tomado de osquery_raw_data.local_port y convertido en número entero si osquery_raw_data.local_port no está vacío.
osquery_raw_data.md5 read_only_udm.target.process.file.md5 El valor se toma de osquery_raw_data.md5 si osquery_raw_data.md5 no está vacío.
osquery_raw_data.port read_only_udm.target.port Valor tomado de osquery_raw_data.port y convertido en número entero si osquery_raw_data.port no está vacío.
osquery_raw_data.question read_only_udm.network.dns.questions.name Valor tomado de osquery_raw_data.question si osquery_raw_data.question no está vacío.
osquery_raw_data.remote_address read_only_udm.intermediary.ip Valor tomado de osquery_raw_data.remote_address si osquery_raw_data.remote_address no está vacío.
osquery_raw_data.remote_port read_only_udm.intermediary.port Valor tomado de osquery_raw_data.remote_port y convertido en número entero si osquery_raw_data.remote_port no está vacío.
osquery_raw_data.type read_only_udm.network.dns.questions.type Valor tomado de osquery_raw_data.type y convertido en número entero si osquery_raw_data.type no está vacío.
osquery_raw_data.uid read_only_udm.principal.user.userid Valor tomado de osquery_raw_data.uid si osquery_raw_data.uid no está vacío y no es igual a "0".
osquery_raw_data.worker_instance_id read_only_udm.principal.user.userid De lo contrario, se toma el valor de osquery_raw_data.worker_instance_id si osquery_raw_data.worker_instance_id no está vacío.
upt_asset_group_id read_only_udm.principal.user.group_identifiers Valor tomado de upt_asset_group_id si upt_asset_group_id no está vacío.
upt_asset_group_name read_only_udm.principal.group.group_display_name El valor se toma de upt_asset_group_name si este no está vacío.
upt_asset_id read_only_udm.principal.asset.asset_id Cadena concatenada "ID DE ASSET DE UPT:" con el valor de upt_asset_id si upt_asset_id no está vacío.
upt_hash read_only_udm.target.file.md5 Todos los casos de "-" se reemplazan por "" en upt_hash. Luego, el valor se asigna a read_only_udm.target.file.md5 si upt_hash no está vacío.
upt_hostname read_only_udm.principal.hostname Valor tomado de upt_hostname si upt_hostname no está vacío.
upt_resource_type read_only_udm.target.resource.type Valor tomado de upt_resource_type si upt_resource_type no está vacío.
upt_time read_only_udm.metadata.event_timestamp.seconds Valor tomado de upt_time si upt_time no está vacío.
read_only_udm.metadata.event_type El valor se establece en "PROCESS_LAUNCH" si osquery_raw_data.pid no está vacío. El valor se establece en "NETWORK_DNS" si osquery_raw_data.question no está vacío. El valor se establece en "GENERIC_EVENT" si event_type está vacío.
read_only_udm.metadata.log_type El valor se establece en "UPTYCS_EDR".
read_only_udm.metadata.product_name El valor se establece en "UPTYCS_EDR".
read_only_udm.metadata.vendor_name El valor se establece en "UPTYCS".
read_only_udm.network.application_protocol El valor se establece en "DNS" si osquery_raw_data.question no está vacío.
read_only_udm.security_result.action El valor se establece en "ALLOW" si osquery_raw_data.return_code es igual a "SUCCESS" o si osquery_raw_data.success es igual a "1".
read_only_udm.target.process.command_line Valor tomado de osquery_raw_data.cmdline si osquery_raw_data.cmdline no está vacío.
read_only_udm.target.process.file.full_path Valor tomado de osquery_raw_data.path si osquery_raw_data.path no está vacío.
read_only_udm.target.process.parent_process El valor se construye iterando el array ancestor_list en osquery_raw_data.ancestor_list. Para cada elemento del array, se extraen y se formatean command_line, full_path del archivo y pid en una estructura JSON que representa la cadena de procesos.
read_only_udm.target.process.pid Valor tomado de osquery_raw_data.pid si osquery_raw_data.pid no está vacío.

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