Recoger registros de gestión de vulnerabilidades de Qualys
Este analizador gestiona los registros de gestión de vulnerabilidades de Qualys en formato de pares clave-valor o JSON. Extrae los detalles de las vulnerabilidades, la información del host y los metadatos de los análisis, y los asigna al UDM. El analizador también gestiona diferentes estructuras de registro, prioriza el análisis de clave-valor y recurre a JSON si es necesario, y divide la matriz DetectionList
en eventos de vulnerabilidad individuales.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google Security Operations.
- Acceso privilegiado a la consola de Qualys VMDR.
Opcional: Crea un usuario de API específico en Qualys
- Inicia sesión en la consola de Qualys.
- Ve a Usuarios.
- Haz clic en Nuevo > Usuario.
- Introduce la información general necesaria del usuario.
- Selecciona la pestaña Rol de usuario.
- Asegúrate de que el rol tenga marcada la casilla Acceso a la API.
- Haz clic en Guardar.
Identificar tu URL de API de Qualys específica
Opción 1
Identifique sus URLs tal como se indica en la sección Identificación de la plataforma.
Opción 2
- Inicia sesión en la consola de Qualys.
- Ve a Ayuda > Información.
- Desplázate para ver esta información en Centro de operaciones de seguridad (SOC).
- Copia la URL de la API de Qualys.
Configurar feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Añadir feed.
- En la página siguiente, haga clic en Configurar un solo feed.
- En el campo Feed name (Nombre del feed), introduce un nombre para el feed; por ejemplo, Qualys VM Logs (Registros de VM de Qualys).
- Seleccione API de terceros como Tipo de fuente.
- Seleccione Qualys VM como tipo de registro.
- Haz clic en Siguiente.
- Especifique los valores de los siguientes parámetros de entrada:
- Nombre de usuario: introduce el nombre de usuario.
- Secreto: introduce la contraseña.
- Ruta completa de la API: proporciona la URL del servidor de la API de Qualys (por ejemplo,
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
), donde<qualys_base_url>
es la URL base del servidor de la API de Qualys en el que se encuentra tu cuenta.
- Haz clic en Siguiente.
- Revise la configuración del feed en la pantalla Finalizar y, a continuación, haga clic en Enviar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Se ha analizado a partir del campo DETECTION.FIRST_FOUND_DATETIME y se ha convertido el valor de cadena en una marca de tiempo. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Se ha analizado a partir del campo DETECTION.LAST_FOUND_DATETIME y se ha convertido el valor de cadena en una marca de tiempo. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " con el valor de DETECTION.QID . |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Se asigna directamente al campo de descripción. También se usa para extraer network.ip_protocol y principal.port mediante grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mapeado de DETECTION.SEVERITY . Los valores 0, 1 y 2 se convierten en "LOW"; los valores 3 y 4 se convierten en "MEDIUM"; y los valores 5, 6 y 7 se convierten en "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Se ha añadido como etiqueta con la clave "Estado de detección". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Se ha añadido como etiqueta con la clave "Detection type". |
DNS |
principal.hostname |
Se asigna directamente a principal.hostname . |
DNSData.DOMAIN |
principal.domain.name |
Se asigna directamente a principal.domain.name . |
HOST.ASSET_ID |
principal.asset_id |
Concatena "QUALYS:" con el valor de HOST.ASSET_ID . |
HOST.DNS |
principal.hostname |
Se asigna directamente a principal.hostname si DNS está vacío. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Se asigna directamente a principal.domain.name si DNSData.DOMAIN está vacío. |
HOST.ID |
metadata.product_log_id |
Se asigna directamente a metadata.product_log_id . |
HOST.IP |
principal.ip |
Se asigna directamente a principal.ip si IP está vacío. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Se ha analizado a partir del campo HOST.LAST_SCAN_DATETIME y se ha convertido el valor de cadena en una marca de tiempo. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Se ha analizado a partir del campo HOST.LAST_VM_SCANNED_DATE y se ha convertido el valor de cadena en una marca de tiempo. |
HOST.NETBIOS |
additional.fields |
Se ha añadido como etiqueta con la clave "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Se asigna directamente a principal.platform_version si OS está vacío. |
HOST.QG_HOSTID |
additional.fields |
Se ha añadido como etiqueta con la clave "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Se ha añadido como etiqueta con la clave "HOST TRACKING_METHOD". |
HOST_ID |
principal.asset_id |
Concatena "QUALYS:" con el valor de HOST_ID . |
ID |
metadata.product_log_id |
Se asigna directamente a metadata.product_log_id . |
IP |
principal.ip |
Se asigna directamente a principal.ip . |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Se ha analizado a partir del campo LastScanDateTime y se ha convertido el valor de cadena en una marca de tiempo. |
LastVMAuthScanDuration |
additional.fields |
Se ha añadido como etiqueta con la clave "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Se ha analizado a partir del campo LastVMScanDate y se ha convertido el valor de cadena en una marca de tiempo. |
LastVMScanDuration |
additional.fields |
Se ha añadido como etiqueta con la clave "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Se ha analizado a partir del campo LAST_FOUND_DATETIME y se ha convertido el valor de cadena en una marca de tiempo. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Se ha analizado a partir del campo LAST_SCAN_DATETIME y se ha convertido el valor de cadena en una marca de tiempo. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Se ha analizado a partir del campo LAST_VM_SCANNED_DATE y se ha convertido el valor de cadena en una marca de tiempo. |
NETBIOS |
additional.fields |
Se ha añadido como etiqueta con la clave "NETBIOS". |
NetworkID |
additional.fields |
Se ha añadido como etiqueta con la clave "NetworkID". |
NETWORK_ID |
additional.fields |
Se ha añadido como etiqueta con la clave "NetworkID". |
OS |
principal.platform_version |
Se asigna directamente a principal.platform_version . |
Os |
principal.platform_version |
Se asigna directamente a principal.platform_version si OS está vacío. |
QID |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " con el valor de QID . |
QgHostID |
principal.asset_id |
Asigna a principal.asset_id el valor "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mapeado de SEVERITY . Los valores 0, 1 y 2 se convierten en "LOW"; los valores 3 y 4 se convierten en "MEDIUM"; y los valores 5, 6 y 7 se convierten en "HIGH". |
TRACKING_METHOD |
additional.fields |
Se ha añadido como etiqueta con la clave "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Se ha añadido como etiqueta con la clave "TRACKING_METHOD". |
N/A | metadata.vendor_name |
Codificado como "Qualys". |
N/A | metadata.product_name |
Se ha codificado como "Gestión de vulnerabilidades". |
N/A | metadata.event_type |
Se asigna el valor "SCAN_VULN_HOST" si _vulns no está vacío, "STATUS_UPDATE" si prin_host o IP no están vacíos y "GENERIC_EVENT" en los demás casos. |
N/A | metadata.log_type |
Se toma del campo log_type del registro sin procesar. |
N/A | principal.platform |
Se determina a partir de OS , Os o HOST.OS . Si alguna de ellas contiene "Linux", la plataforma se define como "LINUX". Si alguna contiene "Windows", la plataforma se define como "WINDOWS". Si alguna contiene "mac" o "IOS", la plataforma se define como "MAC". |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como una etiqueta con la clave "Detection Type" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Se analiza a partir del campo detection.FirstFoundTime y se convierte el valor de cadena en una marca de tiempo en la matriz de vulnerabilidades de los eventos analizados a partir del campo DetectionList . |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Se analiza a partir del campo detection.LastFoundTime y se convierte el valor de cadena en una marca de tiempo en la matriz de vulnerabilidades de los eventos analizados a partir del campo DetectionList . |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como una etiqueta con la clave "LastProcessedDatetime" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como etiqueta con la clave "LastTestDateTime" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como una etiqueta con la clave "LastUpdateDateTime" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " con el valor de detection.Qid en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.Results |
extensions.vulns.vulnerabilities.description |
Se asigna directamente al campo de descripción de la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . Las tabulaciones y los saltos de línea se sustituyen por espacios. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Mapeado de detection.Severity . Los valores 0, 1 y 2 se convierten en "LOW"; los valores 3 y 4 se convierten en "MEDIUM"; y los valores 5, 6 y 7 se convierten en "HIGH" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como una etiqueta con la clave "Detection status" (Estado de detección) en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se añade como una etiqueta con la clave "TimesFound" en la matriz de vulnerabilidades de los eventos analizados del campo DetectionList . |
timestamp |
metadata.event_timestamp , timestamp |
El campo timestamp del registro sin procesar se usa tanto para la marca de tiempo del evento como para la marca de tiempo de nivel superior. |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.