Menggunakan agen BindPlane

Agen BindPlane (juga disebut sebagai agen pengumpulan) adalah agen {i>open-source<i}, berdasarkan OpenTelemetry Collector, mengumpulkan log dari berbagai sumber, termasuk log peristiwa Microsoft Windows, dan mengirim mereka ke Google Security Operations.

Konsol Manajemen OP BindPlane observIQ memberikan konsolidasi untuk mengelola deployment kolektor OpenTelemetry (OTel) Anda di Google SecOps dan Google Cloud. observIQ menyediakan BindPlane untuk Konsol pengelolaan edisi Google. Untuk informasi selengkapnya, lihat solusi observIQ. Konsol pengelolaan bersifat opsional. Anda dapat menggunakan agen dengan atau tanpa konsol. Untuk informasi selengkapnya tentang konsol, lihat Konsol Pengelolaan OP BindPlane.

Ini adalah solusi yang sama dengan yang digunakan oleh Cloud Logging untuk deployment lokal.

Sebelum memulai

Untuk menginstal agen, Anda memerlukan hal berikut:

  • File autentikasi penyerapan Google SecOps

    Untuk mendownload file autentikasi, ikuti langkah-langkah berikut:

    1. Buka konsol Google SecOps.
    2. Buka Setelan SIEM > Agen Pengumpulan.
    3. Download file autentikasi penyerapan SecOps Google.
  • ID pelanggan Google SecOps

    Untuk menemukan ID pelanggan, ikuti langkah-langkah berikut:

    1. Buka konsol Google SecOps.
    2. Buka Setelan SIEM > Profil.
    3. Salin ID pelanggan dari bagian Organization Details.
  • Windows 2012 SP2 atau yang lebih baru atau host Linux dengan systemd

  • Konektivitas internet

  • Akses GitHub

Memverifikasi konfigurasi firewall

Firewall atau proxy yang diautentikasi antara agen dan internet mewajibkan aturan untuk membuka akses ke host berikut:

Jenis Koneksi Tujuan Port
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

Konsol Pengelolaan OP BindPlane

Konsol Pengelolaan OP BindPlane menawarkan beberapa fitur utama berikut:

  • Pengelolaan terpusat: Konsol memungkinkan Anda mengelola semua deployment kolektor OTel di Google Cloud. Anda dapat melihat status setiap deployment, serta melakukan tugas pengelolaan umum seperti memulai, menghentikan, dan memulai ulang kolektor.
  • Pemantauan real-time: Konsol menyediakan pemantauan real-time untuk OTel Anda deployment kolektor. Anda dapat memantau metrik seperti penggunaan CPU, penggunaan memori, dan throughput, serta melihat log dan rekaman aktivitas untuk memecahkan masalah.
  • Pemberitahuan dan notifikasi: Konsol memungkinkan Anda menyiapkan pemberitahuan dan notifikasi untuk peristiwa penting, seperti saat kolektor tidak aktif atau saat nilai minimum metrik terlampaui.
  • Manajemen konfigurasi: Konsol memungkinkan Anda mengelola konfigurasi secara terpusat kolektor OTel Anda. Anda dapat mengedit file konfigurasi, mengatur variabel lingkungan, dan menerapkan kebijakan keamanan ke semua deployment Anda.
  • Integrasi dengan Google Cloud: Anda dapat membuat dan mengelola kolektor OTel deployment di Google Cloud dan menggunakan konsol untuk mengakses Google Cloud Platform.

Ada dua cara untuk men-deploy konsol OP Management BindPlane:

Menginstal agen BindPlane

Bagian ini menjelaskan cara menginstal agen pada sistem operasi host yang berbeda.

Windows

Untuk menginstal agen BindPlane di Windows, jalankan perintah PowerShell berikut.

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

Atau, untuk menginstal menggunakan wizard penginstalan, download penginstal terbaru untuk Windows.

Setelah Anda mengunduh pemasang, buka wizard penginstalan dan ikuti petunjuk untuk mengkonfigurasi dan menginstal agen BindPlane. Untuk informasi penginstalan selengkapnya, lihat menginstal di Windows.

Linux

Anda dapat menginstal agen di Linux menggunakan skrip yang menentukan paket mana yang akan diinstal. Anda juga dapat menggunakan skrip ini untuk memperbarui penginstalan yang sudah ada.

Untuk menginstal menggunakan skrip penginstalan, jalankan skrip berikut:

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

Instalasi dari paket lokal

Untuk menginstal agen dari paket lokal, gunakan -f dengan jalur ke paket.

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

Penginstalan RPM

Download paket RPM untuk arsitektur Anda dari halaman rilis dan instal paket menggunakan rpm. Lihat contoh berikut untuk menginstal paket amd64:

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

Ganti VERSION dengan versi paket yang telah Anda download.

Penginstalan DEB

Download paket DEB untuk arsitektur Anda dari halaman rilis dan instal paket menggunakan dpkg. Lihat contoh berikut untuk menginstal Paket amd64:

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

Ganti VERSION dengan versi paket yang telah Anda download.

Untuk informasi selengkapnya, lihat Penginstalan Agen BindPlane.

Mengonfigurasi agen

Anda dapat mengonfigurasi agen secara manual atau menggunakan OP Management BindPlane konsol. Jika mengonfigurasi agen secara manual, Anda perlu mengupdate pengekspor untuk memastikan bahwa agen melakukan autentikasi dengan Google SecOps.

Setelah menginstal agen, layanan observiq-otel-collector akan berjalan dan siap digunakan konfigurasi Anda. Agen melakukan log ke C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log secara default.

Log error standar untuk proses agen dapat ditemukan di C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

Secara {i>default<i}, file konfigurasi agen berada di C:\Program Files\observIQ OpenTelemetry Collector\config.yaml. Saat mengubah konfigurasi, Anda harus memulai ulang layanan agen untuk perubahan konfigurasi agar diterapkan.

Anda bisa mendownload contoh file konfigurasi dan token autentikasi yang digunakan oleh dari konsol Google SecOps > Setelan SIEM > Agen Pengumpulan.

Sesuaikan dua bagian ini di file konfigurasi:

  • Penerima: Menentukan log yang harus dikumpulkan dan dikirim agen ke Google SecOps.
  • Pengekspor: Menentukan tujuan tempat agen mengirim log. Pengekspor berikut didukung:
    • Pengekspor SecOps Google: Mengirim log langsung ke API penyerapan Google SecOps
    • Pengekspor penerus Google SecOps: Mengirim log ke penerus Google SecOps
    • Pengekspor Cloud Logging: Mengirim log ke (Cloud Logging)

Di pengekspor, sesuaikan hal berikut:

  • customer_id: ID pelanggan Google SecOps
  • endpoint: Endpoint regional Google SecOps
  • creds: Token autentikasi

    Atau, Anda dapat menggunakan creds_file_path untuk mereferensikan file kredensial secara langsung. Untuk konfigurasi Windows, konversikan jalur dengan garis miring terbalik.

  • log_type: Jenis log

  • ingestion_labels: Label penyerapan opsional

  • namespace: Namespace opsional

    Setiap jenis log mengharuskan Anda mengonfigurasi pengekspor.

Arsitektur

Opsi berikut tersedia untuk arsitektur agen.

Opsi 1: Agen pengumpulan mengirimkan log ke penerus Google SecOps

Agen pengumpulan mengirimkan log ke penerus Google SecOps

Forwarder Google SecOps menerima beberapa aliran data syslog. Masing-masing sumber data syslog dibedakan berdasarkan porta yang mendengarkan yang dikonfigurasi di Forwarder Google SecOps. Forwarder membuat GRPC terenkripsi koneksi ke instance Google SecOps untuk mengirimkan log yang dikumpulkan.

Perhatikan bahwa opsi penerus memungkinkan agregasi log sebelum mengirimkannya ke Google SecOps.

Opsi 2: Agen pengumpulan mengirimkan log langsung ke API penyerapan Google SecOps

Agen pengumpulan mengirimkan log langsung ke API penyerapan Google SecOps

Opsi 3: Agen pengumpulan mengirimkan log langsung ke Cloud Logging

Agen pengumpulan mengirimkan log langsung ke Cloud Logging

Opsi 4: Agen pengumpulan mengirimkan log ke beberapa tujuan

Agen pengumpulan mengirim log ke beberapa tujuan

Skalabilitas

Pengumpul agen biasanya menggunakan resource minimal, tetapi saat menangani volume besar telemetri (log atau trace) di suatu sistem, perhatikan pemakaian resource untuk agar tidak memengaruhi layanan lain. Untuk informasi selengkapnya, lihat Pengukuran dan Penskalaan Agen

Dukungan

Untuk masalah apa pun terkait agen kolektor, hubungi dukungan Google Cloud.

Untuk masalah apa pun terkait Pengelolaan OP BindPlane, hubungi dukungan ObservIQ.

Contoh konfigurasi pengumpulan log tambahan

Bagian berikut mencantumkan contoh konfigurasi pengumpulan log tambahan.

Mengirim peristiwa dan sysmon Windows langsung ke Google SecOps

Konfigurasikan parameter ini dalam contoh:

Contoh konfigurasi:

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.",
  "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.",
  "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.",
  "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.",
  "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]

Kirim peristiwa dan syslog Windows langsung ke Google SecOps

Konfigurasikan parameter ini dalam contoh:

Contoh konfigurasi:

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

Mengirim peristiwa dan syslog Windows ke forwarder Google SecOps

Konfigurasikan parameter ini dalam contoh:

Contoh konfigurasi:

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

Kirim syslog langsung ke Google SecOps

Konfigurasikan parameter ini dalam contoh:

Contoh konfigurasi:

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

Kumpulkan peristiwa Windows dari jarak jauh dan kirimkan langsung ke SecOps Google

Konfigurasikan parameter ini dalam contoh:

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

Contoh konfigurasi:

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

Mengirim data ke Cloud Logging

Konfigurasi parameter credentials_file dalam contoh.

Contoh konfigurasi:

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

Membuat kueri database SQL dan mengirimkan hasilnya ke Google SecOps

Konfigurasikan parameter ini dalam contoh:

Contoh konfigurasi:

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.",
  "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.",
  "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

Lepaskan log yang cocok dengan ekspresi reguler

Anda dapat mengonfigurasi kolektor untuk menghapus log yang cocok dengan ekspresi reguler. Hal ini berguna untuk memfilter log yang tidak diinginkan, seperti error yang diketahui atau pesan proses debug.

Untuk menghapus log yang cocok dengan ekspresi reguler, tambahkan prosesor jenis filter/drop-matching-logs-to-Chronicle ke konfigurasi Anda. Pemroses ini menggunakan fungsi IsMatch untuk mengevaluasi isi log terhadap ekspresi reguler. Jika fungsi menampilkan true, log akan dihapus.

Contoh konfigurasi berikut menghapus log yang berisi string <EventID>10</EventID> atau <EventID>4799</EventID> dalam isi log.

Anda dapat menyesuaikan ekspresi reguler agar cocok dengan pola apa pun yang diperlukan. Fungsi IsMatch menggunakan sintaksis ekspresi reguler RE2.

Contoh konfigurasi:

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

Contoh berikut menambahkan prosesor ke pipeline dalam konfigurasi yang sama:

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]

Dokumentasi referensi

Untuk mengetahui informasi selengkapnya tentang observIQ, lihat: