Coletar registros do InsightIDR da Rapid7

Compatível com:

Esse analisador processa registros JSON e SYSLOG do Rapid7 InsightIDR. Ele extrai campos, os normaliza para o UDM e executa uma lógica específica para dados de vulnerabilidade, incluindo pontuações CVSS e informações de exploração, processando os formatos JSON e syslog separadamente. Ele também mapeia tentativas de autenticação e eventos de sessão para os tipos de evento apropriados do UDM.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Confira se você tem acesso privilegiado ao console de gerenciamento do InsightIDR.

Como configurar uma chave de API no Rapid7 InsightIDR

  1. Faça login na plataforma de comando 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 um feed no Google SecOps para ingerir registros do Rapid7 InsightIDR

  1. Clique em Adicionar novo.
  2. No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do InsightIDR).
  3. Selecione API de terceiros como o Tipo de origem.
  4. Selecione Rapid7 Insight como o Tipo de registro.
  5. Clique em Próxima.
  6. 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 vulnerabilidades ou ativos.
    • 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.
    • Namespace de recursos: o namespace de recursos.
    • Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
  7. Clique em Próxima.
  8. Revise a configuração do feed na tela Finalizar e clique em Enviar.

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 "Autenticação".
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 "Access Complexity(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 de exploit" com base na presença do campo "classificação" no objeto exploits.
host_name asset.hostname O valor de host_name é mapeado para asset.hostname. Se host_name estiver vazio e ip e mac também 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 estiver vazio e ip e mac também estiverem vazios, o valor de id será usado para asset.hostname.
ip asset.ip, entity.asset.ip O valor de ip é associado a 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 "Info", ele é mapeado para "INFORMATIONAL" em security_result.severity. Se for "Erro", ele será associado a "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 com aspas removidas é 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 para registros JSON e metadata.collected_timestamp para eventos de entidade. Para mensagens 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. Fixado em "Rapid7 Insight". Fixado em "Rapid7 Insight". Fixado em "ASSET" para registros JSON. Inicialmente "GENERIC_EVENT", depois pode ser alterado para "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" ou "USER_LOGIN" com base em outros campos. Defina como "AUTHTYPE_UNSPECIFIED" para eventos "USER_LOGIN". Defina como "PERMITIR" ou "BLOQUEAR" com base em product_event_type. Fixado em "RAPID7_INSIGHT" para mensagens syslog.
username principal.user.user_display_name O valor de username, com aspas removidas e potencialmente analisadas 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.

Alterações

2024-05-13

  • Inclusão de suporte ao novo formato de registros SYSLOG+KV.

2023-05-05

  • Melhoria
  • "tags.type" foi mapeado para "asset.attribute.labels.key".
  • "tags.name" foi associado a "asset.attribute.labels.value".

2022-12-15

  • Melhoria
  • Melhoramos o analisador para analisar registros de aplicativos no formato Syslog.
  • Foram adicionados padrões Grok para os registros com os tipos "Sessão criada", "Sessão destruída", "Tentativa de autenticação bem-sucedida" e "Tentativa de autenticação falhou".