CA ACF2-Logs erfassen
Parserversion: 2.0
In diesem Dokument wird beschrieben, wie Sie CA ACF2-Logs mit dem Bindplane-Agenten in Google Security Operations aufnehmen.
Broadcom ACF2 (Access Control Facility 2) für z/OS ist ein Mainframe-Sicherheitsprodukt, das Zugriffssteuerung, Authentifizierung und Auditing für IBM z/OS-Systeme bietet. ACF2 protokolliert Sicherheitsereignisse in IBM System Management Facility (SMF)-Datensätzen (Standardtyp 230), einschließlich Authentifizierungsversuchen, Verstößen gegen den Zugriff auf Datasets, Ereignissen im Zusammenhang mit dem Ressourcenzugriff, TSO-Befehls-Logging und Datenbankänderungen. Diese SMF-Datensätze müssen mit einem Drittanbieter-Agenten wie BMC AMI Defender for z/OS an Chronicle weitergeleitet werden.
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 BMC AMI Defender for z/OS-Agent
- Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- BMC AMI Defender for z/OS ist auf der z/OS-LPAR installiert und wird dort ausgeführt, auf der ACF2 aktiv ist.
- Zugriff zum Ändern der BMC AMI Defender-Parameterdateien im Dataset
amihlq.CZAGENT.PARM - Berechtigung zum Starten oder Ändern der gestarteten CZAGENT-Aufgabe unter z/OS
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 Editor aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie 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, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern. - Rufen Sie IAM & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.
Option 2: Authentifizierungsdatei für die Datenaufnahme 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 > Profil auf.
Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).
Bindplane-Agent installieren
Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.
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-collectorDer Dienst sollte als RUNNING 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-collectorDer Dienst sollte als active (running) angezeigt werden.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie im Installationsanleitung für den Bindplane-Agenten.
Bindplane-Agent für die Aufnahme von Syslog und das Senden an Google SecOps konfigurieren
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/acf2_logs: 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: CA_ACF2 raw_log_field: body ingestion_labels: env: production source: acf2 service: pipelines: logs/acf2_to_chronicle: receivers: - udplog exporters: - chronicle/acf2_logsErsetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
listen_address: Auf0.0.0.0:514setzen, um auf allen Schnittstellen an UDP-Port 514 zu lauschen.- Verwenden Sie für Linux-Systeme, die als Nicht-Root ausgeführt werden, den Port
1514oder höher. - Dieser Port muss mit der BMC AMI Defender-SERVER-Anweisung übereinstimmen.
- Verwenden Sie für Linux-Systeme, die als Nicht-Root ausgeführt werden, den Port
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: Ersetzen SieYOUR_CUSTOMER_IDdurch Ihrecustomer ID. Weitere Informationen finden Sie unter Google SecOps-Kundennummer abrufen.location: Ersetzen Sie<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporteur stellt diesem Wert das Präfixchronicle.googleapis.comvoran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.project: Ersetzen Sie<PROJECT_NUMBER>durch die Projektnummer unter IAM & Verwaltung > Einstellungen.endpoint: Behalten Sie die Einstellungchronicle.googleapis.combei.log_type: AufCA_ACF2festgelegt (Chronicle-Aufnahmelabel für ACF2-Logs)ingestion_labels: Optionale Labels zum Kategorisieren von Logs (nach Bedarf anpassen)
Legacy-Ingestion-API-Exporter
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/acf2_logs: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: CA_ACF2 raw_log_field: body ingestion_labels: env: production source: acf2
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.
So starten Sie den Bindplane-Agenten unter Linux neu:
Führen Sie dazu diesen Befehl aus:
sudo systemctl restart observiq-otel-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorLogs auf Fehler prüfen:
sudo journalctl -u observiq-otel-collector -f
So starten Sie den Bindplane-Agenten unter Windows neu:
Wählen Sie eine der folgenden Optionen aus:
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.
- Drücken Sie
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorPrüfen Sie die Logs auf Fehler:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
BMC AMI Defender for z/OS für die Weiterleitung von ACF2-SMF-Einträgen konfigurieren
Bearbeiten Sie das $$$SERVR parameter member
- Sign in to the z/OS system using TSO/ISPF or a 3270 emulator.
- Navigate to the BMC AMI Defender parameter library:
- Enter
ISPFat the TSO READY prompt. - Select option 2 (Edit).
- In the ISPF Library field, enter the data set name:
amihlq.CZAGENT.PARM(replaceamihlqwith your installation high-level qualifier). - Press Enter.
- Enter
- Edit the $$$SERVR-Mitglied:
- Geben Sie
Eneben dem Parameter-Member $$$SERVR member. - Press Enter.
- Geben Sie
- Locate the SERVER statement section (approximately line 40-60).
- Uncomment one of the SERVER statements by removing the leading semicolon (
;). Configure the SERVER statement with the Bindplane agent IP address and port:
SERVER bindplane-host-ip:514 TRANS(UDP) MAXMSG(2000)- Replace
bindplane-host-ipwith the IP address of the Bindplane agent host (for example,192.168.1.100). - If using a non-standard port (for example,
1514), specify:bindplane-host-ip:1514. TRANS(UDP)specifies UDP transport protocol (recommended for syslog).MAXMSG(2000)sets the maximum message length to 2000 bytes (ACF2 records may require larger sizes).
- Replace
Verify the OPTIONS statement for syslog format:
- Scroll up to locate the OPTIONS statements (approximately line 10-30).
Ensure one of the following OPTIONS statements is uncommented based on your preferred format:
OPTIONS IF(RFC 3164) SIEM(RFC 3164) TIMESTAMP INSTNAME(SIEM.Agent)- RFC 3164: Standard syslog format (recommended for Chronicle)
- CEF: Common Event Format (alternative)
- LEEF: Log Event Extended Format (alternative)
- JSON: JSON format (alternative)
Save the changes:
- Press F3 to exit the editor.
- Type
SAVEwhen prompted. - Press Enter.
Edit the $$$CONFG ein, um die Erfassung von ACF2-SMF-Datensätzen zu aktivieren.
Bearbeiten Sie in der Mitgliederliste des Datasets
amihlq.CZAGENT.PARMdas Mitglied $$$CONFG member:- Type
Enext to the $$$CONFG. - Drücken Sie die Eingabetaste.
- Type
Suchen Sie nach dem Schalter für die Auswahl von ACF2-SMF-Datensätzen (
ACF2oderSMF 230).Heben Sie die Auskommentierung der SELECT-Anweisung für ACF2 auf:
SELECT IF(ACF2) SMF(ACF2)- Dadurch wird die Erfassung von ACF2-SMF-Datensätzen (Standardtyp 230) ermöglicht.
- Wenn auf Ihrer Website ein anderer SMF-Eintragstyp für ACF2 verwendet wird, prüfen Sie den Typ mit dem Befehl
ACF SHOW SYSTEMSin TSO.
Speichern Sie die Änderungen:
- Drücken Sie F3, um den Editor zu schließen.
- Geben Sie
SAVEein, wenn Sie dazu aufgefordert werden. - Drücken Sie die Eingabetaste.
- Prüfen Sie in der Mitgliederliste des Datasets
amihlq.CZAGENT.PARM, ob ein Mitglied mit dem Namen $$$ACF2 or SMFACF2 exists. If the member does not exist, create it:
- Type
C(Create) on the command line. - Enter the member name:
$$$ACF2
- Type
SMF-ACF2-Anweisungsparametermitglied erstellen oder bearbeiten
Bearbeiten Sie das Mitglied und fügen Sie die folgende SMF-ACF2-Anweisung hinzu:
SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
ACF2(230): Gibt den SMF-Eintragstyp für ACF2 an (Standard ist 230; mitACF SHOW SYSTEMSprüfen).FACILITY(SECURITY4): Legt die Syslog-Einrichtung auf „Sicherheit“ (4) fest.SEVERITY(INFORMATIONAL): Legt den Standard-Schweregrad auf „Informationell“ fest.- Ungültige Passwörter oder Verstöße gegen die Berechtigung werden automatisch mit dem Schweregrad ERROR gesendet.
- Ressourcenverstöße werden automatisch mit dem Schweregrad FEHLER gesendet.
Optional: Konfigurieren Sie bestimmte ACF2-Subtypen und Schweregrade:
SMF ACF2(230) +
FACILITY(SECURITY4) +
SEVERITY(INFORMATIONAL) +
SUBTYPES(P SEV(ERROR)) +
SUBTYPES(V SEV(ERROR)) +
SUBTYPES(D SEV(ERROR))
- Untertyp P: Ungültiges Passwort oder Autorisierungsereignisse (Schweregrad: ERROR)
- Untertyp V: Ressourcenverstöße (Schweregrad: FEHLER)
- Untertyp D: Zugriffsverletzungen bei Datasets (Schweregrad FEHLER)
Speichern Sie die Änderungen:
- Drücken Sie F3, um den Editor zu schließen.
- Geben Sie
SAVEein, wenn Sie dazu aufgefordert werden. - Drücken Sie die Eingabetaste.
BMC AMI Defender-Parameterdatei aktualisieren
- Beenden Sie ISPF und kehren Sie zur TSO READY-Eingabeaufforderung zurück.
Geben Sie den MODIFY-Befehl ein, um die Parameterdatei neu zu laden:
F CZAGENT,PARMS- Ersetzen Sie
CZAGENTdurch den Namen der gestarteten BMC AMI Defender-Aufgabe, falls dieser anders lautet. - Mit diesem Befehl wird die Parameterdatei neu geladen, ohne den Agent zu beenden.
- Ersetzen Sie
Prüfen Sie die Konfiguration, indem Sie die CZAPRINT-Ausgabe prüfen:
- Wählen Sie in ISPF die Option 3.4 (DSLIST) aus.
- Geben Sie das Namensmuster für das Dataset ein:
CZAGENT.CZAPRINT(oder Ihre standortspezifische Namenskonvention). - Drücken Sie die Eingabetaste.
- Geben Sie
B(Browse) neben dem neuesten CZAPRINT-Dataset ein. - Drücken Sie die Eingabetaste.
Suchen Sie nach Nachrichten, die auf eine erfolgreiche Verbindung zum Syslog-Server hinweisen:
CZA0070I Connected to server bindplane-host-ip:514CZA0100I SMF ACF2 statement processed
Wenn die gestartete CZAGENT-Aufgabe nicht ausgeführt wird, starten Sie sie:
S CZAGENT
ACF2-Logweiterleitung überprüfen
Generieren Sie ACF2-Testsicherheitsereignisse:
- Versuchen Sie in TSO, auf ein Dataset zuzugreifen, für das Sie keine Zugriffsberechtigung haben.
- Versuchen Sie, sich mit einem ungültigen Passwort anzumelden (verwenden Sie ein Testkonto).
- Führen Sie einen TSO-Befehl aus, der von ACF2 protokolliert wird.
Prüfen Sie die Bindplane-Agent-Logs, um den Empfang von ACF2-Syslog-Nachrichten zu bestätigen:
Linux:
sudo journalctl -u observiq-otel-collector -f | grep ACF2Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
Melden Sie sich in der Google SecOps Console an und prüfen Sie, ob ACF2-Logs aufgenommen werden:
- Gehen Sie zu Suche > UDM-Suche.
Geben Sie die folgende Abfrage ein:
metadata.log_type = "CA_ACF2"Prüfen Sie, ob ACF2-Sicherheitsereignisse in den Suchergebnissen angezeigt werden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| extensions.auth.mechanism | Das verwendete Authentifizierungsverfahren. | |
| extensions.auth.type | Der Authentifizierungstyp. | |
| Summe | metadata.description | Eine Beschreibung des Ereignisses. |
| metadata.event_type | Art des Ereignisses. | |
| event_type, cat | metadata.product_event_type | Der produktspezifische Ereignistyp. |
| product_version | metadata.product_version | Die Version des Produkts. |
| Terminal | principal.hostname | Der mit dem Hauptkonto verknüpfte Hostname. |
| Name | principal.user.user_display_name | Der Anzeigename des Nutzers. |
| usrName | principal.user.userid | Die Nutzer-ID. |
| security_result.action | Die vom Sicherheitssystem ergriffene Maßnahme. | |
| security_result.category | Die Kategorie des Sicherheitsergebnisses. | |
| Klasse | security_result.category_details | Zusätzliche Details zur Kategorie des Sicherheitsergebnisses. |
| reason | security_result.severity | Der Schweregrad des Sicherheitsergebnisses. |
| reason | security_result.severity_details | Detaillierte Informationen zum Schweregrad. |
| logstr | security_result.summary | Eine Zusammenfassung des Sicherheitsergebnisses. |
| job_id | target.application | Die Anwendung, auf die das Targeting angewendet wird. |
| job_group | target.group.group_display_name | Der Anzeigename der Gruppe. |
| target.namespace | Der Namespace des Ziels. | |
| dsn | target.resource.name | Name der Ressource. |
| vol | target.resource.parent | Die übergeordnete Ressource. |
| res, dsn | target.resource.product_object_id | Die produktspezifische Objekt-ID. |
| target.resource.resource_type | Der Ressourcentyp. | |
| Name | target.user.user_display_name | Der Anzeigename des Zielnutzers. |
| usrName | target.user.userid | Die Nutzer-ID des Zielnutzers. |
| product_name | metadata.product_name | Der Name des Produkts, das das Ereignis generiert. |
| vendor_name | metadata.vendor_name | Der Name des Anbieters. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten