Intro Instalación Datos Búsquedas Lookups Reportes Dashboard Galería Conclusiones
Proyecto Final · Ciberinteligencia

Splunk SIEM

Tutorial de Búsqueda · Splunk Enterprise 10.2

Presentado por
Steven W. Capellán
Matrícula
10163717
Asignatura
Ciberinteligencia
Profesor
Americo de Veloz
Institución
PUCMM · TEP
Fecha
Marzo 2026
Explorar reporte

¿Qué es Splunk y por qué importa en Ciberseguridad?

Splunk Enterprise es una plataforma SIEM (Security Information and Event Management) que permite recopilar, indexar, buscar y visualizar grandes volúmenes de datos de máquina en tiempo real. En el contexto de la ciberseguridad, constituye una herramienta fundamental para la detección de amenazas, el análisis forense y el monitoreo continuo de infraestructuras tecnológicas.

Un SIEM centraliza logs de múltiples fuentes (servidores web, firewalls, sistemas operativos, aplicaciones) y permite correlacionar eventos para identificar patrones sospechosos que podrían indicar un incidente de seguridad. Splunk es uno de los SIEMs más utilizados en entornos SOC (Security Operations Center) a nivel mundial.

Este proyecto siguió el tutorial oficial de Splunk Enterprise 10.2 usando el dataset de la empresa ficticia Buttercup Games, una tienda de videojuegos en línea cuyos logs de acceso web y transacciones de venta sirven como entorno de práctica realista para aprender a operar la plataforma desde cero.

Herramienta
Splunk Enterprise 10.2.1
Sistema Operativo
EndeavourOS (Arch Linux) x86_64
Kernel
Linux 6.19.8-arch1-1
Hardware
Intel Core i3-5005U · 7.64 GiB RAM
Terminal
Kitty · Shell Zsh 5.9
Dataset
Buttercup Games · 109,864 eventos

A diferencia del procedimiento estándar del tutorial, que recomienda instalar Splunk descargando el binario desde el sitio oficial, en este proyecto se instaló Splunk Enterprise directamente desde el AUR (Arch User Repository) usando yay, lo cual refleja las ventajas de las distribuciones basadas en Arch para entornos de seguridad y desarrollo.

Instalación en EndeavourOS vía AUR

El proceso comenzó con el registro de una cuenta gratuita en splunk.com usando el correo institucional [email protected]. Esta cuenta es necesaria para descargar los archivos del tutorial y acceder a la versión de prueba de Splunk Enterprise.

Registro en Splunk.com

Desde el portal de Splunk se completó el formulario de registro. Una vez enviado, Splunk envió un correo de verificación al email institucional. Tras confirmar la cuenta se pudo acceder al portal del cliente donde aparece el nombre de usuario Steven Capellán y el email registrado.

Instalación vía AUR con yay

En lugar de descargar el instalador manualmente, se usó yay — un helper de AUR para Arch Linux — que automatiza la descarga, compilación e instalación del paquete desde el Arch User Repository.

# Instalación de Splunk Enterprise desde el AUR
$ yay -S splunk

AUR Explicit (1): splunk-3:10.2.1.0-2
==> ¿Paquetes a limpiar antes de compilar?
==> [N]inguno [A]Todos ... A
==> Creando el paquete: splunk 3:10.2.1.0-2 (mar 17 mar 2026 09:12:50)
==> Recibiendo las fuentes ...
  -> Descargando splunk-10.2.1-c892b66d163d-linux-amd64.tgz ...
% Total: 1.62G  Received: 49.49M  Speed: 3.09M/s  Time left: 8:14

Primer arranque del servicio

Una vez instalado en /opt/splunk/, el primer arranque generó los certificados SSL autofirmados, validó directorios y levantó el servidor web en el puerto 8000.

Creating: /opt/splunk/var/spool/splunk
Creating: /opt/splunk/var/lib/splunk/authDb
New certs have been generated in '/opt/splunk/etc/auth'.
Checking critical directories ...    Done
All preliminary checks passed.

Starting splunk server daemon (splunkd) ...
Certificate request self-signature ok
subject=CN = Steven-Notebook, O = SplunkUser

Waiting for web server at http://127.0.0.1:8000 ... Done
The Splunk web interface is at http://Steven-Notebook:8000

Acceso a Splunk Web

Con Splunk corriendo, se accedió a la interfaz web en localhost:8000. El login inicial requiere el usuario admin y la contraseña configurada durante la instalación. El home de Splunk Enterprise 10.2.1 confirmó acceso exitoso bajo el usuario Steven Admin, con las apps: Search & Reporting, Audit Trail, Data Management, Splunk Secure Gateway y Upgrade Readiness App.

Dataset de Buttercup Games

El tutorial usa datos de la tienda ficticia Buttercup Games. El dataset incluye registros de acceso web, logs de seguridad, datos de ventas y una lista de precios en CSV.

ArchivoContenidoInstrucción
tutorialdata.zipLogs de acceso web (www1-3), logs seguros (mailsv) y ventas (vendor_sales)Descomprimido
Prices.csv.zipCatálogo de productos con productId, nombre y precioSe usará más adelante

Proceso de carga en Splunk Web

Desde el home de Splunk se navegó a Settings → Add Data → Upload. El asistente tiene 4 pasos: Select Source → Input Settings → Review → Done.

109,864Eventos Totales
5Hosts Indexados
8Fuentes de Datos
3Source Types

Los 5 hosts del dataset: www1, www2, www3 (servidores web con access logs combinados con cookies), mailsv (servidor de correo con secure logs) y vendor_sales (logs de ventas). Este setup simula una infraestructura real de e-commerce.

Exploración y Búsqueda con SPL

El Search Processing Language (SPL) es el lenguaje de consulta nativo de Splunk. Permite recuperar eventos, filtrarlos, transformarlos y visualizarlos con una sintaxis de comandos encadenados mediante el operador pipe (|).

La aplicación Search & Reporting

Desde el home se accedió a Search & Reporting. La interfaz muestra la barra SPL, el selector de tiempo, las pestañas Events/Patterns/Statistics/Visualization y el histograma temporal. El Search Assistant en modo Full sugiere comandos y términos en tiempo real.

Configuración del Search Editor

Desde Preferences → Search Editor se habilitó el Advanced Editor con autoformateo, numeración de líneas y syntax highlighting. Se configuró el Search Assistant en modo Full y el Search Bar Theme en Dark.

Búsquedas básicas

*
-- 109,864 eventos totales indexados
buttercupgames
-- 9,245 eventos · Time range: Last 2 days
"categoryid=sports"
-- 793 eventos con la cadena exacta

Operadores booleanos y comodines

buttercupgames (error OR fail* OR severe)
-- 427 eventos · fail* incluye failed, failure, etc.

(error OR fail* OR severe) OR (status=404 OR status=500 OR status=503)
-- 36,055 eventos · errores de app + HTTP combinados

Búsqueda por campos (Fields)

Splunk extrae campos automáticamente. En el panel izquierdo se muestran Selected Fields e Interesting Fields. Al hacer clic en un campo se ven sus valores más frecuentes y estadísticas.

sourcetype=access_*
-- 39,532 eventos · Campos: action(5), categoryId(8), host(3), productId(16)
-- Campo "action": addtocart 29.13% · purchase 29.09% · view 27.34%
--                 remove 7.33% · changequantity 7.11%

sourcetype=access_* status=200 action=purchase
-- 5,224 compras exitosas (HTTP 200)

sourcetype=access_* status!=200 action=purchase
-- 513 compras fallidas

Comandos de transformación

sourcetype=access_* status=200 action=purchase
| top categoryId
-- STRATEGY 806(30.5%) · ARCADE 493(18.7%) · TEE 367(13.9%)
-- ACCESSORIES 348(13.2%) · SIMULATION 246(9.3%) · SHOOTER 245(9.3%) · SPORTS 138(5.2%)

| top limit=1 clientip
-- Cliente VIP: 87.194.216.51 · 134 compras (2.57%)

Sub-búsqueda (Subsearch)

Una sub-búsqueda es una búsqueda anidada entre corchetes cuyo resultado filtra la búsqueda principal. Técnica avanzada para correlacionar datos dinámicamente.

sourcetype=access_* status=200 action=purchase
  [search sourcetype=access_* status=200 action=purchase
   | top limit=1 clientip | table clientip]
| stats count AS "Total Purchased",
        distinct_count(productId) AS "Total Products",
        values(productId) AS "Product IDs"
  by clientip
| rename clientip AS "VIP Customer"
-- 87.194.216.51 · 134 compras · 14 productos únicos
BúsquedaEventosPropósito
*109,864Dataset completo
buttercupgames9,245Filtro por dominio
"categoryid=sports"793Frase exacta
error OR fail* OR severe427Errores de aplicación
status 404/500/50336,055Errores HTTP + app
sourcetype=access_*39,532Todos los access logs
status=200 action=purchase5,224Compras exitosas
status!=200 action=purchase513Compras fallidas

Enriquecimiento de Eventos con Lookups

Los field lookups permiten enriquecer eventos con datos adicionales de archivos externos. El archivo Prices.csv contiene el nombre y precio de cada producto identificado por su productId. Sin el lookup, los eventos solo muestran el ID (ej: BS-AG-G09). Con el lookup activo, Splunk añade automáticamente productName y price.

Paso 1 — Subir el archivo lookup

Settings → Lookups → Lookup table files → New Lookup Table File. Se subió Prices.csv.zip, registrado como prices.csv bajo steven-admin en la app search. Visibilidad inicial: Private. Se cambió a Global.

Paso 2 — Crear la definición del lookup

Settings → Lookups → Lookup definitions → New Lookup Definition. Se creó prices_lookup mapeando productId del evento con el CSV, retornando product_name y price. Cambiado a Global.

Nombre:   prices_lookup  |  Tipo: file  |  Archivo: prices.csv
Campos:   productId, product_name, price, sale_price, Code
Owner:    steven-admin  |  App: search  |  Sharing: Global

Paso 3 — Crear el Automatic Lookup

Settings → Lookups → Automatic lookups → New Automatic Lookup. Se creó autolookup_prices para que Splunk aplique el lookup automáticamente en búsquedas con sourcetype access_combined_wcookie. Cambiado a Global.

Nombre:       autolookup_prices
Lookup table: prices_lookup
Apply to:     sourcetype named access_combined_wcookie
Input:        productId = productId
Output:       product_name = productName  ·  price = price
Sharing:      Global

Paso 4 — Verificación

sourcetype=access_*
-- Nuevos campos visibles: price(9), productName(16)
-- Ejemplo: productId=BS-AG-G09 → productName=Benign Space Debris · price=24.99
ProductoproductIdPrecio
Benign Space DebrisBS-AG-G09$24.99
Curling 2014CU-PG-G06$19.99
Dream CrusherDC-SG-G02$39.99
Final SequelFS-SG-G03$24.99
Fire Resistance Suit of ProvoloneFI-AG-G08$3.99
Holy Blade of GoudaMB-AG-T01$5.99
Manganiello Bros.MB-AG-G07$39.99
Mediocre KingdomsSC-MG-G10$24.99
Pony RunPZ-SG-G05$49.99
SIM CubicleDB-SG-G01$19.99
World of CheeseWC-SH-G04$24.99
World of Cheese TeeWC-SH-T02$9.99

Creación de Reportes y Visualizaciones

Splunk permite guardar búsquedas como reportes reutilizables con nombre, descripción y permisos. Se crearon 5 reportes principales que luego se incorporaron al dashboard.

6.1 — Reporte VIP Customer

Identifica dinámicamente al cliente más frecuente usando sub-búsqueda. Guardado con título "VIP Customer" y descripción "Buttercup Games most frequent shopper".

sourcetype=access_* status=200 action=purchase
  [search sourcetype=access_* status=200 action=purchase
   | top limit=1 clientip | table clientip]
| stats count AS "Total Purchased", dc(productId) AS "Total Products",
        values(productName) AS "Product Names" BY clientip
| rename clientip AS "VIP Customer"
-- 87.194.216.51 · 134 compras · 14 productos

6.2 — Column Chart (Views/Cart/Purchases)

Gráfica de columnas mostrando métricas de vistas, carrito y compras por producto.

sourcetype=access_* status=200
| stats count AS views, count(eval(action="addtocart")) AS addtocart,
        count(eval(action="purchase")) AS purchases by productName
| rename productName AS "Product Name", views AS "Views",
         addtocart AS "Adds to Cart", purchases AS "Purchases"

6.3 — Comparison of Actions and Conversion Rates

Overlay chart: columnas con métricas absolutas + líneas con tasas de conversión en eje Y secundario. Guardado como reporte independiente.

sourcetype=access_* status=200
| stats count AS views, count(eval(action="addtocart")) AS addtocart,
        count(eval(action="purchase")) AS purchases by productName
| eval viewsToPurchases=(purchases/views)*100
| eval cartToPurchases=(purchases/addtocart)*100
| table productName views addtocart purchases viewsToPurchases cartToPurchases
| rename productName AS "Product Name", views AS "Views",
         addtocart AS "Adds To Cart", purchases AS "Purchases"

6.4 — Product Purchases over Time

Gráfica de líneas temporales con timechart mostrando evolución de compras por producto del 9 al 16 de marzo 2026.

sourcetype=access_*
| timechart count(eval(action="purchase")) by productName usenull=f useother=f

6.5 — Purchasing Trends (Sparklines)

Tabla con sparklines integradas — minigráficas de tendencia dentro de cada celda — por categoría de producto.

sourcetype=access_* status=200 action=purchase
| chart sparkline(count) AS "Purchases Trend" count AS Total BY categoryId
| rename categoryId AS "Category"
9Reportes guardados
5,224Compras exitosas
~10.4%Conversión views→purchase
~49%Cart-to-Purchase rate

Dashboard: Buttercup Games — Purchases

El punto culminante del proyecto fue la creación del dashboard interactivo "Buttercup Games - Purchases" que consolida los reportes más importantes en una sola vista operacional con Dark Theme y control de tiempo dinámico.

Creación del dashboard

Desde Dashboards → Create New Dashboard se creó el dashboard con título "Buttercup Games - Purchases", descripción "Reports on Buttercup Games purchases data", tipo Classic y tema Dark. Se editó con el editor UI y se añadieron paneles desde reportes guardados.

Los 4 paneles

Input de tiempo dinámico

Se añadió un Time input desde Edit → Add Input → Time, configurado con token BG_Purchases_Time_Range y valor predeterminado Previous week. Este control filtra todos los paneles simultáneamente.

Label:    Time range   |   Token: BG_Purchases_Time_Range
Default:  Previous week   |   Type: Time   |   Theme: Dark

Dashboard disponible en localhost:8000/en-US/app/search/buttercup_games_-_purchases. Propietario: steven-admin. Última modificación: 18 de marzo de 2026 a las 8:44 PM. Tipo: Classic.

Capturas del Proceso Completo

Documentación visual de cada etapa del tutorial organizada por partes. Haz clic en cualquier imagen para verla en tamaño completo. Usa las flechas o las teclas ← → para navegar.

Conclusiones y Aprendizajes

La realización de este proyecto permitió experimentar de primera mano con Splunk Enterprise como plataforma SIEM, cubriendo el ciclo completo desde la instalación hasta dashboards operacionales.

Habilidades adquiridas
Instalación, indexación, SPL, lookups, reportes, dashboards
Aplicación en seguridad
Análisis de logs, detección de anomalías, visibilidad SOC
Próximos pasos
Splunk Enterprise Security, correlación de eventos, SOAR