Raccogli i log CA ACF2
Versione parser: 2.0
Questo documento spiega come importare i log CA ACF2 in Google Security Operations utilizzando l'agente Bindplane.
Broadcom ACF2 (Access Control Facility 2) per z/OS è un prodotto di sicurezza per mainframe che fornisce controllo dell'accesso, autenticazione e controllo per i sistemi IBM z/OS. ACF2 registra gli eventi di sicurezza nei record IBM System Management Facility (SMF) (tipo predefinito 230), inclusi i tentativi di autenticazione, le violazioni di accesso ai set di dati, gli eventi di accesso alle risorse, il logging dei comandi TSO e le modifiche al database. Questi record SMF devono essere inoltrati a Chronicle utilizzando un agente di terze parti come BMC AMI Defender for z/OS.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive oppure host Linux con
systemd - Connettività di rete tra l'agente Bindplane e l'agente BMC AMI Defender for z/OS
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
- BMC AMI Defender for z/OS installato e in esecuzione sulla LPAR z/OS in cui è attivo ACF2
- Accesso per modificare i file dei parametri BMC AMI Defender nel set di dati
amihlq.CZAGENT.PARM - Autorizzazione per avviare o modificare l'attività avviata CZAGENT su z/OS
Ottieni le credenziali di Google SecOps per l'agente Bindplane
Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:
- Nuove implementazioni: utilizza l'API Chronicle (opzione 1).
- Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (Opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
Opzione 1: crea un account di servizio per l'API Chronicle (consigliata)
- Accedi alla Google Cloud console e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
- Vai a IAM e amministrazione > Service account.
- Fai clic su Crea service account.
- Fornisci i seguenti dettagli di configurazione:
- Nome service account: inserisci un nome per l'account (ad esempio
bindplane-ingest). - Descrizione del service account: inserisci una descrizione (ad esempio,
Bindplane agent log ingestion).
- Nome service account: inserisci un nome per l'account (ad esempio
- Fai clic su Crea e continua.
- Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Chronicle Editor.
- Fai clic su Continua, quindi su Fine.
- Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
- Fai clic su Aggiungi chiave > Crea nuova chiave.
- Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul computer.
- Salva il file della chiave come
ingestion-auth.jsonnella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.jsonsu Linux oC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonsu Windows) oppure aggiornacreds_file_pathinconfig.yamlin modo che corrisponda al percorso in cui lo salvi. - Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.
Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione.
- Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Ottieni l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sc query observiq-otel-collectorIl servizio dovrebbe essere visualizzato come RUNNING.
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sudo systemctl status observiq-otel-collectorIl servizio dovrebbe essere visualizzato come attivo (in esecuzione).
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.
Configura l'agente Bindplane per importare il syslog e inviarlo a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione: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_logsSostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: impostato su0.0.0.0:514per ascoltare su tutte le interfacce sulla porta UDP 514- Per i sistemi Linux in esecuzione come non root, utilizza la porta
1514o una porta successiva - Abbina questa porta alla configurazione dell'istruzione BMC AMI Defender SERVER
- Per i sistemi Linux in esecuzione come non root, utilizza la porta
Configurazione dell'esportatore:
creds_file_path: percorso completo del file della chiave JSON del account di servizio (opzione 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: sostituisciYOUR_CUSTOMER_IDcon il tuocustomer ID. Per maggiori dettagli, consulta Recupera l'ID cliente Google SecOps.location: sostituisci<LOCATION>con la regione della tua istanza Google SecOps (ad esempious,europeoasia-southeast1). L'esportatore anteponechronicle.googleapis.coma questo valore. Per l'elenco completo, consulta Endpoint regionali.project: sostituisci<PROJECT_NUMBER>con il numero di progetto da IAM e amministrazione > Impostazioni.endpoint: mantieni l'impostazionechronicle.googleapis.com.log_type: imposta suCA_ACF2(etichetta di importazione di Chronicle per i log ACF2)ingestion_labels: etichette facoltative per classificare i log (personalizza in base alle esigenze)
Esportatore API di importazione legacy
Se utilizzi il file di autenticazione dell'importazione dell'opzione 2, sostituisci il blocco
exporterscon il seguente. Impostacreds_file_pathsul percorso del file di autenticazione dell'acquisizione e, se l'istanza si trova al di fuori degli Stati Uniti, sostituiscimalachiteingestion-pa.googleapis.comcon il tuo endpoint regionale (ad esempio,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
Salva il file di configurazione
Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X - Windows: fai clic su File > Salva
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux:
Esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per verificare la presenza di errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows:
Scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
- Premi
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configura BMC AMI Defender for z/OS per inoltrare i record SMF ACF2
Modifica il membro $$$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:
- Digita
Eaccanto al membro del parametro $$$SERVR member. - Press Enter.
- Digita
- 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 per abilitare la raccolta dei record ACF2 SMF
Nell'elenco dei membri del set di dati
amihlq.CZAGENT.PARM, modifica il membro $$$CONFG member:- Type
Enext to the $$$CONFG. - Premi Invio.
- Type
Individua l'opzione di selezione dei record SMF ACF2 (cerca
ACF2oSMF 230).Rimuovi il commento dall'istruzione SELECT per ACF2:
SELECT IF(ACF2) SMF(ACF2)- Consente la raccolta dei record SMF ACF2 (tipo predefinito 230).
- Se il tuo sito utilizza un tipo di record SMF diverso per ACF2, verifica il tipo con il comando:
ACF SHOW SYSTEMSin TSO.
Salva le modifiche:
- Premi F3 per uscire dall'editor.
- Digita
SAVEquando richiesto. - Premi Invio.
- Nell'elenco dei membri del set di dati
amihlq.CZAGENT.PARM, controlla se esiste un membro denominato $$$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
Crea o modifica il membro del parametro dell'istruzione SMF ACF2
Modifica il membro e aggiungi la seguente istruzione SMF ACF2:
SMF ACF2(230) FACILITY(SECURITY4) SEVERITY(INFORMATIONAL)
ACF2(230): specifica il tipo di record SMF per ACF2 (il valore predefinito è 230; verifica conACF SHOW SYSTEMS).FACILITY(SECURITY4): imposta la funzionalità syslog su Security (4).SEVERITY(INFORMATIONAL): imposta la gravità predefinita su Informativa.- Le violazioni relative a password non valide o autorizzazioni vengono inviate automaticamente con gravità ERROR.
- Le violazioni delle risorse vengono inviate automaticamente con gravità ERROR.
(Facoltativo) Configura gravità e sottotipi ACF2 specifici:
SMF ACF2(230) +
FACILITY(SECURITY4) +
SEVERITY(INFORMATIONAL) +
SUBTYPES(P SEV(ERROR)) +
SUBTYPES(V SEV(ERROR)) +
SUBTYPES(D SEV(ERROR))
- Sottotipo P: eventi di password o autorità non validi (gravità ERRORE)
- Sottotipo V: violazioni delle risorse (gravità ERRORE)
- Sottotipo D: violazioni dell'accesso ai set di dati (gravità ERRORE)
Salva le modifiche:
- Premi F3 per uscire dall'editor.
- Digita
SAVEquando richiesto. - Premi Invio.
Aggiorna il file dei parametri di BMC AMI Defender
- Esci da ISPF e torna al prompt TSO READY.
Esegui il comando MODIFY per ricaricare il file dei parametri:
F CZAGENT,PARMS- Sostituisci
CZAGENTcon il nome dell'attività avviata di BMC AMI Defender, se diverso. - Questo comando ricarica il file dei parametri senza arrestare l'agente.
- Sostituisci
Verifica la configurazione controllando l'output di CZAPRINT:
- In ISPF, seleziona l'opzione 3.4 (DSLIST).
- Inserisci il pattern del nome del set di dati:
CZAGENT.CZAPRINT(o la convenzione di denominazione specifica del tuo sito). - Premi Invio.
- Digita
B(Sfoglia) accanto al set di dati CZAPRINT più recente. - Premi Invio.
Cerca messaggi che indicano la connessione riuscita al server syslog:
CZA0070I Connected to server bindplane-host-ip:514CZA0100I SMF ACF2 statement processed
Se l'attività avviata CZAGENT non è in esecuzione, avviala:
S CZAGENT
Verifica l'inoltro dei log ACF2
Genera eventi di sicurezza ACF2 di test:
- In TSO, tenta di accedere a un set di dati per il quale non disponi dell'autorizzazione.
- Tentativo di accesso con una password non valida (utilizza un account di prova).
- Eseguire un comando TSO registrato da ACF2.
Controlla i log dell'agente Bindplane per verificare la ricezione dei messaggi syslog ACF2:
Linux:
sudo journalctl -u observiq-otel-collector -f | grep ACF2Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" | findstr ACF2
Accedi alla console Google SecOps e verifica che i log ACF2 vengano importati:
- Vai a Ricerca > Ricerca UDM.
Inserisci la seguente query:
metadata.log_type = "CA_ACF2"Verifica che gli eventi di sicurezza ACF2 vengano visualizzati nei risultati di ricerca.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| extensions.auth.mechanism | Il meccanismo di autenticazione utilizzato. | |
| extensions.auth.type | Il tipo di autenticazione. | |
| somma | metadata.description | Una descrizione dell'evento. |
| metadata.event_type | Il tipo di evento. | |
| event_type, cat | metadata.product_event_type | Il tipo di evento specifico del prodotto. |
| product_version | metadata.product_version | La versione del prodotto. |
| terminale | principal.hostname | Il nome host associato all'entità. |
| nome | principal.user.user_display_name | Il nome visualizzato dell'utente. |
| usrName | principal.user.userid | L'ID utente. |
| security_result.action | L'azione intrapresa dal sistema di sicurezza. | |
| security_result.category | La categoria del risultato di sicurezza. | |
| classe | security_result.category_details | Dettagli aggiuntivi sulla categoria del risultato di sicurezza. |
| reason | security_result.severity | Il livello di gravità del risultato di sicurezza. |
| reason | security_result.severity_details | Informazioni dettagliate sulla gravità. |
| logstr | security_result.summary | Un riepilogo del risultato del controllo di sicurezza. |
| job_id | target.application | L'applicazione di destinazione. |
| job_group | target.group.group_display_name | Il nome visualizzato del gruppo. |
| target.namespace | Lo spazio dei nomi del target. | |
| dsn | target.resource.name | Nome della risorsa. |
| vol | target.resource.parent | La risorsa padre. |
| res, dsn | target.resource.product_object_id | L'identificatore dell'oggetto specifico del prodotto. |
| target.resource.resource_type | Il tipo di risorsa. | |
| nome | target.user.user_display_name | Il nome visualizzato dell'utente di destinazione. |
| usrName | target.user.userid | L'ID utente dell'utente target. |
| product_name | metadata.product_name | Il nome del prodotto che genera l'evento. |
| vendor_name | metadata.vendor_name | Il nome del fornitore. |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.