Raccogliere i log di Skyhigh Security

Supportato in:

Questo documento spiega come importare i log di Skyhigh Security (in precedenza McAfee Skyhigh CASB) in Google Security Operations utilizzando Bindplane. Il parser trasforma i log da un formato SYSLOG + KV in un modello Unified Data Model (UDM). Innanzitutto, normalizza il messaggio di log in coppie chiave-valore, quindi mappa i campi estratti agli attributi UDM corrispondenti all'interno dell'oggetto event.idm.read_only_udm, classificando il tipo di evento in base alla presenza e ai valori di campi specifici.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Un host Windows 2016 o versioni successive oppure Linux con systemd
  • Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
  • Installato e configurato Skyhigh Cloud Connector
  • Accesso privilegiato a Skyhigh Security Cloud Connector

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
            log_type: 'MCAFEE_SKYHIGH_CASB'
            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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Prerequisiti prima di scaricare il client Logging

Assicurati di avere i seguenti dettagli:

  1. Privilegio Utente di Usage Analytics: il tuo account deve disporre del ruolo Utenti di Usage Analytics.
  2. ID cliente: segui questi passaggi per trovare il tuo ID cliente in Skyhigh CASB:
    • Accedi a Skyhigh CASB.
    • Vai a Impostazioni > Infrastruttura > Gestione proxy client.
    • Fai clic su Configurazione globale > Autenticazione tenant.
    • Nella sezione Impostazioni globali, trova l'ID cliente visualizzato.
  3. Indirizzo email e password: le credenziali di accesso tue (o dell'account di servizio dedicato). Se accedi utilizzando SAML senza inviare una password, non puoi installare il client di logging.

Scaricare e installare il client di logging Skyhigh

  1. Scarica il client di logging in un'istanza dedicata.
  2. Installa il client Logging (decomprimi il file EXE scaricato, se necessario).
  3. Al termine dell'installazione, apri il Logging Client.
  4. Nella pagina Configurazione, fornisci i seguenti dettagli di configurazione:
    1. ID cliente: inserisci l'ID cliente Skyhigh CASB ottenuto nel passaggio precedente.
    2. Servizio: seleziona SSE se utilizzi Skyhigh SSE o WGCS se utilizzi questo prodotto insieme a Trellix ePO.
    3. Regione: scegli un codice regionale o nazionale a seconda di dove sono archiviati i dati:
      • UE - Unione Europea
      • IN — India
      • SG — Singapore
      • UE — Emirati Arabi Uniti
      • UK — United Kingdom
      • US — Stati Uniti
    4. Nome: inserisci il nome utente, che in genere è l'indirizzo email utilizzato per accedere a Secure Web Gateway o a un'istanza dedicata.
    5. Password: inserisci la password che utilizzi per accedere a Secure Web Gateway. Se accedi con SAML, non puoi utilizzare il client di logging.
    6. Versione API: inserisci version 13.
    7. Tipo di log: puoi scaricare diversi tipi di log, inclusi quelli con dati provenienti dal web, dall'isolamento del browser remoto (RBI), dall'accesso privato e da Cloud Firewall.
    8. Seleziona Invia come Syslog e fornisci i seguenti dettagli di configurazione:
      • Host client Syslog: inserisci l'indirizzo IP dell'agente Bindplane.
      • Porta client Syslog: inserisci il numero di porta dell'agente Bindplane.
      • Trasporto: seleziona UDP o TCP, a seconda della configurazione dell'agente Bindplane.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
EventReceivedTime metadata.event_timestamp Convertito in timestamp dal formato yyyy-MM-dd HH:mm:ss
FileSize target.file.size Mappato direttamente, convertito in uinteger
Nome host principal.hostname Mappato direttamente
MessageSourceAddress principal.ip Mappato direttamente, unito se più istanze
Gravità additional.fields.value.string_value (chiave: SEVERITY) Mappato direttamente
SeverityValue additional.fields.value.string_value (chiave: SEVERITY_VALUE) Mappato direttamente
SourceModuleName additional.fields.value.string_value (chiave: SOURCE_MODULE_NAME) Mappato direttamente
SourceModuleType principal.resource.resource_subtype Mappato direttamente
SyslogFacility security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY) Mappato direttamente
SyslogFacilityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY_VALUE) Mappato direttamente
SyslogSeverity security_result.about.resource.attribute.labels.value (key: SYSLOG_SEVERITY) Mappato direttamente
SyslogSeverityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_SEVERITY_VALUE) Mappato direttamente
activityName metadata.product_event_type Mappatura diretta, parentesi rimosse
actorId principal.user.userid Mappato direttamente, aggiunto anche a email_addresses se è un'email
actorIdType principal.user.attribute.roles.name Mappato direttamente
collaborationSharedLink security_result.about.resource.attribute.labels.value (chiave: COLLABORATION_SHARED_LINK) Mappato direttamente
contentItemId target.file.full_path (se contentItemType è FILE) Mappato direttamente, preventivi rimossi
contentItemId target.url (se contentItemType è SAAS_RESOURCE) Mappato direttamente, preventivi rimossi
contentItemHierarchy additional.fields.value.string_value (chiave: CONTENT_ITEM_HIERARCHY) Mappato direttamente, preventivi rimossi
contentItemName target.resource.name Mappato direttamente, preventivi rimossi
contentItemType additional.fields.value.string_value (chiave: CONTENT_ITEM_TYPE) Mappato direttamente
incidentGroup security_result.detection_fields.value (chiave: INCIDENT_GROUP) Mappato direttamente
incidentId metadata.product_log_id Mappato direttamente
incidentRiskScore security_result.detection_fields.value (key: INCIDENT_RISK_SCORE) Mappato direttamente
incidentRiskSeverityId Utilizzato in combinazione con riskSeverity per determinare security_result.severity
informationAccountId target.resource.product_object_id Mappato direttamente
informationAnomalyCategory security_result.category_details Mappato direttamente, preventivi rimossi
informationAnomalyCause security_result.detection_fields.value (chiave: INFO_ANOMALY_CAUSE) Mappato direttamente, preventivi rimossi
informationCategory security_result.category_details Mappato direttamente
informationConfigType additional.fields.value.string_value (chiave: INFORMATION_CONFIG_TYPE) Mappato direttamente, preventivi rimossi
informationContentItemParent target.resource.parent Mappato direttamente, preventivi rimossi
informationEventId additional.fields.value.string_value (chiave: INFORMATION_EVENT_ID) Mappato direttamente
informationExternalCollaboratorsCount additional.fields.value.string_value (chiave: INFORMATION_COLLAB_COUNT) Mappato direttamente
informationFileTypes additional.fields.value.list_value.values.string_value (chiave: FILE_TYPE) Estratto da una stringa simile a JSON, parentesi e virgolette rimosse
informationLastExecutedResponseLabel additional.fields.value.string_value (chiave: INFORMATION_LAST_RESPONSE) Mappato direttamente
informationScanName metadata.description Mappato direttamente, preventivi rimossi
informationScanRunDate Non mappato a UDM
informationSource additional.fields.value.string_value (chiave: INFORMATION_SOURCE) Mappato direttamente
informationUniqueMatchCount additional.fields.value.string_value (chiave: INFORMATION_UNQ_MATCH_COUNT) Mappato direttamente
informationUserAttributesSAMAccountName principal.user.user_display_name Mappatura diretta, parentesi rimosse
instanceId principal.resource.product_object_id Mappato direttamente
instanceName principal.resource.name Mappato direttamente, preventivi rimossi
policyId security_result.rule_id Mappato direttamente
policyName security_result.summary Mappato direttamente, preventivi rimossi
risposta Utilizzato per determinare security_result.action (ALLOW o BLOCK)
riskSeverity Utilizzato in combinazione con incidentRiskSeverityId per determinare security_result.severity, convertito in maiuscolo
serviceNames target.application Mappatura diretta, parentesi, virgolette e spazi aggiuntivi rimossi
sourceIps principal.ip Estratto da una stringa simile a JSON, unito se sono presenti più istanze
stato additional.fields.value.string_value (chiave: STATUS) Mappato direttamente
threatCategory security_result.threat_name Mappato direttamente, preventivi rimossi
totalMatchCount security_result.detection_fields.value (chiave: TOTAL_MATCH_COUNT) Mappato direttamente
N/D metadata.vendor_name MCAFEE - Valore statico
N/D metadata.product_name MCAFEE_SKYHIGH_CASB - Valore statico
N/D metadata.log_type MCAFEE_SKYHIGH_CASB - Valore statico
N/D principal.resource.type VIRTUAL_MACHINE - Imposta se sono presenti instanceName o instanceId
N/D metadata.event_type Determinato in base a una serie di condizioni:
- USER_RESOURCE_UPDATE_CONTENT se sono presenti actorId, contentItemId o contentItemName
- USER_UNCATEGORIZED se sono presenti actorId e target
- STATUS_UPDATE se sono presenti Hostname o MessageSourceAddress
- GENERIC_EVENT altrimenti
N/D security_result.severity Determinato in base alla combinazione di riskSeverity e incidentRiskSeverityId:
- LOW se riskSeverity è LOW e incidentRiskSeverityId è 0
- MEDIUM se riskSeverity è MEDIUM e incidentRiskSeverityId è 1
- HIGH se riskSeverity è HIGH e incidentRiskSeverityId è 2
- INFORMATIONAL se riskSeverity è INFO e incidentRiskSeverityId è 3
N/D security_result.action Determinato in base al valore della risposta:
- ALLOW se la risposta contiene allow (senza distinzione tra maiuscole e minuscole)
- BLOCK se la risposta contiene Violation (senza distinzione tra maiuscole e minuscole)

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