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 Aufnahme in Google SecOps 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: Kunden-ID, 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. Prüfen Sie das Audit-Plug-in server_audit.so:

    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. So prüfen Sie, 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

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