Raccogliere i log di Delinea Secret Server

Supportato in:

Questo documento spiega come raccogliere i log di Delinea (in precedenza Thycotic) Secret Server. Il parser trasforma i log non elaborati in un formato strutturato conforme al modello UDM (Unified Data Model) di Google Security Operations. Innanzitutto, estrae i campi chiave come timestamp, tipi di eventi e informazioni utente, quindi utilizza la logica condizionale in base al tipo di evento specifico per mappare i dati nei campi UDM appropriati, arricchendo infine i dati per l'analisi in Google SecOps.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google Security Operations
  • Host Windows 2016 o versioni successive o Linux con systemd
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
  • Accesso con privilegi a Delinea Secrets Server

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 Security Operations.
  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 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
            log_type: 'THYCOTIC'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

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
    

Configura Thycotic Secret Server per inviare i log utilizzando Syslog

  1. Accedi a Thycotic Secret Server con le credenziali amministrative.
  2. Vai ad Amministrazione > Configurazione.
  3. Fai clic su Modifica.
  4. Seleziona la casella di controllo Attiva logging Syslog/CEF e specifica i seguenti dettagli:
    • Server Syslog/CEF: inserisci l'indirizzo IP del server Syslog/Bindplane.
    • Protocollo Syslog/CEF: seleziona UDP o TCP (a seconda della configurazione del server Syslog o di Bindplane).
    • Porta Syslog/CEF: inserisci il numero di porta su cui è configurato l'ascolto del server Syslog o di Bindplane.
  5. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
Account_Domain event1.idm.read_only_udm.principal.domain Il valore viene estratto dal campo Account_Domain nel campo msg del log non elaborato.
Per utente event1.idm.read_only_udm.principal.user.userid Il valore viene estratto dal campo By User nel campo msg del log non elaborato.
ID contenitore event1.idm.read_only_udm.principal.asset.asset_id Il valore viene estratto dal campo Container Id nel campo msg del log non elaborato e ha come prefisso container_id:.
Nome container event1.idm.read_only_udm.principal.resource.name Il valore viene estratto dal campo Container name nel campo msg del log non elaborato.
cs2 event1.idm.read_only_udm.additional.fields[].value.string_value Il valore viene estratto dal campo cs2 nel campo msg del log non elaborato.
cs3 event1.idm.read_only_udm.target.file.full_path Il valore viene estratto dal campo cs3 nel campo msg del log non elaborato.
cs4 event1.idm.read_only_udm.principal.user.user_display_name Il valore viene estratto dal campo cs4 nel campo msg del log non elaborato.
Dettagli event1.idm.read_only_udm.additional.fields[].value.string_value Il valore viene estratto dal campo Details nel campo msg del log non elaborato.
fname event1.idm.read_only_udm.target.file.full_path Il valore viene estratto dal campo fname nel campo msg del log non elaborato.
Host event1.idm.read_only_udm.principal.hostname, event1.idm.read_only_udm.principal.asset.hostname Il valore viene estratto dal campo Host nel campo msg del log non elaborato.
Nome elemento event1.idm.read_only_udm.target.user.userid Il valore viene estratto dal campo Item Name nel campo msg del log non elaborato.
event1.idm.read_only_udm.additional.fields[].key Il valore è codificato in modo permanente su fname.
event1.idm.read_only_udm.additional.fields[].key Il valore è codificato in modo permanente su Group or User.
event1.idm.read_only_udm.additional.fields[].key Il valore è codificato in modo permanente su Details.
event1.idm.read_only_udm.additional.fields[].key Il valore è codificato in modo permanente su type_id.
event1.idm.read_only_udm.extensions.auth.type Il valore è codificato in modo permanente su MACHINE.
event1.idm.read_only_udm.metadata.description Il valore viene estratto dal campo thycotic_event, che viene estratto dal log non elaborato utilizzando un pattern grok.
event1.idm.read_only_udm.metadata.event_timestamp.seconds Il valore viene derivato dal campo rt, se presente, altrimenti dal campo ts. Entrambi i campi vengono estratti dal log non elaborato utilizzando i pattern grok.
event1.idm.read_only_udm.metadata.event_type Il valore viene determinato in base al campo thycotic_event e ad altre condizioni. Ad esempio, se thycotic_event è USER - LOGIN, il tipo di evento è impostato su USER_LOGIN.
event1.idm.read_only_udm.metadata.log_type Il valore è codificato in modo permanente su THYCOTIC.
event1.idm.read_only_udm.metadata.product_event_type Il valore viene estratto dal campo thycotic_event, che viene estratto dal log non elaborato utilizzando un pattern grok.
event1.idm.read_only_udm.metadata.product_log_id Il valore viene estratto dal campo action_id, che viene estratto dal log non elaborato utilizzando un pattern grok.
event1.idm.read_only_udm.metadata.product_name Il valore viene estratto dal campo device_product, che viene estratto dal log non elaborato utilizzando un pattern grok. Se il campo è vuoto, il valore è codificato in modo permanente su Secret Server.
event1.idm.read_only_udm.metadata.product_version Il valore viene estratto dal campo device_version, che viene estratto dal log non elaborato utilizzando un pattern grok.
event1.idm.read_only_udm.metadata.vendor_name Il valore è codificato in modo permanente su Thycotic.
event1.idm.read_only_udm.network.ip_protocol Il valore è impostato su TCP se il campo input.type è tcp.
event1.idm.read_only_udm.observer.application Il valore viene estratto dal campo agent.type, se presente, altrimenti è codificato in modo permanente su Secret Server.
event1.idm.read_only_udm.observer.asset_id Il valore è impostato su Agent ID: concatenato al campo agent.id.
event1.idm.read_only_udm.observer.hostname Il valore viene ricavato dal campo agent.hostname, se presente, altrimenti dal campo server.
event1.idm.read_only_udm.observer.platform_version Il valore viene estratto dal campo agent.version.
event1.idm.read_only_udm.observer.user.userid Il valore viene estratto dal campo agent.name.
event1.idm.read_only_udm.principal.asset.asset_id Il valore è impostato su ID: concatenato al campo host.id.
event1.idm.read_only_udm.principal.asset.hardware.cpu_platform Il valore viene estratto dal campo host.architecture.
event1.idm.read_only_udm.principal.asset.hostname Il valore viene ricavato dal campo server, se presente, altrimenti dal campo host.hostname.
event1.idm.read_only_udm.principal.asset.ip Il valore viene ricavato dal campo src, se presente, altrimenti dal campo src_ip.
event1.idm.read_only_udm.principal.hostname Il valore viene ricavato dal campo host.hostname, se presente, altrimenti dal campo server.
event1.idm.read_only_udm.principal.ip Il valore viene ricavato dal campo src, se presente, altrimenti dal campo src_ip o dal campo host.ip.
event1.idm.read_only_udm.principal.mac Il valore viene estratto dal campo host.mac.
event1.idm.read_only_udm.principal.platform Il valore è impostato su LINUX se il campo host_os_platform è centos, altrimenti è impostato sul valore in maiuscolo del campo host_os_platform.
event1.idm.read_only_udm.principal.platform_patch_level Il valore viene estratto dal campo host.os.kernel.
event1.idm.read_only_udm.principal.platform_version Il valore viene estratto dal campo host.os.version.
event1.idm.read_only_udm.principal.port Il valore viene estratto dal campo src_port, che a sua volta viene estratto dal campo log.source.address utilizzando un pattern grok.
event1.idm.read_only_udm.principal.user.user_display_name Il valore viene estratto dal campo cs4 nel campo msg del log non elaborato.
event1.idm.read_only_udm.principal.user.userid Il valore viene estratto dal campo suser nel campo msg del log non elaborato oppure dal campo By User se thycotic_event è USER - LOGIN, USER - LOGOUT, USER - LOGINFAILURE o USER - EDIT.
event1.idm.read_only_udm.security_result.action Il valore viene estratto dal campo Action nel campo msg del log non elaborato. Può anche essere impostato su ALLOW o BLOCK in base al valore di thycotic_event.
event1.idm.read_only_udm.security_result.description Il valore viene estratto dal campo temp_message, che contiene la parte rimanente del campo msg dopo l'estrazione di altri campi.
event1.idm.read_only_udm.security_result.severity Il valore viene determinato in base al campo syslog_severity. Ad esempio, se syslog_severity contiene error o warning, la gravità è impostata su HIGH. Se thycotic_event è System Log, la gravità è impostata su INFORMATIONAL.
event1.idm.read_only_udm.security_result.severity_details Il valore viene estratto dal campo syslog_severity.
event1.idm.read_only_udm.target.file.full_path Il valore viene creato concatenando i campi cs3 e fname con un separatore / se sono presenti entrambi i campi. Se è presente un solo campo, il valore viene estratto da questo campo.
event1.idm.read_only_udm.target.resource.product_object_id Il valore viene estratto dal campo type_id.
event1.idm.read_only_udm.target.user.userid Il valore viene estratto dal campo item_name nel campo msg del log non elaborato oppure dal campo Item Name se thycotic_event è USER - LOGIN, USER - LOGOUT, USER - LOGINFAILURE o USER - EDIT.
events.timestamp.seconds Il valore viene derivato dal campo rt, se presente, altrimenti dal campo ts. Entrambi i campi vengono estratti dal log non elaborato utilizzando i pattern grok.
rt event1.idm.read_only_udm.metadata.event_timestamp.seconds Il valore viene estratto dal campo rt nel campo msg del log non elaborato e viene utilizzato per impostare il timestamp dell'evento.
src event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip Il valore viene estratto dal campo src nel campo msg del log non elaborato.
src_ip event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip Il valore viene estratto dal campo src_ip, che a sua volta viene estratto dal campo log.source.address utilizzando un pattern grok.

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