Utilizzare l'agente Bindplane
L'agente Bindplane (chiamato anche agente di raccolta) è un agente open source, basato su OpenTelemetry Collector (OTel), che raccoglie i log da varie fonti, inclusi i log eventi di Microsoft Windows, e li invia a Google Security Operations.
La console di gestione Bindplane OP fornisce una piattaforma completa e unificata per gestire i deployment di OTel Collector in Google SecOps e Google Cloud. Bindplane (precedentemente noto come observiq) fornisce una Bindplane (Google edition) della console di gestione. La console di gestione è facoltativa: puoi utilizzare l'agente con o senza.
Per maggiori dettagli, vedi:
La console di gestione è facoltativa. Puoi utilizzare l'agente con o senza la console. Per saperne di più sulla console, consulta Console di gestione Bindplane OP.
Si tratta della stessa soluzione utilizzata da Cloud Logging per i deployment on-premise.
Prima di iniziare
Per installare l'agente, devi disporre di quanto segue:
File di autenticazione importazione di Google SecOps
Per scaricare il file di autenticazione:
- Apri la console Google SecOps.
- Vai a Impostazioni SIEM > Agente di raccolta.
- Scarica il file di autenticazione dell'importazione di Google SecOps.
ID cliente Google SecOps
Per trovare l'ID cliente:
- Apri la console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia l'ID cliente dalla sezione Dettagli dell'organizzazione.
Windows 2012 SP2 o versioni successive o host Linux con systemd
Connettività internet
Accesso a GitHub
Verificare la configurazione del firewall
Eventuali firewall o proxy autenticati tra l'agente e internet richiedono regole per aprire l'accesso ai seguenti host:
Tipo di connessione | Destinazione | Port (Porta) |
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 |
Console di gestione Bindplane OP
La console di gestione Bindplane OP offre le seguenti funzionalità chiave:
- Gestione centralizzata: la console ti consente di gestire tutte le implementazioni del collettore OTel in Google Cloud. Puoi visualizzare lo stato di ogni deployment, nonché eseguire attività di gestione comuni come l'avvio, l'arresto e il riavvio dei raccoglitori.
- Monitoraggio in tempo reale: la console fornisce il monitoraggio in tempo reale dei deployment del raccoglitore OTel. Puoi monitorare metriche come utilizzo della CPU, utilizzo della memoria e velocità effettiva, nonché visualizzare log e tracce per risolvere i problemi.
- Avvisi e notifiche: la console ti consente di configurare avvisi e notifiche per eventi importanti, ad esempio quando un raccoglitore non funziona o quando viene superata una soglia metrica.
- Gestione della configurazione: la console ti consente di gestire centralmente la configurazione dei tuoi raccoglitori OTel. Puoi modificare i file di configurazione, impostare le variabili di ambiente e applicare le norme di sicurezza a tutti i tuoi deployment.
- Integrazione con Google Cloud: puoi creare e gestire le implementazioni del raccoglitore OTel in Google Cloud e utilizzare la console per accedere alle tue risorse Google Cloud .
Esistono due modi per eseguire il deployment della console di gestione Bindplane OP:
- Scarica e installa su un host Linux: Disponibile come pacchetto DEB, pacchetto RPM o immagine Docker.
- Installa ed esegui il provisioning da Google Cloud Marketplace.
Differenza tra Bindplane (Google Edition) e Bindplane Enterprise (Google Edition)
Puoi utilizzare Bindplane (Google Edition) o Bindplane Enterprise (Google Edition), a seconda delle tue esigenze di implementazione.
- Tutti i clienti Google SecOps hanno accesso a Bindplane (Google Edition).
- Per ottenere una licenza Bindplane (Google Edition), scarica e installa Bindplane.
- Se sei un cliente di Google SecOps Enterprise Plus, Bindplane Enterprise (Google Edition) è incluso. Contatta il team del tuo Account Google per ricevere lacodice licenzaa per Bindplane Enterprise (Google Edition).
Le differenze sono elencate nella tabella seguente:
Funzionalità | Bindplane (Google Edition) | Bindplane Enterprise (Google Edition) |
Costo | Tutti i clienti di Google SecOps ricevono Bindplane (Google Edition) senza costi aggiuntivi | I clienti di Google SecOps Enterprise Plus ricevono Bindplane Enterprise (Google Edition) senza costi aggiuntivi |
Routing / Destinazioni | Solo Google, inclusi Google SecOps, Cloud Logging, BigQuery e Cloud Storage tramite Cloud Logging | Google, inclusi 12 mesi di routing verso una destinazione non Google per le migrazioni SIEM |
Filtri | Filtro di base con espressione regolare | Processori di filtraggio avanzato (filtra per condizione, campo, gravità e così via), riduzione dei dati, campionamento dei log, deduplicazione |
Oscuramento | N/D | Mascheramento delle PII |
Trasformazione | Aggiungi campo, sposta campo, analizza dati (KV, JSON, CSV, XML, timestamp, analizza per espressione regolare), rinomina campo, separatore di eventi | Elimina campo, elimina valori vuoti, unisci |
Funzionalità generali a livello di piattaforma | Gateway (aggregazione dei dati dagli agenti), agenti Bindplane per la raccolta, Bindplane Managementlayer (Bindplane OP) per on-premise o ospitato sul cloud, tutte le origini, monitoraggio host silenzioso tramite il processore SecOps, coda persistente, arricchimento della telemetria, HA, RBAC, entrambe le API di importazione SecOps supportate, offuscamento delle credenziali, gestione avanzata del parco macchine, inclusa la raggruppamento degli agenti, assegnazione dinamica del tipo di log | |
Installa l'agente Bindplane
Questa sezione descrive come installare l'agente su diversi sistemi operativi host.
Windows
Per installare l'agente Bindplane su Windows, esegui il seguente comando PowerShell:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
In alternativa, per eseguire l'installazione utilizzando una procedura guidata, scarica il programma di installazione più recente per Windows.
Dopo aver scaricato il programma di installazione, apri la procedura guidata di installazione e segui le istruzioni per configurare e installare l'agente Bindplane. Per ulteriori informazioni sull'installazione, vedi Installazione su Windows.
Linux
Puoi installare l'agente su Linux utilizzando uno script che determina automaticamente quale pacchetto installare. Puoi anche utilizzare lo stesso script per aggiornare un'installazione esistente.
Per eseguire l'installazione utilizzando lo script di installazione, esegui lo script seguente:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Installazione da pacchetto locale
Per installare l'agente da un pacchetto locale, utilizza -f
con il percorso del pacchetto.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh -f path_to_package
Installazione di RPM
Scarica il pacchetto RPM per la tua architettura dalla pagina delle release e installalo utilizzando rpm
. Per installare il pacchetto amd64
, consulta il seguente esempio:
sudo rpm -U ./observiq-otel-collector_v${VERSION}_linux_amd64.rpm sudo systemctl enable --now observiq-otel-collector
Sostituisci VERSION
con la versione del pacchetto che hai scaricato.
Installazione DEB
Scarica il pacchetto DEB per la tua architettura dalla pagina delle release e installalo utilizzando dpkg
. Per installare il pacchetto
amd64
, consulta l'esempio seguente:
sudo dpkg -i --force-overwrite ./observiq-otel-collector_v${VERSION}_linux_amd64.deb sudo systemctl enable --now observiq-otel-collector
Sostituisci VERSION
con la versione del pacchetto che hai scaricato.
Per maggiori informazioni, consulta Installazione dell'agente Bindplane.
Configura l'agente
Puoi configurare l'agente manualmente o utilizzando la console di gestione Bindplane OP. Se configuri l'agente manualmente, devi aggiornare i parametri dell'esportatore per assicurarti che l'agente esegua l'autenticazione con Google SecOps.
Dopo l'installazione dell'agente, il servizio observiq-otel-collector
viene eseguito ed è pronto per la
configurazione. Per impostazione predefinita, l'agente registra i log in C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log
.
Il log degli errori standard per il processo dell'agente si trova in C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err
.
Per impostazione predefinita, il file di configurazione dell'agente si trova in
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
. Quando modifichi
la configurazione, devi riavviare il servizio agente affinché le modifiche alla configurazione
diventino effettive.
Puoi scaricare un file di configurazione di esempio e un token di autenticazione utilizzati dall'agente da Google SecOps console > Impostazioni SIEM > Agente di raccolta.
Personalizza queste due sezioni nel file di configurazione:
- Ricevitore: specifica quali log devono essere raccolti e inviati a Google SecOps dall'agente.
- Esportatore: specifica la destinazione a cui l'agente invia i log.
Sono supportati i seguenti esportatori:
- Esportatore Google SecOps: invia i log direttamente all'API di importazione di Google SecOps
- Esportatore di inoltro di Google SecOps: invia i log all'inoltro di Google SecOps
- Esportatore Cloud Logging: invia i log a Cloud Logging
Nell'esportatore, personalizza quanto segue:
customer_id
: ID cliente Google SecOpsendpoint
: endpoint regionale di Google SecOpscreds
: Token di autenticazioneIn alternativa, puoi utilizzare
creds_file_path
per fare riferimento direttamente al file delle credenziali. Per la configurazione di Windows, esegui l'escape del percorso con le barre rovesciate.log_type
: Tipo di logingestion_labels
: Etichette di importazione facoltativenamespace
: spazio dei nomi facoltativoPer ogni tipo di log è necessario configurare un esportatore.
Architettura
Per l'architettura dell'agente sono disponibili le seguenti opzioni.
L'agente di raccolta invia i log all'agente di raccolta che funge da gateway
L'agente di raccolta invia i log direttamente all'API di importazione di Google SecOps
L'agente di raccolta invia i log direttamente a Cloud Logging
L'agente di raccolta invia i log a più destinazioni
Scalabilità
I raccoglitori di agenti in genere utilizzano risorse minime, ma quando gestiscono grandi volumi di telemetria (log o tracce) su un sistema, presta attenzione al consumo di risorse per evitare di influire su altri servizi. Per ulteriori informazioni, vedi Dimensionamento e scalabilità degli agenti.
Assistenza
Per eventuali problemi relativi all'agente di raccolta, contatta l' Google Cloud assistenza.
Per eventuali problemi relativi alla gestione di Bindplane OP, contatta l'assistenza Bindplane.
Altri esempi di configurazione della raccolta dei log
Le sezioni seguenti elencano gli esempi di configurazione aggiuntiva per la raccolta dei log.
Inviare eventi Windows e Sysmon direttamente a Google SecOps
Configura questi parametri nell'esempio:
-
namespace
ingestion_labels
log_type
customer_id
creds
Configurazione di esempio:
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]
Inviare eventi Windows e syslog direttamente a Google SecOps
Configura questi parametri nell'esempio:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configurazione di esempio:
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
Inviare eventi Windows e syslog al forwarder Google SecOps
Configura questi parametri nell'esempio:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleforwarder
endpoint
Configurazione di esempio:
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
Inviare syslog direttamente a Google SecOps
Configura questi parametri nell'esempio:
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
Creds
Configurazione di esempio:
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
Raccogliere gli eventi di Windows da remoto e inviarli direttamente a Google SecOps
Configura questi parametri nell'esempio:
windowseventlogreceiver
username
password
server
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configurazione di esempio:
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
Inviare dati a Cloud Logging
Configura il parametro credentials_file
nell'esempio.
Configurazione di esempio:
exporters:
googlecloud:
credentials_file: /opt/observiq-otel-collector/credentials.json
Esegui una query su un database SQL e invia i risultati a Google SecOps
Configura questi parametri nell'esempio:
sqlqueryreceiver
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configurazione di esempio:
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
Elimina i log che corrispondono a un'espressione regolare
Puoi configurare il raccoglitore in modo che elimini i log che corrispondono a un'espressione regolare. È utile per filtrare i log indesiderati, ad esempio errori noti o messaggi di debug.
Per eliminare i log che corrispondono a un'espressione regolare, aggiungi un processore di tipo filter/drop-matching-logs-to-Chronicle
alla configurazione. Questo processore utilizza la funzione IsMatch
per valutare il corpo del log rispetto all'espressione regolare. Se la funzione restituisce true
, il log viene eliminato.
La seguente configurazione di esempio elimina i log che contengono le stringhe <EventID>10</EventID>
o <EventID>4799</EventID>
nel corpo del log.
Puoi personalizzare l'espressione regolare in modo che corrisponda a qualsiasi pattern di cui hai bisogno. La funzione IsMatch
utilizza la sintassi delle espressioni regolari RE2.
Configurazione di esempio:
processors:
filter/drop-matching-logs-to-Chronicle:
error_mode: ignore
logs:
log_record:
- (IsMatch(body, "<EventID>10</EventID>")) or (IsMatch(body, "<EventID>4799</EventID>"))
L'esempio seguente aggiunge il processore alla pipeline nella stessa configurazione:
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]
Documentazione di riferimento
Per ulteriori informazioni su Bindplane (precedentemente noto come observIQ), consulta:
- Soluzioni Bindplane
- Guida rapida di Bindplane OP
- Tipi di log supportati per Google Cloud
- Filtrare per processore di condizioni
- Origini disponibili per Bindplane OP
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.