Recolha registos do Rapid7 InsightIDR
Este analisador processa registos formatados em JSON e SYSLOG do Rapid7 InsightIDR. Extrai campos, normaliza-os para o UDM e executa uma lógica específica para dados de vulnerabilidade, incluindo classificações CVSS e informações de exploração, processando os formatos JSON e syslog separadamente. Também mapeia as tentativas de autenticação e os eventos de sessão para os tipos de eventos da UDM adequados.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado à consola de gestão do InsightIDR.
Configurar uma chave da API no Rapid7 InsightIDR
- Inicie sessão na plataforma de comandos do InsightIDR.
- Clique em Administração.
- Clique em Chaves da API.
- Aceda ao separador Chaves da organização.
- Clique em Nova chave de organização.
- Selecione uma organização e indique um nome para a chave (por exemplo, Google SecOps).
- Gere a chave.
Copie a chave de uma nova janela que apresenta a chave gerada.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do Rapid7 InsightIDR.
- Selecione API de terceiros como o Tipo de origem.
- Selecione Rapid7 Insight como o Tipo de registo.
- Clicar em Seguinte.
- 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). - Ponto final da API: introduza vulnerabilities ou assets.
- Nome de anfitrião da API: o FQDN (nome de domínio totalmente qualificado) do ponto final da API Rapid7 no formato
[region].api.insight.rapid7.com
.
- Cabeçalho HTTP de autenticação: token gerado anteriormente no formato
- Clicar em Seguinte.
- Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
added |
vulnerabilities.first_found |
O campo added é convertido numa data/hora e mapeado para vulnerabilities.first_found . |
Authentication |
security_result.detection_fields.value |
O valor de Authentication do registo não processado é mapeado para o campo value em security_result.detection_fields . O key correspondente está definido como "Autenticação". |
critical_vulnerabilities |
asset.attribute.labels.value |
O valor de critical_vulnerabilities está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Vulnerabilidades críticas". |
cves |
vulnerabilities.cve_id |
O valor de cves está mapeado para vulnerabilities.cve_id . |
cvss_v2_access_complexity |
asset.attribute.labels.value |
O valor de cvss_v2_access_complexity está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Complexidade de acesso(Ac)". |
cvss_v2_availability_impact |
asset.attribute.labels.value |
O valor de cvss_v2_availability_impact está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Impacto na disponibilidade (A)". |
cvss_v2_confidentiality_impact |
asset.attribute.labels.value |
O valor de cvss_v2_confidentiality_impact está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Impacto na confidencialidade (C)". |
cvss_v2_integrity_impact |
asset.attribute.labels.value |
O valor de cvss_v2_integrity_impact está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Impacto na integridade (I)". |
cvss_v2_score |
vulnerabilities.cvss_base_score |
O valor de cvss_v2_score é convertido numa string, depois num número de vírgula flutuante e mapeado para vulnerabilities.cvss_base_score . |
cvss_v2_vector |
vulnerabilities.cvss_vector |
O valor de cvss_v2_vector está mapeado para vulnerabilities.cvss_vector . |
cvss_v3_availability_impact |
asset.attribute.labels.value |
O valor de cvss_v3_availability_impact está mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Impacto na disponibilidade (A)". |
cvss_v3_score |
vulnerabilities.cvss_base_score |
O valor de cvss_v3_score é convertido numa string, depois num número de vírgula flutuante e mapeado para vulnerabilities.cvss_base_score . |
cvss_v3_vector |
vulnerabilities.cvss_vector |
O valor de cvss_v3_vector está mapeado para vulnerabilities.cvss_vector . |
description |
vulnerabilities.description |
O valor de description do registo não processado é mapeado para vulnerabilities.description . |
exploits |
asset.attribute.labels.value |
O valor de exploits é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente é "Número de explorações" ou "Classificação da exploração" com base na presença do campo "classificação" no objeto exploits . |
host_name |
asset.hostname |
O valor de host_name está mapeado para asset.hostname . Se host_name estiver vazio e ip e mac estiverem vazios, é usado o valor de id . |
id |
asset.product_object_id |
O valor de id está mapeado para asset.product_object_id . Se host_name estiver vazio e ip e mac estiverem vazios, o valor de id é usado para asset.hostname . |
ip |
asset.ip , entity.asset.ip |
O valor de ip está mapeado para asset.ip e entity.asset.ip . |
last_assessed_for_vulnerabilities |
vulnerabilities.scan_end_time |
O campo last_assessed_for_vulnerabilities é convertido numa data/hora e mapeado para vulnerabilities.scan_end_time . |
last_scan_end |
vulnerabilities.last_found |
O campo last_scan_end é convertido numa data/hora e mapeado para vulnerabilities.last_found . |
last_scan_start |
vulnerabilities.first_found |
O campo last_scan_start é convertido numa data/hora e mapeado para vulnerabilities.first_found . |
links |
vulnerabilities.cve_id , vulnerabilities.vendor_knowledge_base_article_id |
O campo id em links está mapeado para vulnerabilities.cve_id e o campo href em links está mapeado para vulnerabilities.vendor_knowledge_base_article_id . |
mac |
asset.mac , entity.asset.mac |
O valor de mac é convertido em 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 está mapeado para principal.ip e principal.asset.ip . |
Method |
network.http.method |
O valor de Method está mapeado para network.http.method . |
moderate_vulnerabilities |
asset.attribute.labels.value |
O valor de moderate_vulnerabilities é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Vulnerabilidades moderadas". |
os_architecture |
asset.hardware.cpu_platform |
O valor de os_architecture está mapeado para asset.hardware.cpu_platform . |
os_description |
asset.platform_software.platform_version |
O valor de os_description está 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 destas opções, é definido como "UNKNOWN_PLATFORM". |
Port |
principal.port |
O valor de Port é mapeado para principal.port e convertido num número inteiro. |
Principal |
principal.user.email_addresses |
Se Principal for um endereço de email, está mapeado para principal.user.email_addresses . |
product_event_type |
metadata.product_event_type |
O valor de product_event_type está mapeado para metadata.product_event_type . |
Protocol |
network.application_protocol |
Se Protocol for "HTTP" ou "HTTPS", é mapeado para network.application_protocol . |
published |
vulnerabilities.last_found |
O campo published é convertido numa data/hora e mapeado para vulnerabilities.last_found . |
Referer |
network.http.referral_url |
O valor de Referer está mapeado para network.http.referral_url . |
risk_score |
asset.attribute.labels.value |
O valor de risk_score é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Pontuação de risco". |
security_result_summary |
security_result.summary |
O valor de security_result_summary está mapeado para security_result.summary . Se corresponder ao padrão "Total de sessões para o principal: security_result.detection_fields . |
Session |
network.session_id |
O valor de Session está mapeado para network.session_id . |
severe_vulnerabilities |
asset.attribute.labels.value |
O valor de severe_vulnerabilities é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente está 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", é mapeado para vulnerabilities.severity . Para mensagens syslog, se for "Info", é mapeado para "INFORMATIONAL" no security_result.severity . Se for "Error", é mapeado para "ERROR" em security_result.severity . |
severity_score |
asset.attribute.labels.value |
O valor de severity_score é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Gravidade". |
SiloID |
security_result.detection_fields.value |
O valor de SiloID está mapeado para o campo value em security_result.detection_fields . O key correspondente está definido como "ID do silo". |
SourceModuleName |
target.resource.name |
O valor de SourceModuleName com as aspas removidas é mapeado para target.resource.name . |
SourceModuleType |
observer.application |
O valor de SourceModuleType com as aspas e os parênteses de fecho removidos é mapeado para observer.application . |
Status |
network.http.response_code |
O valor de Status é mapeado para network.http.response_code e convertido num 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 está mapeado para o campo value em security_result.detection_fields . O key correspondente está definido como "Discussão". |
timestamp |
event.timestamp , metadata.collected_timestamp , read_only_udm.metadata.event_timestamp |
O campo timestamp é convertido numa data/hora e mapeado para event.timestamp para registos JSON e metadata.collected_timestamp para eventos de entidades. Para mensagens syslog, é mapeado para read_only_udm.metadata.event_timestamp . |
title |
vulnerabilities.description |
O valor de title está mapeado para vulnerabilities.description . |
total_vulnerabilities |
asset.attribute.labels.value |
O valor de total_vulnerabilities é convertido numa string e mapeado para o campo value em asset.attribute.labels . O key correspondente está definido como "Total de vulnerabilidades". |
URI |
security_result.detection_fields.value |
O valor de URI está mapeado para o campo value em security_result.detection_fields . O key correspondente está definido como "URI". |
User-Agent |
network.http.user_agent , network.http.parsed_user_agent |
O valor de User-Agent está mapeado para network.http.user_agent . Também é mapeado para network.http.parsed_user_agent e convertido num objeto de agente do utilizador analisado. Codificado de forma rígida para "Rapid7 Insight". Codificado de forma rígida para "Rapid7 Insight". Codificado como "ASSET" para registos JSON. Inicialmente, definido como "GENERIC_EVENT" e, em seguida, potencialmente alterado para "PROCESS_UNCATEGORIZED", "STATUS_UPDATE" ou "USER_LOGIN" com base noutros campos. Definido como "AUTHTYPE_UNSPECIFIED" para eventos "USER_LOGIN". Definido como "PERMITIR" ou "BLOQUEAR" com base em product_event_type . Codificado de forma rígida 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 email, é mapeado para principal.user.user_display_name . O endereço de email extraído, se estiver presente, é mapeado para principal.user.email_addresses . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.