Recopila registros de InterSystems Caché

Compatible con:

En este documento, se explica cómo transferir registros de InterSystems Caché a Google Security Operations con el agente de Bindplane.

InterSystems Caché es una plataforma de aplicaciones y bases de datos de alto rendimiento que se usa en los servicios financieros y de atención médica. Genera registros de auditoría para las operaciones de la base de datos, el acceso de los usuarios y los eventos del sistema. El analizador extrae campos de los datos de auditoría de Caché y los asigna al modelo de datos unificado (UDM), lo que captura la identidad del usuario, los atributos de red, los detalles del proceso, las operaciones de archivos y los resultados de seguridad.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Windows Server 2016 o posterior, o host de Linux con systemd
  • Conectividad de red entre el agente de Bindplane y el servidor de InterSystems Caché
  • Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos según los requisitos del agente de Bindplane
  • Acceso con privilegios a la instancia de InterSystems Caché con autoridad para configurar el registro de auditoría y la exportación de registros

Obtén credenciales de Google SecOps para el agente de Bindplane

Para autenticar el agente de Bindplane en Google SecOps, elige uno de los siguientes métodos:

  • Implementaciones nuevas: Usa la API de Chronicle (opción 1).
  • Implementaciones heredadas: Sigue usando el archivo de autenticación de la API de Ingestion (opción 2) hasta que se descontinúe la API de Ingestion el 20 de julio de 2027.
  1. Accede a la consola deGoogle Cloud y selecciona el proyecto de Google Cloud que está vinculado a tu instancia de Google SecOps.
  2. Ve a IAM y administración > Cuentas de servicio.
  3. Haga clic en Crear cuenta de servicio.
  4. Proporciona los siguientes detalles de configuración:
    • Nombre de la cuenta de servicio: Ingresa un nombre para la cuenta (por ejemplo, bindplane-ingest).
    • Descripción de la cuenta de servicio: Ingresa una descripción (por ejemplo, Bindplane agent log ingestion).
  5. Haz clic en Crear y continuar.
  6. En la sección Otorga a esta cuenta de servicio acceso al proyecto, haz clic en Seleccionar un rol y elige Editor de Chronicle.
  7. Haz clic en Continuar y, luego, en Listo.
  8. Haz clic en la cuenta de servicio que creaste y, luego, ve a la pestaña Claves.
  9. Haz clic en Agregar clave > Crear clave nueva.
  10. Selecciona JSON y haz clic en Crear. El archivo de claves se descargará en tu computadora.
  11. Guarda el archivo de claves como ingestion-auth.json en el directorio del recopilador de Bindplane (/opt/observiq-otel-collector/ingestion-auth.json en Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json en Windows) o actualiza creds_file_path en config.yaml para que coincida con la ruta de acceso en la que lo guardas.
  12. Ve a IAM y administración > Configuración y copia el Número de proyecto. Lo necesitarás para la configuración del exportador.

Opción 2: Descarga el archivo de autenticación de transferencia (heredado)

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. Descarga el archivo de autenticación de transferencia.
  4. Guarda el archivo de forma segura en el sistema en el que se instalará el agente de Bindplane.

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Instala el agente de Bindplane

Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.

Instalación en Windows

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sc query observiq-otel-collector
    

    El servicio debería mostrarse como RUNNING.

Instalación en Linux

  1. Abre una terminal con privilegios de raíz o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Espera a que se complete la instalación.

  4. Ejecuta el siguiente comando para verificar la instalación:

    sudo systemctl status observiq-otel-collector
    

    El servicio debería mostrarse como active (running).

Recursos de instalación adicionales

Para obtener más opciones de instalación y solucionar problemas, consulta la guía de instalación del agente de Bindplane.

Configura el agente de BindPlane para transferir syslog y enviarlo a Google SecOps

Ubica el archivo de configuración

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edita el archivo de configuración

  • Reemplaza todo el contenido de config.yaml por la siguiente configuración:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/intersystems_cache:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: INTERSYSTEMS_CACHE
        raw_log_field: body
    
    service:
      pipelines:
        logs/intersystems_cache:
          receivers:
            - udplog
          exporters:
            - chronicle/intersystems_cache
    

Parámetros de configuración

Reemplaza los marcadores de posición que se indican más abajo:

  • Configuración del receptor:

    • udplog: Es el tipo de receptor según el protocolo:
      • udplog para el registro del sistema UDP
      • tcplog para el registro del sistema de TCP
      • syslog para syslog de RFC 3164/5424
    • 0.0.0.0: Es la dirección IP en la que se escuchará:
      • 0.0.0.0 para escuchar en todas las interfaces (recomendado)
      • Dirección IP específica para escuchar en una interfaz
    • 514: Es el número de puerto en el que se escuchará (por ejemplo, 514, 1514 o 6514).
  • Configuración del exportador:

    • <customer_id>: ID del cliente del paso anterior
    • location: Reemplaza <LOCATION> por la región de tu instancia de Google SecOps (por ejemplo, us, europe o asia-southeast1). El exportador antepone chronicle.googleapis.com con este valor. Consulta Extremos regionales para obtener la lista completa.
    • project: Reemplaza <PROJECT_NUMBER> por el número de proyecto de IAM y administración > Configuración.
    • endpoint: Mantén la configuración como chronicle.googleapis.com.
    • Ajusta creds_file_path a la ruta de acceso de tu archivo de claves JSON de la cuenta de servicio (opción 1), según la plataforma:
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Exportador de la API de transferencia heredada

  • Si usas el archivo de autenticación de transferencia de la opción 2, reemplaza el bloque exporters por el siguiente. Establece creds_file_path en la ruta de acceso al archivo de autenticación de transferencia y, si tu instancia está fuera de EE.UU., reemplaza malachiteingestion-pa.googleapis.com por tu extremo regional (por ejemplo, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/intersystems_cache:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: INTERSYSTEMS_CACHE
        raw_log_field: body
    

Cómo guardar el archivo de configuración

  • Después de editarlo, guarda el archivo:
    • Linux: Presiona Ctrl+O, luego Enter y, por último, Ctrl+X
    • Windows: Haz clic en Archivo > Guardar.

Reinicia el agente de Bindplane para aplicar los cambios.

  • Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica que el servicio esté en ejecución:

      sudo systemctl status observiq-otel-collector
      
    2. Revisa los registros en busca de errores:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar el agente de Bindplane en Windows, elige una de las siguientes opciones:

    • Símbolo del sistema o PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Consola de Servicios:

      1. Presiona Win+R, escribe services.msc y presiona Intro.
      2. Busca observIQ OpenTelemetry Collector.
      3. Haz clic con el botón derecho y selecciona Reiniciar.
      4. Verifica que el servicio esté en ejecución:

        sc query observiq-otel-collector
        
      5. Revisa los registros en busca de errores:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura el reenvío de syslog de InterSystems Caché

InterSystems Caché escribe eventos de auditoría en su base de datos de auditoría interna. Configura el reenvío de syslog para enviar estos eventos al agente de BindPlane.

Habilita y configura el registro de auditoría

  1. Abre el Portal de administración de Caché.
  2. Navega a Administración del sistema > Seguridad > Auditoría > Configurar eventos del sistema.
  3. Habilita los eventos de auditoría que deseas capturar (por ejemplo, %System/%Login/LoginFailure, %System/%Security/Protect).
  4. Haz clic en Guardar.

Configura el reenvío de syslog

  1. En el portal de administración, navega a Administración del sistema > Seguridad > Auditoría > Configurar auditoría.
  2. Habilita el reenvío de syslog para los eventos de auditoría.
  3. Proporciona los siguientes detalles de configuración:
    • Servidor Syslog: Ingresa la dirección IP del host del agente de Bindplane (por ejemplo, 192.168.1.100).
    • Puerto: Ingresa 514 (debe coincidir con el puerto del receptor de Bindplane).
    • Protocolo: Selecciona UDP (debe coincidir con el tipo de receptor de Bindplane).
  4. Haz clic en Guardar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
deviceNtDomain about.administrative_domain Se cambió el nombre o se asignó
deviceExternalId about.asset.asset_id Asignada directamente
device_product about.asset.asset_id Asignada directamente
device_vendor about.asset.asset_id Asignada directamente
fileHash about.file.full_path Asignada directamente
filePath about.file.full_path Se cambió el nombre o se asignó
_hash about.file.sha256 Se cambió el nombre o se asignó
fileHash about.file.sha256 Se cambió el nombre o se asignó
fsize about.file.size Se cambió el nombre o se asignó
dvchost about.hostname Se cambió el nombre o se asignó
ips about.ip Combinado
dvc_mac about.mac Asignado: slot → mac_address
dvcmac about.mac Combinado
mac_address about.mac Combinado
deviceTranslatedAddress about.nat_ip Combinado
Emne about.process.command_line Asignada directamente
Path about.process.command_line Asignada directamente
Subject about.process.command_line Asignada directamente
deviceProcessName about.process.command_line Se cambió el nombre o se asignó
dvcpid about.process.pid Se cambió el nombre o se asignó
permissions about.resource.attribute.permissions Combinado
additional_cfp1 additional.fields Combinado
additional_cfp2 additional.fields Combinado
additional_cfp3 additional.fields Combinado
additional_cfp4 additional.fields Combinado
additional_cn1 additional.fields Combinado
additional_cn2 additional.fields Combinado
additional_cn3 additional.fields Combinado
additional_cs1 additional.fields Combinado
additional_cs2 additional.fields Combinado
additional_cs3 additional.fields Combinado
additional_cs4 additional.fields Combinado
additional_cs5 additional.fields Combinado
additional_cs6 additional.fields Combinado
additional_cs7 additional.fields Combinado
additional_devicePayloadId additional.fields Combinado
additional_eventId additional.fields Combinado
additional_field additional.fields Combinado
additional_field_key additional.fields Asignado: smb_stage1 → additional_smb_stage1
additional_flexString1 additional.fields Combinado
additional_fname additional.fields Combinado
additional_smb_stage1 additional.fields Combinado
cs2 additional.fields Asignado: arc_test → additional_cs2
cs5_label additional.fields Combinado
event_name extensions.auth.type Asignado: logout → AUTHTYPE_UNSPECIFIED, login → AUTHTYPE_UNSPECIFIED
field_intermediary intermediary Combinado
msg metadata.description Se cambió el nombre o se asignó
Generated metadata.event_timestamp Se analizó como yyyy-MM-ddTHH:mm:ss
Received metadata.event_timestamp Analizado como yyyy-MM-ddTHH:mm:ss
rt metadata.event_timestamp Analizado como yyyy-MM-ddTHH:mm:ssZ
event_name metadata.event_type Asignación: logout → USER_LOGOUT, login → USER_LOGIN, `"LogSpyware","LogPredictiveMachin...
device_event_class_id metadata.product_event_type Asignada directamente
event_name metadata.product_event_type Asignada directamente
externalId metadata.product_log_id Asignada directamente
device_product metadata.product_name Asignada directamente
device_version metadata.product_version Asignada directamente
device_vendor metadata.vendor_name Se cambió el nombre o se asignó
app_protocol_output network.application_protocol Asignada directamente
deviceDirection network.direction Asignado: 0 → INBOUND, 1 → OUTBOUND
requestMethod network.http.method Se cambió el nombre o se asignó
agentZoneURI network.http.referral_url Asignada directamente
requestClientApplication network.http.user_agent Se cambió el nombre o se asignó
ip_protocol_out network.ip_protocol Asignada directamente
in network.received_bytes Se cambió el nombre o se asignó
out network.sent_bytes Se cambió el nombre o se asignó
sntdom principal.administrative_domain Se cambió el nombre o se asignó
sourceServiceName principal.application Se cambió el nombre o se asignó
Group_name principal.group.group_display_name Asignada directamente
Gruppenavn principal.group.group_display_name Asignada directamente
Device_name principal.hostname Asignada directamente
Enhetsnavn principal.hostname Asignada directamente
shost principal.hostname Se cambió el nombre o se asignó
principal_ip principal.ip Combinado
shost principal.ip Combinado
mac principal.mac Combinado
sourceTranslatedAddress principal.nat_ip Combinado
sourceTranslatedPort principal.nat_port Se cambió el nombre o se asignó
spt principal.port Se cambió el nombre o se asignó
sproc principal.process.command_line Se cambió el nombre o se asignó
spid principal.process.pid Se cambió el nombre o se asignó
principal_role principal.user.attribute.roles Combinado
suser principal.user.user_display_name Asignada directamente
suid principal.user.userid Se cambió el nombre o se asignó
_action security_result.action Combinado
act security_result.action Asignado: accept → _action, deny → _action
Action_Taken security_result.action_details Asignada directamente
act security_result.action_details Asignada directamente
cat security_result.category_details Combinado
Scan_Type security_result.description Asignada directamente
Type security_result.description Asignada directamente
msg_data_2 security_result.description Asignada directamente
infection_channel_label security_result.detection_fields Combinado
operasjon_label security_result.detection_fields Combinado
operation_label security_result.detection_fields Combinado
permission_label security_result.detection_fields Combinado
spyware_Grayware_Type_label security_result.detection_fields Combinado
threat_probability_label security_result.detection_fields Combinado
tillatelse_label security_result.detection_fields Combinado
mwProfile security_result.rule_name Asignada directamente
severity security_result.severity Asignado: "0", "1", "2", "3", "LOW" → LOW, `"4", "5", "6", "MEDIUM", "SUBSTANTIAL", "INFO"…
severity security_result.severity_details Asignada directamente
Result security_result.summary Asignada directamente
appcategory security_result.summary Asignada directamente
reason security_result.summary Se cambió el nombre o se asignó
Spyware security_result.threat_name Asignada directamente
Unknown_Threat security_result.threat_name Asignada directamente
Virus_Malware_Name security_result.threat_name Asignada directamente
oldFilePath src.file.full_path Se cambió el nombre o se asignó
oldFileSize src.file.size Se cambió el nombre o se asignó
old_permissions src.resource.attribute.permissions Combinado
dntdom target.administrative_domain Se cambió el nombre o se asignó
app target.application Asignada directamente
destinationServiceName target.application Se cambió el nombre o se asignó
ahost target.hostname Asignada directamente
temp_dhost target.hostname Asignada directamente
IPv6_Address target.ip Combinado
agt target.ip Combinado
dst_ip target.ip Combinado
ipv6 target.ip Asignado: - → IPv6_Address
atz target.location.country_or_region Asignada directamente
amac target.mac Combinado
mac_address target.mac Combinado
destination_translated_address target.nat_ip Combinado
destinationTranslatedPort target.nat_port Se cambió el nombre o se asignó
dpt target.port Se cambió el nombre o se asignó
dproc target.process.command_line Se cambió el nombre o se asignó
File_name target.process.file.full_path Asignada directamente
Infected_Resource target.process.file.full_path Asignada directamente
Object target.process.file.full_path Asignada directamente
Objekt target.process.file.full_path Asignada directamente
dpid target.process.pid Se cambió el nombre o se asignó
resource_Type_label target.resource.attribute.labels Combinado
request target.url Asignada directamente
target_role target.user.attribute.roles Combinado
CustomerName target.user.user_display_name Asignada directamente
temp_duser target.user.user_display_name Asignada directamente
Bruker target.user.userid Asignada directamente
User_value target.user.userid Asignada directamente
temp_duid target.user.userid Asignada directamente
N/A extensions.auth.type Constante: AUTHTYPE_UNSPECIFIED
N/A metadata.event_type Constante: USER_LOGOUT
N/A network.direction Constante: INBOUND
N/A security_result.severity Constante: LOW

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.