Recolha registos de segurança na nuvem do Lacework
Vista geral
Este analisador extrai campos dos registos JSON do Lacework Cloud Security, transformando-os no formato UDM. Mapeia os campos de registo não processados para campos do UDM, processando vários tipos de dados e enriquecendo o evento com contexto adicional das etiquetas. Em última análise, classifica o tipo de evento com base na presença de informações principais e de destino.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google Security Operations.
- Acesso privilegiado ao FortiCNAPP Lacework.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos da Lacework).
- Selecione Webhook como o Tipo de origem.
- Selecione Lacework como o Tipo de registo.
- Clicar em Seguinte.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
\n
.
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
- Clicar em Seguinte.
- Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
- Copie e armazene a chave secreta. Não pode ver esta chave secreta novamente. Se necessário, pode regenerar uma nova chave secreta, mas esta ação torna a chave secreta anterior obsoleta.
- No separador Detalhes, copie o URL do ponto final do feed do campo Informações do ponto final. Tem de especificar este URL do ponto final na sua aplicação cliente.
- Clique em Concluído.
Crie uma chave da API para o feed de webhook
Aceda à Google Cloud consola > Credenciais.
Clique em Criar credenciais e, de seguida, selecione Chave de API.
Restrinja o acesso da chave da API à API Chronicle.
Especifique o URL do ponto final
- Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
Ative a autenticação especificando a chave da API e a chave secreta como parte do cabeçalho personalizado no seguinte formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendação: especifique a chave da API como um cabeçalho em vez de a especificar no URL.
Se o seu cliente de webhook não suportar cabeçalhos personalizados, pode especificar a chave da API e a chave secreta através de parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua o seguinte:
ENDPOINT_URL
: o URL do ponto final do feed.API_KEY
: a chave da API para autenticar no Google SecOps.SECRET
: a chave secreta que gerou para autenticar o feed.
Configure um webhook do Lacework para o Google SecOps
- Inicie sessão na consola do Lacework FortiCNAPP com privilégios administrativos.
- Aceda a Definições > Notificações > Canais de alerta.
- Clique em + Adicionar novo.
- Selecione Webhook.
- Clicar em Seguinte.
- Especifique um nome exclusivo para o canal (por exemplo, Google SecOps).
- URL do webhook: introduza
<ENDPOINT_URL>
seguido de<API_KEY>
e<SECRET>
. - Clique em Guardar.
- Selecione Regras de alerta e configure os detalhes de encaminhamento de alertas necessários.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Mapeado diretamente a partir do campo AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Mapeado diretamente a partir do campo CREATED_TIME , convertido numa data/hora. |
FILEDATA_HASH |
target.file.sha256 |
Mapeado diretamente a partir do campo FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Mapeado diretamente a partir do campo FILE_PATH . |
IP_ADDR |
principal.ip |
Mapeado diretamente a partir do campo IP_ADDR . |
OS |
target.platform |
Mapeado a partir do campo OS . A lógica converte várias strings de SO (Linux, Windows, Mac) em valores de enumeração da UDM (LINUX, WINDOWS, MAC). A predefinição é UNKNOWN_PLATFORM se não for encontrada nenhuma correspondência. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Mapeado diretamente a partir do campo STATUS como um campo adicional. |
TAGS.Account |
metadata.product_deployment_id |
Mapeado diretamente a partir do campo TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Mapeado diretamente a partir do campo TAGS.AmiId como um campo adicional. |
TAGS.ExternalIp |
target.ip |
Mapeado diretamente a partir do campo TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Mapeado diretamente a partir do campo TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Mapeado diretamente a partir do campo TAGS.InstanceId , com o prefixo "ID da instância do dispositivo: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Mapeado diretamente a partir do campo TAGS.LwTokenShort como um campo adicional. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Mapeado diretamente a partir do campo MID como um campo adicional. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Mapeado diretamente a partir do campo MODE como um campo adicional. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Mapeado diretamente a partir do campo TAGS.Name como um campo adicional. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Mapeado diretamente a partir do campo TAGS.QSConfigName-vfzg0 como um campo adicional. |
TAGS.ResourceType |
target.resource.resource_subtype |
Mapeado diretamente a partir do campo TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Mapeado diretamente a partir do campo TAGS.SubnetId como uma etiqueta em target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Mapeado diretamente a partir do campo TAGS.VmInstanceType como uma etiqueta em target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Mapeado diretamente a partir do campo TAGS.VmProvider como uma etiqueta em target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Mapeado diretamente a partir do campo TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Mapeado diretamente a partir do campo TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Mapeado diretamente a partir do campo TAGS.alpha.eksctl.io/nodegroup-name como um campo adicional. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Mapeado diretamente a partir do campo TAGS.alpha.eksctl.io/nodegroup-type como um campo adicional. |
TAGS.arch |
principal.platform_version |
Mapeado diretamente a partir do campo TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Mapeado diretamente a partir do campo TAGS.aws:autoscaling:groupName como um campo adicional. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Mapeado diretamente a partir do campo TAGS.aws:ec2:fleet-id como um campo adicional. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Mapeado diretamente a partir do campo TAGS.aws:ec2launchtemplate:id como um campo adicional. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Mapeado diretamente a partir do campo TAGS.aws:ec2launchtemplate:version como um campo adicional. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Mapeado diretamente a partir do campo TAGS.aws:eks:cluster-name como um campo adicional. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Mapeado diretamente a partir do campo TAGS.enableCrowdStrike como um campo adicional. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/application como um campo adicional. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/environment como um campo adicional. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/managedBy como um campo adicional. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/project como um campo adicional. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/proxy-type como um campo adicional. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/service como um campo adicional. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Mapeado diretamente a partir do campo TAGS.falconx.io/team como um campo adicional. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Mapeado diretamente a partir do campo TAGS.k8s.io/cluster-autoscaler/enabled como um campo adicional. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Mapeado diretamente a partir do campo TAGS.k8s.io/cluster-autoscaler/falcon como um campo adicional. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Mapeado diretamente a partir do campo TAGS.kubernetes.io/cluster/falcon como um campo adicional. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Mapeado diretamente a partir do campo TAGS.lw_KubernetesCluster como um campo adicional. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Mapeado diretamente a partir do campo LAST_UPDATE como um campo adicional. Codificado de forma rígida para "LACEWORK". Codificado como "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Determinado pela lógica. Definido como "NETWORK_CONNECTION" se principal.ip e target.ip estiverem presentes, "STATUS_UPDATE" se apenas principal.ip estiver presente e "GENERIC_EVENT" caso contrário. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.