DDoS: la pesadilla de los costos en el alojamiento gratuito
Al finalizar este tema
Comprenderá cómo funcionan los ataques DDoS y conocerá las configuraciones básicas de defensa para evitar costos excesivos en la nube.
Subí mi proyecto de prueba a AWS
Subí un proyecto para mi portafolio a AWS. Como utilizaba la capa gratuita (Free Tier), el costo mensual era de 0. Sin embargo, cuando llegó la factura al mes siguiente, aparecía un cargo de 870.000 wones.
¿Qué había ocurrido? Al revisar los registros, vi que se estaban enviando miles de solicitudes por segundo desde ciertas direcciones IP. Aunque solo tres amigos estaban interesados en mi sitio, el servidor respondió millones de veces, lo que generó cargos por transferencia de datos proporcionales.
Esto es un ataque DDoS (Distributed Denial of Service — denegación de servicio distribuida). Consiste en enviar una gran cantidad de solicitudes simultáneamente desde múltiples ubicaciones para paralizar el servidor o, en el contexto de la nube, para provocar una explosión de costos.
Principio del ataque
Un DoS convencional proviene de un solo ordenador; basta con bloquearlo. En cambio, un DDoS se ejecuta simultáneamente desde miles o decenas de miles de ordenadores zombi. Aunque bloquee una dirección IP, las otras 9.999 siguen activas.
Atacante
│
├─ PC zombi 1 (Brasil) ──→ ┐
├─ PC zombi 2 (Corea) ──→ ├─→ Mi servidor (100.000 solicitudes por segundo)
├─ PC zombi 3 (EE. UU.) ──→ ├─→ Servidor caído o explosión de costos
├─ ... miles de dispositivos ──→ ┘Una PC zombi es una computadora de un usuario común infectada con malware. El atacante controla una "botnet" para enviar solicitudes simultáneas a un servidor específico.
Por qué es más peligroso en la nube
Si se sufre un ataque DDoS en una infraestructura local (on-premise), el servidor se cae. Es inconveniente, pero no genera costos adicionales.
Si se sufre un ataque DDoS en la nube, el servidor no se cae, sino que se escala automáticamente. El número de servidores aumenta automáticamente según el tráfico y se factura según el volumen de datos transferidos. El ataque se "gestiona" con éxito, pero los costos se disparan.
| Escenario | Resultado |
|---|---|
| Servidor local + DDoS | Servidor caído (sin costos adicionales) |
| Nube + DDoS | Servidor operativo (costos disparados) |
| Nube + autoescalado + DDoS | Servidores aumentan 10 veces (costos aumentan 100 veces) |
Defensa para desarrolladores individuales
No se puede adquirir un sistema de defensa de cientos de millones de wones como las grandes empresas, pero se pueden tomar medidas básicas:
1. Configurar un límite de facturación
AWS: Facturación → Presupuestos → Notificación cuando supere $50 mensuales
GCP: Facturación → Presupuesto y alertas → Configurar presupuestoLas notificaciones no vienen activadas por defecto. Debes configurarlas manualmente. Si no lo haces, no te enterarás hasta que recibas la factura.
2. Rate Limiting
// Ejemplo de Express
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutos
max: 100, // 100 solicitudes por IP
message: 'Too many requests',
});
app.use(limiter);Se limita el número de solicitudes por IP. Los usuarios legítimos no tienen motivos para superar las 100 solicitudes en 15 minutos.
3. Plan gratuito de Cloudflare
Al conectar un dominio a Cloudflare, la protección DDoS se incluye de forma predeterminada. Incluso con el plan gratuito, se bloquea una parte significativa de los ataques de capa L3/L4.
4. Precauciones con Serverless
Los servicios sin servidor (Serverless) como Lambda o Cloud Functions cobran por número de invocaciones. Si un ataque DDoS provoca millones de llamadas, se facturará esa cantidad. Es imprescindible implementar Rate Limiting en la capa frontal.
Casos reales de incidentes
En las comunidades aparecen regularmente publicaciones como: "Sufrí un ataque DDoS en mi blog personal y la factura de AWS ascendió a 6 millones de wones".
AWS puede eximir de cargos a las víctimas inocentes, pero no es una garantía. Es necesario abrir un ticket de soporte para explicar la situación y pasar por un proceso de revisión.
La prevención es 100 veces más fácil que la gestión de daños.
Puntos clave
Un ataque DDoS consiste en enviar solicitudes simultáneas desde miles de dispositivos para paralizar el servidor. En la nube, el problema principal no es que el servidor se caiga, sino que los costos se disparen. Configuración de alertas de facturación + Rate Limiting + Cloudflare — estos tres elementos son la defensa básica para un desarrollador individual.