El Internet Archive Bajo Asedio Multivectorial: 31M de Cuentas Filtradas por Token de GitLab y DDoS
Durante el fin de semana del 9 al 12 de octubre de 2026, el Internet Archive (archive.org)—la biblioteca digital sin fines de lucro encargada de preservar la memoria histórica de la web—sufrió un ataque cibernético coordinado de gran magnitud. Los visitantes que intentaban acceder a los archivos web se encontraron con un mensaje inyectado en JavaScript que se burlaba de la seguridad de la organización, mientras que los registros forenses confirmaron la sustracción de una base de datos SQL de 6.4 GB con datos personales y credenciales de 31,081,179 usuarios registrados. De forma paralela, el colectivo hacktivista SN_BlackMeta lanzó ataques DDoS que mantuvieron fuera de servicio la Wayback Machine durante varios días.
Anatomía de la Intrusión: De un Token de GitLab a la Extracción de la Base de Datos
El origen del acceso no autorizado se localizó en una credencial expuesta en la infraestructura de desarrollo. Un servidor de pruebas configurado sin autenticación expuso un archivo de variables de entorno que contenía un Personal Access Token (PAT) de GitLab con permisos administrativos sobre los repositorios de código fuente.
# Ejemplo del hallazgo del archivo de entorno expuesto
GET /.env.backup HTTP/1.1
Host: dev-stage.archive.org
User-Agent: Mozilla/5.0 ...
# Respuesta que reveló secretos internos de GitLab y PostgreSQL:
GITLAB_API_URL="https://gitlab.archive.org/api/v4"
GITLAB_PRIVATE_TOKEN="glpat-xxxxxxxxxxxxxxxxxxxx"
DB_CLUSTER_MASTER_URI="postgresql://ia_admin:[email protected]:5432/ia_production"
Con este token, los atacantes accedieron a los repositorios, obtuvieron cadenas de conexión a la base de datos interna y extrajeron la tabla de autenticación de usuarios. El archivo descargado, titulado ia_users_export.sql, contenía:
- Correos Electrónicos: 31,081,179 direcciones de correo en texto claro.
- Nombres de Usuario y Apodos: Identificadores de cuenta registrados a lo largo de décadas.
- Hashes de Contraseña: Contraseñas procesadas mediante
bcrypt($2a$). Si bien este algoritmo ofrece alta resistencia, las contraseñas débiles son vulnerables a ataques de diccionario mediante clusters de GPU. - Marcas Temporales: Fechas de registro de cuentas y niveles de privilegio en el sistema.
Mecanismo de Desfiguración Web (JavaScript Defacement)
Simultáneamente, los atacantes aprovecharon los privilegios obtenidos en los repositorios de frontend para inyectar código en las librerías JavaScript distribuidas por archive.org, generando una ventana emergente para todos los visitantes:
/* Fragmento decompilado del script malicioso inyectado */
(function() {
const banner = document.createElement("div");
banner.style.cssText = "position:fixed;top:10px;left:50%;transform:translateX(-50%);background:#b91c1c;color:#fff;padding:16px;z-index:999999;border-radius:8px;font-family:sans-serif;box-shadow:0 10px 25px rgba(0,0,0,0.5);";
banner.innerHTML = "Alerta de Seguridad: ¿Alguna vez has sentido que el Internet Archive funciona con palillos y está constantemente al borde de sufrir una brecha catastrófica? Acaba de ocurrir. ¡Nos vemos en HIBP con 31 millones de ustedes!";
document.body.appendChild(banner);
})();
Secuestro de Tokens del Portal de Soporte Zendesk
Para agravar la situación, los atacantes descubrieron credenciales de la API de Zendesk utilizadas por el servicio de atención al cliente de Internet Archive. Con estos tokens sin revocar, enviaron respuestas masivas a usuarios que habían tramitado solicitudes de eliminación de datos bajo el RGPD, notificándoles de forma burlona que sus datos estaban en poder de terceros.
Detección y Respuesta a Incidentes
title: Autenticacion con PAT de GitLab desde IP Externa No Autorizada
status: production
logsource:
product: gitlab
service: audit_events
detection:
selection:
action: 'user_authenticated_via_personal_access_token'
filter_internal:
source_ip|cidr:
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
condition: selection and not filter_internal
level: highPlan de Mitigación
- Revocación Total de Secretos: Invalidar de inmediato todos los tokens de GitLab, claves de base de datos y credenciales de soporte de Zendesk.
- Reinicio Obligatorio de Contraseñas: Cerrar todas las sesiones activas en archive.org y exigir la actualización de credenciales con autenticación de dos factores (2FA).
- Integridad de Subrecursos (SRI): Configurar hashes criptográficos (
integrity="sha384-...") en todos los scripts para evitar la ejecución de código frontend alterado.