Coletar registros do Rapid7 InsightIDR

Compatível com:

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

  1. Faça login na plataforma de comandos do InsightIDR.
  2. Clique em Administração.
  3. Clique em Chaves de API.
  4. Acesse a guia Chaves da organização.
  5. Clique em Nova chave da organização.
  6. Selecione uma organização e informe um nome para a chave (por exemplo, Google SecOps).
  7. Gere a chave.
  8. 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:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Rapid7 InsightIDR.
  5. Selecione API de terceiros como o Tipo de origem.
  6. Selecione Rapid7 Insight como o Tipo de registro.
  7. Clique em Próxima.
  8. 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.
  9. Clique em Próxima.
  10. 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: ", o número será extraído e mapeado para um rótulo separado com a chave "Contagem de sessões" em 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.