Cómo Exportar Registros desde Splunk para Análisis de Seguridad

Cómo Exportar Registros desde Splunk para Análisis de Seguridad

SOC Prime Team
SOC Prime Team linkedin icon Seguir

La respuesta corta: ejecuta la búsqueda, haz clic Exportar en la barra de herramientas del trabajo debajo de la barra de búsqueda, y elige Eventos Crudos, CSV or JSON. Para unos pocos miles de eventos, eso es todo lo que necesitas. Para extracciones más grandes, omite el navegador y usa el CLI de búsqueda de Splunk o el endpoint de exportación por REST. Ambos transmiten resultados en lugar de hacer que Splunk Web construya un archivo enorme para ti.

¿Por qué exportar desde Splunk si los datos ya están indexados? Usualmente porque alguien fuera de tu Splunk necesita verlos: un socio de IR, un colega en otro equipo, o tú, en una laptop, sin escribir SPL por una hora. Prime Core tiene 23,674 reglas de detección para Splunk mapeadas a 676 técnicas MITRE ATT&CK. Es mucha lógica de detección que puedes ejecutar contra una pequeña porción de tus datos una vez exportados. A continuación se muestra cómo obtener esa porción, sanearla e investigarla gratuitamente en LogTotal.

Comienza Gratis

TL;DR

RutaÚsalo cuandoLo que necesitas
Splunk Web → ExportarExportación pequeña y única, ya tienes la búsqueda abiertaAcceso de búsqueda al índice
CLI de búsqueda de splunkTienes un shell en un nodo de búsqueda de Splunk EnterpriseAcceso al OS + credenciales de Splunk
REST search/jobs/exportExportaciones grandes, scripting o Splunk CloudAcceso al puerto de administración (8089) + un token

Antes de comenzar

Tres cosas deciden qué ruta funciona para ti: donde corre tu Splunk, qué puede buscar tu rol, y si se te permite sacar los datos.

  • Acceso al índice. Solo puedes exportar lo que tu rol puede buscar. Si una búsqueda regresa vacía pero sabes que los datos están allí, revisa los índices permitidos de tu rol antes de comenzar a reescribir SPL. Pon index= explícitamente en la búsqueda; no te fíes de los índices por defecto.
  • Splunk Cloud vs. Enterprise. En Splunk Cloud Platform no hay shell, así que la ruta de CLI está fuera. La API REST tampoco está activada por defecto: alguien debe solicitar acceso para tu pila, y las pruebas gratuitas no pueden usarla en absoluto. La exportación de Splunk Web funciona en todos lados.
  • Permiso para exportar. Los registros crudos contienen nombres de usuario, nombres de host, IPs internas, a veces tokens en URLs. LogTotal sanea las cargas antes del análisis, pero todavía se aplica la política de manejo de datos de tu empresa. Obtén la aprobación primero. Toma cinco minutos, y querrás tenerlo por escrito si esto se convierte en un incidente.

Los comandos a continuación siguen la documentación actual de Splunk para Splunk Enterprise y Splunk Cloud Platform, revisada en octubre de 2026. Los enlaces a cada página que usamos están al final.

Paso 1: Delimita la búsqueda antes de exportar cualquier cosa

El error más común es exportar todo un índice “por si acaso.” Terminas con un archivo que nadie quiere abrir. Decide qué pregunta estás respondiendo, luego fija índice, tipo de fuente, anfitrión y tiempo:

index=linux sourcetype=linux_secure host=web-03 earliest=-24h@h latest=@h

Para eventos de seguridad de Windows recolectados por el complemento de Splunk para Windows en modo XML:

index=wineventlog source="XmlWinEventLog:Security" host=dc-01 earliest=-24h@h latest=@h

Dos reglas mantienen útil la exportación.

Mantén _raw. Si la búsqueda termina con stats, table o chart, estás exportando un resumen, no registros, y Splunk Web deshabilitará el formato Eventos Crudos. Exporta eventos, no resultados. Si usas JSON, recorta los campos extraídos para que el archivo no triplique su tamaño:

... | fields _time host source sourcetype _raw

Usa tiempo absoluto cuando es importante. earliest=-24h significa algo diferente cada minuto. Si Splunk tiene que re-ejecutar tu búsqueda durante la exportación (más sobre esto después), una ventana relativa puede devolver un conjunto de eventos ligeramente diferente. Para cualquier cosa relacionada con incidentes, utiliza marcas de tiempo exactas.

Una cosa que saber sobre los datos de Windows: Splunk no conserva los archivos .evtx originales. Indexa el texto del evento renderizado, XML o el clásico clave=valor. Así que lo que exportas es ese texto, no un EVTX binario.

Paso 2a: Exportar desde Splunk Web

Ideal para exportaciones pequeñas y únicas cuando la búsqueda ya está en tu pantalla.

  1. Ejecuta la búsqueda y deja que el trabajo termine. Exportar un trabajo en ejecución solo te da una imagen parcial.
  2. Haz clic Exportar (la flecha de descarga) en la fila de acciones del trabajo debajo de la barra de búsqueda.
  3. Elige el formato. Eventos Crudos te da las líneas del registro original tal como fueron indexadas, que es lo que deseas para fuentes de estilo syslog como linux_secure. JSON mantiene host, source y sourcetype junto a cada evento. Eso ayuda cuando la exportación abarca varios hosts.
  4. Nombra el archivo con algo que reconocerás la próxima semana, por ejemplo, web-03_sshd_2026-10-19.log.
  5. Deja Número de Resultados vacío para exportar todo lo que la búsqueda devolvió. Si escribes 500, obtendrás los primeros 500 y nada te dice que había más.
  6. Haz clic Exportar.

Un detalle que confunde a la gente: la exportación funciona desde el artefacto de búsqueda del trabajo, no desde lo que ves en el navegador. Si Splunk no mantuvo cada resultado con el trabajo, el diálogo advierte que primero volverá a ejecutar la búsqueda. Eso es normal. Solo toma más tiempo, por eso el rango de tiempo absoluto del Paso 1 es importante. Las exportaciones muy largas también pueden alcanzar el tiempo de espera de la sesión de Splunk Web. Si la exportación se ejecuta por minutos, cambia al CLI o REST.

Paso 2b: Exportar con el CLI de Splunk (solo Enterprise)

Si tienes un shell en el nodo de búsqueda, esta es la ruta más rápida y la más fácil de scriptar. Inicia sesión primero, para que tu contraseña no termine en el historial del shell como sucedería con -auth:

$SPLUNK_HOME/bin/splunk login

$SPLUNK_HOME/bin/splunk search
  'index=linux sourcetype=linux_secure host=web-03 earliest="10/19/2026:00:00:00" latest="10/20/2026:00:00:00"'
  -preview 0 -maxout 0 -output rawdata > web-03_sshd.log

Qué hace cada bandera:

  • -maxout 0 elimina el límite. Por defecto, el CLI exporta 100 eventos y se detiene sin decir nada. Si tu archivo tiene exactamente 100 líneas, esta es la razón, no un host silencioso.
  • -preview 0 evita que los resultados de vista previa entren al archivo.
  • -output rawdata escribe las líneas originales. Usa -output json si quieres eventos estructurados con metadatos.

También puedes ejecutar el CLI contra un nodo de búsqueda remoto con -uri https://<nodo-de-búsqueda>:8089, siempre y cuando el puerto de administración sea accesible desde donde estás.

Dos comprobaciones rápidas de cordura antes de subir:

wc -l web-03_sshd.log
head -3 web-03_sshd.log

Para fuentes de línea única como linux_secure, el conteo de líneas debería coincidir aproximadamente con el conteo de eventos que Splunk Web muestra para la misma búsqueda. Las primeras líneas deberían parecer líneas de registro, no mensajes de error.

Paso 2c: Transmitir resultados a través de la API REST

Esta es la ruta para exportaciones grandes, extracciones programadas y Splunk Cloud (una vez habilitado el acceso REST para tu pila). El endpoint de exportación transmite resultados mientras la búsqueda se ejecuta, así que no hay trabajo que consultar ni páginas de resultados que recorrer.

Usa un token de autenticación en lugar de un nombre de usuario y contraseña. Crea uno en Configuración → Tokens, si tu administrador ha activado la autenticación de tokens.

export SPLUNK_TOKEN='<tu token>'

curl -sS
  -H "Authorization: Bearer $SPLUNK_TOKEN"
  https://sh01.example.com:8089/services/search/v2/jobs/export
  --data-urlencode search='search index=linux sourcetype=linux_secure host=web-03'
  -d earliest_time='2026-10-19T00:00:00.000+00:00'
  -d latest_time='2026-10-20T00:00:00.000+00:00'
  -d output_mode=raw
  -o web-03_sshd.log

Cosas que confunden a la gente:

  • La cadena de búsqueda debe empezar con search (o un comando generador como | tstats). Pega tu consulta sin ella y Splunk la rechazará.
  • output_mode=raw te da las líneas originales, y es el modo más rápido. output_mode=json transmite un objeto JSON por línea, con el evento bajo una clave result. Si solo quieres los eventos en sí, elimina el envoltorio con jq: jq -c ‘select(.result) | .result’ export.json > events.ndjson. Para una carga de LogTotal, quédate con raw.
  • Las instancias de laboratorio suelen usar certificados autofirmados, y cada respuesta de Stack Overflow te dirá que agregues -k. En producción, apunta curl a tu CA con –cacert en su lugar.
  • Si envías por POST a search/v2/jobs y lees desde /results, el servidor limita las filas por solicitud, y tienes que paginar con offset. export no lo hace, que es la razón para usarlo aquí.

Paso 3: Sube, sanea y revisa en LogTotal

LogTotal es el servicio gratuito de SOC Prime para ejecutar lógica de detección contra un archivo de registro sin configurar nada. Sanea lo que subes y no conserva tus archivos.

  1. Subir. Abre logtotal.com y suelta el archivo del Paso 2.
  2. Sanear. Revísalo antes de continuar. Conoces tu entorno mejor que cualquier regla de enmascaramiento.
  3. Revisar. 

Cuando la exportación sale mal

SíntomaCausa probableFix
Archivo CLI tiene exactamente 100 eventosEl -maxout por defecto es 100Añadir -maxout 0
Eventos Crudos está deshabilitado en el diálogo de ExportaciónLa búsqueda termina con un comando de transformación (stats, table, chart)Exporta los eventos en su lugar, o elige JSON
La búsqueda no devuelve nada, pero los datos están ahíEl índice no está en los índices permitidos o predeterminados de tu rol, o el rango de tiempo es incorrectoAgrega index= explícitamente; pregunta a tu admin sobre el rol
El diálogo dice que la búsqueda se volverá a ejecutarEl artefacto del trabajo no mantuvo cada resultadoComportamiento esperado; utiliza un rango de tiempo absoluto para que la reejecución devuelva los mismos eventos
La exportación del navegador se detiene o el archivo se cortaTiempo de espera de sesión de Splunk Web en una exportación largaCambia al CLI o REST
401 No Autorizado desde curlToken expirado, desactivado, o la autenticación con token está desactivadaCrea un nuevo token en Configuración → Tokens
curl se cuelga o recibe conexión rechazada en 8089Puerto de administración bloqueado, o REST no habilitado en Splunk CloudRevisa las reglas de firewall; solicita acceso REST para tu pila Cloud
REST devuelve un error de sintaxis de búsquedaLa consulta no comienza con searchAñádela con search
El archivo JSON es mucho más grande de lo esperadoSe exportó cada campo extraídoAñadir | fields _time host source sourcetype _raw

FAQ

¿Puedo exportar registros desde Splunk Cloud?

Sí. La exportación de Splunk Web funciona igual que en Enterprise. El endpoint de exportación REST funciona una vez habilitado el acceso a la API para tu pila; las pruebas gratuitas no lo obtienen. El CLI no es una opción, porque no hay shell en Splunk Cloud.

¿Puedo obtener los archivos EVTX originales de vuelta de Splunk?

No. Splunk almacena el texto del evento renderizado, no el .evtx binario. Puedes exportar ese texto como eventos crudos o JSON. Para archivos EVTX reales, expórtalos desde el host de Windows en sí.

Eventos Crudos o JSON: ¿cuál debería elegir para LogTotal?

Crudo. Obtienes las mismas líneas que están en el host, y LogTotal lee archivos en formato syslog tal como son. JSON envuelve cada evento en la estructura propia de Splunk. Es útil cuando necesitas host y tipo de fuente junto a cada evento, pero para una carga de LogTotal, crudo es la opción más segura.

¿Es seguro subir una exportación de Splunk a una herramienta online?

LogTotal sanea las cargas antes del análisis y no retiene archivos.

¿Cuántos eventos puedo exportar?

Del lado de Splunk, tantos como quieras: deja Número de Resultados vacío en Splunk Web, o configura -maxout 0 en el CLI. En la práctica, el límite es el tamaño de carga en el otro extremo. Así que vale la pena delimitar bien la búsqueda en el Paso 1.

Únete a la plataforma Detection as Code de SOC Prime para mejorar la visibilidad de las amenazas más relevantes para tu negocio. Para ayudarte a comenzar y obtener valor inmediato, programa una reunión ahora con los expertos de SOC Prime.