Coletar registros de IOC do CrowdStrike
Visão geral
Esse analisador extrai dados da CrowdStrike Falcon Intelligence de mensagens formatadas em JSON. Ele transforma vários campos de IOC no formato UDM, processando diferentes tipos de indicadores (domínios, IPs, URLs, hashes etc.) e os metadados associados, incluindo relações, rótulos e informações de ameaças. O analisador também realiza a validação de dados e tratamento de erros. Ele prioriza a análise JSON, voltando à correspondência grok, se necessário, e descarta mensagens com formato incorreto.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se você tem acesso à plataforma CrowdStrike Falcon Intelligence com as permissões adequadas.
Configurar um feed no Google SecOps para processar os registros de IOC do CrowdStrike
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, CrowdStrike IOC Logs).
- Selecione Webhook como o Tipo de origem.
- Selecione Crowdstrike IOC 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 o console do Google Cloud > Credenciais.
Clique em Criar credenciais e, em seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Google Security Operations.
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.
Criar um webhook da CrowdStrike
- Faça login no console do CrowdStrike Falcon Intelligence.
- Acesse a CrowdStrike Store.
- Encontre Webhook.
- Ative a integração do webhook.
- Clique em Configurar.
- Selecione Adicionar configuração.
- Garanta que somente IOCs sejam enviados para o webhook.
- Cole o URL do endpoint no campo URL do webhook na tela Configurar webhook.
- Clique em Salvar.
- O CrowdStrike agora envia eventos gerados para o feed especificado do Google SecOps.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
_marker |
event.idm.entity.entity.labels.value |
O valor do campo _marker é mapeado diretamente. |
actors |
event.idm.entity.entity.group.group_display_name |
Se o primeiro valor em actors contiver "panda", "urso", "gatinho", "chollima", "chacal" ou "aranha", ele será mapeado e o event.idm.entity.entity.location.country_or_region será derivado (China, Rússia, Irã, Coreia do Norte, grupos de ativistas, grupos criminosos, respectivamente). Outros valores em actors são adicionados como rótulos com a chave "actor" em event.idm.entity.entity.group.attribute.labels . |
actors |
event.idm.entity.entity.location.country_or_region |
Derivado com base no primeiro valor em actors (consulte acima). |
deleted |
event.idm.entity.metadata.threat.action |
Se deleted for "falso", a ação será "BLOQUEAR". Se deleted for "true", a ação será "PERMITIR". |
deleted |
event.idm.entity.metadata.threat.action_details |
O valor de deleted é mapeado diretamente. |
domain_types |
event.idm.entity.metadata.threat.detection_fields.value |
Todos os valores em domain_types são concatenados com vírgulas e associados à chave "domain_types". |
id |
event.idm.entity.metadata.product_entity_id |
O valor de id é mapeado diretamente. |
indicator |
event.idm.entity.entity.hostname |
Mapeado se type for "domain". |
indicator |
event.idm.entity.entity.file.md5 |
É mapeado se type for "hash_md5" e o valor for um hash MD5 válido. |
indicator |
event.idm.entity.entity.file.sha1 |
É mapeado se type for "hash_sha1" e o valor for um hash SHA1 válido. |
indicator |
event.idm.entity.entity.file.sha256 |
É mapeado se type for "hash_sha256" e o valor for um hash SHA256 válido. |
indicator |
event.idm.entity.entity.ip |
Mapeado se type for "ip_address" e o valor for um endereço IP válido. |
indicator |
event.ioc.ip_and_ports.ip_address |
Mapeado se type for "ip_address" e o valor for um endereço IP válido. |
indicator |
event.idm.entity.entity.url |
Mapeado se type for "url". |
indicator |
event.idm.entity.entity.resource.name |
Mapeado se type for "device_name" ou "mutex_name". |
indicator |
event.idm.entity.entity.user.email_addresses |
Mapeado se type for "email_address" e o valor for um endereço de e-mail válido. |
indicator |
event.idm.entity.metadata.threat.detection_fields.value |
Mapeado com várias chaves com base no campo type (por exemplo, "campaign_id", "binary_string" etc.). Se o tipo não for processado especificamente, ele será mapeado com type como a chave. |
indicator |
event.ioc.domain_and_ports.domain |
Mapeado se type não for "ip_address" ou "port". |
ip_address_types |
event.idm.entity.metadata.threat.detection_fields.value |
Todos os valores em ip_address_types são concatenados com vírgulas e mapeados com a chave "ip_address_types". |
kill_chains |
event.idm.entity.metadata.threat.category |
A categoria é derivada com base nos valores em kill_chains . "reconnaissance", "weaponization" ou "actionOnObjectives" resultam em "NETWORK_MALICIOUS". "entrega" ou "exploração" resulta em "EXPLOIT". "installation" ou "c3" resulta em "SOFTWARE_MALICIOUS". "c2" resulta em "NETWORK_COMMAND_AND_CONTROL". Outros valores resultam em "UNKNOWN_CATEGORY". Várias categorias podem ser atribuídas. |
kill_chains |
event.idm.entity.metadata.threat.category_details |
Os valores brutos de kill_chains são mapeados diretamente. Vários valores são possíveis. |
labels |
event.idm.entity.metadata.threat.detection_fields |
O campo "name" em cada marcador é dividido em label_key e label_value pelo "/". Se label_key for "Malware" ou "ThreatType", label_value será mapeado para threat_name . Caso contrário, label_key e label_value são mapeados como um par de chave-valor. "created_on" e "last_valid_on" em cada rótulo também são mapeados como pares de chave-valor. |
labels |
event.idm.entity.metadata.threat.threat_name |
Derivado do campo labels (consulte acima). |
last_updated |
event.idm.entity.metadata.threat.detection_fields.value |
O valor de last_updated é mapeado com a chave "last_updated". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence |
Se malicious_confidence for "high", a confiança será "HIGH_CONFIDENCE". Se for "baixa", a confiança será "LOW_CONFIDENCE". Se for "médio", a confiança será "MEDIUM_CONFIDENCE". Caso contrário, será "UNKNOWN_CONFIDENCE". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence_details |
O valor de malicious_confidence é mapeado diretamente. |
malicious_confidence |
event.ioc.confidence_score |
O valor de malicious_confidence é mapeado diretamente. |
malware_families |
event.idm.entity.metadata.threat.threat_name |
Todos os valores em malware_families são concatenados com vírgulas e mapeados. |
published_date |
event.idm.entity.metadata.creation_timestamp |
O valor de published_date é convertido em um carimbo de data/hora. |
published_date |
event.idm.entity.metadata.interval.start_time |
O valor de published_date é convertido em um carimbo de data/hora. |
published_date |
event.ioc.active_timerange.start |
O valor de published_date é convertido em um carimbo de data/hora. |
relations |
event.idm.entity.metadata.threat.about |
Os campos de cada relação são mapeados para o objeto about com base no type . "created_date", "last_valid_date" e "id" são adicionados como rótulos. |
reports |
event.idm.entity.metadata.threat.about.labels.value |
Todos os valores em reports são concatenados com vírgulas e mapeados com a chave "report_ids". |
threat_types |
event.idm.entity.metadata.threat.threat_name |
Todos os valores em threat_types são concatenados com vírgulas com o threat_name derivado de malware_families . |
type |
event.ioc.categorization |
O valor de type é mapeado diretamente. |
(Parser Logic) | event.idm.entity.metadata.collected_timestamp |
O valor de create_time do registro bruto é usado. |
(Parser Logic) | event.idm.entity.metadata.interval.end_time |
Fixado em um carimbo de data/hora muito distante (253402300799). |
(Parser Logic) | event.idm.entity.metadata.product_name |
Fixado em "Falcon". |
(Parser Logic) | event.idm.entity.metadata.vendor_name |
Fixado em "CrowdStrike". |
(Parser Logic) | event.idm.entity.metadata.entity_type |
Derivado com base no campo type e na presença de outros campos. Consulte o código do analisador para conferir a lógica específica. |
(Parser Logic) | event.ioc.feed_name |
Fixado em "CrowdStrike Falcon Intelligence". |
(Parser Logic) | event.timestamp |
O valor de create_time do registro bruto é usado. |
Alterações
2023-08-23
- O mapeamento do campo
malicious_confidence
foi alterado.
2023-05-04
- O analisador
crowdstrike_ioc
foi promovido para o padrão.