Recopila registros de gestión de vulnerabilidades de Qualys
Este analizador controla los registros de administración de vulnerabilidades de Qualys en formato de par clave-valor (KV) o JSON. Extrae detalles de vulnerabilidades, información del host y metadatos de análisis, y los asigna al UDM. El analizador también controla diferentes estructuras de registro, prioriza el análisis de KV y recurre a JSON si es necesario, y divide el array DetectionList en eventos de vulnerabilidad individuales.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google Security Operations.
- Acceso con privilegios a la consola de Qualys VMDR
Opcional: Crea un usuario de API dedicado en Qualys
- Accede a la consola de Qualys.
- Ve a Usuarios.
- Haz clic en Nuevo > Usuario.
- Ingresa la Información general requerida para el usuario.
- Selecciona la pestaña Rol del usuario.
- Asegúrate de que el rol tenga seleccionada la casilla de verificación Acceso a la API.
- Haz clic en Guardar.
Identifica la URL específica de la API de Qualys
Opción 1
Identifica tus URLs como se menciona en la identificación de la plataforma.
Opción 2
- Accede a la consola de Qualys.
- Ve a Ayuda > Acerca de.
- Desplázate para ver esta información en Centro de operaciones de seguridad (SOC).
- Copia la URL de la API de Qualys.
Configura feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > Feeds.
- Haz clic en Agregar feed nuevo.
- En la página siguiente, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de VM de Qualys.
- Selecciona API de terceros como Tipo de fuente.
- Selecciona VM de Qualys como el tipo de registro.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre de usuario: Ingresa el nombre de usuario.
- Secreto: Ingresa la contraseña.
- Ruta de acceso completa de la API: Proporciona la URL del servidor de la API de Qualys (por ejemplo,
<qualys_base_url>/api/2.0/fo/asset/host/vm/detection/?action=list), en la que<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.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz 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 analiza desde el campo DETECTION.FIRST_FOUND_DATETIME y se convierte el valor de cadena en una marca de tiempo. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Se analiza desde el campo DETECTION.LAST_FOUND_DATETIME y se convierte 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 con grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Asignado desde DETECTION.SEVERITY. Los valores 0, 1 y 2 se convierten en "LOW"; 3 y 4, en "MEDIUM"; y 5, 6 y 7, en "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Se agregó como una etiqueta con la clave "Estado de detección". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Se agregó como una etiqueta con la clave "Tipo de detección". |
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 analiza desde el campo HOST.LAST_SCAN_DATETIME y se convierte el valor de cadena en una marca de tiempo. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Se analiza desde el campo HOST.LAST_VM_SCANNED_DATE y se convierte el valor de cadena en una marca de tiempo. |
HOST.NETBIOS |
additional.fields |
Se agregó como una 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 agregó como una etiqueta con la clave "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Se agregó como una 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 analiza desde el campo LastScanDateTime y se convierte el valor de cadena en una marca de tiempo. |
LastVMAuthScanDuration |
additional.fields |
Se agrega como una etiqueta con la clave "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Se analiza desde el campo LastVMScanDate y se convierte el valor de cadena en una marca de tiempo. |
LastVMScanDuration |
additional.fields |
Se agregó como una etiqueta con la clave "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Se analiza desde el campo LAST_FOUND_DATETIME y se convierte el valor de cadena en una marca de tiempo. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Se analiza desde el campo LAST_SCAN_DATETIME y se convierte el valor de cadena en una marca de tiempo. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Se analiza desde el campo LAST_VM_SCANNED_DATE y se convierte el valor de cadena en una marca de tiempo. |
NETBIOS |
additional.fields |
Se agregó como una etiqueta con la clave "NETBIOS". |
NetworkID |
additional.fields |
Se agrega como una etiqueta con la clave "NetworkID". |
NETWORK_ID |
additional.fields |
Se agrega como una 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 |
Establece principal.asset_id en "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Asignado desde SEVERITY. Los valores 0, 1 y 2 se convierten en "LOW"; 3 y 4, en "MEDIUM"; y 5, 6 y 7, en "HIGH". |
TRACKING_METHOD |
additional.fields |
Se agrega como una etiqueta con la clave "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Se agrega como una etiqueta con la clave "TRACKING_METHOD". |
| N/A | metadata.vendor_name |
Está codificado como "Qualys". |
| N/A | metadata.product_name |
Está codificado como "Gestión de vulnerabilidades". |
| N/A | metadata.event_type |
Se establece en "SCAN_VULN_HOST" si _vulns no está vacío, en "STATUS_UPDATE" si prin_host o IP no están vacíos y, de lo contrario, en "GENERIC_EVENT". |
| 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 alguno de estos contiene "Linux", la plataforma se establece en "LINUX". Si alguno contiene "Windows", la plataforma se establece en "WINDOWS". Si alguno contiene "mac" o "IOS", la plataforma se establece en "MAC". |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agrega como una etiqueta con la clave "Detection Type" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Se analiza desde el campo detection.FirstFoundTime, lo que convierte el valor de la cadena en una marca de tiempo dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Se analiza desde el campo detection.LastFoundTime, lo que convierte el valor de la cadena en una marca de tiempo dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agregó como una etiqueta con la clave "LastProcessedDatetime" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agrega como una etiqueta con la clave "LastTestDateTime" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agrega como una etiqueta con la clave "LastUpdateDateTime" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Concatena "QID: " con el valor de detection.Qid dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.Results |
extensions.vulns.vulnerabilities.description |
Se asigna directamente al campo de descripción dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. Las tabulaciones y las líneas nuevas se reemplazan por espacios. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Asignado desde detection.Severity. Los valores 0, 1 y 2 se convierten en "LOW"; 3 y 4 se convierten en "MEDIUM"; 5, 6 y 7 se convierten en "HIGH" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agrega como una etiqueta con la clave "Estado de detección" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Se agrega como una etiqueta con la clave "TimesFound" dentro del array de vulnerabilidades para los eventos analizados desde el campo DetectionList. |
timestamp |
metadata.event_timestamp, timestamp |
El campo timestamp del registro sin procesar se usa para la marca de tiempo del evento y la marca de tiempo de nivel superior. |
Registro de cambios
Consulta el registro de cambios de este analizador
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.