Recopila registros de Halcyon Anti-Ransomware

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo transferir registros de Halcyon Anti-Ransomware a Google Security Operations con Google Cloud Storage V2.

Halcyon es una plataforma anti-ransomware que usa IA para detectar, prevenir y recuperarse de ataques de ransomware. Genera alertas para eventos de detección de ransomware, intentos de encriptación y acciones de recuperación. El analizador asigna los campos de registro con formato JSON al modelo de datos unificado (UDM) y controla los tipos de eventos, como las operaciones de archivos, la actividad del usuario y los resultados de seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Un proyecto de GCP con la API de Cloud Storage habilitada
  • Permisos para crear y administrar buckets de GCS y políticas de IAM
  • Acceso con privilegios a la consola de Halcyon con capacidades de exportación de registros

Crea un bucket de Google Cloud Storage

  1. Ve a la consola de Google Cloud.
  2. Selecciona tu proyecto o crea uno nuevo.
  3. En el menú de navegación, ve a Cloud Storage > Buckets.
  4. Haz clic en Crear bucket.
  5. Proporciona los siguientes detalles de configuración:

    Parámetro de configuración Valor
    Asigna un nombre a tu bucket Ingresa un nombre global único (por ejemplo, halcyon-logs).
    Tipo de ubicación Elige según tus necesidades (regional, birregional o multirregional)
    Ubicación Selecciona la ubicación (por ejemplo, us-central1).
    Clase de almacenamiento Estándar (recomendado para los registros a los que se accede con frecuencia)
    Control de acceso Uniforme (recomendado)
    Herramientas de protección Opcional: Habilita el control de versiones de objetos o la política de retención
  6. Haz clic en Crear.

Exporta registros de Halcyon a Google Cloud Storage

Halcyon admite la exportación de datos de registro en formato JSON. Usa uno de los siguientes enfoques para entregar registros a GCS.

Opción A: Exporta registros con la API de Halcyon y súbelos a GCS

  1. Accede a la consola de administración de Halcyon.
  2. Ve a Configuración > Acceso a la API y genera una clave de API con permisos de lectura.
  3. Copia y guarda la clave de API.
  4. Usa una secuencia de comandos programada o una función de Cloud Run para llamar a la API de REST de Halcyon, recuperar los registros de eventos y escribirlos en GCS en formato JSON.

Opción B: Configura la integración del SIEM y reenvía los datos a GCS

  1. Accede a la consola de administración de Halcyon.
  2. Ve a Configuración > Integraciones > SIEM.
  3. Configura el destino de exportación de registros para escribir eventos con formato JSON en un directorio local o en un almacenamiento intermedio.
  4. Usa una función de Cloud Run para subir registros a tu bucket de GCS de forma periódica.

    • Asegúrate de que los archivos exportados estén en formato JSON.
    • Cada archivo debe contener uno o más registros de eventos.

Recupera la cuenta de servicio de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Feeds.
  3. Haz clic en Add New Feed.
  4. Haz clic en Configura un feed único.
  5. Selecciona Google Cloud Storage V2 como el Tipo de fuente.
  6. Selecciona Halcyon Anti Ransomware como el Tipo de registro.
  7. Haz clic en Obtener cuenta de servicio. Se mostrará un correo electrónico de cuenta de servicio único, por ejemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copia esta dirección de correo electrónico. la usarás en el próximo paso.

Otorga permisos de IAM a la cuenta de servicio de Google SecOps

  1. Ve a Cloud Storage > Buckets.
  2. Haz clic en el nombre de tu bucket.
  3. Ve a la pestaña Permisos.
  4. Haz clic en Otorgar acceso.
  5. Proporciona los siguientes detalles de configuración:
    • Agregar entidades: Pega el correo electrónico de la cuenta de servicio de Google SecOps.
    • Asignar roles: Selecciona Visualizador de objetos de Storage.
  6. Haz clic en Guardar.

    • Si planeas usar la opción de eliminación (borrar archivos transferidos), otorga el rol de Administrador de objetos de almacenamiento en lugar del rol de Visualizador de objetos de almacenamiento.

Configura un feed en Google SecOps para transferir registros de Halcyon Anti-Ransomware

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Add New Feed.
  3. Haz clic en Configura un feed único.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Halcyon Anti-Ransomware logs).
  5. Selecciona Google Cloud Storage V2 como el Tipo de fuente.
  6. Selecciona Halcyon Anti Ransomware como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:

    Campo Valor
    URI del bucket de almacenamiento gs://halcyon-logs/halcyon/events/
    Opción de eliminación de la fuente Selecciona la opción de eliminación según tu preferencia.
    Antigüedad máxima del archivo (días) El valor predeterminado es de 180 días.
    Espacio de nombres del recurso El espacio de nombres del recurso
    Etiquetas de transferencia Es la etiqueta que se aplicará a los eventos de este feed.
    • Reemplaza halcyon-logs por el nombre real de tu bucket de GCS.
    • Siempre incluye la barra diagonal final (/) al final del URI.
  9. Haz clic en Siguiente.

  10. 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
sshd, tty, euid, dataType, filterName, totalOccurrences, occurredAt, count, occurrences.IncorrectPasswords, occurrences.FailedPassword, occurrences.AuthFailure, policyMode, action additional.fields Se combinan con las etiquetas creadas a partir de cada campo, si están presentes; los campos totalOccurrences, count y occurrences se convierten en cadenas
dnsArtifact.uri network.dns.questions Se combinó con un array de preguntas que contiene el nombre.
asset.id principal.asset.asset_id Se concatena como "ASSET:" + asset.id
asset.kind principal.asset.attribute.labels Se combinó con asset_kind_label creado a partir de asset.kind
asset.name principal.asset.hostname El valor se copió directamente.
ipArtifact.ipAddress principal.asset.ip El valor se copió directamente.
summary.applicationName principal.application El valor se copió directamente.
phost, asset.name principal.hostname Valor de phost si está presente, anulado por asset.name si está presente
ipArtifact.ipAddress principal.ip El valor se copió directamente.
process.commandLine principal.process.command_line El valor se copió directamente.
modifiedFilePath, artifact.filePath, process.artifact.filePath, processes.artifact.filePath principal.process.file.full_path Valor establecido en modifiedFilePath si está presente, reemplazado por artifact.filePath si está presente, reemplazado por process.artifact.filePath si está presente, reemplazado por processes.artifact.filePath si está presente (se quitaron las comillas de processes.artifact.filePath)
lastOccurredAt principal.process.file.last_seen_time Se convirtió con el filtro de fecha con el formato ISO8601
process.artifact.kind, artifact.kind, primaryProcess.artifact.kind principal.process.file.mime_type Valor de process.artifact.kind si está presente, reemplazado por artifact.kind si está presente, reemplazado por primaryProcess.artifact.kind si está presente
artifact.sha256, process.artifact.sha256, processes.artifact.sha256 principal.process.file.sha256 Valor de artifact.sha256 si está presente, reemplazado por process.artifact.sha256 si está presente, reemplazado por processes.artifact.sha256 si está presente
process.parentPid principal.process.parent_pid El valor se copió directamente.
process.pid principal.process.pid El valor se copia directamente.
user_displayname principal.user.user_display_name El valor se copió directamente.
usuario principal.user.userid El valor se copia directamente.
summary.artifact.filePath target.file.full_path El valor se copió directamente.
summary.artifact.sha256 target.file.sha256 El valor se copia directamente.
primaryProcess.commandLine target.process.command_line Valor copiado directamente después de quitar las comillas
primaryProcess.kind target.process.file.mime_type El valor se copió directamente.
primaryProcess.parentPid target.process.parent_process.pid El valor se copió directamente.
primaryProcess.pid target.process.pid El valor se copió directamente.
uid target.user.userid El valor se copia directamente.
id target.asset_id Se concatena como "ASSET:" + ID
acción security_result.action Se escribe en mayúsculas si la acción es "Block" o "Allow".
reason.exitCode security_result.action_details El valor se copia directamente.
dxpRule, monitoringReason, tenantId security_result.detection_fields Se combina con las etiquetas creadas a partir de cada campo, si están presentes. Se quitan las barras inversas para dxpRule.
dxpRuleType security_result.rule_type El valor se copió directamente.
ipArtifact.version security_result.rule_version El valor se copia directamente.
msg, reason.cause security_result.summary Valor del mensaje si está presente, anulado por reason.cause si está presente
timestamp metadata.event_timestamp Se convirtió con el filtro de fecha con los formatos MMM dd HH:mm:ss o MMM d HH:mm:ss
phost, ipArtifact.ipAddress, asset.name, user, uid, summary.artifact.sha256, summary.artifact.filePath metadata.event_type Se establece en FILE_UNCATEGORIZED si tiene principal y tiene archivo de destino; USER_UNCATEGORIZED si tiene principal y tiene destino; STATUS_UPDATE si tiene principal; de lo contrario, GENERIC_EVENT (marcas derivadas de fuentes)
kind metadata.product_event_type El valor se copia directamente.
gupid, guid metadata.product_log_id Valor de gupid si está presente, anulado por guid si está presente
metadata.product_name Establece el valor en "Halcyon Anti Ransomware".
metadata.vendor_name Se estableció en "Halcyon".
primaryProcess.kind event.idm.read_only_udm.target.process.file.mime_type Asignado desde el registro de cambios
primaryProcess.artifact.kind event.idm.read_only_udm.principal.process.file.mime_type Se asignó desde el registro de cambios
processes.artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Se asignó desde el registro de cambios
processes.artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Se asignó desde el registro de cambios
action event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
filterName event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
policyMode event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
euid event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
occurrences.AuthFailure event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
occurrences.FailedPassword event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
occurredAt event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
occurrences.IncorrectPasswords event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
guid event.idm.read_only_udm.metadata.product_log_id Se asignó desde el registro de cambios
gupid event.idm.read_only_udm.metadata.product_log_id Se asignó desde el registro de cambios
count event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Se asignó desde el registro de cambios
artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Se asignó desde el registro de cambios
artifact.kind event.idm.read_only_udm.principal.process.file.mime_type Se asignó desde el registro de cambios
monitoringReason event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
dxpRule event.idm.read_only_udm.security_result.detection_fields Se asignó desde el registro de cambios
modifiedFilePath event.idm.read_only_udm.principal.process.file.full_path Se asignó desde el registro de cambios
ipArtifact.version event.idm.read_only_udm.security_result.rule_version Se asignó desde el registro de cambios
ipArtifact.ipAddress event.idm.read_only_udm.principal.ip Se asignó desde el registro de cambios
ipArtifact.ipAddress event.idm.read_only_udm.principal.asset.ip Se asignó desde el registro de cambios
process.parentPid event.idm.read_only_udm.principal.process.parent_pid Se asignó desde el registro de cambios
dxpRuleType event.idm.read_only_udm.security_result.rule_type Se asignó desde el registro de cambios
summary.applicationName event.idm.read_only_udm.principal.application Se asignó desde el registro de cambios
process.pid event.idm.read_only_udm.principal.process.pid Se asignó desde el registro de cambios
reason.exitCode event.idm.read_only_udm.security_result.action_details Se asignó desde el registro de cambios
reason.cause event.idm.read_only_udm.security_result.summary Se asignó desde el registro de cambios
dnsArtifact_uri event.idm.read_only_udm.network.dns.questions Se asignó desde el registro de cambios
uid event.idm.read_only_udm.target.user.userid Se asignó desde el registro de cambios
tty event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
sshd event.idm.read_only_udm.additional.fields Se asignó desde el registro de cambios
phost event.idm.read_only_udm.principal.hostname Se asignó desde el registro de cambios
user_displayname event.idm.read_only_udm.principal.user.user_display_name Se asignó desde el registro de cambios
msg event.idm.read_only_udm.security_result.summary Se asignó desde el registro de cambios
timestamp event.idm.read_only_udm.metadata.event_timestamp Se asignó desde el registro de cambios
user event.idm.read_only_udm.principal.user.userid Se asignó desde el registro de cambios

Registro de cambios

Consulta el registro de cambios de este analizador

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