Raccogli i log di ForgeRock OpenAM

Versione parser: 4.0

Supportato in:

Questo documento spiega come importare i log di ForgeRock OpenAM in Google Security Operations utilizzando l'agente Bindplane.

ForgeRock OpenAM è una soluzione di gestione dell'accesso che genera messaggi syslog per eventi di autenticazione, decisioni di controllo dell'accesso, attività della sessione e modifiche alla configurazione. Il parser estrae i campi dagli audit log in formato JSON e li mappa al modello UDM (Unified Data Model).

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 il server ForgeRock OpenAM
  • Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso amministratore alla console AM (ad esempio, amAdmin)

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.
  1. Accedi alla Google Cloud console e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio bindplane-ingest).
    • Descrizione service account: inserisci una descrizione (ad esempio Bindplane agent log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Editor Chronicle.
  7. Fai clic su Continua, quindi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) oppure aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il numero di progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

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

Ottieni 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 organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul tuo 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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

    Il servizio dovrebbe essere visualizzato come RUNNING.

Installazione di Linux

  1. Apri un terminale con privilegi 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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

    Il 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.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/openam:
        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: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: OPENAM
        raw_log_field: body
    
    service:
      pipelines:
        logs/openam_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/openam
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del destinatario:

    • listen_address: Indirizzo IP e porta da ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • La porta 514 è la porta syslog standard (richiede l'accesso root su Linux; utilizza 1514 per l'accesso non root)
  • 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
    • customer_id: ID cliente copiato dalla console Google SecOps
    • location: sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore antepone chronicle.googleapis.com a 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'impostazione chronicle.googleapis.com.

Esportatore API di importazione legacy

  • Se utilizzi il file di autenticazione dell'importazione dell'opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'acquisizione e, se l'istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con il tuo endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/openam:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: OPENAM
        raw_log_field: body
    

Salva il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+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-collector
    
    1. Verifica che il servizio sia in esecuzione:

      sudo systemctl status observiq-otel-collector
      
    2. Controlla 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-collector
      
    • Console Servizi:

      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per individuare eventuali errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

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 > Audit Logging.
    • Per creare il gestore di eventi in un realm, vai a Realm > Nome realm > Servizi > Audit Logging.
  3. Fai clic su Aggiungi una configurazione secondaria > Syslog.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome: inserisci un nome per il gestore di eventi (ad esempio, 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.
  5. Fai clic su Crea.
  6. Nella scheda Configurazione gestore generale, seleziona Attivato per attivare il gestore di eventi.
  7. Seleziona gli argomenti per gli audit log:
    • Accesso
    • Attività
    • Autenticazione
    • Configurazione
  8. Fai clic su Salva.
  9. Nella scheda Syslog Configuration (Configurazione Syslog), fornisci i seguenti dettagli di configurazione:
    • Nome host del server: inserisci l'indirizzo IP di Bindplane.
    • Porta server: inserisci il numero di porta Bindplane.
    • Timeout connessione: inserisci il numero di secondi per la connessione (ad esempio, 120).
    • Protocollo di trasporto: seleziona UDP.
    • Facility: seleziona Local0.
    • Tutti gli argomenti impostano la gravità su INFORMATIVA.
  10. Fai clic su Salva.
  11. Nella scheda Buffering, seleziona Buffering abilitato per attivarlo.
  12. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
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 all'entità nell'evento.
entries[0].info.ipAddress principal.ip L'indirizzo IP associato all'entità nell'evento.
entries[0].info.nodeId principal.resource.id L'identificatore univoco del nodo nell'albero di autenticazione. Con 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. Preceduto da "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. Impostato come hardcoded su "SSO". Determinato dalla logica basata su eventName e altri campi. Può essere GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP o STATUS_UPDATE. Codificato in modo permanente su "OPENAM". Impostato come hardcoded su "OpenAM". Impostato come hardcoded su "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 dei gruppi associati all'utente.
am_group target.user.group_identifiers Gli identificatori dei gruppi 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 di 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.
http.request.headers.host.0 tatget.hostname Mappato dal log delle modifiche
http.request.headers.user-agent.0 network.http.user_agent Mappato dal log delle modifiche
extensions.auth.type SSO 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.