Usa el agente de 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 operaciones de BindPlane de observIQ proporciona una plataforma completa y unificada para administrar tus implementaciones de recopiladores de OpenTelemetry (OTel) en Google SecOps y Google Cloud. observIQ proporciona un BindPlane para la edición de Google de la consola de administración. Para obtener más información, consulta las soluciones de observIQ. La consola de administración es opcional. Puedes usar el agente con o sin la consola. Más información acerca de la consola, consulta Consola de administración de OP 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 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 de 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 operadores 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 hacer un seguimiento de métricas, como el uso de CPU y 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 deja de funcionar un recopilador o cuando el umbral de una métrica se excede.
  • 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 de BindPlane

En esta sección, se describe cómo instalar el agente en diferentes sistemas operativos de 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

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 BindPlane OP Management de Cloud. 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, el servicio observiq-otel-collector se ejecuta y está listo para configuración. El agente 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 los registros que el agente debe recopilar y enviar 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 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: 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 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.

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 reenviador permite agregar 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 los registros directamente a Cloud Logging

El agente de recopilación envía los 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 recopiladores de agentes suelen usar recursos mínimos, pero cuando manejan grandes volúmenes de telemetría (registros o seguimientos) en un sistema, ten en cuenta el consumo de recursos para a evitar afectar a otros servicios. Para obtener más información, consulta Tamaño y escalamiento de agentes

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 la asistencia de ObservaIQ.

Muestras adicionales de configuración de la recopilación de registros

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

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

Envía 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

Consulta una base de datos SQL y envía 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 con respecto a 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 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 observIQ, consulta lo siguiente: