Raccogli i log di IBM Security Access Manager
Questo documento spiega come importare i log di IBM Security Access Manager in Google Security Operations utilizzando Bindplane.
IBM Verify Identity Access (in precedenza IBM Security Access Manager / IBM Security Verify Access) è una soluzione di sicurezza basata su appliance di rete che fornisce servizi di gestione dell'accesso, sicurezza web e autenticazione. Applica le norme di sicurezza per le risorse basate sul web utilizzando un'architettura proxy inverso (WebSEAL) e genera log di controllo, autenticazione, autorizzazione e sistema fondamentali per il monitoraggio della sicurezza.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive o host Linux con
systemd - Connettività di rete tra l'agente Bindplane e l'appliance IBM Verify Identity Access
- Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
- Accesso privilegiato all'interfaccia di gestione locale dell'accesso all'identità di IBM Verify (LMI)
Recuperare il file di autenticazione dell'importazione di Google SecOps
- 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 Bindplane.
Recuperare 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 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 IN ESECUZIONE.
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 syslog e inviarli a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /etc/bindplane-agent/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/chronicle_w_labels: compression: gzip creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: 'IBM_SAM' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del destinatario:
listen_address: L'indirizzo IP e la porta su cui l'agente Bindplane è in ascolto dei messaggi syslog in entrata. Utilizza0.0.0.0:514per ascoltare su tutte le interfacce sulla porta514. Modifica la porta se514è già in uso o se preferisci una porta non privilegiata come1514.- Per utilizzare TCP anziché UDP, sostituisci
udplogcontcplogsia nella sezionereceiversche nella sezionepipelines.
Configurazione dell'esportatore:
creds_file_path: il percorso completo del file di autenticazione dell'acquisizione scaricato in precedenza:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: l'ID cliente Google SecOps copiato in precedenza.endpoint: URL dell'endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per l'elenco completo, consulta Endpoint regionali.
- Stati Uniti:
log_type: deve essere impostato suIBM_SAM.
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 individuare eventuali 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 dei 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 l'inoltro di syslog in IBM Verify Identity Access
Aggiungere una definizione del server syslog remoto
- Accedi all'interfaccia di gestione locale (LMI) di IBM Verify Identity Access.
- Vai a Monitora > Log > Inoltro Syslog remoto.
- Nella pagina Inoltro syslog remoto, fai clic su Aggiungi.
- Fornisci i seguenti dettagli di configurazione:
- Server: inserisci l'indirizzo IP o il nome host dell'host dell'agente Bindplane (ad esempio,
192.168.1.100). - Porta: inserisci il numero di porta su cui è in ascolto l'agente Bindplane (ad esempio,
514). - Protocollo: seleziona UDP in modo che corrisponda al ricevitore
udplognella configurazione dell'agente Bindplane. Se hai configurato l'agente Bindplane contcplog, seleziona TCP. - Formato: seleziona il formato del messaggio syslog:
- Protocollo BSD Syslog: formato RFC 3164 (consigliato per la massima compatibilità).
- Protocollo Syslog: formato RFC 5424.
- Debug: lascia la casella deselezionata, a meno che non sia necessaria la risoluzione dei problemi. Se questa opzione è abilitata, vengono scritte informazioni di debug aggiuntive nel file di log
rsyslog_forwarderaccessibile dalla pagina Visualizzazione dei file di log dell'applicazione.
- Server: inserisci l'indirizzo IP o il nome host dell'host dell'agente Bindplane (ad esempio,
- Fai clic su Salva.
Configura le origini log per il server syslog remoto
- Nella pagina Forwarding Syslog remoto, seleziona la voce del server Syslog remoto che hai creato.
- Fai clic su Origini.
- Fai clic su Aggiungi per aggiungere un'origine log.
- Fornisci i seguenti dettagli di configurazione:
- Nome: seleziona un'origine log dall'elenco a discesa. Le origini log disponibili sono:
- Messaggi LMI: messaggi dell'applicazione LMI
- LMI Trace: log di traccia e di debug LMI
- Accesso LMI: log di accesso HTTP LMI
- Messaggi di runtime: messaggi dell'ambiente di runtime
- Runtime Trace: log di traccia e debug del runtime
- Controllo runtime: eventi di controllo runtime (autenticazione, autorizzazione)
- Log di runtime: log delle applicazioni di runtime
- WebSEAL: log del proxy inverso web (richiede la selezione di un nome istanza e di un file di log)
- Authorization Server (Server di autorizzazione): log del server di autorizzazione (richiede la selezione di un Nome istanza e di un File di log)
- Policy Server: log del server delle policy (richiede la selezione di un file di log)
- Embedded User Registry (Registro utenti incorporato) - Embedded LDAP user registry logs (Log del registro utenti LDAP incorporato)
- Cluster: log di gestione dei cluster
- Sistema: log a livello di sistema operativo
- DSC: log della cache di sessione distribuita
- FELB: log del bilanciatore del carico frontend
- Nome istanza: questo campo è disponibile solo quando è selezionato WebSEAL o Authorization Server nel campo Nome. Seleziona il nome dell'istanza dall'elenco a discesa (ad esempio,
default). - File di log: questo campo è disponibile quando nel campo Nome è selezionato WebSEAL, Authorization Server, Policy Server o Runtime Logs. Seleziona il file di log specifico dall'elenco a discesa.
- Tag: inserisci un nome tag univoco per questa origine log. Il tag non deve contenere spazi (ad esempio,
WebSEAL_AuditoRuntimeAudit). - Facility: seleziona una categoria di facility syslog per le voci di log inoltrate (ad esempio,
local0,local1,authouser). - Gravità: seleziona Informativa per acquisire tutte le voci di log.
- Nome: seleziona un'origine log dall'elenco a discesa. Le origini log disponibili sono:
- Fai clic su OK.
Per aggiungere altre origini log, ripeti i passaggi da 3 a 5 per ogni origine che vuoi inoltrare.
Fai clic su Salva per applicare la configurazione dell'origine log.
Per attivare le modifiche, vai nella parte superiore della pagina e fai clic su Esegui il deployment delle modifiche in attesa. La configurazione dell'inoltro di syslog non è attiva finché non viene implementata.
Tabella di mappatura UDM
| Campo log | mappatura UDM | Logica |
|---|---|---|
| sha256_value | additional.fields | Unito alla mappa {key: "sha256_value", value: {string_value: sha256_value}} e alla mappa {key: "connection_type", value: {string_value: connection_type}} |
| connection_type | additional.fields | |
| dvc_ip | intermediary.hostname | Valore copiato direttamente se dvc_ip non è un IP valido |
| dvc_ip | intermediary.ip | Imposta su dvc_ip se è un IP valido; unisci gli IP aggiuntivi da ip_address che sono validi, non uguali a src_ip o dst_ip, non vuoti, non "-" |
| ip_address | intermediary.ip | |
| ts | metadata.collected_timestamp | Analizzato da ts2, se presente, utilizzando AAAA-MM-GGTHH:mm:ss, altrimenti da ts utilizzando ISO8601, MMM gg HH:mm:ss, MMM g HH:mm:ss |
| ts2 | metadata.collected_timestamp | |
| descrizione | metadata.description | Valore copiato direttamente |
| timestamp | metadata.event_timestamp | Analizzato utilizzando i formati di data gg/MMM/aaaa:HH:mm:ss Z o aaaa-MM-gg-HH:mm:ss.SSSZZI |
| src_ip | metadata.event_type | Imposta su "NETWORK_HTTP" se sono presenti principal (src_ip o src_host) e target (dst_ip o target_hostname) e http (method o response_code), "NETWORK_CONNECTION" se sono presenti principal e target, "STATUS_UPDATE" se è presente principal, altrimenti "GENERIC_EVENT" |
| src_host | metadata.event_type | |
| dst_ip | metadata.event_type | |
| target_hostname | metadata.event_type | |
| metodo | metadata.event_type | |
| response_code | metadata.event_type | |
| product_event_type | metadata.product_event_type | Valore copiato direttamente |
| metadata.product_name | metadata.product_name | Impostato su "IBM_SAM" |
| metadata.vendor_name | metadata.vendor_name | Impostato su "IBM" |
| proto | network.application_protocol | Valore copiato direttamente se in HTTP, HTTPS |
| versione | network.application_protocol_version | Valore copiato direttamente |
| metodo | network.http.method | Valore di method_value se non è vuoto, altrimenti method |
| method_value | network.http.method | |
| response_code | network.http.response_code | Convertito in numero intero |
| ip_protocol_value | network.ip_protocol | Valore copiato direttamente se in TCP, UDP, ICMP |
| rcv_bytes | network.received_bytes | Convertito in uinteger |
| sent_bytes | network.sent_bytes | Convertito in uinteger |
| request_id | network.session_id | Valore copiato direttamente |
| src_application | principal.application | Valore copiato direttamente |
| src_host | principal.asset.hostname | Valore copiato direttamente |
| src_ip | principal.asset.ip | Valore copiato direttamente se non è vuoto, spazio, null, N/A, - |
| file_name | principal.file.full_path | Valore copiato direttamente |
| src_host | principal.hostname | Valore copiato direttamente |
| src_ip | principal.ip | Valore copiato direttamente se non è vuoto, spazio, null, N/A, - |
| src_port | principal.port | Convertito in numero intero |
| pid | principal.process.pid | Valore copiato direttamente |
| src_resource | principal.resource.name | Valore copiato direttamente |
| user_name | principal.user.userid | Valore copiato direttamente se non non autenticato o vuoto |
| descrizione | security_result.action | Imposta su "BLOCK" se la descrizione contiene "could not establish a secure connection" (impossibile stabilire una connessione sicura) o "could not be determined" (non è stato possibile determinare) o "have expired" (sono scaduti) |
| gravità | security_result.severity | Valore copiato direttamente, con AVVISO mappato su MEDIO |
| user_name | security_result.summary | Impostato su "unauthenticated" se user_name == "unauthenticated" |
| target_hostname | target.asset.hostname | Valore copiato direttamente |
| dst_ip | target.asset.ip | Valore copiato direttamente se non è vuoto, spazio, null, N/A, - |
| target_hostname | target.hostname | Valore copiato direttamente |
| dst_ip | target.ip | Valore copiato direttamente se non è vuoto, spazio, null, N/A, - |
| url | target.url | Concatenato da URL e URL1 |
| url1 | target.url | |
ip_protocol_value |
event.idm.read_only_udm.network.ip_protocol |
Mappato dal log delle modifiche |
method_value |
event.idm.read_only_udm.network.http.method |
Mappato dal log delle modifiche |
sha256_value |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
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.