Técnico

JSON Forense

Técnicas de análisis forense aplicadas a archivos JSON (JavaScript Object Notation), formato estándar para intercambio de datos en aplicaciones web, APIs, configuraciones y logs de sistemas modernos.

4 min de lectura

¿Qué es JSON?

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, fácil de leer para humanos y de procesar para máquinas. Es el estándar de facto para APIs web, configuraciones de aplicaciones, y almacenamiento de datos estructurados.

Formato Universal

JSON ha reemplazado a XML como formato dominante en la web. Casi toda aplicación moderna, desde redes sociales hasta servicios bancarios, utiliza JSON para almacenar y transmitir datos.

Estructura de JSON

{
  "usuario": "juan.perez",
  "email": "[email protected]",
  "activo": true,
  "edad": 34,
  "roles": ["admin", "editor"],
  "perfil": {
    "nombre": "Juan Pérez",
    "ubicacion": {
      "ciudad": "Madrid",
      "pais": "España"
    }
  },
  "ultimo_acceso": "2026-01-18T10:30:00Z"
}

Tipos de Datos

TipoEjemploUso Forense
String”texto”Mensajes, nombres, IDs
Number42, 3.14Timestamps, cantidades
Booleantrue/falseEstados, flags
Array["a", "b"]Listas, historiales
Object{"k": "v"}Datos anidados
nullnullValores ausentes

Fuentes de JSON en Investigaciones

Exports de Datos Personales (GDPR)

ServicioContenido del Export
Google TakeoutHistorial, emails, ubicaciones, YouTube
Facebook/MetaPosts, mensajes, fotos, anuncios vistos
InstagramDMs, stories, likes, comentarios
Twitter/XTweets, DMs, interacciones
WhatsAppMensajes (alternativa a SQLite)
LinkedInConexiones, mensajes, búsquedas
Derecho de Acceso

El RGPD garantiza el derecho a obtener una copia de los datos personales. Estos exports en JSON son fuente valiosa de evidencia cuando el dispositivo no está disponible.

Configuraciones de Aplicaciones

  • Navegadores: Bookmarks, extensiones, configuración
  • IDEs: Proyectos, configuración del usuario
  • Apps de escritorio: Preferencias, estado de sesión
  • Servicios cloud: Configuración de cuentas

Logs de Sistemas

{
  "timestamp": "2026-01-18T14:32:15.234Z",
  "level": "ERROR",
  "service": "auth-api",
  "message": "Login fallido",
  "details": {
    "ip": "192.168.1.100",
    "usuario": "admin",
    "intentos": 5,
    "bloqueado": true
  }
}

Proceso de Análisis Forense

  1. Identificación: Localizar archivos JSON relevantes (extensión .json, respuestas de API, logs).

  2. Validación: Verificar que el JSON es válido sintácticamente (parse sin errores).

  3. Exploración: Entender la estructura y campos disponibles.

  4. Extracción: Filtrar y extraer datos relevantes para la investigación.

  5. Correlación: Cruzar datos JSON con otras fuentes de evidencia.

  6. Documentación: Incluir datos relevantes en el informe pericial.

Herramientas de Análisis

Línea de Comandos

# jq: Swiss Army Knife para JSON
# Extraer todos los emails
cat users.json | jq '.[].email'

# Filtrar por condición
cat logs.json | jq 'select(.level == "ERROR")'

# Contar elementos
cat messages.json | jq 'length'

# Formatear JSON comprimido
cat data.json | jq '.'

Python

import json

# Cargar archivo JSON
with open('export.json', 'r') as f:
    data = json.load(f)

# Buscar mensajes con palabra clave
for msg in data['messages']:
    if 'confidencial' in msg['text'].lower():
        print(f"{msg['date']}: {msg['text']}")

Herramientas Visuales

HerramientaUso
JSON ViewerVisualización en navegador
PostmanInspección de APIs
VSCodeEdición y formateo
jlessNavegación interactiva en terminal

Casos Forenses con JSON

Análisis de Export de Instagram

Escenario: Investigación de acoso por mensajes directos.

Proceso:

  1. Obtener export de datos de Instagram (JSON)
  2. Localizar archivo messages.json
  3. Filtrar conversaciones con el acosador
  4. Extraer timestamps y contenido
  5. Verificar coherencia con otras pruebas
{
  "participants": ["victima", "acosador123"],
  "messages": [
    {
      "sender_name": "acosador123",
      "timestamp_ms": 1705580400000,
      "content": "Mensaje amenazante...",
      "type": "Generic"
    }
  ]
}

Logs de Acceso no Autorizado

Escenario: Empleado sospechoso de acceder a datos fuera de horario.

Análisis de logs JSON:

# Buscar accesos fuera de horario (22:00-06:00)
cat access_logs.json | jq '
  .[] |
  select(.user == "empleado_x") |
  select(.hour >= 22 or .hour < 6)
'

Configuración de Malware

Muchos malwares modernos usan JSON para configuración:

{
  "c2_server": "https://malicioso.ejemplo.com",
  "exfil_interval": 3600,
  "targets": ["*.docx", "*.xlsx", "*.pdf"],
  "persistence": true,
  "kill_switch": false
}
Análisis de Malware

Los archivos de configuración de malware revelan capacidades, servidores de comando y control, y objetivos del ataque. Son evidencia crítica para entender el alcance de una intrusión.

Timestamps en JSON

Formatos Comunes

FormatoEjemploConversión
ISO 8601”2026-01-18T14:30:00Z”Directo
Unix (segundos)1705587000Dividir si es ms
Unix (milisegundos)1705587000000Dividir por 1000
Texto”18 Jan 2026”Parsear

Conversión en Python

from datetime import datetime

# Unix ms a fecha
ts_ms = 1705587000000
fecha = datetime.fromtimestamp(ts_ms / 1000)
print(fecha)  # 2026-01-18 14:30:00

Validación de Integridad

Verificar JSON Válido

import json

def validar_json(archivo):
    try:
        with open(archivo, 'r') as f:
            json.load(f)
        return True
    except json.JSONDecodeError as e:
        print(f"Error en línea {e.lineno}: {e.msg}")
        return False

Detectar Manipulación

Indicadores de posible manipulación:

  • Timestamps inconsistentes o fuera de secuencia
  • Campos obligatorios ausentes
  • Formato diferente al esperado del servicio
  • Valores imposibles (fechas futuras, IDs duplicados)

JSON vs Otros Formatos

CaracterísticaJSONXMLCSV
LegibilidadAltaMediaAlta
EstructuraJerárquicaJerárquicaPlana
Tipos de datosNo (todo texto)No
MetadatosLimitadosExtensosNo
TamañoCompactoVerbosoMuy compacto

Conclusión

El análisis forense de JSON es esencial en investigaciones modernas. Desde exports de redes sociales hasta logs de servidores, el formato JSON contiene evidencia digital crítica. Un perito debe dominar herramientas como jq y Python para procesar eficientemente estos archivos y extraer información relevante para el caso.

Última actualización: 18 de enero de 2026 Categoría: Técnico Código: JSN-001

Preguntas Frecuentes

¿Qué tipo de información se encuentra en archivos JSON?

Configuraciones de aplicaciones, historiales de exportación (WhatsApp, Instagram, Google), logs de servicios web, respuestas de APIs, tokens de autenticación, y datos de usuario almacenados localmente.

¿Por qué JSON es importante en análisis forense?

Es el formato dominante para intercambio de datos en aplicaciones modernas. Los exports de datos personales (GDPR), logs de servicios cloud, y configuraciones de apps usan JSON, siendo fuente clave de evidencia.

¿Cómo se analiza un archivo JSON grande?

Con herramientas como jq para filtrado, Python para análisis programático, o visualizadores especializados. Los archivos pueden tener millones de registros que requieren procesamiento automatizado.

¿Necesitas un peritaje forense?

Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.

Solicitar Consulta Gratuita
Jonathan Izquierdo

Jonathan Izquierdo · Perito Forense

+15 años experiencia · AWS Certified

WhatsApp