Coletar registros da Lacework Cloud Security
Visão geral
Esse analisador extrai campos dos registros JSON da Lacework Cloud Security e os transforma no formato UDM. Ele mapeia campos de registro brutos para campos do UDM, processando vários tipos de dados e enriquecendo o evento com mais contexto das tags, classificando o tipo de evento com base na presença de informações principais e de destino.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se você tem acesso privilegiado ao FortiCNAPP Lacework.
Configurar um feed no Google SecOps para processar os registros do Lacework
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do Lacework).
- Selecione Webhook como o Tipo de origem.
- Selecione Lacework como o Tipo de registro.
- Clique em Próxima.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
. - Namespace de recursos: o namespace de recursos.
- Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
- Clique em Próxima.
- Revise a configuração do feed na tela Finalizar e clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar esse feed.
- Copie e armazene a chave secreta. Não é possível acessar essa chave secreta novamente. Se necessário, você pode gerar uma nova chave secreta, mas essa ação torna a chave secreta anterior obsoleta.
- Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
- Clique em Concluído.
Criar uma chave de API para o feed de webhook
Acesse Console do Google Cloud > Credenciais.
Clique em Criar credenciais e, em seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Chronicle.
Especificar o URL do endpoint
- No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed de webhook.
Ative a autenticação especificando a chave de 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 de API como um cabeçalho em vez de especificar no URL.
Se o cliente do webhook não tiver suporte a cabeçalhos personalizados, especifique a chave de API e a chave secreta usando parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua:
ENDPOINT_URL
: o URL do endpoint do feed.API_KEY
: a chave de API para autenticação no Google SecOps.SECRET
: a chave secreta que você gerou para autenticar o feed.
Configurar um webhook da Lacework para o Google SecOps
- Faça login no Lacework FortiCNAPP Console com privilégios administrativos.
- Acesse Configurações > Notificações > Canais de alerta.
- Clique em + Adicionar novo.
- Selecione Webhook.
- Clique em Próxima.
- Especifique um nome exclusivo para o canal (por exemplo, Google SecOps).
- URL do webhook: insira
<ENDPOINT_URL>
seguido por<API_KEY>
e<SECRET>
. - Clique em Salvar.
- Selecione Regras de alerta e configure os detalhes de roteamento de alerta necessários.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Mapeado diretamente do campo AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Mapeado diretamente do campo CREATED_TIME , convertido em um carimbo de data/hora. |
FILEDATA_HASH |
target.file.sha256 |
Mapeado diretamente do campo FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Mapeado diretamente do campo FILE_PATH . |
IP_ADDR |
principal.ip |
Mapeado diretamente do campo IP_ADDR . |
OS |
target.platform |
Mapeado do campo OS . A lógica converte várias strings de SO (Linux, Windows, Mac) em valores de enumeração do UDM (LINUX, WINDOWS, MAC). O padrão é UNKNOWN_PLATFORM se nenhuma correspondência for encontrada. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Mapeado diretamente do campo STATUS como um campo extra. |
TAGS.Account |
metadata.product_deployment_id |
Mapeado diretamente do campo TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Mapeado diretamente do campo TAGS.AmiId como um campo extra. |
TAGS.ExternalIp |
target.ip |
Mapeado diretamente do campo TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Mapeado diretamente do campo TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Mapeado diretamente do campo TAGS.InstanceId , com o prefixo "ID da instância do dispositivo: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Mapeado diretamente do campo TAGS.LwTokenShort como um campo extra. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Mapeado diretamente do campo MID como um campo extra. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Mapeado diretamente do campo MODE como um campo extra. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Mapeado diretamente do campo TAGS.Name como um campo extra. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Mapeado diretamente do campo TAGS.QSConfigName-vfzg0 como um campo extra. |
TAGS.ResourceType |
target.resource.resource_subtype |
Mapeado diretamente do campo TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Mapeado diretamente do campo TAGS.SubnetId como um rótulo em target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Mapeado diretamente do campo TAGS.VmInstanceType como um rótulo em target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Mapeado diretamente do campo TAGS.VmProvider como um rótulo em target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Mapeado diretamente do campo TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Mapeado diretamente do campo TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Mapeado diretamente do campo TAGS.alpha.eksctl.io/nodegroup-name como um campo extra. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Mapeado diretamente do campo TAGS.alpha.eksctl.io/nodegroup-type como um campo extra. |
TAGS.arch |
principal.platform_version |
Mapeado diretamente do campo TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Mapeado diretamente do campo TAGS.aws:autoscaling:groupName como um campo extra. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Mapeado diretamente do campo TAGS.aws:ec2:fleet-id como um campo extra. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Mapeado diretamente do campo TAGS.aws:ec2launchtemplate:id como um campo extra. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Mapeado diretamente do campo TAGS.aws:ec2launchtemplate:version como um campo extra. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Mapeado diretamente do campo TAGS.aws:eks:cluster-name como um campo extra. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Mapeado diretamente do campo TAGS.enableCrowdStrike como um campo extra. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/application como um campo extra. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/environment como um campo extra. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/managedBy como um campo extra. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/project como um campo extra. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/proxy-type como um campo extra. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/service como um campo extra. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Mapeado diretamente do campo TAGS.falconx.io/team como um campo extra. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Mapeado diretamente do campo TAGS.k8s.io/cluster-autoscaler/enabled como um campo extra. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Mapeado diretamente do campo TAGS.k8s.io/cluster-autoscaler/falcon como um campo extra. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Mapeado diretamente do campo TAGS.kubernetes.io/cluster/falcon como um campo extra. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Mapeado diretamente do campo TAGS.lw_KubernetesCluster como um campo extra. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Mapeado diretamente do campo LAST_UPDATE como um campo extra. Fixado em "LACEWORK". Fixado em "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Determinado pela lógica. Defina 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. |
Alterações
2023-11-09
- Parser recém-criado.