Raccogliere i log MySQL

Supportato in:

Questo documento spiega come importare i log MySQL in Google Security Operations utilizzando l'agente Bindplane.

MySQL è un sistema di gestione di database relazionali che genera messaggi syslog per eventi di autenticazione, esecuzione di query, operazioni di database e voci di audit trail. Il parser estrae i campi dai log di controllo formattati in syslog e li mappa al modello Unified Data Model (UDM).

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 il server MySQL
  • Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso SSH all'host MySQL con privilegi root o sudo

Recuperare il file di autenticazione dell'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'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

Recuperare 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 Bindplane

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

Installazione di Windows

  1. Apri 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 syslog e inviarli 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/mysql:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: MYSQL
            raw_log_field: body
    
    service:
        pipelines:
            logs/mysql_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/mysql
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del ricevitore:

    • listen_address: Indirizzo IP e porta da ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • La porta 514 è la porta syslog standard (richiede l'accesso root su Linux; utilizza 1514 per l'accesso non root)
  • Configurazione dell'esportatore:

    • creds_file_path: percorso completo del file di autenticazione dell'acquisizione:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID cliente copiato dalla console Google SecOps
    • endpoint: URL endpoint regionale:
      • Stati Uniti: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Per un elenco completo, vedi Endpoint regionali.

Salvare 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 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-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 syslog in MySQL

  1. Accedi all'host MySQL utilizzando SSH.
  2. Connettiti al database MySQL:

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

    show variables like 'plugin_dir';
    
  4. Se il plug-in non viene trovato, installalo:

    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 e attiva le seguenti impostazioni di controllo:

    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:

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

    Show global status like 'server_audit%';
    
  9. Modifica il file /etc/rsyslog.conf per attivare l'inoltro tramite UDP:

    *.* @@<bindplane-agent-ip>:<bindplane-agent-port>
    
    • Sostituisci <bindplane-agent-ip> e <bindplane-agent-port> con la configurazione dell'agente Bindplane.
  10. Riavvia il servizio 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
descrizione 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, viene visualizzato ERROR, se il valore è warning, viene visualizzato MEDIUM, se il valore è note, viene visualizzato INFORMATIONAL, altrimenti non viene apportata alcuna modifica.
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
properties.event_time event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
properties.ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
properties.user event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
properties.error_code event.idm.read_only_udm.security_result.description Mappato dal log delle modifiche
properties.event_subclass event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.is_aad_auth event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
category event.idm.read_only_udm.metadata.product_event_type Mappato dal log delle modifiche
ServerType event.idm.read_only_udm.target.application Mappato dal log delle modifiche
target_app event.idm.read_only_udm.target.application Mappato dal log delle modifiche
properties.start_time event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
ts event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
time event.idm.read_only_udm.metadata.collected_timestamp Mappato dal log delle modifiche
properties.server_id event.idm.read_only_udm.target.asset.asset_id Mappato dal log delle modifiche
properties.thread_id event.idm.read_only_udm.principal.process.pid Mappato dal log delle modifiche
user_id event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.hostname Mappato dal log delle modifiche
p_host event.idm.read_only_udm.principal.asset.hostname Mappato dal log delle modifiche
properties.db event.idm.read_only_udm.target.resource.name Mappato dal log delle modifiche
resourceId event.idm.read_only_udm.target.resource.product_object_id Mappato dal log delle modifiche
operationName event.idm.read_only_udm.metadata.description Mappato dal log delle modifiche
location event.idm.read_only_udm.target.location.name Mappato dal log delle modifiche
properties.host event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.last_insert_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.insert_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.sql_text event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.rows_examined event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.rows_sent event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.lock_time event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.query_time event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.replication_set_role event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
properties.event_class event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
csv_principal_hostname event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
csv_hostname event.idm.read_only_udm.target.hostname e event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
csv_principal_hostname event.idm.read_only_udm.principal.hostname e event.idm.read_only_udm.principal.asset.hostname Mappato dal log delle modifiche
ts event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
csv_query_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
csv_mysql event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
account_host event.idm.read_only_udm.principal.resource.attribute.labels Mappato dal log delle modifiche
login_proxy event.idm.read_only_udm.principal.resource.attribute.labels Mappato dal log delle modifiche
login_os event.idm.read_only_udm.principal.resource.attribute.labels Mappato dal log delle modifiche
arg event.idm.read_only_udm.principal.resource.attribute.labels Mappato dal log delle modifiche
startup_data_server_id event.idm.read_only_udm.principal.resource.product_object_id Mappato dal log delle modifiche
startup_data_os_version event.idm.read_only_udm.principal.platform_version Mappato dal log delle modifiche
startup_data_mysql_version event.idm.read_only_udm.metadata.product_version Mappato dal log delle modifiche
arg event.idm.read_only_udm.principal.process.command_line Mappato dal log delle modifiche
csv_mysql_sql_query event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
hostname event.idm.read_only_udm.intermediary.hostname e event.idm.read_only_udm.intermediary.asset.hostname Mappato dal log delle modifiche
id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
login.proxy event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
connection_data.connection_type event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
connection_data.status event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
login.os event.idm.read_only_udm.principal.platform_version Mappato dal log delle modifiche
account.host event.idm.read_only_udm.target.hostname e event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
connection_data.db event.idm.read_only_udm.target.application Mappato dal log delle modifiche
mysql_description event.idm.read_only_udm.metadata.description Mappato dal log delle modifiche
mysql_errno event.idm.read_only_udm.metadata.product_log_id Mappato dal log delle modifiche
mysql_version event.idm.read_only_udm.metadata.product_version Mappato dal log delle modifiche
process_path event.idm.read_only_udm.principal.process.file.full_path Mappato dal log delle modifiche
mysql_port event.idm.read_only_udm.principal.port Mappato dal log delle modifiche
status event.idm.read_only_udm.security_result.summary Mappato dal log delle modifiche
error_level event.idm.read_only_udm.security_result.severity_details Mappato dal log delle modifiche
mysql_thread_id event.idm.read_only_udm.network.session_id Mappato dal log delle modifiche
mysql_socket event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
log_level event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
mysql_timestamp event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
event_date event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
event_time event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
csv_timestamp event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
mysql_action event.idm.read_only_udm.metadata.product_event_type Mappato dal log delle modifiche
log_category event.idm.read_only_udm.metadata.product_event_type Mappato dal log delle modifiche
csv_mysql_action event.idm.read_only_udm.metadata.product_event_type Mappato dal log delle modifiche
csv_mysql_connection_type event.idm.read_only_udm.metadata.product_event_type Mappato dal log delle modifiche
event_message event.idm.read_only_udm.metadata.description Mappato dal log delle modifiche
resolution_error event.idm.read_only_udm.metadata.description Mappato dal log delle modifiche
component event.idm.read_only_udm.principal.application Mappato dal log delle modifiche
mysql_hostname event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
csv_hostname_ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
mysql_username event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
csv_username event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
csv_target_hostname event.idm.read_only_udm.target.hostname e event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
csv_database_name event.idm.read_only_udm.target.resource.name Mappato dal log delle modifiche
mysql_sql_query event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
csv_connection_id event.idm.read_only_udm.network.session_id Mappato dal log delle modifiche
mysql_message_id event.idm.read_only_udm.security_result.rule_id Mappato dal log delle modifiche
target_mysql_hostname event.idm.read_only_udm.target.hostname e event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
csv_mysql_connection_type event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
login.ip event.idm.read_only_udm.principal.ip Mappato dal log delle modifiche
login.ip event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
login.user event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
account.user event.idm.read_only_udm.target.user.userid Mappato dal log delle modifiche
inter_host event.idm.read_only_udm.intermediary.hostname Mappato dal log delle modifiche
target_host event.idm.read_only_udm.target.hostname Mappato dal log delle modifiche
target_host event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
target_ip event.idm.read_only_udm.target.ip Mappato dal log delle modifiche
target_ip event.idm.read_only_udm.target.asset.ip Mappato dal log delle modifiche
connection_id event.idm.read_only_udm.network.session_id Mappato dal log delle modifiche
general_data.command event.idm.read_only_udm.target.process.command_line Mappato dal log delle modifiche
general_data.query event.idm.read_only_udm.security_result.summary Mappato dal log delle modifiche
connection_data.connection_type event.idm.read_only_udm.network.ip_protocol Mappato dal log delle modifiche
general_data.sql_command event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
event_data event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
general_data.status event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
class event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
Status event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
sql_query event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
value event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
num event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
ns event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
itemid event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
value_min event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
value_avg event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
value_max event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
query_id event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
clock event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
path principal.file.full_path Mappato dal log delle modifiche
logtype metadata.product_event_type 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.