Raccogliere i log di BeyondTrust Secure Remote Access (in precedenza BeyondTrust Privileged Remote Access)

Supportata in:

Questo documento spiega come importare i log di BeyondTrust Secure Remote Access (precedentemente noto come BeyondTrust Privileged Remote Access) in Google Security Operations utilizzando Bindplane.

BeyondTrust Secure Remote Access è una soluzione di gestione degli accessi con privilegi che consente alle organizzazioni di controllare, monitorare e verificare l'accesso remoto con privilegi per fornitori, appaltatori e amministratori interni che si connettono a sistemi critici. Fornisce l'inserimento delle credenziali, l'accesso just-in-time e la registrazione delle sessioni. BeyondTrust Secure Remote Access registra l'attività della sessione, gli eventi di autenticazione e le azioni amministrative tramite syslog.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Un host Windows 2016 o versioni successive o Linux con systemd.
  • Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
  • Accesso amministrativo all'interfaccia dell'appliance BeyondTrust Secure Remote Access serie B (/appliance).

Ottieni le credenziali di Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: 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 consoleGoogle Cloud 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 del 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 Chronicle Editor.
  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 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 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 finestre

  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 questa guida all'installazione.

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

  1. Accedi al file di configurazione:

    • Individua il file config.yaml. In genere, si trova nella directory /opt/observiq-otel-collector/ 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:
        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
        # 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: <your_customer_id>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'BEYONDTRUST_REMOTE_ACCESS'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
  • 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.
  • Sostituisci <PROJECT_NUMBER> con il numero di progetto indicato in IAM e amministrazione > Impostazioni.
  • Sostituisci <your_customer_id> con l'ID cliente effettivo.
  • Aggiorna /path/to/ingestion-authentication-file.json con il percorso del file in cui è stato salvato il file della chiave del account di servizio (opzione 1) nel passaggio 1.

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'importazione e, se la tua istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con l'endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    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: <your_customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'BEYONDTRUST_REMOTE_ACCESS'
        raw_log_field: body
        ingestion_labels:
    

Riavvia l'agente Bindplane per applicare le modifiche

Per riavviare l'agente Bindplane in Linux:

  1. Esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifica che il servizio sia in esecuzione:

    sudo systemctl status observiq-otel-collector
    
  3. Controlla i log per verificare la presenza di errori:

    sudo journalctl -u observiq-otel-collector -f
    

Per riavviare l'agente Bindplane in Windows:

  1. Scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Console dei 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.
  2. Verifica che il servizio sia in esecuzione:

    sc query observiq-otel-collector
    
  3. Controlla i log per verificare la presenza di errori:

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

Configura l'inoltro del syslog di BeyondTrust Secure Remote Access

  1. Accedi all'interfaccia di BeyondTrust Secure Remote Access B Series Appliance (/appliance).
  2. Vai a Sicurezza > Amministrazione appliance.
  3. Scorri verso il basso fino alla sezione Syslog.
  4. Nel campo Remote Syslog Server (Server Syslog remoto), inserisci il nome host o l'indirizzo IP dell'host dell'agente Bindplane (ad esempio, 192.168.1.100).
  5. Seleziona il formato del messaggio per i messaggi di notifica degli eventi:
    • RFC 5424: standard syslog moderno con dati strutturati (consigliato).
    • BSD (legacy): formato syslog BSD legacy (RFC 3164).
    • Syslog su TLS: syslog crittografato che utilizza la porta TCP 6514.
  6. Se necessario, modifica la porta predefinita:
    • I formati RFC 5424 e BSD utilizzano per impostazione predefinita UDP 514.
    • Syslog su TLS utilizza per impostazione predefinita la porta TCP 6514.
  7. Fai clic su Salva.

Verifica la pubblicazione di syslog

  1. Dopo aver configurato l'inoltro di syslog, avvia una sessione di assistenza di prova o accedi all'interfaccia amministrativa di /login.
  2. Sull'host dell'agente Bindplane, verifica che i log vengano ricevuti:

    sudo journalctl -u observiq-otel-collector -f
    

Per saperne di più, consulta la documentazione di syslog di BeyondTrust Privileged Remote Access.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
_field additional.fields Unita
additional_device_product additional.fields Unita
additional_device_vendor additional.fields Unita
additional_dst_priv additional.fields Unita
additional_event_name additional.fields Unita
additional_external_key_label additional.fields Unita
additional_jumpGroupId additional.fields Unita
additional_jumpGroupName additional.fields Unita
additional_jumpGroupType additional.fields Unita
additional_jumpointId additional.fields Unita
additional_jumpointName additional.fields Unita
additional_segment_number additional.fields Unita
additional_site_id additional.fields Unita
additional_total_segments additional.fields Unita
appliance_identifier_label additional.fields Unita
appliance_label additional.fields Unita
eventid_label additional.fields Unita
eventsubject_label additional.fields Unita
eventtype_label additional.fields Unita
format_version_label additional.fields Unita
nvps_actiontype_label additional.fields Unita
nvps_authenticationtype_label additional.fields Unita
nvps_createdate_label additional.fields Unita
nvps_eventseverity_label additional.fields Unita
nvps_subjectdescription_label additional.fields Unita
product_label additional.fields Unita
eventName extensions.auth.auth_details Mappata direttamente
mechanism extensions.auth.mechanism Unita
target extensions.auth.type Mappato: "rep_client", "web/login" → MACHINE, "rep_client", "web/login" → SSO, `rep_c…
intermediary_hostname intermediary.asset.hostname Mappata direttamente
intermediary_ip intermediary.asset.ip Unita
intermediary_hostname intermediary.hostname Mappata direttamente
intermediary_ip intermediary.ip Unita
msg metadata.description Mappato direttamente
datetime metadata.event_timestamp Analizzato come RFC 3339
eventdate metadata.event_timestamp Analizzato come MMM dd yyyy HH:mm:ss
timestamp metadata.event_timestamp Analizzato come ISO8601
timestampvalue metadata.event_timestamp Analizzato come yyyy-MM-ddTHH:mm:ssZZ
when metadata.event_timestamp Analizzato come UNIX
device_vendor metadata.event_type Mappatura: Bomgar → GENERIC_EVENT
eventName metadata.event_type Mappatura: (?i)login → USER_LOGIN, (?i)logout → USER_LOGOUT
has_principal metadata.event_type Mappatura: true → NETWORK_CONNECTION, true → STATUS_UPDATE
category metadata.product_event_type Mappato direttamente
event_name metadata.product_event_type Mappato direttamente
id metadata.product_event_type Mappato direttamente
nvps_auditid metadata.product_log_id Mappato direttamente
product_log_id metadata.product_log_id Mappato direttamente
device_version metadata.product_version Mappato direttamente
version metadata.product_version Mappato direttamente
sessionId network.session_id Mappato direttamente
agentid observer.application Mappato direttamente
product_event_type principal.asset.hostname Mappato direttamente
nvps_ipaddress principal.asset.ip Unita
sourceip principal.asset.ip Unita
product_event_type principal.hostname Mappata direttamente
nvps_ipaddress principal.ip Unita
sourceip principal.ip Unita
srcHost principal.ip Unita
who_ip principal.ip Unita
process_id principal.process.pid Mappata direttamente
srcUser principal.user.user_display_name Mappato direttamente
user_display_name principal.user.user_display_name Mappato direttamente
srcUid principal.user.userid Mappato direttamente
user principal.user.userid Mappato direttamente
userid principal.user.userid Mappato direttamente
who principal.user.userid Mappato direttamente
security_action security_result.action Unita
status security_result.action_details Mappata direttamente
reason security_result.description Mappata direttamente
severity security_result.severity Valori mappati (5 in totale, ad es. 0 → UNKNOWN_SEVERITY, 1 → LOW, 2 → MEDIUM)
eventName security_result.summary Mappata direttamente
eventname security_result.summary Mappato direttamente
nvps_systemname target.application Mappato direttamente
target target.application Mappato direttamente
filePath target.file.full_path Mappato direttamente
fsize target.file.size Mappato direttamente
deviceHost target.hostname Mappato direttamente
site target.hostname Mappato direttamente
dstHost target.ip Unita
nvps_username_label target.resource.attribute.labels Unita
nvps_appuserid target.user.product_object_id Mappata direttamente
dstUser target.user.user_display_name Mappato direttamente
dstUid target.user.userid Mappata direttamente
N/D extensions.auth.type Costante: MACHINE
N/D metadata.event_type Costante: USER_LOGIN
N/D metadata.product_name Costante: BeyondTrust Secure Remote Access
N/D metadata.vendor_name Costante: BeyondTrust
N/D security_result.severity Costante: UNKNOWN_SEVERITY

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