La forma más limpia de obtener eventos sin procesar de QRadar es la API REST de Ariel. Ejecute una consulta AQL que seleccione UTF8(payload), espere a que la búsqueda termine y extraiga los resultados como JSON. Termina con las líneas de registro originales exactamente como las enviaron sus fuentes de registro. La pestaña de Actividad de Registro también puede exportar resultados de búsqueda, pero no en un formato que LogTotal lea hoy.
QRadar se encuentra en el centro de muchos SOCs, y tarde o temprano alguien necesita una parte de sus datos fuera de la consola: un socio de IR, una segunda opinión, una comprobación rápida sin construir una nueva regla. Prime Core tiene 23,656 reglas de detección para QRadar, mapeadas a 674 técnicas MITRE ATT&CK. A continuación, se muestra cómo extraer una parte limpia de eventos sin procesar, sanitizarla e investigarla de forma gratuita en LogTotal.
Esta guía cubre QRadar SIEM, local y software. Si su empresa estaba en QRadar SaaS, que IBM vendió a Palo Alto Networks en 2024, es posible que se haya trasladado a Cortex XSIAM desde entonces.
Antes de comenzar
Un token de servicio autorizado. Crea uno en Admin → Servicios Autorizados y dale una fecha de expiración. El token lleva un rol de usuario y un perfil de seguridad. El perfil de seguridad decide qué fuentes de registro y redes puede ver. Si es más restringido que el suyo propio, la API devuelve silenciosamente menos eventos de los que le muestra la Actividad de Registro. Ese es el momento más común sobre “¿a dónde se fueron mis eventos?” con las exportaciones de QRadar.
Retención. Los eventos viven tanto como lo permiten sus cubos de retención (Admin → Retención de Eventos). Si la ventana que necesita es más antigua que eso, no queda nada para exportar.
Acceso a la red. La API se ejecuta en el puerto HTTPS de la consola. Las consolas a menudo usan certificados autofirmados; apunte curl al CA correcto con –cacert en lugar de desactivar la verificación.
Paso 1: Escribe la consulta AQL
Seleccione el payload más algunos campos para contexto:
SELECT DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm:ss') AS event_time,
LOGSOURCENAME(logsourceid) AS log_source,
QIDNAME(qid) AS event_name,
UTF8(payload) AS payload
FROM events
WHERE LOGSOURCENAME(logsourceid) = 'web-03'
START '2026-10-19 00:00' STOP '2026-10-20 00:00'
Algunas notas de experiencia:
- UTF8(payload) es la parte importante. Sin él, el payload devuelve como bytes codificados, no como texto de registro legible.
- Restringirlo. Filtrar por nombre de fuente de registro o por tipo con LOGSOURCETYPENAME(devicetype) ILIKE ‘%Linux%’, y mantener la ventana ajustada.
- START / STOP para ventanas exactas, LAST 24 HOURS para relativas.
- Pruébalo primero in Actividad de Registro → Búsqueda Avanzada. Es el mismo AQL, y verá el conteo de eventos antes de exportar.
Los eventos de Windows recopilados a través de WinCollect llegan como cargas de texto, no como EVTX. Lo que exporta es ese texto.
Paso 2: Correrlo a través de la API de Ariel
Guarde esto como qradar_export.sh. Comienza la búsqueda, espera a que termine y escribe un payload crudo por línea:
#!/usr/bin/env bash
set -euo pipefail
QRADAR="https://qradar.example.com"
TOKEN="${QRADAR_TOKEN:?set QRADAR_TOKEN first}"
AQL="SELECT UTF8(payload) AS payload FROM events WHERE LOGSOURCENAME(logsourceid) = 'web-03' START '2026-10-19 00:00' STOP '2026-10-20 00:00'"
# 1. inicia la búsqueda (-G pone la consulta en la URL, -X POST mantiene el método)
SID=$(curl -sS -G -X POST -H "SEC: $TOKEN" -H "Accept: application/json"
--data-urlencode "query_expression=$AQL"
"$QRADAR/api/ariel/searches" | jq -r '.search_id')
# 2. espera a que termine
while :; do
STATUS=$(curl -sS -H "SEC: $TOKEN" "$QRADAR/api/ariel/searches/$SID" | jq -r '.status')
[ "$STATUS" = "COMPLETED" ] && break
if [ "$STATUS" = "ERROR" ] || [ "$STATUS" = "CANCELED" ]; then echo "Búsqueda $STATUS"; exit 1; fi
sleep 5
done
# 3. obtener resultados: payloads crudos, uno por línea
curl -sS -H "SEC: $TOKEN" -H "Accept: application/json"
"$QRADAR/api/ariel/searches/$SID/results" | jq -r '.events[].payload' > web-03_qradar_1019.log
¿Quieres eventos estructurados, con tiempo y fuente de log como campos? Selecciona esas columnas en el AQL y usa jq -c ‘.events[]’ en el último paso. Obtienes un objeto JSON por línea.
Para conjuntos de resultados muy grandes, obtenga los resultados en páginas con un encabezado de Rango, por ejemplo -H «Range: items=0-49999», luego los próximos 50,000.
Paso 3: Subir, sanitizar y revisar en LogTotal
- Subir. Abierto logtotal.com y suelta el archivo.
- Sanitize. Revísalo antes de continuar.
- Revisar.
Cuando sale mal
| Síntoma | Causa probable | Fix |
|---|---|---|
| 401 de la API | Token inválido, expirado, o falta el encabezado SEC | Verifique el encabezado; cree un nuevo token |
| Menos eventos de los que muestra la Actividad de Registro | El perfil de seguridad del token ve menos fuentes de log | Asigne al token un perfil que coincida con la investigación |
| Payloads parecen gribberish codificado | UTF8() dejado fuera de la consulta | Seleccionar UTF8(payload) |
| Estado de búsqueda pasa a ERROR | Sintaxis de AQL | Pruebe la consulta en Búsqueda Avanzada primero |
| Los resultados son vacíos | La ventana está fuera de retención, o la zona horaria está apagada | Verifique la retención; verifique la zona horaria de la consola |
| curl se queja del certificado | Certificado de la consola autofirmado | Utilice –cacert con el CA de la consola |
FAQ
¿Puedo obtener archivos EVTX de QRadar?
No. QRadar almacena eventos de Windows como cargas de texto. Para archivos EVTX reales, expórtelos desde el host de Windows.
¿Qué pasa con los datos de flujo?
Los flujos viven en una tabla separada: consultar FROM flows en lugar de FROM events. Son registros de conexiones de red, no logs, y son un análisis separado.