Protokolle für IBM Security Verify Access erfassen
In diesem Dokument wird beschrieben, wie Sie Logs für IBM Security Verify Access erfassen können. Der Parser extrahiert gängige Felder wie Zeitstempel, Hostnamen und Beschreibungen mithilfe von Grok-Mustern. Anschließend werden XML-Daten für detaillierte Ereignisinformationen verwendet, die im Beschreibungsfeld eingebettet sind. Die extrahierten Daten werden dann dem einheitlichen Datenmodell (UDM) für die standardisierte Darstellung von Sicherheitsereignissen zugeordnet.
Hinweise
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen Administratorzugriff auf IBM Security Verify Access (ISVA).
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei für die Datenaufnahmeauthentifizierung 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 Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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" /quiet
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.sh
Zusätzliche Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Dateien aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor, z. B.
nano
,vi
oder Notepad.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so:receivers: udplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: ibm_security_verify raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kundennummer.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.
Bindplane-Agent neu starten, um die Änderungen anzuwenden
Führen Sie unter Linux den folgenden Befehl aus, um den Bindplane-Agent neu zu starten:
sudo systemctl restart bindplane-agent
Unter Windows können Sie den Bindplane-Agenten entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Logformat anpassen
- Verwenden Sie das LMI (Local Management Interface) der Appliance, um die
WebSEAL
-Konfigurationsdatei zu bearbeiten. - Rufen Sie in der LMI Reverse-Proxy-Verwaltung auf.
- Klicken Sie auf Verwalten > Konfiguration > Konfigurationsdatei bearbeiten. Sie können die Konfigurationsdatei
WebSEAL
direkt im Editor bearbeiten. - Gehen Sie zu logging[stanza], suchen Sie nach
syntax requests = {yes|no}
und klicken Sie auf Ja. - Bearbeiten Sie den Parameter
gmt-time
so:gmt-time = yes
. Ersetzen Sie das „request-log-format“ durch Folgendes:
request-log-format = ibmsva: %h %l "%u" %t "%r" %s %b %T %j %{X-Forwarded-For}i %a %A %H %p %m %U %v %d %q
Im Folgenden werden die einzelnen Anweisungen erläutert:
ibmsva:
Logs vom SVA-Gerät identifizieren%h
: Remote-Host%l
: Remote-Logname%u
: Remote-Nutzer%t
: Uhrzeit und Datum im CLF-Format%r
: Erste Zeile der Anfrage%s
: Antwortstatus%b
: Anzahl der Bytes in der Antwort (ohne HTTP-Header)%T
: Zeit für die Bearbeitung der Anfrage (Sekunden)%j
: Name der Kreuzung%X-Forwarded-For
: IP-Adresse für Weiterleitung%a
: Remote-IP-Adresse%A
: Lokale IP-Adresse%H
: Anfrageprotokoll%p
: Anschluss%m
: Anfragemethode (GET, POST, HEAD)%U
: Angeforderte URL%v
: Server name%d
: Transaktions-ID%q
: Abfragestring
Syslog-Weiterleitung in ISVA konfigurieren
- Melden Sie sich in der ISVA Local Management Interface an.
- Gehen Sie zu Überwachen > Protokolle > Remote Syslog-Weiterleitung.
- Klicken Sie auf Hinzufügen.
- Geben Sie die Details für den Remote-Syslog-Server an.
- Server: Die IP-Adresse oder der Hostname des syslog-Servers (Bindebene).
- Port: Der Port, auf dem der syslog-Server auf Anfragen wartet (Bindebene).
- Protokoll: Wählen Sie UDP oder TCP aus (je nach syslog-/Bindplane-Konfiguration).
- Format: Wählen Sie Syslog aus.
- Klicken Sie auf Speichern.
Protokollquellen für einen Remote-Protokollserver konfigurieren
- Wählen Sie den Remote-Syslog-Server aus, an den Logs gesendet werden sollen.
- Klicken Sie auf Quellen.
- Klicken Sie auf Hinzufügen.
Geben Sie die Details für die Protokollquelle an und klicken Sie dann auf OK.
- Name: Wählen Sie WebSEAL aus.
- Instanzname: Wählen Sie die WebSEAL-Instanz aus.
- Logdatei: Name der Quelllogdatei.
- Optional: Tag: Das Tag, das den gesendeten Protokolleinträgen hinzugefügt werden soll.
- Facility: Alle Nachrichten werden mit dem angegebenen Einrichtungscode gesendet (Liste der verfügbaren Codes).
- Severity: Die Wichtigkeitsstufe der gesendeten Logeinträge.
- Alle Nachrichten werden mit der angegebenen Schweregradstufe gesendet.
Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Aktion | read_only_udm.security_result.action_details | Wird aus dem XML-Feld „/event/originator/action“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. |
App | read_only_udm.target.application | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. |
auth_details | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/accessor/principal/@auth“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Auth“ gesetzt. |
authntype | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/authntype“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Authntype“ festgelegt. |
Daten | read_only_udm.metadata.description | Wenn das Feld „data“ nicht leer ist, wird sein Wert durch den vorhandenen Wert von „read_only_udm.metadata.description“ ersetzt. |
description | read_only_udm.metadata.description | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. Wenn das Feld „description“ den String „event“ enthält, wird es als XML geparst, um andere Felder zu extrahieren. |
event_id | read_only_udm.metadata.product_log_id | Wird aus dem XML-Feld „/event/originator/event_id“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. |
Hostname | read_only_udm.principal.hostname, read_only_udm.principal.asset.hostname | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. |
id | read_only_udm.metadata.product_log_id | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. |
Standort | read_only_udm.principal.location.name | Wird aus dem XML-Feld „/event/originator/location“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. |
Ergebnis | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/outcome“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Outcome“ (Ergebnis) festgelegt. |
outcome_reason | read_only_udm.security_result.summary | Wird aus dem XML-Feld „/event/outcome/@reason“ extrahiert, wenn das Feld „description“ den Wert „event“ enthält. Wird auch verwendet, um den Wert von „read_only_udm.security_result.action“ zu bestimmen. Wird auf „BLOCK“ gesetzt, wenn „outcome_reason“ „fail“ enthält (ohne Berücksichtigung der Groß- und Kleinschreibung), andernfalls auf „ALLOW“. |
outcome_status | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/outcome/@status“ extrahiert, wenn das Feld „description“ den String „event“ enthält. Der Schlüssel ist auf „Outcome Status“ festgelegt. |
originator_blade | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/originator/@blade“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Originator Blade“ gesetzt. |
originator_component | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/originator/component“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Originator Component“ gesetzt. |
originator_instance | read_only_udm.security_result.detection_fields.value | Wird aus dem XML-Feld „/event/originator/@instance“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Der Schlüssel ist auf „Originator Instance“ gesetzt. |
session_id | read_only_udm.network.session_id | Wird aus dem XML-Feld „/event/accessor/session_id“ extrahiert, wenn das Feld „description“ den Wert „event“ enthält. |
target_url | read_only_udm.target.url | Wird aus dem XML-Feld „/event/target/url“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. |
thread_id | read_only_udm.security_result.detection_fields.value | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. Der Schlüssel ist auf „Thread-ID“ gesetzt. |
timestamp | read_only_udm.metadata.event_timestamp | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. Formatiert mit dem Filter „Datum“ basierend auf Vorhandensein und Format des Felds „Zeitzone“. |
time_stamp | read_only_udm.metadata.event_timestamp | Wird aus dem XML-Feld „/event/date“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. Formatiert mit dem Filter „Datum“. |
Zeitzone | Wird in Verbindung mit dem Feld „Zeitstempel“ verwendet, um das Feld „read_only_udm.metadata.event_timestamp“ mit dem Filter „Datum“ zu formatieren. | |
URL | read_only_udm.target.url | Mit dem Grok-Muster aus dem Feld „message“ extrahiert. |
Nutzer | read_only_udm.principal.user.userid | Wird aus dem XML-Feld „/event/accessor/principal“ extrahiert, wenn das Feld „description“ den Text „event“ enthält. |
user_location | read_only_udm.principal.ip, read_only_udm.principal.asset.ip | Wird aus dem XML-Feld „/event/accessor/user_location“ extrahiert, wenn das Feld „description“ den Wert „event“ enthält. Wenn „user_location_type“ die Zeichenfolge „ip“ enthält (ohne Berücksichtigung der Groß- und Kleinschreibung), wird sie als IP-Adresse geparst und sowohl „read_only_udm.principal.ip“ als auch „read_only_udm.principal.asset.ip“ zugeordnet. |
user_location_type | Damit wird festgelegt, ob „user_location“ als IP-Adresse geparst werden soll. | |
– | read_only_udm.metadata.vendor_name | Legen Sie diesen Wert auf „IBM_SECURITY_VERIFY“ fest. |
– | read_only_udm.metadata.product_name | Legen Sie diesen Wert auf „IBM_SECURITY_VERIFY“ fest. |
– | read_only_udm.metadata.event_type | Ursprünglich auf „STATUS_UPDATE“ festgelegt. Wird in „USER_LOGIN“ geändert, wenn sowohl das Feld „user“ als auch das Feld „hostname“ extrahiert werden. |
– | read_only_udm.extensions.auth.type | Legen Sie „SSO“ fest, wenn sowohl die Felder „user“ als auch „hostname“ extrahiert werden. |
– | read_only_udm.network.application_protocol | Legen Sie „HTTP“ fest, wenn das Feld „message“ „HttpServletRequest“ enthält. |
– | read_only_udm.metadata.log_type | Festgelegt auf „IBM_SECURITY_VERIFY“ – aus den Protokollmetadaten übernommen. |
Änderungen
2024-05-13
- Der Parser wurde aktualisiert, um Protokolle im XML-Format zu unterstützen.
2023-01-25
- Neu erstellter Parser.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten