De todos tus servidores que están expuestos a Internet, sin duda los más vulnerables son los servidores web. Son altamente vulnerables primero que nada porque son los más visibles; después de todo, tienen un URL con el nombre de tu compañÃa, y su función es precisamente servir información al público en general. Incluyendo a los hackers.
Tu servidor web tiene tres capas potencialmente vulnerables. Primero está el sistema operativo sobre el que está corriendo el servidor. Ya sea Microsoft o Linux, puede tener vulnerabilidades. Segundo, es el software del servidor web en sÃ: Apache, IIS, o algo similar. Y finalmente está la aplicación web, que puede ser vulnerable a ataques de SQL injection o cross-site scripting. Y además si estás corriendo otros servicios en el mismo servidor (no deberÃas) como SMTP o DNS, éstos también presentan riesgos. Con tanta superficie de ataque, no es de extrañar que sea el blanco favorito de los hackers.
Hay muchas tácticas de defensa para proteger tu servidor web. El que quiero mencionar esta semana es el más básico: por medio del firewall, controlar el tráfico de salida del servidor web.
La comunicación normal de un servidor web y un usuario conectándose funciona asÃ:
1.- El usuario navega hacia el sitio web, y la computadora del usuario envÃa un paquete SYN hacia el servidor web.
2.- El servidor web detecta el paquete SYN, que está pidiendo establecer una conexión, y responde con un paquete SYN-ACK a la computadora del usuario.
3.- La computadora del usuario recibe el SYN-ACK, y responde a su vez con un paquete ACK. La conexión queda establecida, y los datos comienzan a fluir en HTTP.
Esta es la forma normal de establecer la comunicación en TCP. Y sin duda en tu firewall tienes una regla que solo permite el tráfico de entrada y salida por el puerto 80 y el puerto 443. Pero imagÃnate que revisas tus logs de firewall, y detectas varios paquetes SYN saliendo de tu servidor web hacia IPs en la Internet. Como vimos, un paquete SYN se envÃa para iniciar una conexión, pero en ningún caso tu servidor web inicia una conexión; solo contesta requerimiento de conexión. Por lo tanto, si tu servidor web está enviando paquetes SYN, quiere decir que está intentando establecer conexiones con computadoras en la Internet, y es casi seguro que quien lo está haciendo es un hacker o un gusano que ha tomado control de tu servidor web.
Te recomiendo entonces que en tu firewall agregues una regla que no permita la salida de paquetes SYN por los puertos 80 y 443. Asà si un hacker logra penetrar tu servidor web, se le complicará mucho establecer un canal de comunicación para controlar remotamente al servidor y escalar el ataque.
Sergio Castro es gerente de Qualys Latinoamérica (www.qualys.com), y se especializa en análisis de vulnerabilidades, seguridad de aplicaciones web, y la norma PCI. (scastro@qualys.com)
