Raccogli i log di IBM Guardium

Supportata in:

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 delle attività del database e reporting sulla 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 con privilegi all'interfaccia a riga di comando di IBM Guardium
  • IBM Guardium versione 9.1 o successive per il supporto di syslog criptato (facoltativo)

Recupera le credenziali Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (opzione 2) fino al ritiro dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla Google Cloud console e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio bindplane-ingest).
    • Descrizione del service account: inserisci una descrizione (ad esempio, Bindplane agent log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Chronicle Editor.
  7. Fai clic su Continua e poi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) o aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

Ottieni l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di finestre

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    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 il syslog e inviarlo a Google SecOps

Individua il file di configurazione

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/guardium:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.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 udplog per il syslog UDP (più comune per Guardium).
    • Se necessario, utilizza tcplog per il syslog TCP.
    • L'indirizzo di ascolto 0.0.0.0:514 è in ascolto su tutte le interfacce sulla porta 514.
  • Configurazione dell'esportatore:

    • creds_file_path: percorso completo del file della chiave JSON del account di servizio (opzione 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: l'ID cliente del passaggio precedente.
    • location: sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore aggiunge chronicle.googleapis.com come prefisso a questo valore. Per l'elenco completo, consulta Endpoint regionali.
    • project: sostituisci <PROJECT_NUMBER> con il numero di progetto da IAM e amministrazione > Impostazioni.
    • endpoint: mantieni l'impostazione chronicle.googleapis.com.
    • log_type: deve essere GUARDIUM.
    • ingestion_labels: etichette facoltative in formato YAML.

Esportatore dell'API di importazione precedente

  • Se utilizzi il file di autenticazione dell'acquisizione dell'Opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'importazione e, se la tua istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con l'endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/guardium:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/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
    

Salva il file di configurazione

Dopo la modifica, salva il file:

  • Linux: premi Ctrl+O, poi Enter e infine Ctrl+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-collector
    
    1. Verifica che il servizio sia in esecuzione:

        sudo systemctl status observiq-otel-collector
      
    2. Controlla i log per verificare la presenza di 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-collector
      
    • Console dei servizi:

      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.

      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per individuare eventuali errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configura l'inoltro del syslog di IBM Guardium

Configura la destinazione syslog tramite l'interfaccia a riga di comando

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.

  1. Utilizzando SSH, accedi a IBM Guardium Collector come utente CLI.
  2. Digita i seguenti comandi per configurare la destinazione syslog:

    • Per UDP syslog (consigliato):

      store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udp
      
    • Per il syslog TCP:

      store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcp
      
    • Per 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_IP con l'indirizzo IP dell'host in cui è installato l'agente Bindplane.
  3. Verifica la configurazione eseguendo:

    show remotelog
    

    L'output dovrebbe mostrare la destinazione syslog remota configurata.

(Facoltativo) Configura il syslog criptato

Se hai bisogno dell'inoltro di syslog criptati, IBM Guardium versione 9.1 e successive supporta la crittografia TLS su TCP.

  1. Ottieni il certificato pubblico in formato PEM dall'autorità di certificazione utilizzata dal ricevitore syslog remoto.
  2. Accedi all'interfaccia a riga di comando su Guardium Collector.
  3. Digita questo comando:

    store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcp
    
  4. Quando richiesto, incolla il certificato CA in formato PEM, incluse le righe BEGIN ed END, quindi premi Ctrl+D.

  5. Guardium memorizza il certificato come /etc/pki/rsyslog/ca.pem.

Configura il modello di messaggio (facoltativo)

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:

  1. Accedi alla GUI dell'appliance Guardium come utente con privilegi amministrativi.
  2. Vai a Administration Console (Console di amministrazione) > Configuration (Configurazione) > Global Profile (Profilo globale).
  3. Nella sezione Modello di messaggio, modifica il modello con il formato che preferisci.
  4. Fai clic su Salva.

Configura la policy per inviare avvisi a syslog

Le policy di 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

  1. Accedi alla GUI dell'appliance Guardium.
  2. Fai clic sulla scheda Strumenti.
  3. Nel menu di navigazione a sinistra, seleziona Policy Builder.
  4. Nel riquadro Policy Finder, seleziona una policy esistente e fai clic su Modifica regole.
  5. Fai clic su Modifica questa regola singolarmente.
  6. Viene visualizzata la Definizione della regola di accesso.
  7. Fai clic su Aggiungi azione.
  8. Dall'elenco Azione, seleziona uno dei seguenti tipi di avviso:
    • Avviso per corrispondenza: viene fornita una notifica per ogni violazione delle norme.
    • Avviso giornaliero: viene inviata 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 una sessione univoca.
    • Avviso per granularità temporale: viene fornita una notifica per il periodo di tempo selezionato.
  9. Nell'elenco Modello di messaggio, seleziona il modello richiesto o mantieni Predefinito.
  10. In Notification Type (Tipo di notifica), seleziona SYSLOG.
  11. Fai clic su Aggiungi e poi su Applica.
  12. Fai clic su Salva.
  13. Ripeti questa procedura per tutte le regole della policy che vuoi inoltrare a Google SecOps.

Installa la policy

Qualsiasi policy nuova o modificata in IBM Guardium deve essere installata prima che possano essere eseguite le azioni di avviso aggiornate o le modifiche alle regole.

  1. Fai clic sulla scheda Administration Console (Console di amministrazione).
  2. Nel riquadro di navigazione a sinistra, seleziona Configuration > Policy Installation.
  3. Nel riquadro Policy Installer, seleziona la policy che hai modificato nel passaggio precedente.
  4. Nell'elenco a discesa, seleziona Installa e sostituisci.
  5. Viene visualizzata una conferma per l'installazione della policy su tutti gli Inspection Engine.
  6. Fai clic su OK.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
deviceNtDomain about.administrative_domain Dominio amministrativo dell'entità di riferimento
deviceExternalId about.asset.asset_id Identificatore asset
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 di 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
Received, Generated, 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 del prodotto
externalId metadata.product_log_id Identificatore del log del prodotto
metadata.product_version Versione del prodotto
network.application_protocol Protocollo dell'applicazione 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 dell'entità
sourceServiceName, source_program principal.application Applicazione associata all'entità
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 di entità
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 dell'entità
smac principal.mac Indirizzo MAC del responsabile
sourceTranslatedAddress principal.nat_ip Indirizzo IP NAT dell'entità
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 di 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 della 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 del target
destinationServiceName, service_name target.application Applicazione associata alla destinazione
prin_host, dest_host, server_hostname target.asset.hostname Nome host dell'asset di destinazione
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 dal target
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 di 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 dell'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 target
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 del target
metadata.product_name Nome del prodotto
metadata.vendor_name Nome del fornitore
query additional.fields Mappato dal log delle modifiche

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.