Raccogliere i log di IBM Guardium
Questo documento spiega come importare i log di IBM Guardium in Google Security Operations utilizzando Bindplane.
IBM Guardium è una piattaforma di monitoraggio dell'attività del database e di protezione dei dati che fornisce monitoraggio, controllo e protezione in tempo reale per database e file system. Guardium offre funzionalità di valutazione delle vulnerabilità, rilevamento e classificazione dei dati, monitoraggio dell'attività del database e report di conformità.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive oppure host Linux con
systemd - Connettività di rete tra l'agente Bindplane e IBM Guardium Collector
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso privilegiato alla CLI di IBM Guardium
- IBM Guardium versione 9.1 o successive per il supporto di syslog criptato (facoltativo)
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri Prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sc query observiq-otel-collector
Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sudo systemctl status observiq-otel-collector
Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la Guida all'installazione dell'agente Bindplane.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/guardium: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium service: pipelines: logs/guardium_to_chronicle: receivers: - udplog exporters: - chronicle/guardium
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del ricevitore:
- Utilizza
udplogper syslog UDP (il più comune per Guardium). - Utilizza
tcplogper TCP syslog, se necessario. - L'indirizzo di ascolto
0.0.0.0:514è in ascolto su tutte le interfacce sulla porta 514.
- Utilizza
Configurazione dell'esportatore:
creds_file_path: percorso completo del file di autenticazione importazione:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: l'ID cliente del passaggio precedente.endpoint: URL endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com
- Stati Uniti:
log_type: deve essereGUARDIUM.ingestion_labels: etichette facoltative in formato YAML.
Salvare il file di configurazione
Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per individuare eventuali errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole dei servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
Fai clic con il tasto destro del mouse e seleziona Riavvia.
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Premi
Configurare l'inoltro di syslog di IBM Guardium
Configura la destinazione syslog tramite CLI
Per creare una destinazione syslog per gli eventi su IBM Guardium, devi accedere all'interfaccia a riga di comando e definire l'indirizzo IP per l'host dell'agente Bindplane.
- Utilizzando SSH, accedi a IBM Guardium Collector come utente CLI.
Digita i seguenti comandi per configurare la destinazione syslog:
Per syslog UDP (consigliato):
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udpPer syslog TCP:
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcpPer livelli di gravità specifici:
store remotelog add non_encrypted daemon.alert BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.err BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.warning BINDPLANE_AGENT_IP udp- Sostituisci
BINDPLANE_AGENT_IPcon l'indirizzo IP dell'host in cui è installato l'agente Bindplane.
- Sostituisci
Verifica la configurazione eseguendo:
show remotelogL'output dovrebbe mostrare la destinazione syslog remota configurata.
Configura syslog criptato (facoltativo)
Se hai bisogno dell'inoltro syslog criptato, IBM Guardium versione 9.1 e successive supporta la crittografia TLS su TCP.
- Ottieni il certificato pubblico in formato PEM dall'autorità di certificazione utilizzata dal ricevitore syslog remoto.
- Accedi alla CLI su Guardium Collector.
Digita il seguente comando:
store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcpQuando richiesto, incolla il certificato CA in formato PEM, incluse le righe BEGIN e END, quindi premi
Ctrl+D.Guardium archivia il certificato come
/etc/pki/rsyslog/ca.pem.
(Facoltativo) Configurare il modello di messaggio
Guardium supporta più formati di messaggi, tra cui CEF (Common Event Format) e LEEF (Log Event Extended Format). Il formato predefinito è adatto alla maggior parte dei deployment.
Per personalizzare il modello di messaggio:
- Accedi alla GUI dell'appliance Guardium come utente con privilegi amministrativi.
- Vai a Console di amministrazione > Configurazione > Profilo globale.
- Nella sezione Modello di messaggio, modifica il modello con il formato che preferisci.
- Fai clic su Salva.
Configura il criterio per inviare avvisi a syslog
I criteri in IBM Guardium sono responsabili della reazione agli eventi e dell'inoltro delle informazioni sugli eventi al ricevitore syslog remoto.
Configura l'azione di avviso della policy
- Accedi alla GUI dell'appliance Guardium.
- Fai clic sulla scheda Strumenti.
- Nel menu di navigazione a sinistra, seleziona Policy Builder.
- Nel riquadro Policy Finder, seleziona una norma esistente e fai clic su Modifica regole.
- Fai clic su Modifica questa regola singolarmente.
- Viene visualizzata la Definizione della regola di accesso.
- Fai clic su Aggiungi azione.
- Nell'elenco Azione, seleziona uno dei seguenti tipi di avviso:
- Avviso per corrispondenza: viene fornita una notifica per ogni violazione delle norme.
- Avviso giornaliero: viene fornita una notifica la prima volta che si verifica una violazione delle norme in quel giorno.
- Avviso una volta per sessione: viene fornita una notifica per violazione delle norme per sessione univoca.
- Avviso per granularità temporale: viene fornita una notifica per il periodo di tempo selezionato.
- Nell'elenco Modello di messaggio, seleziona il modello richiesto o mantieni Predefinito.
- In Tipo di notifica, seleziona SYSLOG.
- Fai clic su Aggiungi e poi su Applica.
- Fai clic su Salva.
- Ripeti questa procedura per tutte le regole all'interno delle norme che vuoi inoltrare a Google SecOps.
Installa la policy
Qualsiasi criterio nuovo o modificato in IBM Guardium deve essere installato prima che possano essere apportate modifiche alle azioni di avviso o alle regole aggiornate.
- Fai clic sulla scheda Console di amministrazione.
- Nel riquadro di navigazione a sinistra, seleziona Configurazione > Installazione delle norme.
- Nel riquadro Policy Installer, seleziona la policy che hai modificato nel passaggio precedente.
- Dall'elenco a discesa, seleziona Installa e sostituisci.
- Viene visualizzata una conferma per installare il criterio in tutti i motori di ispezione.
- Fai clic su OK.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
| deviceNtDomain | about.administrative_domain | Dominio amministrativo dell'entità Informazioni |
| deviceExternalId | about.asset.asset_id | Identificatore della risorsa |
| filePath, fileHash | about.file.full_path | Percorso completo del file |
| _hash, fileHash | about.file.sha256 | Hash SHA256 del file |
| fsize | about.file.size | Dimensioni del file |
| dvchost | about.hostname | Nome host dell'entità About |
| dvc | about.ip | Indirizzo IP dell'entità in questione |
| smac, dmac, dvcmac | about.mac | Indirizzo MAC dell'entità in questione |
| deviceProcessName, Subject, Emne, Path | about.process.command_line | Riga di comando del processo |
| dvcpid | about.process.pid | ID processo |
| filePermission | about.resource.attribute.permissions | Autorizzazioni associate alla risorsa |
| extensions.auth.type | Tipo di autenticazione | |
| sender_ip | intermediary.ip | Indirizzo IP dell'intermediario |
| intermediario | Dettagli dell'entità intermediaria | |
| Ricevuto, Generato, timestamp | metadata.collected_timestamp | Timestamp della raccolta dell'evento |
| msg, signature_name | metadata.description | Descrizione dell'evento |
| metadata.event_type | Tipo di evento (ad es. USER_LOGIN, NETWORK_CONNECTION) | |
| device_event_class_id, event_name, eventType | metadata.product_event_type | Tipo di evento specifico per il prodotto |
| externalId | metadata.product_log_id | Identificatore log prodotto |
| metadata.product_version | Versione del prodotto | |
| network.application_protocol | Protocollo applicativo utilizzato nella connessione di rete | |
| deviceDirection | network.direction | Direzione del traffico di rete |
| requestMethod | network.http.method | Metodo HTTP utilizzato nella richiesta |
| requestClientApplication | network.http.user_agent | Stringa dello user agent dalla richiesta HTTP |
| proto | network.ip_protocol | Protocollo IP utilizzato |
| in | network.received_bytes | Numero di byte ricevuti |
| troppo complessi per essere capiti? | network.sent_bytes | Numero di byte inviati |
| session_id | network.session_id | Identificatore di sessione per la connessione di rete |
| sntdom, Domain, Domene | principal.administrative_domain | Dominio amministrativo del preside |
| sourceServiceName, source_program | principal.application | Applicazione associata al soggetto |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.asset.hostname | Nome host dell'asset principale |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.asset.ip | Indirizzo IP dell'asset principale |
| Group_name, Gruppenavn | principal.group.group_display_name | Nome visualizzato del gruppo principale |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.hostname | Nome host dell'entità |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.ip | Indirizzo IP del principale |
| smac | principal.mac | Indirizzo MAC del preside |
| sourceTranslatedAddress | principal.nat_ip | Indirizzo IP NAT del principal |
| sourceTranslatedPort | principal.nat_port | Porta NAT dell'entità |
| spt, client_port | principal.port | Porta utilizzata dal preside |
| sproc | principal.process.command_line | Riga di comando del processo principale |
| spid | principal.process.pid | ID processo dell'entità |
| spriv | principal.user.attribute.roles | Ruoli associati all'utente principale |
| suser, usrName, CustomerName | principal.user.user_display_name | Nome visualizzato dell'utente principale |
| dbUser, usrName, db_user, os_user, suid, db_username | principal.user.userid | ID utente dell'entità |
| security_result | Dettagli del risultato di sicurezza | |
| security_result.action | Azione intrapresa nel risultato di sicurezza | |
| act, Action_Taken | security_result.action_details | Dettagli dell'azione intrapresa |
| gatto | security_result.category_details | Dettagli della categoria del risultato di sicurezza |
| msg_data_2, alert_description, Type, Scan_Type | security_result.description | Descrizione del risultato di sicurezza |
| operation_label, operasjon_label, permission_label, tillatelse_label, infection_channel_label, spyware_Grayware_Type_label, threat_probability_label | security_result.detection_fields | Campi utilizzati per il rilevamento nel risultato di sicurezza |
| mwProfile, alert_name | security_result.rule_name | Nome della regola che ha attivato il risultato di sicurezza |
| severity, event_severity | security_result.severity | Livello di gravità del risultato di sicurezza |
| reason, ruleDesc, appcategory, Result | security_result.summary | Riepilogo del risultato di sicurezza |
| Spyware, Virus_Malware_Name, Unknown_Threat | security_result.threat_name | Nome della minaccia rilevata |
| oldFilePath | src.file.full_path | Percorso completo del file di origine |
| oldFileSize | src.file.size | Dimensioni del file di origine |
| oldFilePermission | src.resource.attribute.permissions | Autorizzazioni della risorsa di origine |
| os_user | src.user.userid | ID utente dell'utente di origine |
| dntdom | target.administrative_domain | Dominio amministrativo della destinazione |
| destinationServiceName, service_name | target.application | Applicazione associata al target |
| prin_host, dest_host, server_hostname | target.asset.hostname | Nome host della risorsa target |
| dst_ip, dest_ip, server_ip, IPv6_Address | target.asset.ip | Indirizzo IP dell'asset di destinazione |
| temp_dhost, dest_host, server_hostname | target.hostname | Nome host della destinazione |
| dst_ip, dst, dest_ip, server_ip, IPv6_Address | target.ip | Indirizzo IP della destinazione |
| dmac | target.mac | Indirizzo MAC della destinazione |
| destinationTranslatedAddress | target.nat_ip | Indirizzo IP NAT della destinazione |
| destinationTranslatedPort | target.nat_port | Porta NAT della destinazione |
| dpt, dstPort, dest_port, server_port | target.port | Porta utilizzata dalla destinazione |
| dproc, full_sql | target.process.command_line | Riga di comando del processo di destinazione |
| File_name, Object, Objekt, Infected_Resource | target.process.file.full_path | Percorso completo del file di processo di destinazione |
| dpid, full_sql_id | target.process.pid | ID processo della destinazione |
| session_start | target.resource.attribute.creation_time | Ora di creazione della risorsa di destinazione |
| additional_environment_name, additional_db_protocol_version, additional_dbProtocolVersion, additional_operation_name, additional_signature_id, resource_Type_label | target.resource.attribute.labels | Etichette associate alla risorsa di destinazione |
| session_end | target.resource.attribute.last_update_time | Data/ora ultimo aggiornamento della risorsa di destinazione |
| db_name, database_name | target.resource.name | Nome della risorsa di destinazione |
| db_type, server_type | target.resource.resource_subtype | Sottotipo della risorsa target |
| target.resource.resource_type | Tipo di risorsa di destinazione | |
| richiesta | target.url | URL associato al target |
| dpriv, roles | target.user.attribute.roles | Ruoli associati all'utente di destinazione |
| temp_duser, CustomerName | target.user.user_display_name | Nome visualizzato dell'utente di destinazione |
| temp_duid, User, Bruker, db_username | target.user.userid | ID utente della destinazione |
| metadata.product_name | Nome del prodotto | |
| metadata.vendor_name | Nome del fornitore |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.