Coletar registros do Wiz
Este documento explica como ingerir registros do Wiz no Google Security Operations. O analisador transforma registros brutos formatados em JSON da Wiz em um modelo de dados unificado (UDM). Primeiro, ele inicializa os valores padrão para campos da UDM e, em seguida, analisa a mensagem JSON, extrai campos relevantes, como informações do usuário, local, detalhes do dispositivo e resultados de segurança. A Wiz é uma plataforma de segurança na nuvem que oferece visibilidade de ponta a ponta sem agente e priorização de riscos em ambientes do Google Cloud, AWS, Azure, OCI e Kubernetes.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Acesso privilegiado ao Wiz
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Faça o download do arquivo de autenticação de ingestão e salve-o em um local seguro.
Configurar a integração no Wiz
- Faça login na UI da Web do Wiz.
- Acesse a página Conectar ao Wiz.
- Clique em Google Cloud Chronicle.
- Selecione o Escopo.
- Insira seu ID de cliente do Google SecOps.
- Insira o endereço do endpoint da sua instância do Google SecOps.
- Canadá: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam: https://me-central2-malachiteingestion-pa.googleapis.com
- Multirregião da Europa: https://europe-malachiteingestion-pa.googleapis.com
- Frankfurt: https://europe-west3-malachiteingestion-pa.googleapis.com
- Londres: https://europe-west2-malachiteingestion-pa.googleapis.com
- Mumbai: https://asia-south1-malachiteingestion-pa.googleapis.com
- Singapura: https://asia-southeast1-malachiteingestion-pa.googleapis.com
- Sydney: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- Tel Aviv: https://me-west1-malachiteingestion-pa.googleapis.com
- Tóquio: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- Multirregião dos Estados Unidos: https://malachiteingestion-pa.googleapis.com
- Zurique: https://europe-west6-malachiteingestion-pa.googleapis.com
- Faça upload do arquivo de autenticação de ingestão.
- Clique em Salvar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento da UDM | Lógica |
---|---|---|
ação | metadata.product_event_type | Mapeamento direto quando eventType está vazio. |
ação | principal.application | Mapeamento direto quando a ação é Report e serviceAccount.name não está vazio. |
actionParameters.groups | security_result.detection_fields.value | O analisador itera por cada grupo em actionParameters.groups e o mapeia para uma entrada detection_fields separada com a chave service_account_group . |
actionParameters.input.patch.portalVisitHistory.dateTime | additional.fields.value.string_value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo dateTime, mapeando-o para uma entrada additional.fields separada com a chave dateTime {index} . |
actionParameters.input.patch.portalVisitHistory.id | principal.resource.attribute.labels.value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo "id", mapeando-o para uma entrada principal.resource.attribute.labels separada com a chave id {index} . |
actionParameters.input.patch.portalVisitHistory.name | principal.resource.attribute.labels.value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo "name", mapeando-o para uma entrada principal.resource.attribute.labels separada com a chave name {index} . |
actionParameters.input.patch.portalVisitHistory.resourceName | principal.resource.attribute.labels.value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo resourceName, mapeando-o para uma entrada principal.resource.attribute.labels separada com a chave resourceName {index} . |
actionParameters.input.patch.portalVisitHistory.resourceType | principal.resource.attribute.labels.value | O analisador itera por cada item em "actionParameters.input.patch.portalVisitHistory" e extrai o campo "resourceType", mapeando-o para uma entrada "principal.resource.attribute.labels" separada com a chave resourceType {index} . |
actionParameters.input.patch.portalVisitHistory.ruleType | principal.resource.attribute.labels.value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo ruleType, mapeando-o para uma entrada principal.resource.attribute.labels separada com a chave ruleType {index} . |
actionParameters.input.patch.portalVisitHistory.type | additional.fields.value.string_value | O analisador itera por cada item em actionParameters.input.patch.portalVisitHistory e extrai o campo "type", mapeando-o para uma entrada "additional.fields" separada com a chave type {index} . |
actionParameters.name | target.user.user_display_name | Mapeamento direto quando "actionParameters.name" não está vazio. |
actionParameters.products | security_result.detection_fields.value | O analisador itera por cada produto em actionParameters.products (exceto strings vazias e * ) e o mapeia para uma entrada detection_fields separada com a chave service_account_product . |
actionParameters.role | target.user.attribute.roles.name | Mapeamento direto quando actionParameters.role não está vazio. |
actionParameters.scopes | security_result.detection_fields.value | O analisador itera por cada escopo em "actionParameters.scopes" e o mapeia para uma entrada "detection_fields" separada com a chave service_account_scope . |
actionParameters.selection | additional.fields.value.list_value.values.string_value | O analisador itera por cada item em actionParameters.selection.preferences e o mapeia para uma entrada string_value separada em additional.fields.value.list_value.values. |
actionParameters.userEmail | target.user.email_addresses | Extraído usando um padrão grok e mapeado quando não está vazio. |
actionParameters.userID | target.user.userid | Mapeamento direto quando actionParameters.userID não está vazio. |
actor.displayName | target.user.user_display_name | Mapeamento direto quando actor.displayName não está vazio e não é unknown . |
actor.id | target.user.userid | Mapeamento direto quando actor.id não está vazio. |
authenticationContext.authenticationProvider | security_result.detection_fields.value | Mapeado para uma entrada "detection_fields" com a chave authenticationProvider quando não está vazio. |
authenticationContext.credentialProvider | security_result.detection_fields.value | Mapeado para uma entrada "detection_fields" com a chave credentialProvider quando não está vazio. |
authenticationContext.credentialType | extensions.auth.mechanism | Usado para derivar o valor de "extensions.auth.mechanism" com base em valores específicos. |
authenticationContext.externalSessionId | network.parent_session_id | Mapeamento direto quando não está vazio e não é unknown . |
client.device | principal.asset.type | Usado para derivar o valor de "principal.asset.type" com base em valores específicos. |
client.geographicalContext.city | principal.location.city | Mapeamento direto quando não está vazio. |
client.geographicalContext.country | principal.location.country_or_region | Mapeamento direto quando não está vazio. |
client.geographicalContext.geolocation.lat | principal.location.region_latitude | Mapeamento direto quando não está vazio. |
client.geographicalContext.geolocation.lon | principal.location.region_longitude | Mapeamento direto quando não está vazio. |
client.geographicalContext.postalCode | additional.fields.value.string_value | Mapeado para uma entrada "additional.fields" com a chave Postal code quando não está vazia. |
client.geographicalContext.state | principal.location.state | Mapeamento direto quando não está vazio. |
client.ipAddress | principal.asset.ip | Mesclado com "principal.ip" e "principal.asset.ip" quando não está vazio. |
client.ipAddress | principal.ip | Mesclado com "principal.ip" e "principal.asset.ip" quando não está vazio. |
client.userAgent.browser | target.resource.attribute.labels.value | Mapeado para uma entrada "target.resource.attribute.labels" com a chave Browser quando não está vazia. |
client.userAgent.os | principal.platform | Usado para derivar o valor de "principal.platform" com base em valores específicos. |
client.userAgent.rawUserAgent | network.http.user_agent | Mapeamento direto quando não está vazio. |
debugContext.debugData.behaviors | security_result.description | Mapeamento direto quando não está vazio. |
debugContext.debugData.deviceFingerprint | target.asset.asset_id | Mapeado para target.asset.asset_id com o prefixo device_finger_print: quando não está vazio. |
debugContext.debugData.dtHash | security_result.detection_fields.value | Mapeado para uma entrada "detection_fields" com a chave dtHash quando não está vazio. |
debugContext.debugData.factor | security_result.detection_fields.value | Mapeado para uma entrada "detection_fields" com a chave factor quando não está vazio. |
debugContext.debugData.promptingPolicyTypes | security_result.detection_fields.value | Mapeado para uma entrada "detection_fields" com a chave promptingPolicyTypes quando não está vazio. |
debugContext.debugData.requestUri | extensions.auth.auth_details | Mapeamento direto quando não está vazio. |
eventType | metadata.event_type | Usado para derivar o valor de "metadata.event_type" com base em valores específicos. |
eventType | metadata.product_event_type | Mapeamento direto quando não está vazio. |
outcome.reason | security_result.category_details | Mapeamento direto quando não está vazio. |
outcome.result | security_result.action | Mapeado para security_result.action após a normalização com base em valores específicos. |
requestId | metadata.product_log_id | Mapeamento direto quando não está vazio. |
serviceAccount.name | principal.application | Mapeamento direto quando a ação é Report e serviceAccount.name não está vazio. |
sourceIP | principal.asset.ip | Extraído usando um padrão grok e mesclado com principal.ip e principal.asset.ip quando não está vazio e é válido. |
sourceIP | principal.ip | Extraído usando um padrão grok e mesclado com principal.ip e principal.asset.ip quando não está vazio e é válido. |
status | security_result.summary | Mapeamento direto quando não está vazio. |
timestamp | metadata.event_timestamp | Convertido para o formato de carimbo de data/hora e mapeado quando não está vazio. |
user.id | target.user.userid | Mapeamento direto quando actionParameters.userID está vazio e user.id não está. |
user.name | target.user.user_display_name | Mapeamento direto quando "actionParameters.name" está vazio e "user.name" não está. |
userAgent | network.http.user_agent | Mapeamento direto quando client.userAgent.rawUserAgent está vazio e userAgent não está vazio. |
extensions.auth.type | Definido como AUTHTYPE_UNSPECIFIED quando has_user é verdadeiro e a ação é Login . |
|
metadata.product_name | Defina como WIZ_IO . |
|
metadata.vendor_name | Defina como WIZ_IO . |
|
network.http.parsed_user_agent | Derivado de user_agent_value ao convertê-lo em parseduseragent. | |
security_result.severity | Derivada da gravidade com base em valores específicos, sendo o padrão LOW . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.