Coletar registros do Rapid7 InsightIDR
Esse analisador processa registros formatados em JSON e SYSLOG do Rapid7 InsightIDR. Ele extrai campos, normaliza-os para o UDM e executa uma lógica específica para dados de vulnerabilidade, incluindo pontuações do CVSS e informações de exploração, processando formatos JSON e syslog separadamente. Ele também mapeia tentativas de autenticação e eventos de sessão para tipos de eventos da UDM adequados.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado ao console de gerenciamento do InsightIDR.
Como configurar uma chave de API no Rapid7 InsightIDR
- Faça login na plataforma de comandos do InsightIDR.
- Clique em Administração.
- Clique em Chaves de API.
- Acesse a guia Chaves da organização.
- Clique em Nova chave da organização.
- Selecione uma organização e informe um nome para a chave (por exemplo, Google SecOps).
- Gere a chave.
Copie a chave de uma nova janela que mostra a chave gerada.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds
- Central de conteúdo > Pacotes de conteúdo
Configure feeds em "Configurações do SIEM" > "Feeds".
Para configurar um feed, siga estas etapas:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Rapid7 InsightIDR.
- Selecione API de terceiros como o Tipo de origem.
- Selecione Rapid7 Insight como o Tipo de registro.
- Clique em Próxima.
- Especifique valores para os seguintes parâmetros de entrada:
- Cabeçalho HTTP de autenticação: token gerado anteriormente no formato
X-Api-Key:<value>
(por exemplo, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint da API: insira vulnerabilities ou assets.
- Nome do host da API: o FQDN (nome de domínio totalmente qualificado) do endpoint de API Rapid7 no formato
[region].api.insight.rapid7.com
.
- Cabeçalho HTTP de autenticação: token gerado anteriormente no formato
- Clique em Próxima.
- Revise a configuração do feed na tela Finalizar e clique em Enviar.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- Cabeçalho HTTP de autenticação: token gerado anteriormente no formato
X-Api-Key:<value>
(por exemplo, X-Api-Key:AAAABBBBCCCC111122223333). - Endpoint da API: insira vulnerabilities ou assets.
- Nome do host da API: o FQDN (nome de domínio totalmente qualificado) do endpoint de API Rapid7 no formato
[region].api.insight.rapid7.com
.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
added |
vulnerabilities.first_found |
O campo added é convertido em um carimbo de data/hora e mapeado para vulnerabilities.first_found . |
Authentication |
security_result.detection_fields.value |
O valor de Authentication do registro bruto é mapeado para o campo value em security_result.detection_fields . O key correspondente é definido como "Authentication". |
critical_vulnerabilities |
asset.attribute.labels.value |
O valor de critical_vulnerabilities é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Vulnerabilidades críticas". |
cves |
vulnerabilities.cve_id |
O valor de cves é mapeado para vulnerabilities.cve_id . |
cvss_v2_access_complexity |
asset.attribute.labels.value |
O valor de cvss_v2_access_complexity é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Complexidade de acesso(Ac)". |
cvss_v2_availability_impact |
asset.attribute.labels.value |
O valor de cvss_v2_availability_impact é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Impacto na disponibilidade (A)". |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
O valor de cvss_v2_confidentiality_impact é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Impacto na confidencialidade (C)". |
cvss_v2_integrity_impact |
asset.attribute.labels.value |
O valor de cvss_v2_integrity_impact é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Impacto na integridade (I)". |
cvss_v2_score |
vulnerabilities.cvss_base_score |
O valor de cvss_v2_score é convertido em uma string, depois em um ponto flutuante e mapeado para vulnerabilities.cvss_base_score . |
cvss_v2_vector |
vulnerabilities.cvss_vector |
O valor de cvss_v2_vector é mapeado para vulnerabilities.cvss_vector . |
cvss_v3_availability_impact |
asset.attribute.labels.value |
O valor de cvss_v3_availability_impact é mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Impacto na disponibilidade (A)". |
cvss_v3_score |
vulnerabilities.cvss_base_score |
O valor de cvss_v3_score é convertido em uma string, depois em um ponto flutuante e mapeado para vulnerabilities.cvss_base_score . |
cvss_v3_vector |
vulnerabilities.cvss_vector |
O valor de cvss_v3_vector é mapeado para vulnerabilities.cvss_vector . |
description |
vulnerabilities.description |
O valor de description do registro bruto é mapeado para vulnerabilities.description . |
exploits |
asset.attribute.labels.value |
O valor de exploits é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é "Número de exploits" ou "Classificação do exploit", com base na presença do campo "rank" no objeto exploits . |
host_name |
asset.hostname |
O valor de host_name é mapeado para asset.hostname . Se host_name , ip e mac estiverem vazios, o valor de id será usado. |
id |
asset.product_object_id |
O valor de id é mapeado para asset.product_object_id . Se host_name , ip e mac estiverem vazios, o valor de id será usado para asset.hostname . |
ip |
asset.ip , entity.asset.ip |
O valor de ip é mapeado para asset.ip e entity.asset.ip . |
last_assessed_for_vulnerabilities |
vulnerabilities.scan_end_time |
O campo last_assessed_for_vulnerabilities é convertido em um carimbo de data/hora e mapeado para vulnerabilities.scan_end_time . |
last_scan_end |
vulnerabilities.last_found |
O campo last_scan_end é convertido em um carimbo de data/hora e mapeado para vulnerabilities.last_found . |
last_scan_start |
vulnerabilities.first_found |
O campo last_scan_start é convertido em um carimbo de data/hora e mapeado para vulnerabilities.first_found . |
links |
vulnerabilities.cve_id , vulnerabilities.vendor_knowledge_base_article_id |
O campo id em links é mapeado para vulnerabilities.cve_id , e o campo href em links é mapeado para vulnerabilities.vendor_knowledge_base_article_id . |
mac |
asset.mac , entity.asset.mac |
O valor de mac é convertido em letras minúsculas e mapeado para asset.mac e entity.asset.mac . |
MessageSourceAddress |
principal.ip , principal.asset.ip |
O endereço IP extraído de MessageSourceAddress é mapeado para principal.ip e principal.asset.ip . |
Method |
network.http.method |
O valor de Method é mapeado para network.http.method . |
moderate_vulnerabilities |
asset.attribute.labels.value |
O valor de moderate_vulnerabilities é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Vulnerabilidades moderadas". |
os_architecture |
asset.hardware.cpu_platform |
O valor de os_architecture é mapeado para asset.hardware.cpu_platform . |
os_description |
asset.platform_software.platform_version |
O valor de os_description é mapeado para asset.platform_software.platform_version . |
os_family |
asset.platform_software.platform |
O valor de os_family é convertido em maiúsculas e mapeado para asset.platform_software.platform . O processamento especial é feito para "MAC OS X", "IOS", "WINDOWS", "MAC" e "LINUX". Se não corresponder a nenhuma delas, será definido como "UNKNOWN_PLATFORM". |
Port |
principal.port |
O valor de Port é mapeado para principal.port e convertido em um número inteiro. |
Principal |
principal.user.email_addresses |
Se Principal for um endereço de e-mail, ele será mapeado para principal.user.email_addresses . |
product_event_type |
metadata.product_event_type |
O valor de product_event_type é mapeado para metadata.product_event_type . |
Protocol |
network.application_protocol |
Se Protocol for "HTTP" ou "HTTPS", ele será mapeado para network.application_protocol . |
published |
vulnerabilities.last_found |
O campo published é convertido em um carimbo de data/hora e mapeado para vulnerabilities.last_found . |
Referer |
network.http.referral_url |
O valor de Referer é mapeado para network.http.referral_url . |
risk_score |
asset.attribute.labels.value |
O valor de risk_score é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Pontuação de risco". |
security_result_summary |
security_result.summary |
O valor de security_result_summary é mapeado para security_result.summary . Se ele corresponder ao padrão "Total de sessões para o principal: security_result.detection_fields . |
Session |
network.session_id |
O valor de Session é mapeado para network.session_id . |
severe_vulnerabilities |
asset.attribute.labels.value |
O valor de severe_vulnerabilities é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Vulnerabilidades graves". |
severity |
vulnerabilities.severity , security_result.severity |
O valor de severity é convertido em maiúsculas. Se for "HIGH", "LOW", "CRITICAL" ou "MEDIUM", ele será mapeado para vulnerabilities.severity . Para mensagens do syslog, se for "Info", será mapeado como "INFORMATIONAL" em security_result.severity . Se for "Error", será mapeado como "ERROR" em security_result.severity . |
severity_score |
asset.attribute.labels.value |
O valor de severity_score é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Pontuação de gravidade". |
SiloID |
security_result.detection_fields.value |
O valor de SiloID é mapeado para o campo value em security_result.detection_fields . O key correspondente é definido como "ID do silo". |
SourceModuleName |
target.resource.name |
O valor de SourceModuleName sem as aspas é mapeado para target.resource.name . |
SourceModuleType |
observer.application |
O valor de SourceModuleType com aspas e colchetes de fechamento removidos é mapeado para observer.application . |
Status |
network.http.response_code |
O valor de Status é mapeado para network.http.response_code e convertido em um número inteiro. |
tags |
asset.attribute.labels |
Para cada elemento na matriz tags , o campo type é mapeado para key e o campo name é mapeado para value em asset.attribute.labels . |
Thread |
security_result.detection_fields.value |
O valor de Thread é mapeado para o campo value em security_result.detection_fields . O key correspondente é definido como "Thread". |
timestamp |
event.timestamp , metadata.collected_timestamp , read_only_udm.metadata.event_timestamp |
O campo timestamp é convertido em um carimbo de data/hora e mapeado para event.timestamp em registros JSON e metadata.collected_timestamp em eventos de entidade. Para mensagens de syslog, ele é mapeado para read_only_udm.metadata.event_timestamp . |
title |
vulnerabilities.description |
O valor de title é mapeado para vulnerabilities.description . |
total_vulnerabilities |
asset.attribute.labels.value |
O valor de total_vulnerabilities é convertido em uma string e mapeado para o campo value em asset.attribute.labels . O key correspondente é definido como "Total de vulnerabilidades". |
URI |
security_result.detection_fields.value |
O valor de URI é mapeado para o campo value em security_result.detection_fields . O key correspondente é definido como "URI". |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
O valor de User-Agent é mapeado para network.http.user_agent . Ele também é mapeado para network.http.parsed_user_agent e convertido em um objeto de user agent analisado. Codificado como "Rapid7 Insight". Codificado como "Rapid7 Insight". Codificado como "ASSET" para registros JSON. Inicialmente definido como "GENERIC_EVENT", depois potencialmente mudado para "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" ou "USER_LOGIN" com base em outros campos. Defina como "AUTHTYPE_UNSPECIFIED" para eventos "USER_LOGIN". Defina como "ALLOW" ou "BLOCK" com base em product_event_type . Codificado como "RAPID7_INSIGHT" para mensagens syslog. |
username |
principal.user.user_display_name |
O valor de username , com as aspas removidas e potencialmente analisado para o endereço de e-mail, é mapeado para principal.user.user_display_name . O endereço de e-mail extraído, se presente, é mapeado para principal.user.email_addresses . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.