Raccogli i log di MySQL

Supportato in:

Questo documento spiega come importare i log MySQL in Google Security Operations utilizzando Bindplane. Il parser estrae innanzitutto i campi comuni dai messaggi SYSLOG di MySQL utilizzando grok. Poi, utilizza il branching condizionale (if, else if) e la corrispondenza delle espressioni regolari per identificare tipi di eventi specifici all'interno dei messaggi di log, estraendo e mappando le informazioni pertinenti nello schema Unified Data Model (UDM).

Prima di iniziare

Assicurati di disporre dei seguenti prerequisiti:

  • Istanza Google SecOps
  • Windows 2016 o versioni successive oppure un host Linux con systemd
  • Se il servizio viene eseguito dietro un proxy, le porte del firewall sono aperte
  • Accesso con privilegi all'host MySQL
  • Database MySQL e Rsyslog installati

Recupera il file di autenticazione di importazione di Google SecOps

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

Ottenere 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 dell'organizzazione.

Installa l'agente Bindlane

Installazione di Windows

  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
    

Installazione di Linux

  1. Apri un terminale con privilegi di 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
    

Risorse di installazione aggiuntive

Per altre opzioni di installazione, consulta la guida all'installazione.

Configura l'agente Bindplane per importare i syslog e inviarli a Google SecOps

  1. Accedi al file di configurazione:
    • Individua il file config.yaml. In genere si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'MYSQL'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui il seguente comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare Syslog in MySQL

  1. Accedi all'host MySQL tramite SSH.

  2. Connettiti al database MySQL:

    mysql -u root -p
    
  3. Verifica per il plug-in di controllo server_audit.so:

    show variables like 'plugin_dir';
    
  4. Se non trovi il file del plug-in all'interno della directory del plug-in, installalo utilizzando il comando:

    install plugin server_audit soname 'server_audit.so';
    
  5. Verifica che il plug-in sia Installato e Attivato:

    show plugins;
    
  6. Modifica il file /etc/my.cnf utilizzando vi, attiva quanto segue e salva il file:

    server_audit_events='CONNECT,QUERY,TABLE'
    server_audit_file_path=server_audit.log
    server_audit_logging=ON
    server_audit_output_type=SYSLOG
    server_audit_syslog_facility=LOG_LOCAL6
    
  7. Verifica le variabili di controllo con il seguente comando:

    show global variables like "server_audit%";
    
  8. Verifica che il controllo sia abilitato con il seguente comando:

    Show global status like 'server_audit%';
    
  9. Modifica il file /etc/rsyslog.conf utilizzando vi per attivare l'utilizzo di UDP e salva il file:

    *.* @@<bindplane-agent-ip>:<bindplane-agent-port>
    
  10. Sostituisci <bindplane-agent-ip> e <bindplane-agent-port> con la configurazione dell'agente Bindplane.

  11. Riavviare il servizio MySQL e connettersi al database MySQL.

    /etc/init.d/mysqld restart
    

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
azione read_only_udm.metadata.event_type Se il valore è Created, FILE_CREATION; se il valore è Deleted, FILE_DELETION; altrimenti nessuna modifica.
database read_only_udm.target.resource.parent
db_hostname read_only_udm.target.hostname
db_user read_only_udm.target.user.userid
description read_only_udm.security_result.description
error_details Questa è una variabile temporanea, ignorala
error_level read_only_udm.security_result.severity Se il valore è error, inserisci ERRORE; se il valore è warning, inserisci MEDIO; se il valore è note, inserisci INFORMATIVO; altrimenti, non apportare modifiche.
error_message read_only_udm.security_result.summary
file_path read_only_udm.target.file.full_path
file_size read_only_udm.target.file.size
nome host read_only_udm.principal.hostname
inner_message read_only_udm.security_result.description
riepilogo read_only_udm.metadata.product_event_type
tabella read_only_udm.target.resource.name
table_not_found Questa è una variabile temporanea, ignorala
timestamp read_only_udm.metadata.event_timestamp
read_only_udm.extensions.auth.type Valore statico: MACHINE
read_only_udm.metadata.event_type Valore statico: USER_LOGIN, GENERIC_EVENT, STATUS_UPDATE, FILE_CREATION, FILE_DELETION
read_only_udm.metadata.log_type Valore statico: MYSQL
read_only_udm.metadata.product_name Valore statico: MySQL
read_only_udm.metadata.vendor_name Valore statico: Oracle Corporation
read_only_udm.security_result.action Valore statico: BLOCK
read_only_udm.target.resource.resource_type Valore statico: DATABASE, TABLE

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