Coletar registros de IOC do CrowdStrike

Compatível com:

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

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, CrowdStrike IOC Logs).
  4. Selecione Webhook como o Tipo de origem.
  5. Selecione Crowdstrike IOC como o Tipo de registro.
  6. Clique em Próxima.
  7. 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.
  8. Clique em Próxima.
  9. Revise a configuração do feed na tela Finalizar e clique em Enviar.
  10. Clique em Gerar chave secreta para gerar uma chave secreta para autenticar esse feed.
  11. 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.
  12. 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.
  13. Clique em Concluído.

Criar uma chave de API para o feed de webhook

  1. Acesse o console do Google Cloud > Credenciais.

    Ir para Credenciais

  2. Clique em Criar credenciais e, em seguida, selecione Chave de API.

  3. Restrinja o acesso da chave de API à API Google Security Operations.

Especificar o URL do endpoint

  1. No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed de webhook.
  2. 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.

  3. 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

  1. Faça login no console do CrowdStrike Falcon Intelligence.
  2. Acesse a CrowdStrike Store.
  3. Encontre Webhook.
  4. Ative a integração do webhook.
  5. Clique em Configurar.
  6. Selecione Adicionar configuração.
  7. Garanta que somente IOCs sejam enviados para o webhook.
  8. Cole o URL do endpoint no campo URL do webhook na tela Configurar webhook.
  9. Clique em Salvar.
  10. 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.