Recolha registos de segurança do Skyhigh

Compatível com:

Este documento explica como carregar registos do Skyhigh Security (anteriormente McAfee Skyhigh CASB) para o Google Security Operations através do Bindplane. O analisador transforma os registos de um formato SYSLOG + KV num modelo de dados unificado (UDM). Primeiro, normaliza a mensagem de registo em pares de chave-valor e, em seguida, mapeia os campos extraídos para os atributos UDM correspondentes no objeto event.idm.read_only_udm, categorizando o tipo de evento com base na presença e nos valores de campos específicos.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps
  • Um anfitrião Windows 2016 ou posterior, ou um anfitrião Linux com systemd
  • Se estiver a ser executado através de um proxy, as portas da firewall estão abertas
  • O Skyhigh Cloud Connector foi instalado e configurado
  • Acesso privilegiado ao conetor do Skyhigh Security Cloud

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

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

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute o seguinte comando:

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

Recursos de instalação adicionais

Para ver opções de instalação adicionais, consulte o guia de instalação.

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:
    • Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro config.yaml da seguinte forma:

    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
    

Reinicie o agente do Bindplane para aplicar as alterações

  1. Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  2. Para reiniciar o agente Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Pré-requisitos antes de transferir o cliente de registo

Certifique-se de que tem os seguintes detalhes:

  1. Privilégio de utilizador do Usage Analytics: a sua conta tem de ter a função de utilizadores do Usage Analytics.
  2. ID de cliente: execute os seguintes passos para encontrar o seu ID de cliente no Skyhigh CASB:
    • Inicie sessão no Skyhigh CASB.
    • Aceda a Definições > Infraestrutura > Gestão de proxy do cliente.
    • Clique em Configuração global > Autenticação de inquilino.
    • Em Definições globais, encontra o seu ID de cliente apresentado.
  3. Endereço de email e palavra-passe: as suas credenciais de início de sessão (ou da conta de serviço dedicada). Se iniciar sessão através de SAML sem enviar uma palavra-passe, não pode instalar o cliente de registo.

Transfira e instale o cliente de registo Skyhigh

  1. Transfira o cliente de registo para uma instância dedicada.
  2. Instale o cliente de registo (descomprima o ficheiro EXE transferido, se necessário).
  3. Após a conclusão da instalação, abra o Logging Client.
  4. Na página Configuração, faculte os seguintes detalhes de configuração:
    1. ID de cliente: introduza o ID de cliente do Skyhigh CASB obtido no passo anterior.
    2. Serviço: selecione SSE se estiver a usar o Skyhigh SSE ou WGCS se estiver a usar este produto juntamente com o Trellix ePO.
    3. Região: escolha um código regional ou de país consoante onde os seus dados estão armazenados:
      • EU — União Europeia
      • IN — Índia
      • SG — Singapura
      • UE — Emirados Árabes Unidos
      • UK — Reino Unido
      • US — Estados Unidos
    4. Nome: introduza o nome de utilizador, que é mais comummente o endereço de email usado para iniciar sessão no Secure Web Gateway ou numa instância dedicada.
    5. Palavra-passe: introduza a palavra-passe que usa para iniciar sessão no Secure Web Gateway. Se iniciar sessão com SAML, não pode usar o cliente de registo.
    6. Versão da API: introduza version 13.
    7. Tipo de registo: pode transferir diferentes tipos de registos, incluindo registos com dados provenientes da Web, do isolamento do navegador remoto (RBI), do acesso privado e da firewall na nuvem.
    8. Selecione Enviar como Syslogs e faculte os seguintes detalhes de configuração:
      • Anfitrião do cliente Syslog: introduza o endereço IP do agente do Bindplane.
      • Porta do cliente Syslog: introduza o número da porta do agente do Bindplane.
      • Transporte: selecione UDP ou TCP, consoante a configuração do agente Bindplane.

Tabela de mapeamento do UDM

Campo de registo Mapeamento do UDM Lógica
EventReceivedTime metadata.event_timestamp Convertida para data/hora no formato yyyy-MM-dd HH:mm:ss
FileSize target.file.size Mapeado diretamente, convertido em uinteger
Nome do anfitrião principal.hostname Mapeamento direto
MessageSourceAddress principal.ip Mapeado diretamente, unido se existirem várias instâncias
Gravidade additional.fields.value.string_value (key: SEVERITY) Mapeamento direto
SeverityValue additional.fields.value.string_value (key: SEVERITY_VALUE) Mapeamento direto
SourceModuleName additional.fields.value.string_value (key: SOURCE_MODULE_NAME) Mapeamento direto
SourceModuleType principal.resource.resource_subtype Mapeamento direto
SyslogFacility security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY) Mapeamento direto
SyslogFacilityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY_VALUE) Mapeamento direto
SyslogSeverity security_result.about.resource.attribute.labels.value (key: SYSLOG_SEVERITY) Mapeamento direto
SyslogSeverityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_SEVERITY_VALUE) Mapeamento direto
activityName metadata.product_event_type Mapeamento direto, parênteses removidos
actorId principal.user.userid Mapeado diretamente, também adicionado a email_addresses se for um email
actorIdType principal.user.attribute.roles.name Mapeamento direto
collaborationSharedLink security_result.about.resource.attribute.labels.value (key: COLLABORATION_SHARED_LINK) Mapeamento direto
contentItemId target.file.full_path (se contentItemType for FILE) Mapeamento direto, estimativas do custo removidas
contentItemId target.url (se contentItemType for SAAS_RESOURCE) Mapeamento direto, estimativas do custo removidas
contentItemHierarchy additional.fields.value.string_value (key: CONTENT_ITEM_HIERARCHY) Mapeamento direto, estimativas do custo removidas
contentItemName target.resource.name Mapeamento direto, estimativas do custo removidas
contentItemType additional.fields.value.string_value (key: CONTENT_ITEM_TYPE) Mapeamento direto
incidentGroup security_result.detection_fields.value (key: INCIDENT_GROUP) Mapeamento direto
incidentId metadata.product_log_id Mapeamento direto
incidentRiskScore security_result.detection_fields.value (key: INCIDENT_RISK_SCORE) Mapeamento direto
incidentRiskSeverityId Usado em combinação com riskSeverity para determinar security_result.severity
informationAccountId target.resource.product_object_id Mapeamento direto
informationAnomalyCategory security_result.category_details Mapeamento direto, estimativas do custo removidas
informationAnomalyCause security_result.detection_fields.value (key: INFO_ANOMALY_CAUSE) Mapeamento direto, estimativas do custo removidas
informationCategory security_result.category_details Mapeamento direto
informationConfigType additional.fields.value.string_value (key: INFORMATION_CONFIG_TYPE) Mapeamento direto, estimativas do custo removidas
informationContentItemParent target.resource.parent Mapeamento direto, estimativas do custo removidas
informationEventId additional.fields.value.string_value (key: INFORMATION_EVENT_ID) Mapeamento direto
informationExternalCollaboratorsCount additional.fields.value.string_value (key: INFORMATION_COLLAB_COUNT) Mapeamento direto
informationFileTypes additional.fields.value.list_value.values.string_value (key: FILE_TYPE) Extraído de uma string semelhante a JSON, parênteses e aspas removidos
informationLastExecutedResponseLabel additional.fields.value.string_value (key: INFORMATION_LAST_RESPONSE) Mapeamento direto
informationScanName metadata.description Mapeamento direto, estimativas do custo removidas
informationScanRunDate Não mapeado para o UDM
informationSource additional.fields.value.string_value (key: INFORMATION_SOURCE) Mapeamento direto
informationUniqueMatchCount additional.fields.value.string_value (key: INFORMATION_UNQ_MATCH_COUNT) Mapeamento direto
informationUserAttributesSAMAccountName principal.user.user_display_name Mapeamento direto, parênteses removidos
instanceId principal.resource.product_object_id Mapeamento direto
instanceName principal.resource.name Mapeamento direto, estimativas do custo removidas
policyId security_result.rule_id Mapeamento direto
policyName security_result.summary Mapeamento direto, estimativas do custo removidas
resposta Usado para determinar security_result.action (ALLOW ou BLOCK)
riskSeverity Usado em combinação com incidentRiskSeverityId para determinar security_result.severity, convertido em maiúsculas
serviceNames target.application Mapeamento direto, parênteses, aspas e espaços adicionais removidos
sourceIps principal.ip Extraído de uma string semelhante a JSON, unida se existirem várias instâncias
estado additional.fields.value.string_value (key: STATUS) Mapeamento direto
threatCategory security_result.threat_name Mapeamento direto, estimativas do custo removidas
totalMatchCount security_result.detection_fields.value (key: TOTAL_MATCH_COUNT) Mapeamento direto
N/A metadata.vendor_name MCAFEE – Valor estático
N/A metadata.product_name MCAFEE_SKYHIGH_CASB – Valor estático
N/A metadata.log_type MCAFEE_SKYHIGH_CASB – Valor estático
N/A principal.resource.type VIRTUAL_MACHINE - Definido se instanceName ou instanceId estiverem presentes
N/A metadata.event_type Determinado com base num conjunto de condições:
- USER_RESOURCE_UPDATE_CONTENT se actorId, contentItemId ou contentItemName estiverem presentes
- USER_UNCATEGORIZED se actorId e target estiverem presentes
- STATUS_UPDATE se Hostname ou MessageSourceAddress estiverem presentes
- GENERIC_EVENT caso contrário
N/A security_result.severity Determinado com base na combinação de riskSeverity e incidentRiskSeverityId:
- LOW se riskSeverity for LOW e incidentRiskSeverityId for 0
- MEDIUM se riskSeverity for MEDIUM e incidentRiskSeverityId for 1
- HIGH se riskSeverity for HIGH e incidentRiskSeverityId for 2
- INFORMATIONAL se riskSeverity for INFO e incidentRiskSeverityId for 3
N/A security_result.action Determinado com base no valor da resposta:
- ALLOW se a resposta contiver allow (não sensível a maiúsculas e minúsculas)
- BLOCK se a resposta contiver Violation (não sensível a maiúsculas e minúsculas)

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.