Coletar registros do Wiz
Este documento explica como transferir os registros do Wiz para o Google Security Operations. O analisador transforma os registros formatados em JSON brutos do Wiz em um modelo de dados unificado (UDM). Primeiro, ele inicializa os valores padrão para os campos do UDM, depois analisa a mensagem JSON, extrai campos relevantes, como informações do usuário, local, detalhes do dispositivo e resultados de segurança. O Wiz é uma plataforma de segurança na nuvem que oferece visibilidade de ponta a ponta e priorização de riscos sem agentes em ambientesGoogle 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 de 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 transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.
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 o ID de cliente do Google SecOps.
Insira o endereço do endpoint da instância do Google SecOps [Chronicle]:
- Canadá: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam: https://me-central2-malachiteingestion-pa.googleapis.com
- Várias regiões 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 o upload da chave da conta de serviço do Google.
Clique em Salvar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento de 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 separate.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 de ID, mapeando-o para uma entrada separada de principal.resource.attribute.labels 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 de nome, mapeando-o para uma entrada separada de principal.resource.attribute.labels 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 separada principal.resource.attribute.labels 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 de tipo, mapeando-o para uma entrada separate.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 (excluindo 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 associa a 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ídos usando um padrão grok e mapeados quando não estão vazios. |
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á vazia. |
authenticationContext.credentialProvider | security_result.detection_fields.value | Mapeado para uma entrada detection_fields com a chave credentialProvider quando não está vazia. |
authenticationContext.credentialType | extensions.auth.mechanism | Usado para extrair 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 extrair 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á vazio. |
client.userAgent.os | principal.platform | Usado para extrair 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á vazia. |
debugContext.debugData.factor | security_result.detection_fields.value | Mapeado para uma entrada detection_fields com a chave factor quando não está vazia. |
debugContext.debugData.promptingPolicyTypes | security_result.detection_fields.value | Mapeado para uma entrada detection_fields com a chave promptingPolicyTypes quando não está vazia. |
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ídos usando um padrão grok e mesclados com principal.ip e principal.asset.ip quando não estiverem vazios e forem válidos. |
sourceIP | principal.ip | Extraídos usando um padrão grok e mesclados com principal.ip e principal.asset.ip quando não estiverem vazios e forem válidos. |
status | security_result.summary | Mapeamento direto quando não está vazio. |
timestamp | metadata.event_timestamp | Conversão para o formato de carimbo de data/hora e mapeamento quando não está vazio. |
user.id | target.user.userid | Mapeamento direto quando actionParameters.userID está vazio e user.id não está vazio. |
user.name | target.user.user_display_name | Mapeamento direto quando actionParameters.name está vazio e user.name não está vazio. |
userAgent | network.http.user_agent | Mapeamento direto quando client.userAgent.rawUserAgent está vazio e userAgent não está. |
extensions.auth.type | Definido como AUTHTYPE_UNSPECIFIED quando has_user é verdadeiro e action é 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, convertido em parseduseragent. | |
security_result.severity | Derivado da gravidade com base em valores específicos, com padrão LOW . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.