Explicación del ataque DDoS
El ataque en imágenes (Gráficos del tráfico)
Duración del ataque: Viernes 4 , sábado 5 y domingo 6 Mayo 2007.
Método del ataque
Petición GET /index.php con 2.000 zombies cada 20 minutos aproximadamente.
Simplemente un "GET", es una llamada del navegador al index del foro. Es decir, muchos zombies visitando la página principal del foro.
Impacto
¿Qué ocurre?
Tantas peticiones seguidas y de diferentes ip's al index del foro hacen que el MySQL del foro se colapse y el foro no funcione.
Solución
Primero se deshabilitó que los Visitantes (usuarios no registrados) pudieran navegar por el foro. Por eso salían 2.000-3.000 usuarios visitantes on-line en el foro.
Este método es efectivo, pero sigue consumiendo muchos recursos (hace consultas al MySQL para contar los invitados).
El acceso al foro para invitados está siempre activado (sólo se activa automáticamente en caso de ataque).
Buscando otra solución....
¿Cómo distinguir si la persona que entra al foro es usuario normal o es un zombie?
Busquemos un patrón:
- HTTP_Referer --> Nulo, entran directamente. Y un visitante normal también es posible que entre directamente (desde favoritos, etc).
- Sistema Operativo --> la mayoría de los bots usan Windows XP, pero no podemos decirle al foro que no deje entrar usuarios con Windows XP jeje
- Navegador --> los zombies usan Internet Explorer con diferentes versiones, pero de nuevo no podemos denegar el acceso a TODOS los que usen el IE.
¿Cómo lo hacemos?
javascript "alert" (ventanita que requiere confirmación por parte del usuario) que se carga al principio del foro y "verifica" si la petición es "humana" o no. Si es un bot (no humana) no sabe hacer click en aceptar y se queda a la espera (no se carga el index del foro y por lo tanto no consume recursos).
Si aceptas se guarda una cookie que verifica "tu humanidad". Si no eres bot, puedes ver el foro.
Esta ventana solo aparece una vez, la primera vez que entras al foro (a no ser que borres las cookies), aunque ayer saliera repetidamente, ya que se estaban realizando pruebas.
¿Porqué hay tantos infectados?
El método de infección es vía Messenger.
Si alguien cree que está infectado o tiene muestras del posible virus que envie la muestra a staff@elhacker.net para su posterior análisis. Gracias.
Estado actual
Solucionado con JS.
¿Hasta cuándo?
Hasta que el atacante se canse.
¿Quién ha sido?
No se sabe, ¿hay miedo a decirlo por posibles represalias? xD