En el 25 de diciembre de 2004, se comenzó a reportar
la aparición de nuevas variantes del gusano Santy, y
al menos una de ellas parecía afectar no solo las versiones vulnerables
de PhPBB, el conocido paquete de código abierto, sino
a todos los scripts PHP.
Análisis posteriores del código obtenido, parecen demostrar que
en realidad se trata de otra familia de gusanos, aunque con algunas similitudes.
Santy.A hizo su aparición el pasado 21 de diciembre,
y valiéndose de una vulnerabilidad en versiones anteriores a la última
de PhPBB, logró en pocas horas desfigurar cientos de
miles de sitios de Internet, incluyendo un mensaje con el texto This
site is defaced!!! y NeverEverNoSanity WebWorm generation.
PHP, acrónimo de "PHP: Hypertext Preprocessor",
es un lenguaje interpretado de alto nivel, y de código abierto, que se
ejecuta en el servidor, y puede estar embebido en páginas HTML. Permite
desarrollar páginas web dinámicas de una manera rápida
y fácil, y es actualmente utilizado en millones de sitios.
Un nuevo gusano llamado Spyki (también conocido como
PhpInclude o Lexac), anteriormente detectado
como otra variante del gusano Santy, es capaz de atacar a todos
los scripts PHP que sean vulnerables a un problema con el uso
de los parámetros include() y require(),
lo que permite la instalación de código.
Esta vulnerabilidad, en realidad es una falla de programación, y no
depende de la versión de PHP instalada. La mayoría de los sitios
bajo PHP pueden estar en peligro, si en su momento no se tuvieron en cuenta
los consejos básicos de una buena programación. Recientes informes
hablan de una gran actividad en la red, ocasionada por múltiples escaneos
de foros bajo PhPBB que aún pueden ser vulnerables,
y también de páginas PHP, con el objetivo de instalar bots de
IRC. Un bot de IRC es un programa preparado para responder
o actuar automáticamente ejecutando ciertos comandos de forma remota.
Para detectar sitios vulnerables y de ese modo propagarse, el Spyki
se vale del sitio brasileño de Google (www.google.com.br)
y de Yahoo!. El gusano analiza sintácticamente las URL,
y sobrescribe las variables con cadenas para aprovecharse de la posibilidad
de incluir código.
Cuando tiene éxito, el gusano puede descargar y ejecutar un programa
o script en el sitio vulnerable, y luego usarlo para conectarse a un servidor
IRC. Algunas pruebas realizadas, mostraban en un primer momento más de
700 máquinas zombis a la espera de comandos. Sin embargo, actualmente
no hay indicios de un aumento de este número (incluso podría ser
menor), posiblemente porque el principal sitio de descarga del código
fue cerrado.
Un problema adicional para muchos servidores que alojan páginas PHP,
es el aumento del tráfico ocasionado por la actividad de ambos gusanos,
que en muchos casos puede llegar a transformarse en un verdadero ataque de denegación
de servicio (DoS), haciendo que estos sitios dejen de responder a las peticiones
legítimas de sus visitantes.
Las soluciones en el caso del Santy, son actualizarse a la
versión PhPBB 2.0.11 o modificar el archivo vulnerable.
Además, se aconseja actualizar la versión PHP utilizada, ya que
aunque el problema con los parámetros include() y require()
se resuelve con una correcta programación, la ejecución de código
en el servidor, podría explotar otras vulnerabilidades existentes en
versiones anteriores de PHP.