Coletar registros de IOCs do Recorded Future
Este documento explica como ingerir registros de IOC do Recorded Future no Google Security Operations usando uma API. O analisador transforma os dados no formato JSON em um modelo de dados unificado (UDM). Ele extrai detalhes de IOCs, mapeia para campos do UDM, categoriza ameaças com base na gravidade e enriquece os dados com carimbos de data/hora e informações do fornecedor.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Acesso privilegiado a uma conta Enterprise do Recorded Future
Adquirir o token da API do Recorded Future
- Faça login no Recorded Future.
- Clique no seu avatar no canto superior direito e selecione Configurações do usuário.
- No menu de navegação, clique em Acesso à API.
- Clique em Gerar novo token de API.
- Copie a string longa que aparece (por exemplo,
RF-1234567890abcdef...
).- É possível criar mais de uma chave. Dê um nome descritivo, como Google SecOps.
- Copie e salve o token em um local seguro. O token de API não é mostrado novamente.
Configurar feeds
- Acesse Configurações do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Recorded Future IOC
). - Selecione API de terceiros como o Tipo de origem.
- Selecione o tipo de registro Recorded Future.
- Clique em Próxima.
- Especifique valores para os seguintes parâmetros de entrada:
- Cabeçalho HTTP de autenticação
X-RFToken:<your-api_key>
- Substitua
<your-api_key>
pela chave real copiada na etapa anterior.
- Namespace do recurso: o namespace do recurso.
- Rótulos de ingestão: o rótulo aplicado aos eventos deste feed.
- Cabeçalho HTTP de autenticação
- Clique em Próxima.
- Revise a configuração do feed na tela Finalizar e clique em Enviar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
Details.EvidenceDetails.Criticality | ||
Details.EvidenceDetails.CriticalityLabel | ||
Details.EvidenceDetails.EvidenceString | ioc.description | O valor do campo "EvidenceString" é mapeado para este campo. |
Details.EvidenceDetails.EvidenceString | entity.metadata.threat.description | O valor do campo "EvidenceString" é mapeado para este campo. |
Details.EvidenceDetails.MitigationString | ||
Details.EvidenceDetails.Rule | ioc.categorization | O valor do campo "Regra" é mapeado para este campo. |
Details.EvidenceDetails.Rule | entity.metadata.threat.rule_name | O valor do campo "Regra" é mapeado para este campo. |
Details.EvidenceDetails.Timestamp | ||
Risco | ioc.confidence_score | O valor do campo "Risco" é convertido em uma string e mapeado para esse campo. |
Risco | entity.metadata.threat.severity_details | O valor do campo "Risco" é concatenado com a string "Risco - " e mapeado para esse campo. |
Valor | entity.entity.hostname | Se o campo "Valor" for um nome de domínio, ele será mapeado para esse campo. |
Valor | ioc.domain_and_ports.domain | Se o campo "Valor" for um nome de domínio, ele será mapeado para esse campo. |
Valor | ioc.ip_and_ports.ip_address | Se o campo "Valor" for um endereço IP, ele será mapeado para este campo. |
entity.entity.ip | O valor do campo "Valor" é analisado como um endereço IP e mapeado para esse campo. | |
ioc.feed_name | O valor "Recorded Future IOC" é atribuído a esse campo. | |
ioc.raw_severity | O valor é gerado concatenando os campos "Risco" e "CriticalityLabel", separados por dois pontos. | |
entity.metadata.collected_timestamp | O valor do campo "Details.EvidenceDetails.Timestamp" é analisado como um carimbo de data/hora ISO8601 e mapeado para esse campo. | |
entity.metadata.entity_type | O valor é definido como "DOMAIN_NAME" se o campo "Value" for um nome de domínio e "IP_ADDRESS" se for um endereço IP. | |
entity.metadata.interval.end_time | O valor "253402300799" (que representa o valor máximo do carimbo de data/hora) é atribuído a esse campo. | |
entity.metadata.interval.start_time | O valor do campo "Details.EvidenceDetails.Timestamp" é analisado como um carimbo de data/hora ISO8601 e mapeado para esse campo. | |
entity.metadata.threat.category | O valor é determinado com base no campo "CriticalityLabel": "Malicious" é mapeado para "SOFTWARE_MALICIOUS", "Suspicious" é mapeado para "SOFTWARE_SUSPICIOUS", e qualquer outro valor é mapeado para "UNKNOWN_CATEGORY". | |
entity.metadata.threat.category_details | O valor é gerado concatenando as strings "Criticality - ", "Criticality", ":" e "CriticalityLabel" com os valores correspondentes dos dados de entrada. | |
entity.metadata.threat.severity | O valor é determinado com base no campo "CriticalityLabel": "Malicious" é mapeado para "HIGH", "Suspicious" é mapeado para "MEDIUM", e qualquer outro valor é mapeado para "LOW". | |
entity.metadata.threat.threat_feed_name | O valor "Recorded Future IOC" é atribuído a esse campo. | |
entity.metadata.vendor_name | O valor "RECORDED_FUTURE_IOC" é atribuído a esse campo. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.