MySQL-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie MYSQL-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert zuerst mit grok gängige Felder aus MySQL-SYSLOG-Nachrichten. Anschließend werden mithilfe von bedingten Verzweigungen (if, else if) und regulären Ausdrucken bestimmte Ereignistypen in den Protokollmeldungen identifiziert. Relevante Informationen werden extrahiert und dem UDM-Schema (Unified Data Model) zugeordnet.

Hinweise

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

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Berechtigter Zugriff auf den MySQL-Host
  • MySQL-Datenbank und Rsyslog installiert

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei für die Datenaufnahmeauthentifizierung herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindlane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

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
    

Weitere Installationsressourcen

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:
    • Suchen Sie die Datei config.yaml. Unter Linux befindet es sich normalerweise im Verzeichnis /etc/bindplane-agent/, unter Windows im Installationsverzeichnis.
    • Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    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. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

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

    sudo systemctl restart bindplane-agent
    
  • Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog in MySQL konfigurieren

  1. Melden Sie sich über SSH beim MySQL-Host an.

  2. So stellen Sie eine Verbindung zur MySQL-Datenbank her:

    mysql -u root -p
    
  3. Prüfen Sie für das server_audit.so-Audit-Plug-in:

    show variables like 'plugin_dir';
    
  4. Wenn Sie die Plug-in-Datei nicht im Verzeichnis des Plug-ins finden, installieren Sie das Plug-in mit dem Befehl:

    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 mit vi, aktivieren Sie Folgendes und speichern Sie die Datei:

    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 Prüfvariablen mit dem folgenden Befehl:

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

    Show global status like 'server_audit%';
    
  9. Bearbeiten Sie die Datei /etc/rsyslog.conf mit vi, um die Verwendung von UDP zu aktivieren, und speichern Sie die Datei:

    *.* @@<bindplane-agent-ip>:<bindplane-agent-port>
    
  10. Ersetzen Sie <bindplane-agent-ip> und <bindplane-agent-port> durch Ihre Bindplane-Agentkonfiguration.

  11. Starten Sie den MySQL-Dienst neu und stellen Sie eine Verbindung zur MySQL-Datenbank her.

    /etc/init.d/mysqld restart
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktion read_only_udm.metadata.event_type Wenn der Wert Created ist, wird FILE_CREATION verwendet. Bei Deleted ist es FILE_DELETION. Andernfalls erfolgt keine Änderung.
Datenbank 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 Dies ist eine temporäre Variable, ignorieren Sie sie.
error_level read_only_udm.security_result.severity Wenn der Wert error ist, wird „FEHLER“ verwendet. Bei warning ist es „MITTEL“, bei note „INFORMATIONSMELDUNG“. Andernfalls erfolgt 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
table 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