Coletar registros do Qualys Vulnerability Management
Esse analisador processa registros do Qualys Vulnerability Management no formato chave-valor (KV) ou JSON. Ele extrai detalhes de vulnerabilidade, informações do host e metadados de verificação, mapeando-os para o UDM. O analisador também processa diferentes estruturas de registro, priorizando a análise de KV e voltando para JSON, se necessário, e divide a matriz DetectionList
em eventos de vulnerabilidade individuais.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google Security Operations.
- Acesso privilegiado ao console do Qualys VMDR.
Opcional: crie um usuário de API dedicado no Qualys
- Faça login no console da Qualys.
- Acesse Usuários.
- Clique em Novo > Usuário.
- Insira as Informações gerais necessárias para o usuário.
- Selecione a guia Função do usuário.
- Verifique se a caixa de seleção Acesso à API está marcada.
- Clique em Salvar.
Identificar seu URL específico da API do Qualys
Opção 1
Identifique seus URLs conforme mencionado na identificação da plataforma.
Opção 2
- Faça login no console da Qualys.
- Acesse Ajuda > Sobre.
- Role a tela para ver essas informações em "Central de operações de segurança (SOC)".
- Copie o URL da API do Qualys.
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 de VM do Qualys.
- Selecione API de terceiros como o Tipo de origem.
- Selecione Qualys VM como o tipo de registro.
- Clique em Próxima.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome de usuário: digite o nome de usuário.
- Secret: insira a senha.
- Caminho completo da API: forneça o URL do servidor da API Qualys (por exemplo,
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
), em que<qualys_base_url>
é o URL base do servidor da API Qualys em que sua conta está localizada.
- 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:
- Nome de usuário: digite o nome de usuário.
- Secret: insira a senha.
- Caminho completo da API: forneça o URL do servidor da API Qualys (por exemplo,
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
), em que<qualys_base_url>
é o URL base do servidor da API Qualys em que sua conta está localizada.
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 |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Analisado do campo DETECTION.FIRST_FOUND_DATETIME , convertendo o valor da string em um carimbo de data/hora. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analisado do campo DETECTION.LAST_FOUND_DATETIME , convertendo o valor da string em um carimbo de data/hora. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " com o valor de DETECTION.QID . |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Mapeia diretamente o campo de descrição. Também usado para extrair network.ip_protocol e principal.port usando grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mapeado de DETECTION.SEVERITY . Os valores 0, 1 e 2 se tornam "BAIXA"; 3 e 4 se tornam "MÉDIA"; 5, 6 e 7 se tornam "ALTA". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Adicionado como um rótulo com a chave "Status da detecção". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Adicionado como um rótulo com a chave "Tipo de detecção". |
DNS |
principal.hostname |
Mapeia diretamente para principal.hostname . |
DNSData.DOMAIN |
principal.domain.name |
Mapeia diretamente para principal.domain.name . |
HOST.ASSET_ID |
principal.asset_id |
Concatena "QUALYS:" com o valor de HOST.ASSET_ID . |
HOST.DNS |
principal.hostname |
Mapeia diretamente para principal.hostname se DNS estiver vazio. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Mapeia diretamente para principal.domain.name se DNSData.DOMAIN estiver vazio. |
HOST.ID |
metadata.product_log_id |
Mapeia diretamente para metadata.product_log_id . |
HOST.IP |
principal.ip |
Mapeia diretamente para principal.ip se IP estiver vazio. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analisado do campo HOST.LAST_SCAN_DATETIME , convertendo o valor da string em um carimbo de data/hora. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado do campo HOST.LAST_VM_SCANNED_DATE , convertendo o valor da string em um carimbo de data/hora. |
HOST.NETBIOS |
additional.fields |
Adicionado como um rótulo com a chave "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Mapeia diretamente para principal.platform_version se OS estiver vazio. |
HOST.QG_HOSTID |
additional.fields |
Adicionado como um rótulo com a chave "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Adicionado como um rótulo com a chave "HOST TRACKING_METHOD". |
HOST_ID |
principal.asset_id |
Concatena "QUALYS:" com o valor de HOST_ID . |
ID |
metadata.product_log_id |
Mapeia diretamente para metadata.product_log_id . |
IP |
principal.ip |
Mapeia diretamente para principal.ip . |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Analisado do campo LastScanDateTime , convertendo o valor da string em um carimbo de data/hora. |
LastVMAuthScanDuration |
additional.fields |
Adicionado como um rótulo com a chave "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado do campo LastVMScanDate , convertendo o valor da string em um carimbo de data/hora. |
LastVMScanDuration |
additional.fields |
Adicionado como um rótulo com a chave "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analisado do campo LAST_FOUND_DATETIME , convertendo o valor da string em um carimbo de data/hora. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analisado do campo LAST_SCAN_DATETIME , convertendo o valor da string em um carimbo de data/hora. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado do campo LAST_VM_SCANNED_DATE , convertendo o valor da string em um carimbo de data/hora. |
NETBIOS |
additional.fields |
Adicionado como um rótulo com a chave "NETBIOS". |
NetworkID |
additional.fields |
Adicionado como um rótulo com a chave "NetworkID". |
NETWORK_ID |
additional.fields |
Adicionado como um rótulo com a chave "NetworkID". |
OS |
principal.platform_version |
Mapeia diretamente para principal.platform_version . |
Os |
principal.platform_version |
Mapeia diretamente para principal.platform_version se OS estiver vazio. |
QID |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " com o valor de QID . |
QgHostID |
principal.asset_id |
Define principal.asset_id como "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mapeado de SEVERITY . Os valores 0, 1 e 2 se tornam "BAIXA"; 3 e 4 se tornam "MÉDIA"; 5, 6 e 7 se tornam "ALTA". |
TRACKING_METHOD |
additional.fields |
Adicionado como um rótulo com a chave "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Adicionado como um rótulo com a chave "TRACKING_METHOD". |
N/A | metadata.vendor_name |
Codificado como "Qualys". |
N/A | metadata.product_name |
Codificado como "Gerenciamento de vulnerabilidades". |
N/A | metadata.event_type |
Definido como "SCAN_VULN_HOST" se _vulns não estiver vazio, "STATUS_UPDATE" se prin_host ou IP não estiverem vazios e "GENERIC_EVENT" caso contrário. |
N/A | metadata.log_type |
Extraído do campo log_type do registro bruto. |
N/A | principal.platform |
Determinado por OS , Os ou HOST.OS . Se algum deles contiver "Linux", a plataforma será definida como "LINUX". Se algum deles contiver "Windows", a plataforma será definida como "WINDOWS". Se algum deles contiver "mac" ou "IOS", a plataforma será definida como "MAC". |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "Detection Type" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Analisado do campo detection.FirstFoundTime , convertendo o valor da string em um carimbo de data/hora na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Analisado do campo detection.LastFoundTime , convertendo o valor da string em um carimbo de data/hora na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "LastProcessedDatetime" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "LastTestDateTime" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "LastUpdateDateTime" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " com o valor de detection.Qid na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.Results |
extensions.vulns.vulnerabilities.description |
Mapeia diretamente o campo "description" na matriz "vulnerabilities" para eventos analisados do campo DetectionList . As tabulações e as novas linhas são substituídas por espaços. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Mapeado de detection.Severity . Os valores 0, 1 e 2 se tornam "LOW"; 3 e 4 se tornam "MEDIUM"; 5, 6 e 7 se tornam "HIGH" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "Detection status" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como um rótulo com a chave "TimesFound" na matriz de vulnerabilidades para eventos analisados do campo DetectionList . |
timestamp |
metadata.event_timestamp , timestamp |
O campo timestamp do log bruto é usado para o carimbo de data/hora do evento e o carimbo de data/hora de nível superior. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.