MySQL-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie MySQL-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

MySQL ist ein Verwaltungssystem für relationale Datenbanken, das Syslog-Meldungen für Authentifizierungsereignisse, die Ausführung von Abfragen, Datenbankvorgänge und Audit-Trail-Einträge generiert. Der Parser extrahiert Felder aus Audit-Logs im Syslog-Format und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem MySQL-Server
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • SSH-Zugriff auf den MySQL-Host mit Root- oder sudo-Berechtigungen

Authentifizierungsdatei für die Google SecOps-Datenaufnahme abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der BindPlane-Agent installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

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

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

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    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
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Die Kundennummer, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agent unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

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

Syslog in MySQL konfigurieren

  1. Melden Sie sich über SSH auf dem MySQL-Host an.
  2. Stellen Sie eine Verbindung zur MySQL-Datenbank her:

    mysql -u root -p
    
  3. server_audit.so-Audit-Plug-in prüfen:

    show variables like 'plugin_dir';
    
  4. Wenn das Plug‑in nicht gefunden wird, installieren Sie es:

    install plugin server_audit soname 'server_audit.so';
    
  5. Prüfen Sie, ob das Plug-in installiert und aktiviert ist:

    show plugins;
    
  6. Bearbeiten Sie die Datei /etc/my.cnf und aktivieren Sie die folgenden Auditeinstellungen:

    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. Prüfen Sie die Audit-Variablen:

    show global variables like "server_audit%";
    
  8. Prüfen, ob die Prüfung aktiviert ist:

    Show global status like 'server_audit%';
    
  9. Bearbeiten Sie die Datei /etc/rsyslog.conf, um die Weiterleitung über UDP zu aktivieren:

    *.* @@<bindplane-agent-ip>:<bindplane-agent-port>
    
    • Ersetzen Sie <bindplane-agent-ip> und <bindplane-agent-port> durch Ihre Bindplane-Agent-Konfiguration.
  10. Starten Sie den MySQL-Dienst neu:

    /etc/init.d/mysqld restart
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktion read_only_udm.metadata.event_type Wenn der Wert Created ist, dann FILE_CREATION, wenn der Wert Deleted ist, dann FILE_DELETION, andernfalls keine Änderung.
Datenbank read_only_udm.target.resource.parent
db_hostname read_only_udm.target.hostname
db_user read_only_udm.target.user.userid
Beschreibung read_only_udm.security_result.description
error_details Dies ist eine temporäre Variable. Ignorieren Sie sie.
error_level read_only_udm.security_result.severity Wenn der Wert error ist, dann ERROR, wenn der Wert warning ist, dann MEDIUM, wenn der Wert note ist, dann INFORMATIONAL, andernfalls keine Änderung.
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
Hostname read_only_udm.principal.hostname
inner_message read_only_udm.security_result.description
Zusammenfassung read_only_udm.metadata.product_event_type
Tabelle read_only_udm.target.resource.name
table_not_found Dies ist eine temporäre Variable. Ignorieren Sie sie.
timestamp read_only_udm.metadata.event_timestamp
read_only_udm.extensions.auth.type Statischer Wert – MACHINE
read_only_udm.metadata.event_type Statischer Wert: USER_LOGIN, GENERIC_EVENT, STATUS_UPDATE, FILE_CREATION, FILE_DELETION
read_only_udm.metadata.log_type Statischer Wert – MYSQL
read_only_udm.metadata.product_name Statischer Wert – MySQL
read_only_udm.metadata.vendor_name Statischer Wert – Oracle Corporation
read_only_udm.security_result.action Statischer Wert – BLOCK
read_only_udm.target.resource.resource_type Statischer Wert – DATABASE, TABLE
properties.event_time event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
properties.ip event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
properties.user event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
properties.error_code event.idm.read_only_udm.security_result.description Aus dem Änderungsprotokoll zugeordnet
properties.event_subclass event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.is_aad_auth event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
category event.idm.read_only_udm.metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet
ServerType event.idm.read_only_udm.target.application Aus dem Änderungsprotokoll zugeordnet
target_app event.idm.read_only_udm.target.application Aus dem Änderungsprotokoll zugeordnet
properties.start_time event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
ts event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
time event.idm.read_only_udm.metadata.collected_timestamp Aus dem Änderungsprotokoll zugeordnet
properties.server_id event.idm.read_only_udm.target.asset.asset_id Aus dem Änderungsprotokoll zugeordnet
properties.thread_id event.idm.read_only_udm.principal.process.pid Aus dem Änderungsprotokoll zugeordnet
user_id event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
p_host event.idm.read_only_udm.principal.hostname Aus dem Änderungsprotokoll zugeordnet
p_host event.idm.read_only_udm.principal.asset.hostname Aus dem Änderungsprotokoll zugeordnet
properties.db event.idm.read_only_udm.target.resource.name Aus dem Änderungsprotokoll zugeordnet
resourceId event.idm.read_only_udm.target.resource.product_object_id Aus dem Änderungsprotokoll zugeordnet
operationName event.idm.read_only_udm.metadata.description Aus dem Änderungsprotokoll zugeordnet
location event.idm.read_only_udm.target.location.name Aus dem Änderungsprotokoll zugeordnet
properties.host event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.last_insert_id event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.insert_id event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.sql_text event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.rows_examined event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.rows_sent event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.lock_time event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.query_time event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.replication_set_role event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
properties.event_class event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
csv_principal_hostname event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
csv_hostname event.idm.read_only_udm.target.hostname und event.idm.read_only_udm.target.asset.hostname Aus dem Änderungsprotokoll zugeordnet
csv_principal_hostname event.idm.read_only_udm.principal.hostname und event.idm.read_only_udm.principal.asset.hostname Aus dem Änderungsprotokoll zugeordnet
ts event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
csv_query_id event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
csv_mysql event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
account_host event.idm.read_only_udm.principal.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
login_proxy event.idm.read_only_udm.principal.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
login_os event.idm.read_only_udm.principal.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
arg event.idm.read_only_udm.principal.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
startup_data_server_id event.idm.read_only_udm.principal.resource.product_object_id Aus dem Änderungsprotokoll zugeordnet
startup_data_os_version event.idm.read_only_udm.principal.platform_version Aus dem Änderungsprotokoll zugeordnet
startup_data_mysql_version event.idm.read_only_udm.metadata.product_version Aus dem Änderungsprotokoll zugeordnet
arg event.idm.read_only_udm.principal.process.command_line Aus dem Änderungsprotokoll zugeordnet
csv_mysql_sql_query event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
hostname event.idm.read_only_udm.intermediary.hostname und event.idm.read_only_udm.intermediary.asset.hostname Aus dem Änderungsprotokoll zugeordnet
id event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
login.proxy event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
connection_data.connection_type event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
connection_data.status event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
login.os event.idm.read_only_udm.principal.platform_version Aus dem Änderungsprotokoll zugeordnet
account.host event.idm.read_only_udm.target.hostname und event.idm.read_only_udm.target.asset.hostname Aus dem Änderungsprotokoll zugeordnet
connection_data.db event.idm.read_only_udm.target.application Aus dem Änderungsprotokoll zugeordnet
mysql_description event.idm.read_only_udm.metadata.description Aus dem Änderungsprotokoll zugeordnet
mysql_errno event.idm.read_only_udm.metadata.product_log_id Aus dem Änderungsprotokoll zugeordnet
mysql_version event.idm.read_only_udm.metadata.product_version Aus dem Änderungsprotokoll zugeordnet
process_path event.idm.read_only_udm.principal.process.file.full_path Aus dem Änderungsprotokoll zugeordnet
mysql_port event.idm.read_only_udm.principal.port Aus dem Änderungsprotokoll zugeordnet
status event.idm.read_only_udm.security_result.summary Aus dem Änderungsprotokoll zugeordnet
error_level event.idm.read_only_udm.security_result.severity_details Aus dem Änderungsprotokoll zugeordnet
mysql_thread_id event.idm.read_only_udm.network.session_id Aus dem Änderungsprotokoll zugeordnet
mysql_socket event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
log_level event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
mysql_timestamp event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
event_date event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
event_time event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
csv_timestamp event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
mysql_action event.idm.read_only_udm.metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet
log_category event.idm.read_only_udm.metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet
csv_mysql_action event.idm.read_only_udm.metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet
csv_mysql_connection_type event.idm.read_only_udm.metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet
event_message event.idm.read_only_udm.metadata.description Aus dem Änderungsprotokoll zugeordnet
resolution_error event.idm.read_only_udm.metadata.description Aus dem Änderungsprotokoll zugeordnet
component event.idm.read_only_udm.principal.application Aus dem Änderungsprotokoll zugeordnet
mysql_hostname event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
csv_hostname_ip event.idm.read_only_udm.principal.ip und event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
mysql_username event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
csv_username event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
csv_target_hostname event.idm.read_only_udm.target.hostname und event.idm.read_only_udm.target.asset.hostname Aus dem Änderungsprotokoll zugeordnet
csv_database_name event.idm.read_only_udm.target.resource.name Aus dem Änderungsprotokoll zugeordnet
mysql_sql_query event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
csv_connection_id event.idm.read_only_udm.network.session_id Aus dem Änderungsprotokoll zugeordnet
mysql_message_id event.idm.read_only_udm.security_result.rule_id Aus dem Änderungsprotokoll zugeordnet
target_mysql_hostname event.idm.read_only_udm.target.hostname und event.idm.read_only_udm.target.asset.hostname Aus dem Änderungsprotokoll zugeordnet
csv_mysql_connection_type event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
login.ip event.idm.read_only_udm.principal.ip Aus dem Änderungsprotokoll zugeordnet
login.ip event.idm.read_only_udm.principal.asset.ip Aus dem Änderungsprotokoll zugeordnet
login.user event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
account.user event.idm.read_only_udm.target.user.userid Aus dem Änderungsprotokoll zugeordnet
inter_host event.idm.read_only_udm.intermediary.hostname Aus dem Änderungsprotokoll zugeordnet
target_host event.idm.read_only_udm.target.hostname Aus dem Änderungsprotokoll zugeordnet
target_host event.idm.read_only_udm.target.asset.hostname Aus dem Änderungsprotokoll zugeordnet
target_ip event.idm.read_only_udm.target.ip Aus dem Änderungsprotokoll zugeordnet
target_ip event.idm.read_only_udm.target.asset.ip Aus dem Änderungsprotokoll zugeordnet
connection_id event.idm.read_only_udm.network.session_id Aus dem Änderungsprotokoll zugeordnet
general_data.command event.idm.read_only_udm.target.process.command_line Aus dem Änderungsprotokoll zugeordnet
general_data.query event.idm.read_only_udm.security_result.summary Aus dem Änderungsprotokoll zugeordnet
connection_data.connection_type event.idm.read_only_udm.network.ip_protocol Aus dem Änderungsprotokoll zugeordnet
general_data.sql_command event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
event_data event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
general_data.status event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
class event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
Status event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
sql_query event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
value event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
num event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
ns event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
itemid event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
value_min event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
value_avg event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
value_max event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
query_id event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
clock event.idm.read_only_udm.metadata.event_timestamp Aus dem Änderungsprotokoll zugeordnet
path principal.file.full_path Aus dem Änderungsprotokoll zugeordnet
logtype metadata.product_event_type Aus dem Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten