Recolha registos do Qualys Vulnerability Management
Este analisador processa os registos de gestão de vulnerabilidades da Qualys no formato de valor-chave (KV) ou JSON. Extrai detalhes de vulnerabilidades, informações do anfitrião e metadados de análise, mapeando-os para o UDM. O analisador também processa diferentes estruturas de registos, dando prioridade à análise KV e recorrendo ao JSON, se necessário, e divide a matriz DetectionList
em eventos de vulnerabilidade individuais.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google Security Operations.
- Acesso privilegiado à consola do Qualys VMDR.
Opcional: crie um utilizador da API dedicado no Qualys
- Inicie sessão na consola do Qualys.
- Aceda a Utilizadores.
- Clique em Novo > Utilizador.
- Introduza as informações gerais necessárias para o utilizador.
- Selecione o separador Função do utilizador.
- Certifique-se de que a caixa de verificação Acesso à API está selecionada para a função.
- Clique em Guardar.
Identifique o URL da API Qualys específico
Opção 1
Identifique os seus URLs conforme mencionado na identificação da plataforma.
Opção 2
- Inicie sessão na consola do Qualys.
- Aceda a Ajuda > Acerca de.
- Desloque a página para ver estas informações em Centro de operações de segurança (SOC).
- Copie o URL da API Qualys.
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 de VM do Qualys.
- Selecione API de terceiros como o Tipo de origem.
- Selecione Qualys VM como o tipo de registo.
- Clicar em Seguinte.
- Especifique valores para os seguintes parâmetros de entrada:
- Nome de utilizador: introduza o nome de utilizador.
- Secreto: introduza a palavra-passe.
- Caminho completo da API: indique 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 onde a sua conta está localizada.
- 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 |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Analisado a partir do campo DETECTION.FIRST_FOUND_DATETIME , convertendo o valor da string numa data/hora. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analisado a partir do campo DETECTION.LAST_FOUND_DATETIME , convertendo o valor da string numa data/hora. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " com o valor de DETECTION.QID . |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Mapeia diretamente para o campo de descrição. Também é usado para extrair network.ip_protocol e principal.port através do grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mapeado a partir de DETECTION.SEVERITY . Os valores 0, 1 e 2 tornam-se "LOW"; 3 e 4 tornam-se "MEDIUM"; 5, 6 e 7 tornam-se "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Adicionada como uma etiqueta com a chave "Estado da deteção". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Adicionada como uma etiqueta com a chave "Tipo de deteçã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 a partir do campo HOST.LAST_SCAN_DATETIME , convertendo o valor da string numa data/hora. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado a partir do campo HOST.LAST_VM_SCANNED_DATE , convertendo o valor da string numa data/hora. |
HOST.NETBIOS |
additional.fields |
Adicionado como uma etiqueta 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 |
Adicionada como uma etiqueta com a chave "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Adicionado como uma etiqueta 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 a partir do campo LastScanDateTime , convertendo o valor da string numa data/hora. |
LastVMAuthScanDuration |
additional.fields |
Adicionado como uma etiqueta com a chave "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado a partir do campo LastVMScanDate , convertendo o valor da string numa data/hora. |
LastVMScanDuration |
additional.fields |
Adicionado como uma etiqueta com a chave "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analisado a partir do campo LAST_FOUND_DATETIME , convertendo o valor da string numa data/hora. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analisado a partir do campo LAST_SCAN_DATETIME , convertendo o valor da string numa data/hora. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analisado a partir do campo LAST_VM_SCANNED_DATE , convertendo o valor da string numa data/hora. |
NETBIOS |
additional.fields |
Adicionado como uma etiqueta com a chave "NETBIOS". |
NetworkID |
additional.fields |
Adicionado como uma etiqueta com a chave "NetworkID". |
NETWORK_ID |
additional.fields |
Adicionado como uma etiqueta 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 a partir de SEVERITY . Os valores 0, 1 e 2 tornam-se "LOW"; 3 e 4 tornam-se "MEDIUM"; 5, 6 e 7 tornam-se "HIGH". |
TRACKING_METHOD |
additional.fields |
Adicionado como uma etiqueta com a chave "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Adicionado como uma etiqueta com a chave "TRACKING_METHOD". |
N/A | metadata.vendor_name |
Codificado de forma rígida para "Qualys". |
N/A | metadata.product_name |
Codificado como "Gestão 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 registo não processado. |
N/A | principal.platform |
Determinado a partir de OS , Os ou HOST.OS . Se alguma destas opções contiver "Linux", a plataforma é definida como "LINUX". Se algum contiver "Windows", a plataforma é definida como "WINDOWS". Se algum contiver "mac" ou "IOS", a plataforma é definida como "MAC". |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "Detection Type" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Analisado a partir do campo detection.FirstFoundTime , convertendo o valor da string numa data/hora na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Analisado a partir do campo detection.LastFoundTime , convertendo o valor da string numa data/hora na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "LastProcessedDatetime" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "LastTestDateTime" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "LastUpdateDateTime" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " com o valor de detection.Qid na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.Results |
extensions.vulns.vulnerabilities.description |
Mapeia diretamente para o campo de descrição na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . As tabulações e as novas linhas são substituídas por espaços. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Mapeado a partir de detection.Severity . Os valores 0, 1 e 2 tornam-se "LOW"; 3 e 4 tornam-se "MEDIUM"; 5, 6 e 7 tornam-se "HIGH" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "Detection status" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Adicionado como uma etiqueta com a chave "TimesFound" na matriz de vulnerabilidades para eventos analisados a partir do campo DetectionList . |
timestamp |
metadata.event_timestamp , timestamp |
O campo timestamp do registo não processado é usado para a data/hora do evento e a data/hora de nível superior. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.