TSE: evidencia apunta a abuso de API y descarga secuencial de imágenes de firma
AnálisisCiberseguridad

TSE: evidencia apunta a abuso de API y descarga secuencial de imágenes de firma


Publicación atribuida al actor sobre supuestas firmas del TSE

Resumen ejecutivo

El 30 de abril de 2026 se observó una publicación atribuida al actor MrGobliniciano, donde afirmaba haber obtenido un paquete de supuestas firmas electrónicas asociadas al Tribunal Supremo Electoral de Guatemala.

El actor afirmó que el paquete contenía 2,136 firmas electrónicas en formato JPG. También publicó una referencia parcial a un endpoint de la API de firmaelectronica.tse.org.gt.

Con la evidencia revisada, esto no parece una intrusión sofisticada ni una operación compleja. Lo que se observa es más básico, pero igualmente serio: abuso de una API o endpoint de descarga mediante enumeración secuencial de identificadores.

El paquete contiene archivos numerados de forma consecutiva desde 9400.jpg hasta 11535.jpg.

No se observaron gaps en la numeración.

Del total revisado:

Métrica Valor
Archivos totales 2,136
Archivos de 0 bytes 665
Archivos con contenido 1,471
ID inicial 9400
ID final 11535
Gaps detectados 0
Formato observado JPG

Resumen técnico del rango observado

La lectura técnica es clara. No parece una selección manual de archivos. Parece un barrido automatizado de IDs.

El riesgo no está en una técnica espectacular. El riesgo está en que un endpoint aparentemente permitió consultar y descargar recursos mediante identificadores predecibles. Eso apunta a controles insuficientes de autorización, validación, rate limiting o detección de abuso.


Qué publicó el actor

La publicación afirmaba que el paquete contenía imágenes de firmas asociadas a empleados del TSE.

También incluía una referencia parcial a una API y enlaces externos para descarga del paquete. En este análisis no se reproduce el endpoint completo.

Por seguridad, este análisis no reproduce:

El objetivo no es redistribuir el material. El objetivo es documentar el patrón técnico observado y el riesgo institucional asociado.


Qué se observó en el paquete

La revisión local del paquete muestra tres elementos importantes.

Archivos JPG numerados

El paquete contiene archivos .jpg nombrados con números consecutivos.

El rango observado va de 9400.jpg a 11535.jpg.

Ese rango da exactamente 2,136 identificadores posibles.

11535 - 9400 + 1 = 2136

Cero gaps

No se detectaron saltos en la numeración.

Esto importa porque sugiere que el proceso no fue manual. El actor no parece haber elegido firmas una por una. El patrón se parece más a un script recorriendo un rango completo.

Archivos vacíos y archivos válidos

Dentro del paquete hay archivos de 0 bytes y archivos JPEG con contenido real.

Tipo de archivo Cantidad
Archivos de 0 bytes 665
Archivos con contenido 1,471

La mezcla de archivos vacíos y válidos es una señal fuerte de enumeración.

Un proceso manual probablemente no habría guardado cientos de archivos vacíos. Un script, en cambio, sí puede guardar la respuesta de cada ID, aunque el servidor no devuelva una imagen útil.

Distribución de archivos válidos y vacíos


Lectura técnica

El patrón observado es compatible con enumeración secuencial de recursos.

Se observa:

El flujo probable es simple.

  1. probar un ID
  2. guardar la respuesta
  3. pasar al siguiente ID
  4. repetir hasta completar el rango

Cuando el ID tenía una imagen asociada, el archivo contenía datos. Cuando no había contenido útil, quedó un archivo de 0 bytes.

Esto no requiere una explotación compleja. Puede ocurrir cuando una API permite consultar recursos por identificadores predecibles y no valida adecuadamente si quien solicita el recurso tiene derecho a verlo.

Rango secuencial observado


Por qué parece abuso de API

Este caso encaja con un problema común en APIs y endpoints de descarga.

No necesariamente se necesita “hackear” el servidor. A veces basta con que el sistema permita pedir recursos por ID y no tenga controles suficientes.

Posibles debilidades a revisar

El problema no es que exista una API. El problema es que una API expuesta sin controles puede convertirse en una vía de extracción masiva.


La importancia de los archivos de 0 bytes

Los 665 archivos vacíos son relevantes.

No necesariamente significan que el paquete esté dañado. En este contexto, pueden indicar que el script intentó descargar un recurso para un ID específico, pero el servidor no devolvió contenido útil.

Eso refuerza la hipótesis de barrido automatizado.

Si el actor solo hubiera descargado firmas existentes, no tendría sentido conservar tantos archivos vacíos. Pero si el proceso fue automático, sí tiene sentido: se recorrió el rango completo y se guardó cada respuesta.


Imagen de firma no es lo mismo que firma electrónica válida

El actor afirma que las imágenes pueden utilizarse para validar documentos oficiales. Esa afirmación debe tratarse con cautela.

Una imagen JPG de una firma no equivale necesariamente a una firma electrónica criptográfica válida.

Una firma electrónica formal debería depender de:

Una imagen de firma no debería ser suficiente para validar un documento oficial.

Aun así, la exposición de imágenes de firma sí representa riesgo.

Puede facilitar

El riesgo depende de cómo se usen esas imágenes dentro de los procesos del TSE o de terceros.


El punto crítico es la autorización por recurso

El control más importante no es ocultar la URL.

El control importante es validar cada recurso del lado del servidor.

Aunque alguien conozca o adivine un ID, el sistema debería validar lo siguiente

Si conocer un número basta para obtener un archivo sensible, el diseño es débil.


Rate limiting y detección de abuso

El patrón observado también plantea dudas sobre controles de abuso.

Un sistema sensible debería detectar lo siguiente

No basta con bloquear por IP. Un actor puede rotar infraestructura.

La detección debería combinar señales como las siguientes


Controles recomendados

Autorización fuerte

Cada firma o archivo debe validarse individualmente del lado del servidor.

No basta con que el endpoint esté oculto. No basta con que el ID no se muestre en la interfaz.

Identificadores no predecibles

Se deben evitar IDs secuenciales expuestos directamente en endpoints descargables.

Cuando aplique, usar identificadores no enumerables, firmados y con expiración.

Tokens de descarga limitados

Los enlaces de descarga deberían usar tokens con estas características

Rate limiting adaptativo

Aplicar límites por los siguientes elementos

Detección de enumeración

Crear alertas para los siguientes patrones

Respuestas uniformes

El sistema no debería revelar demasiado con respuestas distintas para cada caso.

Si un ID existe, no existe o no está autorizado, la respuesta no debería facilitar el mapeo de recursos disponibles.

Protección de recursos sensibles

Las imágenes de firma no deberían estar en rutas públicas o directamente consultables.

Deben servirse mediante un controlador que aplique autenticación, autorización, registro y controles de abuso.


Qué debería revisar el TSE

El TSE debería revisar, como mínimo, los siguientes puntos

También debería determinar si esas imágenes tienen valor operativo real.

Si son solo elementos visuales, el riesgo principal es fraude visual y suplantación. Si participan en algún proceso de validación débil, el riesgo aumenta.


Lo que no se puede afirmar todavía

Con la evidencia disponible, no se debe afirmar de forma definitiva lo siguiente

Sí puede afirmarse con mayor base lo siguiente


Conclusión

Este caso no debe analizarse como una hazaña técnica sofisticada.

La evidencia apunta a abuso de un endpoint o API que aparentemente permitió recorrer identificadores consecutivos y descargar recursos cuando existían.

La numeración ascendente, el rango continuo, la ausencia de gaps y la mezcla de archivos vacíos con imágenes válidas son consistentes con un barrido automatizado.

El riesgo real está en el diseño y control del acceso a los recursos.

Puntos críticos

Una API no necesita estar “hackeada” para ser abusada.

Si permite enumerar y descargar recursos sensibles, el problema ya existe.


Anexo: métricas observadas

Métrica Valor
Archivos totales 2,136
Archivos de 0 bytes 665
Archivos con contenido 1,471
ID inicial 9400
ID final 11535
Rango teórico 2,136
Gaps detectados 0
Formato observado JPG
GuatemalaCiberseguridadThreat IntelligenceOSINTAPI SecurityTSEEnumeraciónRate Limiting