Raccogliere i log di ForgeRock OpenAM

Supportato in:

Questo documento spiega come importare i log di ForgeRock OpenAM in Google Security Operations utilizzando Bindplane. Il parser estrae i campi dai log nei formati CSV, Syslog + KV o JSON, li normalizza e li mappa al Unified Data Model (UDM). Gestisce vari tipi di eventi OpenAM, tra cui accesso/disconnessione, risultati di accesso e log generali, arricchendo i dati con informazioni su utenti, gruppi e reti ed eseguendo trasformazioni specifiche per diversi formati di log e tipi di eventi. Il parser dà la priorità all'analisi JSON, poi esegue il fallback a Syslog+KV e infine a CSV, eliminando i log dei formati non supportati.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Windows 2016 o versioni successive oppure un host Linux con systemd
  • Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
  • Accesso privilegiato a Forgerock OpenAM (ad esempio amAdmin)

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. 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

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione, consulta la guida all'installazione.

Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps

  1. Accedi al file di configurazione:
    • Individua il file config.yaml. In genere, si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'OPENAM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare l'audit logging in Forgerock OpenAM

  1. Accedi alla console AM.
  2. Vai a Configura > Servizi globali > Registrazione audit.
  3. Attiva l'audit logging per avviare la funzionalità.
  4. Negli elenchi Filtri lista consentita campi e Filtri lista bloccata campi, inserisci i valori da includere (lista consentita) o escludere (lista bloccata) dai log degli eventi di controllo.
  5. Fai clic su Salva.

Configura i gestori Syslog per Forgerock OpenAM

  1. Accedi alla console AM come amministratore, ad esempio amAdmin.
  2. Per creare il gestore di eventi nella configurazione globale, vai a Configura > Servizi globali > Registrazione audit.
  3. Per creare il gestore di eventi in un realm, vai a Realm > Nome del realm > Servizi > Registrazione dei controlli.
  4. Fai clic su Aggiungi una configurazione secondaria > Syslog.
  5. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome per il gestore di eventi (ad esempio Google SecOps Syslog Event Handler).
    • Nome host del server: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta server: inserisci il numero di porta dell'agente Bindplane (ad esempio, 514 per UDP).
    • Protocollo di trasporto: seleziona UDP.
    • Timeout connessione: inserisci il numero di secondi per la connessione (ad esempio, 120).
    • (Facoltativo) Attiva l'opzione Buffering.
  6. Fai clic su Crea.
  7. Dopo aver creato il gestore eventi di controllo syslog, vengono visualizzate diverse schede di configurazione.
  8. Nella scheda Configurazione gestore generale, seleziona Attivato per attivare il gestore eventi, se disattivato.
  9. Seleziona gli argomenti per i log di controllo:
    • Accesso
    • Attività
    • Autenticazione
    • Configurazione
  10. Fai clic su Salva.
  11. Nella scheda Configurazione Syslog, fornisci i seguenti dettagli di configurazione:
    • Nome host del server: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta del server: inserisci il numero di porta dell'agente Bindplane.
    • Timeout connessione: inserisci il numero di secondi per la connessione (ad esempio, 120).
    • Protocollo di trasporto: seleziona UDP.
    • Struttura: seleziona Local0.
    • Tutti gli argomenti impostano la gravità su INFORMATIVA.
  12. Fai clic su Salva.
  13. Nella scheda Buffering, seleziona Buffering attivato per attivarlo.

  14. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
client.ip principal.ip L'indirizzo IP del client che effettua la richiesta.
client.ip principal.asset.ip L'indirizzo IP dell'asset client che effettua la richiesta.
client.port principal.port La porta utilizzata dal client che effettua la richiesta.
entries[0].info.authLevel principal.resource.resource_subtype Il livello di autenticazione associato all'evento. Prefisso "authLevel:".
entries[0].info.displayName security_result.description Un nome descrittivo per il nodo nell'albero di autenticazione.
entries[0].info.ipAddress principal.asset.ip L'indirizzo IP associato al principal nell'evento.
entries[0].info.ipAddress principal.ip L'indirizzo IP associato al principal nell'evento.
entries[0].info.nodeId principal.resource.id L'identificatore univoco del nodo nell'albero di autenticazione. Prefisso "nodeId:".
entries[0].info.nodeOutcome principal.resource.attribute.labels.value Il risultato del nodo nell'albero di autenticazione.
entries[0].info.nodeType principal.resource.type Il tipo di nodo nell'albero di autenticazione. Con il prefisso "nodeType:".
entries[0].info.treeName principal.resource.name Il nome dell'albero di autenticazione. Prefisso "treeName:".
eventName metadata.product_event_type Il nome dell'evento non elaborato dai log di OpenAM.
http.request.headers.host[0] target.asset.hostname Il nome host del server di destinazione, estratto dall'intestazione host.
http.request.headers.host[0] target.hostname Il nome host del server di destinazione, estratto dall'intestazione host.
http.request.headers.user-agent[0] network.http.user_agent Lo user agent della richiesta HTTP.
http.request.method network.http.method Il metodo HTTP utilizzato nella richiesta.
http.request.path target.url Il percorso dell'URL della richiesta HTTP.
info.failureReason security_result.summary Il motivo di un errore di autenticazione. Codificato in modo permanente su "SSO". Determinato dalla logica in base a eventName e ad altri campi. Può essere GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP o STATUS_UPDATE. Codificato in modo permanente su "OPENAM". Codificato in modo permanente su "OpenAM". Codificato come "ForgeRock".
principal target.user.userid L'ID utente coinvolto nell'evento, estratto dai campi userId, principal o runAs.
result security_result.action_details Il risultato dell'evento (ad es. "SUCCESSFUL", "FAILED").
response.detail.reason security_result.summary Il motivo di un errore in un evento di risultato dell'accesso.
response.status security_result.action_details Lo stato della risposta in un evento di risultato dell'accesso.
runAs target.user.userid L'ID utente coinvolto nell'evento, estratto dai campi userId, principal o runAs.
security_result.action security_result.action L'azione intrapresa a seguito dell'evento di sicurezza (ad es. "ALLOW", "BLOCK").
server.ip target.asset.ip L'indirizzo IP del server di destinazione.
server.ip target.ip L'indirizzo IP del server di destinazione.
server.port target.port La porta del server di destinazione.
timestamp metadata.event_timestamp Il timestamp dell'evento.
trackingIds metadata.product_log_id L'ID monitoraggio associato all'evento.
transactionId metadata.product_deployment_id L'ID transazione associato all'evento.
userId target.user.userid L'ID utente coinvolto nell'evento, estratto dai campi userId, principal o runAs.
userId target.user.group_identifiers Gli identificatori del gruppo associati all'utente.
am_group target.user.group_identifiers Gli identificatori del gruppo associati all'utente.
am_user target.user.email_addresses L'indirizzo email dell'utente, se presente nel campo am_user.
loginID[0] target.user.userid L'ID accesso utilizzato nell'evento.
loginID[0] target.user.email_addresses L'indirizzo email utilizzato per l'accesso, se presente nel campo loginID.
hostip intermediary.hostname Il nome host di un dispositivo intermedio.
hostip intermediary.ip L'indirizzo IP di un dispositivo intermediario.
src_ip principal.asset.ip L'indirizzo IP di origine.
src_ip principal.ip L'indirizzo IP di origine.
desc metadata.description La descrizione dell'evento.
payload metadata.description Il payload dell'evento.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.