Debido a que puede haber varios hackeos independientes, incluso si puedes encontrar y corregir una vulnerabilidad, te recomendamos que sigas buscando otros. Lee sobre las principales formas en las que los sitios web son hackeados por los generadores de spam para comenzar tu investigación.
Debes tener lo siguiente:
- Acceso de administrador de shell o terminal a los servidores de tu sitio: web, base de datos y archivos
- Conocimientos de comandos de terminal o shell
- Comprensión del código (como PHP o JavaScript)
- La capacidad de ejecutar dos escáneres de antivirus
Acciones siguientes
Abordaremos varias formas comunes de vulnerar un sitio. Con suerte, una de estas opciones se aplicará a tu sitio o, al menos, arroje otras posibilidades.
Ten en cuenta que los análisis de vulnerabilidades son diferentes de los analizadores de antivirus. Estos escáneres pueden ser mucho más invasivos y tienen un mayor potencial para causar daños no deseados en tu sitio. Sigue todas las instrucciones, como crear una copia de seguridad de tu sitio, antes de ejecutar el escáner.
Vulnerabilidades potenciales {posibles-vulnerabilities}
Entre las posibles vulnerabilidades para investigar, se incluyen las siguientes:
Computadora del administrador infectada con un virus
En la computadora infectada con un virus del administrador, es posible que el hacker haya instalado un software espía para registrar las pulsaciones de teclas del administrador del sitio.
- Revisa que no haya virus en los sistemas de los administradores. Recomendamos ejecutar varios análisis de antivirus (AV) confiables en cada computadora que haya utilizado un administrador para acceder al sitio. Debido a que constantemente se diseñan nuevas infecciones de software malicioso para evadir los escáneres, este no es un método infalible de detección de virus. Ejecutar varios análisis ayuda a evitar los falsos positivos y proporciona más datos para determinar si existe una vulnerabilidad. También considera analizar tu servidor web y todos los dispositivos que se usan para actualizar el sitio o publicar contenido en él, solo por precaución.
- Si el escáner de AV detecta software espía, un virus, troyano o cualquier otro programa sospechoso, investiga los registros del servidor del sitio para verificar la actividad del administrador que posee la computadora infectada.
- Es posible que el hacker haya alterado los archivos de registro. Si no lo han hecho, correlacionar el nombre de usuario del administrador con comandos sospechosos en el archivo de registro es una prueba adicional de que un virus en el sistema de un administrador hizo que el sitio fuera vulnerable.
Contraseñas poco seguras o reutilizadas
Las contraseñas poco seguras son fáciles de descubrir para los hackers, y les proporcionan acceso directo a tu servidor. Estas tienen una combinación de letras y números, puntuación y ninguna palabra o jerga que se pueda encontrar en un diccionario. Las contraseñas deben usarse solo para una aplicación y no deben usarse en toda la Web. Cuando se reutilizan contraseñas, solo se requiere una violación de la seguridad en una aplicación para que un hacker encuentre un acceso y una contraseña que pueda usar en otro lugar.
En el registro del servidor, busca actividad no deseada, como varios intentos de acceso de un administrador o un administrador que realiza comandos inesperados. Toma nota de cuándo ocurrió la actividad sospechosa, ya que saber cuándo ocurrió el hackeo por primera vez te ayudará a determinar qué copias de seguridad podrían estar limpias.
Software desactualizado
Verifica que tus servidores tengan instalada la versión más reciente del sistema operativo, el sistema de administración de contenido, la plataforma de blogs, las aplicaciones, los complementos y cualquier otro software que use el sitio.
- Investiga todo el software instalado (quizás a través de una búsqueda web) para determinar si la versión contiene un aviso de seguridad. Si es así, es probable que un software desactualizado haya provocado la vulnerabilidad del sitio.
- Como práctica recomendada, siempre intenta mantener actualizado el software de tus servidores, sin importar si el software desactualizado causó estos problemas de vulnerabilidad en particular.
4. Prácticas de programación permisiva, como inyecciones de SQL y redireccionamientos abiertos
Abrir redireccionamientos
Los redireccionamientos abiertos se codifican con la intención de que la estructura de la URL permita agregar otra URL para que los usuarios puedan llegar a un archivo o una página útil en el sitio. Por ejemplo:
http://example.com/page.php?url=http://example.com/good-file.pdf
o
http://example.com/page.php?url=malware-attack-site>
- Si se abusa de tu sitio con redireccionamientos abiertos, es probable que hayas notado que el mensaje de Search Console proporcionaba URLs de ejemplo que incluían redireccionamientos abiertos a un destino no deseado.
- Para evitar redireccionamientos abiertos en el futuro, verifica lo siguiente:
- Si la opción "Permitir redireccionamientos abiertos" está activada de forma predeterminada en tu software
- Si tu código puede prohibir los redireccionamientos fuera del dominio
- Indica si puedes firmar el redireccionamiento para que solo los redireccionamientos con URLs con hash correctamente y la firma criptográfica correcta puedan continuar.
Inyecciones de SQL
Las inyecciones de SQL ocurren cuando un hacker puede agregar comandos fraudulentos a los campos de entrada del usuario que ejecuta tu base de datos. Las inyecciones de SQL actualizan los registros de tu base de datos con contenido de software malicioso o spam no deseado, o vuelcan datos valiosos para que el hacker los obtenga. Si tu sitio usa una base de datos y, en especial, si te infectaron con software malicioso, es posible que se haya vulnerado tu sitio por una inyección de SQL.
- Accede al servidor de la base de datos y busca contenido sospechoso en la base de datos, como campos de texto comunes que ahora muestran iframes o secuencias de comandos.
- En el caso de los valores sospechosos, verifica que la entrada del usuario esté validada y con el escape correcto, o bien que esté bien escrita para que no se puedan ejecutar como código. Si no se verifica la entrada del usuario antes de procesar la base de datos, la inyección de SQL puede ser una vulnerabilidad de causa raíz en tu sitio.