IBM Guardium-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie IBM Guardium-Logs mit Bindplane in Google Security Operations aufnehmen.
IBM Guardium ist eine Plattform für das Monitoring von Datenbankaktivitäten und den Datenschutz, die Echtzeit-Monitoring, Auditing und Schutz für Datenbanken und Dateisysteme bietet. Guardium bietet Funktionen für die Bewertung von Sicherheitslücken, die Erkennung und Klassifizierung von Daten, das Monitoring von Datenbankaktivitäten und die Compliance-Berichterstellung.
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-Agenten und IBM Guardium Collector
- Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf die IBM Guardium-Befehlszeile
- IBM Guardium Version 9.1 oder höher für die Unterstützung von verschlüsseltem Syslog (optional)
Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen
Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:
- Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
- Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
- Rufen Sie IAM & Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
bindplane-ingest. - Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B.
Bindplane agent log ingestion).
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei als
ingestion-auth.jsonim Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.jsonunter Linux oderC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonunter Windows) oder aktualisieren Siecreds_file_pathinconfig.yaml, damit der Pfad mit dem Pfad übereinstimmt, in dem Sie die Datei speichern. - Rufen Sie IAM & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Konfiguration des Exporters.
Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
- Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
Führen Sie dazu diesen Befehl aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietWarten Sie, bis die Installation abgeschlossen ist.
Ü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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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.shWarten Sie, bis die Installation abgeschlossen ist.
Ü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 im Installationsanleitung für den Bindplane-Agenten.
Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
Konfigurationsdatei suchen
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/guardium: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium service: pipelines: logs/guardium_to_chronicle: receivers: - udplog exporters: - chronicle/guardium
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
- Verwenden Sie
udplogfür UDP-Syslog (am häufigsten für Guardium). - Verwenden Sie bei Bedarf
tcplogfür TCP-Syslog. - Die Überwachungsadresse
0.0.0.0:514überwacht alle Schnittstellen auf Port 514.
- Verwenden Sie
Exporter-Konfiguration:
creds_file_path: Vollständiger Pfad zur JSON-Schlüsseldatei des Dienstkontos (Option 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Kunden-ID aus dem vorherigen Schritt.location: Ersetzen Sie<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporter stellt diesem Wertchronicle.googleapis.comvoran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.project: Ersetzen Sie<PROJECT_NUMBER>durch die Projektnummer aus IAM & Verwaltung > Einstellungen.endpoint: Behalten Sie die Einstellungchronicle.googleapis.combei.log_type: MussGUARDIUMsein.ingestion_labels: Optionale Labels im YAML-Format.
Exporter für die Legacy Ingestion API
Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block
exportersdurch Folgendes. Legen Sie fürcreds_file_pathden Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Siemalachiteingestion-pa.googleapis.comdurch Ihren regionalen Endpunkt (z. B.europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/guardium: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium
Konfigurationsdatei speichern
Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X. - Windows: Klicken Sie auf Datei > Speichern.
Starten Sie den Bindplane-Agent neu, 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-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorPrüfen Sie die Logs auf Fehler:
sudo journalctl -u observiq-otel-collector -f
Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:
Eingabeaufforderung oder PowerShell als Administrator:
net stop observiq-otel-collector && net start observiq-otel-collectorDienstkonsole:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
Rechtsklicken Sie und wählen Sie Neu starten aus.
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Drücken Sie
IBM Guardium-Syslog-Weiterleitung konfigurieren
Syslog-Ziel über die Befehlszeile konfigurieren
Wenn Sie ein Syslog-Ziel für Ereignisse in IBM Guardium erstellen möchten, müssen Sie sich in der Befehlszeilenschnittstelle anmelden und die IP-Adresse für den Bindplane-Agent-Host definieren.
- Melden Sie sich mit SSH als CLI-Nutzer beim IBM Guardium Collector an.
Geben Sie die folgenden Befehle ein, um das Syslog-Ziel zu konfigurieren:
Für UDP-Syslog (empfohlen):
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udpFür TCP-Syslog:
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcpFür bestimmte Schweregrade:
store remotelog add non_encrypted daemon.alert BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.err BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.warning BINDPLANE_AGENT_IP udp- Ersetzen Sie
BINDPLANE_AGENT_IPdurch die IP-Adresse des Hosts, auf dem der Bindplane-Agent installiert ist.
- Ersetzen Sie
Prüfen Sie die Konfiguration mit folgendem Befehl:
show remotelogIn der Ausgabe sollte das konfigurierte Remote-Syslog-Ziel angezeigt werden.
Verschlüsseltes Syslog konfigurieren (optional)
Wenn Sie eine verschlüsselte Syslog-Weiterleitung benötigen, unterstützt IBM Guardium ab Version 9.1 die TLS-Verschlüsselung über TCP.
- Rufen Sie das öffentliche Zertifikat im PEM-Format von der Zertifizierungsstelle ab, die von Ihrem Remote-Syslog-Empfänger verwendet wird.
- Melden Sie sich in der CLI auf dem Guardium Collector an.
Geben Sie den folgenden Befehl ein:
store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcpFügen Sie das CA-Zertifikat im PEM-Format ein, einschließlich der BEGIN- und END-Zeilen, und drücken Sie dann
Ctrl+D.Guardium speichert das Zertifikat als
/etc/pki/rsyslog/ca.pem.
Nachrichtenvorlage konfigurieren (optional)
Guardium unterstützt mehrere Nachrichtenformate, darunter CEF (Common Event Format) und LEEF (Log Event Extended Format). Das Standardformat ist für die meisten Bereitstellungen geeignet.
So passen Sie die Nachrichtenvorlage an:
- Melden Sie sich in der Guardium-Appliance-GUI als Nutzer mit Administratorberechtigungen an.
- Rufen Sie Verwaltungskonsole > Konfiguration > Globales Profil auf.
- Bearbeiten Sie im Bereich Nachrichtenvorlage die Vorlage mit dem gewünschten Format.
- Klicken Sie auf Speichern.
Richtlinie zum Senden von Benachrichtigungen an Syslog konfigurieren
Richtlinien in IBM Guardium sind dafür verantwortlich, auf Ereignisse zu reagieren und die Ereignisinformationen an den Remote-Syslog-Empfänger weiterzuleiten.
Richtlinienbenachrichtigungsaktion konfigurieren
- Melden Sie sich in der GUI der Guardium-Appliance an.
- Klicken Sie auf den Tab Tools.
- Wählen Sie im linken Navigationsbereich Policy Builder aus.
- Wählen Sie im Bereich Richtliniensuche eine vorhandene Richtlinie aus und klicken Sie auf Regeln bearbeiten.
- Klicken Sie auf Diese Regel einzeln bearbeiten.
- Die Definition der Zugriffsregel wird angezeigt.
- Klicken Sie auf Aktion hinzufügen.
- Wählen Sie in der Liste Aktion einen der folgenden Benachrichtigungstypen aus:
- Benachrichtigung pro Abgleich: Für jeden Richtlinienverstoß wird eine Benachrichtigung gesendet.
- Tägliche Benachrichtigung: Sie erhalten eine Benachrichtigung, wenn an diesem Tag zum ersten Mal ein Richtlinienverstoß auftritt.
- Einmal pro Sitzung benachrichtigen: Pro Richtlinienverstoß wird eine Benachrichtigung für eine einzelne Sitzung ausgegeben.
- Benachrichtigung pro zeitlichem Detaillierungsgrad: Sie erhalten eine Benachrichtigung für den ausgewählten Zeitraum.
- Wählen Sie in der Liste Nachrichtenvorlage die gewünschte Vorlage aus oder behalten Sie die Option Standard bei.
- Wählen Sie unter Benachrichtigungstyp die Option SYSLOG aus.
- Klicken Sie auf Hinzufügen und dann auf Übernehmen.
- Klicken Sie auf Speichern.
- Wiederholen Sie diesen Vorgang für alle Regeln in der Richtlinie, die Sie an Google SecOps weiterleiten möchten.
Richtlinie installieren
Neue oder bearbeitete Richtlinien in IBM Guardium müssen installiert werden, bevor die aktualisierten Benachrichtigungsaktionen oder Regeländerungen wirksam werden können.
- Klicken Sie auf den Tab Verwaltungskonsole.
- Wählen Sie im linken Navigationsbereich Konfiguration > Richtlinieninstallation aus.
- Wählen Sie im Bereich Richtlinien-Installer die Richtlinie aus, die Sie im vorherigen Schritt geändert haben.
- Wählen Sie in der Drop-down-Liste Installieren und überschreiben aus.
- Es wird eine Bestätigung angezeigt, dass die Richtlinie auf allen Prüfmodulen installiert wird.
- Klicken Sie auf OK.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| deviceNtDomain | about.administrative_domain | Administrative Domain der „Über“-Entität |
| deviceExternalId | about.asset.asset_id | Asset-ID |
| filePath, fileHash | about.file.full_path | Vollständiger Pfad der Datei |
| _hash, fileHash | about.file.sha256 | SHA256-Hash der Datei |
| fsize | about.file.size | Größe der Datei |
| dvchost | about.hostname | Hostname der Entität, auf die sich die Seite bezieht |
| dvc | about.ip | IP-Adresse der Entität, auf die sich die Anfrage bezieht |
| smac, dmac, dvcmac | about.mac | MAC-Adresse der Entität, auf die sich die Information bezieht |
| deviceProcessName, Subject, Emne, Path | about.process.command_line | Befehlszeile des Prozesses |
| dvcpid | about.process.pid | Prozess-ID |
| filePermission | about.resource.attribute.permissions | Mit der Ressource verknüpfte Berechtigungen |
| extensions.auth.type | Authentifizierungstyp | |
| sender_ip | intermediary.ip | IP-Adresse des Vermittlers |
| Vermittler | Details zur Intermediärbank | |
| Received, Generated, timestamp | metadata.collected_timestamp | Zeitstempel, der angibt, wann das Ereignis erfasst wurde |
| msg, signature_name | metadata.description | Eine Beschreibung des Ereignisses |
| metadata.event_type | Ereignistyp (z.B. USER_LOGIN, NETWORK_CONNECTION) | |
| device_event_class_id, event_name, eventType | metadata.product_event_type | Produktspezifischer Ereignistyp |
| externalId | metadata.product_log_id | Produkt-Log-ID |
| metadata.product_version | Version des Produkts | |
| network.application_protocol | In der Netzwerkverbindung verwendetes Anwendungsprotokoll | |
| deviceDirection | network.direction | Richtung des Netzwerkverkehrs |
| requestMethod | network.http.method | In der Anfrage verwendete HTTP-Methode |
| requestClientApplication | network.http.user_agent | User-Agent-String aus der HTTP-Anfrage |
| Proto | network.ip_protocol | Verwendetes IP-Protokoll |
| in | network.received_bytes | Anzahl der empfangenen Byte |
| out | network.sent_bytes | Anzahl der gesendeten Byte |
| session_id | network.session_id | Sitzungs-ID für die Netzwerkverbindung |
| sntdom, Domain, Domene | principal.administrative_domain | Verwaltungsbereich des Auftraggebers |
| sourceServiceName, source_program | principal.application | Anwendung, die dem Prinzipal zugeordnet ist |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.asset.hostname | Hostname des Haupt-Assets |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.asset.ip | IP-Adresse des Haupt-Assets |
| Group_name, Gruppenavn | principal.group.group_display_name | Anzeigename der Hauptgruppe |
| prin_host, Device_name, Enhetsnavn, shost, principal_hostname, client_hostname | principal.hostname | Hostname des Hauptkontos |
| sender_ip, src_ip, src, principal_ip, client_ip | principal.ip | IP-Adresse des Auftraggebers |
| smac | principal.mac | MAC-Adresse des Hauptkontos |
| sourceTranslatedAddress | principal.nat_ip | NAT-IP-Adresse des Hauptkontos |
| sourceTranslatedPort | principal.nat_port | NAT-Port des Prinzipal |
| spt, client_port | principal.port | Vom Hauptkonto verwendeter Port |
| sproc | principal.process.command_line | Befehlszeile des Hauptprozesses |
| spid | principal.process.pid | Prozess-ID des Hauptkontos |
| spriv | principal.user.attribute.roles | Rollen, die mit dem Hauptnutzer verknüpft sind |
| suser, usrName, CustomerName | principal.user.user_display_name | Anzeigename des Hauptnutzers |
| dbUser, usrName, db_user, os_user, suid, db_username | principal.user.userid | Nutzer-ID des Prinzipal |
| security_result | Details zum Sicherheitsergebnis | |
| security_result.action | Im Sicherheitsergebnis ergriffene Maßnahme | |
| act, Action_Taken | security_result.action_details | Details zur ergriffenen Maßnahme |
| cat | security_result.category_details | Kategoriedetails des Sicherheitsergebnisses |
| msg_data_2, alert_description, Type, Scan_Type | security_result.description | Beschreibung des Sicherheitsergebnisses |
| operation_label, operasjon_label, permission_label, tillatelse_label, infection_channel_label, spyware_Grayware_Type_label, threat_probability_label | security_result.detection_fields | Felder, die für die Erkennung im Sicherheitsergebnis verwendet werden |
| mwProfile, alert_name | security_result.rule_name | Name der Regel, die das Sicherheitsergebnis ausgelöst hat |
| severity, event_severity | security_result.severity | Schweregrad des Sicherheitsergebnisses |
| reason, ruleDesc, appcategory, Result | security_result.summary | Zusammenfassung des Sicherheitsergebnisses |
| Spyware, Virus_Malware_Name, Unknown_Threat | security_result.threat_name | Name der erkannten Bedrohung |
| oldFilePath | src.file.full_path | Vollständiger Pfad der Quelldatei |
| oldFileSize | src.file.size | Größe der Quelldatei |
| oldFilePermission | src.resource.attribute.permissions | Berechtigungen der Quellressource |
| os_user | src.user.userid | Nutzer-ID des Quellnutzers |
| dntdom | target.administrative_domain | Verwaltungsdomain des Ziels |
| destinationServiceName, service_name | target.application | Mit dem Ziel verknüpfte Anwendung |
| prin_host, dest_host, server_hostname | target.asset.hostname | Hostname des Ziel-Assets |
| dst_ip, dest_ip, server_ip, IPv6_Address | target.asset.ip | IP-Adresse des Ziel-Assets |
| temp_dhost, dest_host, server_hostname | target.hostname | Hostname des Ziels |
| dst_ip, dst, dest_ip, server_ip, IPv6_Address | target.ip | IP-Adresse des Ziels |
| dmac | target.mac | MAC-Adresse des Ziels |
| destinationTranslatedAddress | target.nat_ip | NAT-IP-Adresse des Ziels |
| destinationTranslatedPort | target.nat_port | NAT-Port des Ziels |
| dpt, dstPort, dest_port, server_port | target.port | Vom Ziel verwendeter Port |
| dproc, full_sql | target.process.command_line | Befehlszeile des Zielprozesses |
| File_name, Object, Objekt, Infected_Resource | target.process.file.full_path | Vollständiger Pfad der Zieldatei des Prozesses |
| dpid, full_sql_id | target.process.pid | Prozess-ID des Ziels |
| session_start | target.resource.attribute.creation_time | Erstellungszeit der Zielressource |
| additional_environment_name, additional_db_protocol_version, additional_dbProtocolVersion, additional_operation_name, additional_signature_id, resource_Type_label | target.resource.attribute.labels | Mit der Zielressource verknüpfte Labels |
| session_end | target.resource.attribute.last_update_time | Zeitpunkt der letzten Aktualisierung der Zielressource |
| db_name, database_name | target.resource.name | Name der Zielressource |
| db_type, server_type | target.resource.resource_subtype | Untertyp der Zielressource |
| target.resource.resource_type | Typ der Zielressource | |
| Anfrage | target.url | Mit dem Ziel verknüpfte URL |
| dpriv, roles | target.user.attribute.roles | Rollen, die dem Zielnutzer zugewiesen sind |
| temp_duser, CustomerName | target.user.user_display_name | Anzeigename des Zielnutzers |
| temp_duid, User, Bruker, db_username | target.user.userid | Nutzer-ID des Ziels |
| metadata.product_name | Name des Produkts | |
| metadata.vendor_name | Name des Anbieters | |
query |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten