The #ChromeDevSummit site is live, happening Nov 12-13 in San Francisco, CA
Check it out for details and request an invite. We'll be diving deep into modern web tech & looking ahead to the platform's future.

Identificar la vulnerabilidad

Es posible que varios hackers diferentes hayan pirateado el sitio web, por lo que te recomendamos que sigas buscando vulnerabilidades aunque encuentres y corrijas una. Para empezar a investigar, consulta las formas más habituales en que los spammers piratean los sitios web.

Lo que necesitarás:

  • Acceso a los servidores del sitio (web, base de datos, archivos) como administrador de shell/terminal
  • Conocimientos de los comandos de shell/terminal
  • Conocimientos de código (como PHP o JavaScript)
  • Capacidad para ejecutar dos análisis antivirus

Pasos siguientes:

Comentaremos varias formas habituales de piratear un sitio web. Con suerte, una de estas vulnerabilidades se podrá aplicar a tu sitio web o aportará otras posibilidades.

Ten en cuenta que los análisis de vulnerabilidad y los análisis antivirus no son lo mismo. Los análisis de vulnerabilidad pueden ser mucho más invasivos y hay más posibilidades de que causen daños no deseados en el sitio. Sigue todas las instrucciones, como, por ejemplo, crear una copia de seguridad del sitio web antes de ejecutar el análisis.

Entre las vulnerabilidades potenciales que se deben investigar, se incluyen las siguientes:

1. El equipo del administrador está infectado por un virus

El hacker puede haber instalado software espía en el equipo del administrador infectado por el virus para registrar sus combinaciones de teclas.

  • Comprueba si hay virus en los sistemas del administrador. Te recomendamos que ejecutes varios escáneres con antivirus de prestigio en todos los equipos que el administrador use para iniciar sesión en el sitio web. Esta acción no es un método infalible de detección de virus, ya que constantemente se diseñan nuevas infecciones de software malicioso para evadir los análisis. Es posible que los análisis antivirus informen sobre falsos positivos. Por esta razón, la ejecución de varios análisis puede proporcionar distintos datos para determinar si existe una vulnerabilidad. Considera también la posibilidad de analizar tanto tu servidor web como todos los dispositivos utilizados para actualizar o publicar en el sitio web, por si acaso.
    • Si el análisis antivirus detecta software espía, un virus, un troyano o cualquier otro programa sospechoso, investiga los registros del servidor del sitio web para comprobar la actividad del administrador propietario del equipo infectado.
    • Es posible que el hacker haya alterado los archivos de registro. Si no es así, la correlación del nombre de usuario del administrador con comandos sospechosos en el archivo de registro es una prueba más de que la causa de la vulnerabilidad del sitio web ha sido un virus en el sistema del administrador.

2. Contraseñas débiles o reutilizadas

A los hackers les puede resultar relativamente fácil descifrar una contraseña débil, y esto les proporciona acceso directo a tu servidor. Las contraseñas seguras están formadas por una combinación de letras, números y signos de puntuación, y no incluyen palabras ni jerga que se puedan encontrar en un diccionario. Las contraseñas se deben utilizar para una única aplicación, no se deben reutilizar para toda la Web. Si se reutilizan las contraseñas, con una sola infracción de la seguridad en una aplicación el hacker consigue el nombre de usuario y la contraseña, y puede intentar reutilizarlos en otros lugares.

  • En el registro del servidor, comprueba si hay actividad no deseada, por ejemplo, que un administrador haya hecho varios intentos para iniciar sesión o haya utilizado comandos inesperados. Anota cuándo ocurrió la actividad sospechosa. Es importante saber cuándo se pirateó el sitio web por primera vez para poder determinar qué copias de seguridad pueden estar limpias.

3. Software desactualizado

Comprueba que los servidores tengan instalada la última versión del sistema operativo, del sistema de gestión de contenido, de la plataforma de blogs, de las aplicaciones, de los complementos, etc.

  • Investiga (quizás con una búsqueda en la Web) todo el software instalado para determinar si tu versión contiene una advertencia de seguridad. Si es así, es muy probable que la causa de la vulnerabilidad del sitio web sea que el software está desactualizado.
  • Lo mejor es mantener siempre el software de los servidores actualizado, independientemente de si se trata de la causa de la vulnerabilidad o no.

4. Prácticas de codificación permisivas, como redireccionamientos abiertos e inyecciones SQL

  • Redireccionamientos abiertos
  • Los redireccionamientos abiertos se codifican con la intención de que la estructura de la URL permita añadir otra URL para que los usuarios puedan tener acceso a archivos o a páginas web útiles del sitio web. Por ejemplo:

    http://example.com/page.php?url=http://example.com/good-file.pdf
    Los hackers pueden hacer un uso inadecuado de los redireccionamientos abiertos y añadir páginas con contenido fraudulento o software malicioso al redireccionamiento abierto del sitio web, de forma similar a la siguiente:
    http://example.com/page.php?url=<malware-attack-site>

    • Si se usan redireccionamientos abiertos de forma inadecuada en tu sitio web, seguramente ya te fijaste en el mensaje de las URL de ejemplo proporcionadas en Search Console, que incluían redireccionamientos abiertos a un destino no deseado.
    • Para evitar redireccionamientos abiertos en el futuro, comprueba si la opción para permitir redireccionamientos abiertos está activada de forma predeterminada en el software. Puedes prohibir redireccionamientos fuera del dominio con código o puedes firmar el redireccionamiento de manera que solo los usuarios con URLs con tecnología hash y la firma criptográfica puedan entrar en redireccionamientos.
  • Inyecciones de SQL
  • Las inyecciones de SQL se producen cuando un hacker es capaz de añadir comandos ilegítimos en los campos reservados a la introducción de texto por parte del usuario y que se ejecutan con la base de datos. Con las inyecciones de SQL se actualizan los registros de la base de datos con contenido fraudulento o software malicioso no deseado. También pueden servir para volcar datos valiosos y proporcionárselos al hacker. Si en tu sitio web se utiliza una base de datos y, sobre todo, si está infectado por el tipo de software malicioso Inyección de SQL, es posible que se haya pirateado con una inyección de SQL.

    • Inicia sesión en el servidor de la base de datos y busca contenido sospechoso en la base de datos, por ejemplo, campos de texto normales que ahora muestren iframes o secuencias de comandos.
    • En el caso de los valores sospechosos, comprueba que la entrada del usuario se valide y tenga la escapada correcta o que sea inflexible para que no se pueda ejecutar como código. Si la entrada del usuario no se comprueba antes de procesar la base de datos, es posible que la inyección de SQL sea el origen de la vulnerabilidad del sitio web.

Paso siguiente

El siguiente paso del proceso es Limpiar el sitio web y hacer tareas de mantenimiento.