Una de las ventajas del movimiento de código abierto es que ha traído consigo un número considerable de aplicaciones para la publicación y administración de blogs como WordPress, sistemas de gestión de contenidos como Joomla y PHP Nuke, o sistemas de gestión de cursos como Moodle, que se pueden descargar e instalar fácilmente. Sin embargo, es muy importante que los webmasters mantengan al día las versiones de sus aplicaciones. Dado que existe una amplia comunidad de usuarios y desarrolladores de estos paquetes, es común que se descubran fallos y que se corrijan en las nuevas versiones. Si tienes instalada una versión antigua de un sistema de gestión que tiene un fallo conocido, es posible que un hacker consiga acceder al sitio y modificar el contenido, por lo tanto es conveniente estar al corriente de las últimas versiones y informarse acerca de las vulnerabilidades conocidas. El sitio BlogSecurity mantiene una lista con los fallos conocidos en las diferentes versiones de WordPress [inglés] o Linux Security ofrece un informe sobre las vulnerabilidades encontradas en Moodle [inglés] y recomienda actualizar el paquete a la última versión.
El uso de un paquete desactualizado es una de las causas más comunes del hacking, pero a su vez es una de las más fáciles de prevenir. Por ejemplo recientemente encontramos un caso de hacking en el sitio oficial de una capital sudamericana y la causa de este problema fue una versión antigua de Moodle en un sistema de enseñanza. Ahora si no utilizas un paquete de código abierto y codificas tu mismo las páginas dinámicas de tu sitio web en lenguajes como PHP o Python, es muy importante que tus scripts eviten la inyección de SQL o el cross-site scripting descritos previamente: Toda la información enviada en los formularios que ofrezca tu sitio debe ser tratada como texto, debes asegurarte de escapar los caracteres especiales como las comillas y debes evitar que ciertas etiquetas HTML puedan ser embebidas dentro de la información enviada (por ejemplo SCRIPT, META, IFRAME, DIV o SPAN). Finalmente es importante que nunca confíes ciegamente en la información enviada en los formularios y prepares tus scripts para el peor de los escenarios posibles en caso de un ataque. El manual oficial de PHP ofrece una buena descripción en castellano sobre en qué consiste y cómo puedes prevenir el ataque.
Ahora, ¿cómo puedes saber si tu sitio ha sido atacado? A veces es evidente dado que el hacker cambia el contenido de la página principal e inserta mensajes como "este sitio ha sido hackeado por tal grupo" o en el peor de los casos puede borrar todos los archivos del sitio a través de sentencias SQL, drop tables. Sin embargo, en los casos que hemos observado en los sitios latinoamericanos el ataque es más discreto dado que los hackers combinan dos técnicas distintas: hacking y encubrimiento (cloaking). Esta última técnica hace referencia a la práctica de presentar a los usuarios y motores de búsquedas contenido distinto. En estos casos los hackers modifican el código de tal forma que se muestra el contenido normal a los usuarios, pero cuando el Googlebot o algún otro robot visitan tu sitio, muestran una versión ligeramente distinta que contiene un sin número de enlaces escondidos.
Lo que hace difícil detectar esta técnica es que, al revisar tu sitio en un navegador como FireFox o Chrome, no encuentras ninguna anomalía. Sin embargo, el Googlebot rastrea e indexa el contenido hackeado. Una manera muy sencilla de detectar este problema es comparar el código de la última versión de tu página que Google almacenó en cache con el código de la versión que aparece en el navegador. Para hacerlo, agrega en el campo de búsqueda de Google el operador "cache:" y la página que deseas revisar (por ejemplo cache:www.google.com) y como resultado obtendrás la versión cache de la página. Si en la versión cache aparecen muchos enlaces hacia sitios no deseados acompañados de palabras comerciales, es muy probable que tu sitio haya sido hackeado.
Otro operador muy útil para detectar si tu sitio se ha visto comprometido es el operador "site:" el cual restringe los resultados de acuerdo al dominio especificado. Puedes combinar este operador con una consulta no relacionada con tu sitio, por ejemplo site:http://example.com viagra or site:example.com cialis. Si tu sitio no tiene ningún contenido relacionado con fármacos y esta consulta te devuelve resultados, de nuevo es probable que tu sitio haya sido hackeado. Ahora, si tienes una cuenta de Herramientas para webmasters, puedes mirar cuáles son las palabras principales por las que tu sitio aparece en los resultados de búsqueda y recibir potenciales notificaciones en el Centro de mensajes.
miércoles, 10 de junio de 2009
Etiquetas: Tutoriales
Suscribirse a:
Enviar comentarios (Atom)

0 comentarios:
Publicar un comentario