Usa el agente de Bindplane

Compatible con:

El agente de BindPlane (también denominado agente de recopilación) es un agente de código abierto basado en el recopilador de OpenTelemetry (OTel) que recopila registros de diversas fuentes, incluidos los registros de eventos de Microsoft Windows, y los envía a Google Security Operations.

La consola de administración de Bindplane OP proporciona una plataforma integral y unificada para administrar tus implementaciones de recopiladores de OTel en Google SecOps y Google Cloud. BindPlane (antes conocido como observIQ) proporciona una BindPlane (edición de Google) de la consola de administración. La consola de administración es opcional. Puedes usar el agente con o sin ella.

Para obtener detalles, consulta:

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 Consola de administración de Bindplane OP.

Esta es la misma solución que usa Cloud Logging para las 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 del 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 SIEM Settings > Profile.
    3. Copia el ID del cliente de la sección Detalles de la organización.
  • Host de Windows 2012 SP2 o posterior, o Linux con systemd

  • Conectividad a Internet

  • Acceso a GitHub

Verifica la configuración del firewall

Cualquier firewall o proxy autenticado entre el agente y la Internet requiere 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 Bindplane OP

La consola de BindPlane OP Management ofrece las siguientes funciones clave:

  • Administración centralizada: La consola te permite administrar todas tus implementaciones de recopiladores de 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 recopiladores.
  • Supervisión en tiempo real: La consola proporciona supervisión en tiempo real de tus implementaciones del recopilador de OTel. Puedes hacer un seguimiento de métricas como el uso de CPU, el uso de memoria y la capacidad de procesamiento, así como ver registros y seguimientos para solucionar problemas.
  • Alertas y notificaciones: La consola te permite configurar alertas y notificaciones para eventos importantes, como cuando un recopilador deja de funcionar o cuando se supera un umbral de métricas.
  • Administración de la configuración: La consola te permite administrar de forma centralizada la configuración de tus recopiladores de OTel. Puedes editar archivos de configuración, establecer variables de entorno y aplicar políticas de seguridad a todas tus implementaciones.
  • Integración con Google Cloud: Puedes crear y administrar implementaciones del recopilador de OTel en Google Cloud y usar la consola para acceder a tus recursos de Google Cloud .

Existen dos formas de implementar la consola de administración de Bindplane OP:

Diferencia entre Bindplane (edición de Google) y Bindplane Enterprise (edición de Google)

Puedes usar Bindplane (edición de Google) o Bindplane Enterprise (edición de Google), según tus necesidades de implementación.

Las diferencias se enumeran en la siguiente tabla:

Funciones Bindplane (edición de Google) Bindplane Enterprise (edición de Google)
Costo Todos los clientes de SecOps de Google obtienen BindPlane (edición de Google) sin cargo adicional. Los clientes de Google SecOps Enterprise Plus obtienen Bindplane Enterprise (edición de Google) sin cargo.
Enrutamiento y destinos Solo para Google, incluidos Google SecOps, Cloud Logging, BigQuery y Cloud Storage a través de Cloud Logging Google, incluidos 12 meses de enrutamiento a un destino que no es de Google para las migraciones de SIEM
Filtros Filtro básico con expresión regular Procesadores de filtrado avanzado (filtro por condición, campo, gravedad, etcétera), reducción de datos, muestreo de registros, eliminación de duplicados
Ocultamiento N/A Enmascaramiento de PII
Transformación Agregar campo, mover campo, analizar datos (KV, JSON, CSV, XML, marca de tiempo, analizar por expresión regular), cambiar el nombre del campo, separador de eventos Borrar campo, borrar valores vacíos, coalescer
Funciones generales a nivel de la plataforma Puerta de enlace (agrega datos de los agentes), agentes de BindPlane para la recopilación, capa de administración de BindPlane (BindPlane OP) para la recopilación local o alojada en la nube, todas las fuentes, supervisión silenciosa del host a través del procesador de SecOps, cola persistente, enriquecimiento de la telemetría, HA, RBAC, ambas APIs de transferencia de SecOps compatibles, ofuscación de credenciales, administración avanzada de la flota, incluido el agrupamiento de agentes, asignación dinámica de tipos de registros

Instala el agente de BindPlane

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

Windows

Para instalar el agente de 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

También puedes descargar el instalador más reciente para Windows si quieres instalarlo con un asistente de instalación.

Después de descargar el instalador, abre el asistente de instalación y sigue las instrucciones para configurar e instalar 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 la misma 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 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 Bindplane OP. 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. De forma predeterminada, el agente registra en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log.

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 encuentra en C:\Program Files\observIQ OpenTelemetry Collector\config.yaml. Cuando cambies la configuración, debes reiniciar el servicio del agente para que los cambios de configuración surtan efecto.

Puedes descargar un archivo de configuración de muestra y un token de autenticación que usa el agente desde la consola de Google SecOps > SIEM Settings > Collection Agent.

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

  • Receptor: Especifica qué registros debe recopilar el agente y enviar a Google SecOps.
  • Exporter: 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 reenviador 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: Es el 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 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.

El agente de recopilación envía registros al agente de recopilación que actúa como puerta de enlace

El agente de recopilación envía registros al agente de recopilación que actúa como puerta de enlace

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

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

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

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

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

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

Escalabilidad

Por lo general, los recopiladores de agentes usan recursos mínimos, pero, cuando manejan grandes volúmenes de telemetría (registros o seguimientos) en un sistema, se debe tener en cuenta el consumo de recursos para evitar afectar otros servicios. Para obtener más información, consulta Tamaño y escalamiento del agente.

Asistencia

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

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

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

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

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

Envía eventos de Windows y syslog al 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

Envía registros del sistema 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

Consultar una base de datos 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

Descarta los registros que coinciden con una expresión regular

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

Para descartar los 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 devuelve true, se descarta el registro.

En el siguiente ejemplo de configuración, se descartan los registros que contienen las cadenas <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 en 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 BindPlane (anteriormente conocido como observIQ), consulta los siguientes recursos:

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