Usa el agente BindPlane

El agente de BindPlane (también conocido como agente de recopilación) es un agente de código abierto basado en OpenTelemetry Collector, que recopila registros de una variedad de fuentes, incluidos los registros de eventos de Microsoft Windows, y envía a Google Security Operations.

La consola de administración de OP de OBservIQ BindPlane proporciona una solución integral plataforma para administrar las implementaciones del recopilador OpenTelemetry (OTel) Google SecOps y Google Cloud. observIQ proporciona un BindPlane para Edición de Google de la consola de administración. Para obtener más información, consulta soluciones de ObservIQ. La consola de administración es opcional. Puedes usar el agente con o sin la consola. Para obtener más información sobre la consola, consulta la consola de administración de operaciones de BindPlane.

Esta es la misma solución que usa Cloud Logging. para implementaciones locales.

Antes de comenzar

Para instalar el agente, necesitas lo siguiente:

  • Archivo de autenticación de transferencia de Google SecOps

    Para descargar el archivo de autenticación, sigue estos pasos:

    1. Abre la consola de Google SecOps.
    2. Ve a Configuración de SIEM > Agente de recopilación.
    3. Descarga el archivo de autenticación de transferencia de Google SecOps.
  • ID de cliente de Google SecOps

    Para encontrar el ID del cliente, sigue estos pasos:

    1. Abre la consola de Google SecOps.
    2. Ve a Configuración del SIEM > Perfil.
    3. Copia el ID de cliente de la sección Detalles de la organización.
  • Windows 2012 SP2 o posterior, o host de Linux con systemd

  • Conectividad a Internet

  • Acceso a GitHub

Verifica la configuración del firewall

Cualquier firewall o proxy autenticado entre Internet y el agente requieren reglas para abrir el acceso a los siguientes hosts:

Tipo de conexión Destino Puerto
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP oauth2.googleapis.com 443

Consola de administración de OP de BindPlane

La consola de administración de OP de BindPlane ofrece las siguientes funciones clave:

  • Administración centralizada: La consola te permite administrar todas tus implementaciones de recopilador OTel en Google Cloud. Puedes ver el estado de cada implementación, así como realizar tareas de administración comunes, como iniciar, detener y reiniciar los recopiladores.
  • Supervisión en tiempo real: La consola proporciona supervisión en tiempo real de tu OTel. implementaciones de colector. Puedes seguir métricas como el uso de CPU, de memoria, y capacidad de procesamiento, y visualizar registros y seguimientos para solucionar problemas.
  • Alertas y notificaciones: La consola te permite configurar alertas y notificaciones para eventos importantes, como cuando se cae un recopilador o se supera un límite de métrica.
  • Administración de configuración: La consola te permite administrar de forma centralizada la configuración. de tus coleccionistas de OTel. Puedes editar archivos de configuración, establecer variables de entorno y aplicar políticas de seguridad a todas tus implementaciones.
  • Integración en Google Cloud: Puedes crear y administrar el recopilador OTel. de Google Cloud en Google Cloud y usar la consola para acceder a tus de Google Cloud.

Hay dos formas de implementar la consola de administración de OP de BindPlane:

Instala el agente BindPlane

En esta sección, se describe cómo instalar el agente en diferentes sistemas operativos de host.

Windows

Para instalar el agente BindPlane en Windows, ejecuta el siguiente comando de PowerShell.

msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet

Como alternativa, para realizar la instalación con un asistente de instalación, descarga el instalador más reciente para Windows.

Luego de descargar el instalador, abre el asistente de instalación y sigue las instrucciones para instalar y configurar el agente de BindPlane. Para obtener más información sobre la instalación, consulta Cómo instalar en Windows.

Linux

Puedes instalar el agente en Linux con una secuencia de comandos que determina automáticamente qué paquete instalar. También puedes usar esta secuencia de comandos para actualizar una instalación existente.

Para instalar con la secuencia de comandos de instalación, ejecuta la siguiente secuencia de comandos:

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh

Instalación desde un paquete local

Para instalar el agente desde un paquete local, usa -f con la ruta de acceso al paquete.

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh -f path_to_package

Instalación de RPM

Descarga el paquete de RPM para tu arquitectura desde la página de versiones y, luego, instálalo con rpm. Consulta el siguiente ejemplo para instalar el paquete amd64:

sudo rpm -U ./observiq-otel-collector_v${VERSION}_linux_amd64.rpm
sudo systemctl enable --now observiq-otel-collector

Reemplaza VERSION por la versión del paquete que descargaste.

Instalación de DEB

Descarga el paquete DEB para tu arquitectura desde la página de versiones y, luego, instálalo con dpkg. Consulta el siguiente ejemplo para instalar el paquete amd64:

sudo dpkg -i --force-overwrite ./observiq-otel-collector_v${VERSION}_linux_amd64.deb
sudo systemctl enable --now observiq-otel-collector

Reemplaza VERSION por la versión del paquete que descargaste.

Para obtener más información, consulta Instalación del agente de BindPlane.

Configura el agente

Puedes configurar el agente de forma manual o con la consola de administración de operaciones de BindPlane. Si configuras el agente de forma manual, debes actualizar los parámetros del exportador para asegurarte de que el agente se autentique con Google SecOps.

Después de instalar el agente, se ejecuta el servicio observiq-otel-collector y está listo para la configuración. El agente se registra en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log de forma predeterminada.

El registro de errores estándar para el proceso del agente se puede encontrar en C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

De forma predeterminada, el archivo de configuración del agente se ubica C:\Program Files\observIQ OpenTelemetry Collector\config.yaml Al cambiar la configuración, debes reiniciar el servicio del agente para los cambios de configuración en entrar en vigor.

Puedes descargar un archivo de configuración de muestra y un token de autenticación que usa la de la consola de Google SecOps > Configuración del SIEM > Agente de recopilación.

Personaliza estas dos secciones en el archivo de configuración:

  • Receptor: Especifica qué registros debe recopilar y enviar el agente a Google SecOps.
  • Exportador: especifica el destino al que el agente envía los registros. Se admiten los siguientes exportadores:
    • Exportador de Google SecOps: Envía registros directamente a la API de transferencia de Google SecOps.
    • Exportador de reenvío de Google SecOps: Envía registros al servidor de reenvío de Google SecOps
    • Exportador de Cloud Logging: Envía registros a Cloud Logging

En el exportador, personaliza lo siguiente:

  • customer_id: ID de cliente de Google SecOps
  • endpoint: Extremo regional de Google SecOps
  • credsToken de autenticación

    Como alternativa, puedes usar creds_file_path para hacer referencia al archivo de credenciales directamente. Para la configuración de Windows, escapa la ruta de acceso con barras diagonales inversas.

  • log_type: Tipo de registro

  • ingestion_labels: Etiquetas de transferencia opcionales

  • namespace: Espacio de nombres opcional

    Cada tipo de registro requiere que configures un exportador.

Arquitectura

Las siguientes opciones están disponibles para la arquitectura del agente.

Opción 1: El agente de recopilación envía registros al servidor de reenvío de Google SecOps

El agente de recopilación envía registros al servidor de reenvío de Google SecOps

El redireccionamiento de Google SecOps recibe múltiples flujos de syslog. Cada fuente de datos de syslog se distingue por el puerto de escucha configurado en el reenviador de SecOps de Google. El servidor de reenvío realiza una GRPC encriptada a tu instancia de Google SecOps para entregar los registros recopilados.

Ten en cuenta que la opción de reenvío permite la agregación de registros antes de enviarlos a Google SecOps.

Opción 2: El agente de recopilación envía registros directamente a la API de transferencia de SecOps de Google

El agente de recopilación envía los registros directamente a la API de transferencia de Google SecOps

Opción 3: El agente de recopilación envía registros directamente a Cloud Logging

El agente de recopilación envía registros directamente a Cloud Logging

Opción 4: El agente de recopilación envía registros a varios destinos

El agente de colección envía registros a varios destinos

Escalabilidad

Los agentes de recopilación suelen usar recursos mínimos, pero cuando se manejan grandes volúmenes de telemetría (registros o seguimientos) en un sistema, ten en cuenta el consumo de recursos para evitar afectar a otros servicios. Para obtener más información, consulta Escalamiento y tamaño del agente.

Asistencia

Si tienes problemas relacionados con el agente recolector, comunícate con el equipo de asistencia de Google Cloud.

Si tienes problemas relacionados con la administración de OP de BindPlane, comunícate con el equipo de asistencia de observIQ.

Ejemplos adicionales de configuración de recopilación de registros

En las siguientes secciones, se enumeran los ejemplos adicionales de configuración de la recopilación de registros.

Envía eventos de Windows y Sysmon directamente a Google SecOps

Configura estos parámetros en la muestra:

Configuración de ejemplo

receivers:
  windowseventlog/sysmon:
    channel: Microsoft-Windows-Sysmon/Operational
    raw: true
  windowseventlog/security:
    channel: security
    raw: true
  windowseventlog/application:
    channel: application
    raw: true
  windowseventlog/system:
    channel: system
    raw: true

processors:
  batch:

exporters:
  chronicle/sysmon:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    log_type: 'WINDOWS_SYSMON'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'
  chronicle/winevtlog:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}'
    log_type: 'WINEVTLOG'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'

service:
  pipelines:
    logs/sysmon:
      receivers: [windowseventlog/sysmon]
      processors: [batch]
      exporters: [chronicle/sysmon]
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: [batch]
      exporters: [chronicle/winevtlog]

Envía eventos de Windows y syslog directamente a Google SecOps

Configura estos parámetros en la muestra:

Configuración de ejemplo

receivers:
    tcplog:
      listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicle/chronicle_w_labels
        logs/source1__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Enviar eventos de Windows y syslog al servidor de reenvío de Google SecOps

Configura estos parámetros en la muestra:

Configuración de ejemplo

receivers:
tcplog:
    listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicleforwarder/forwarder:
        export_type: syslog
        raw_log_field: body
        syslog:
            endpoint: 127.0.0.1:10514
            transport: udp
service:
    pipelines:
        logs/source0__forwarder-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicleforwarder/forwarder
        logs/source1__forwarder-0:
            receivers:
                - tcplog
            exporters:
                - chronicleforwarder/forwarder

Cómo enviar syslog directamente a Google SecOps

Configura estos parámetros en la muestra:

Configuración de ejemplo

receivers:
  tcplog:
    listen_address: "0.0.0.0:54525"

exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Recopila eventos de Windows de forma remota y envíalos directamente a Google SecOps.

Configura estos parámetros en la muestra:

  • windowseventlogreceiver
    • username
    • password
    • server
  • chronicleexporter
    • namespace
    • ingestion_labels
    • log_type
    • customer_id
    • creds

Configuración de ejemplo

receivers:
    windowseventlog/system:
        channel: system
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "remote-server"
    windowseventlog/application:
        channel: application
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
    windowseventlog/security:
        channel: security
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: WINEVTLOG
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/system
                - windowseventlog/application
                - windowseventlog/security
            exporters:
                - chronicle/chronicle_w_labels

Envía datos a Cloud Logging

Configura el parámetro credentials_file en la muestra.

Configuración de ejemplo

exporters:
  googlecloud:
    credentials_file: /opt/observiq-otel-collector/credentials.json

Cómo consultar una base de datos de SQL y enviar los resultados a Google SecOps

Configura estos parámetros en la muestra:

Configuración de ejemplo

receivers:
  sqlquery/source0:
    datasource: host=localhost port=5432 user=postgres password=s3cr3t sslmode=disable
    driver: postgres
    queries:
      - logs:
          - body_column: log_body
        sql: select * from my_logs where log_id > $$1
        tracking_column: log_id
        tracking_start_value: "10000"
processors:
  transform/source0_processor0__logs:
    error_mode: ignore
    log_statements:
      - context: log
        statements:
          - set(attributes["chronicle_log_type"], "POSTGRESQL") where true
exporters:
  chronicle/chronicle_sql:
    compression: gzip
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    customer_id: customer_id
    endpoint: malachiteingestion-pa.googleapis.com
    log_type: POSTGRESQL
    namespace: null
    raw_log_field: body
    retry_on_failure:
      enabled: false
    sending_queue:
      enabled: false
service:
  pipelines:
    logs/source0_chronicle_sql-0:
      receivers:
        - sqlquery/source0
      processors:
        - transform/source0_processor0__logs
      exporters:
        - chronicle/chronicle_sql

Eliminar registros que coincidan con una expresión regular

Puedes configurar el colector para que descarte los registros que coincidan con una expresión regular. Esto es útil para filtrar registros no deseados, como errores conocidos o mensajes de depuración.

Para descartar registros que coincidan con una expresión regular, agrega un procesador de tipo filter/drop-matching-logs-to-Chronicle a tu configuración. Este procesador usa la función IsMatch para evaluar el cuerpo del registro en función de la expresión regular. Si la función muestra true, se descarta el registro.

La siguiente configuración de ejemplo descarta los registros que contienen las strings <EventID>10</EventID> o <EventID>4799</EventID> en el cuerpo del registro.

Puedes personalizar la expresión regular para que coincida con cualquier patrón que necesites. La función IsMatch usa la sintaxis de expresión regular RE2.

Configuración de ejemplo

processors:
    filter/drop-matching-logs-to-Chronicle:
        error_mode: ignore
        logs:
            log_record:
                - (IsMatch(body, "<EventID>10</EventID>")) or (IsMatch(body, "<EventID>4799</EventID>"))

En el siguiente ejemplo, se agrega el procesador a la canalización con la misma configuración:

service:
  pipelines:
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: 
      - filter/drop-matching-logs-to-Chronicle # Add this line
      - batch
      exporters: [chronicle/winevtlog]

Documentación de referencia

Para obtener más información sobre OBservIQ, consulta lo siguiente: