Pasos para diagnosticar y mitigar un ataque a una web.

Cómo saber por qué tu web está caída

Pasos para diagnosticar y mitigar un ataque a una web

Problema

La web de la persona o colectivo que nos contacta está caída. No sabe qué está pasando, sospecha de un ataque.

Diagnóstico

Primero debes *averiguar si la web está caída o si tienes bloqueado el acceso- a ella. Se recomienda hacer un ping desde la terminal escribiendo ping dominio.com o ping ip, o comprobar en https://downforeveryoneorjustme.com.

Si la página está funcionando pero no se puede acceder a ella, prueba con tus datos móviles o con una VPN. Si de esta forma permite el acceso, se trata de censura por parte de tu proveedor de internet. Puedes revisar la página sobre cómo reaccionar ante un posible bloqueo de tu web.

Si la página está caída por completo, visita el sitio web del proveedor de alojamiento (hosting) para verificar si está funcionando o si han reportado algún problema.

¿La página da un error del servidor?

Estos son los errores más comunes:

  • 400 Bad Request. Se debe probablemente a un error de la aplicación que se está usando para hacer la web (WordPress, Drupal, Joomla, etc.) o a un error en la conexión.
  • 401 Unauthorized. Este error se produce cuando se intenta acceder a una parte de la web privada sin tener las credenciales necesarias.
  • 403 Forbbiden. Los ficheros y directorios de la web no tienen permisos de lectura.
  • 404 Not Found. Link roto o mal escrito, la página no se ha encontrado en el servidor.
  • 500 Internal Server Error. Error de configuración del sitio web: el archivo .htaccess puede estar corrompido, incompatibilidad de versiones o errores de sintaxis de PHP, CGI, Perl, etc., error producido por plug-ins u otros elementos web.
  • 504 Timeout. Error interno del servidor. Es el mensaje más común, pueden ser una serie de cosas.
  • 502 Bad Gateway. Error de comunicación del servidor: puede que esté caído o tenga una sobrecarga.

Comprueba que el servidor no esté recibiendo un ataque DDOS.

¿La página muestra un error de WordPress?

  • Si ves una pantalla blanca sin ninguna información, puede tratarse de la informalmente llamada WordPress White Screen of Death (WSOD). Este error puede estar causado por la incompatibilidad de un plug-in o tema con la versión de WordPress.
  • El mensaje Error Establishing Database Connection habla de un error al conectar con la base de datos.
  • Puedes revisar la lista de errores comunes en Wordpress

¿El dominio redirige a otra página?

Solución

En ningún caso solicites los datos de acceso a la web ni a los servidores de quien estás tratando de ayudar. Lo ideal es que la persona que pide apoyo pueda seguir las instrucciones. Si fuera imprescindible acceder a la web o al servidor es importante que envíe las credenciales a través de un canal seguro. Se recomienda un correo electrónico cifrado con GPG o mensajería instantánea cifrada extremo a extremo (E2E) como Wire o Signal.

Reacción / Apagafuegos

¿Quién es la persona encargada de la administración? ¿Estás en contacto con ella? ¿Tienes plena confianza en esa persona? ¿La puedes contactar? ¿Tienes todos los datos de acceso al alojamiento (hosting), dominio y a la administración de la página web?

Ante la duda, y en una situación de riesgo, es recomendable:

  • Cambia la contraseña de acceso al servidor de dominio o al panel de control del hosting. Elige contraseñas seguras.
  • Revisa y cambia el correo electrónico vinculado a estas cuentas de acceso.
Errores del dominio

Accede a tu proveedor de dominio y a través del panel de control comprueba:

  • Revisa los DNS (CNAME y A records) y corrobora que estén bien configurados y dirigiendo a la dirección IP del hosting. Esto se hace en el panel de control de gestión del dominio o en el servidor DNS. Más información en Gestión segura de dominios.
  • Revisa el fichero .htacces y corrobora que no tenga un redireccionamiento del tipo Redirect 301 / o alguna línea extraña. Puedes encontrar el fichero .htacces de Apache en /var/www/html/web/.
Errores de servidor
  • ¿Dónde está alojado el sitio web? Puedes averiguarlo haciendo una petición WHOIS en la terminal whois dominio.com o en https://www.dondominio.com/whois/
  • Si el problema es de todo el servicio de hosting, averigua si informaron las causas en sus redes sociales. También puedes contactarlos.
  • Accede al panel de control del hosting. ¿Hay algún error? ¿Está pagado o ha caducado?
  • Accede a los registros (logs) de acceso y de error del servidor para ver si alguien accedió o hubo algún error:
    • Apache: cat /var/log/apache/access.log y cat /var/log/apache/error.log
    • Nginx: cat /var/log/nginx/access.log y /var/log/nginx/error.log
  • Si tienes acceso vía SSH al servidor puedes reiniciar el servicio web (en GNU/Linux):
    • Apache: service apache2 restart
    • Nginx: sudo systemctl reload nginx
Errores de WordPress
  • Si tu sitio web muestra otra página de inicio, entra al servidor y restaura el fichero index.html o index.php. Si no tienes respaldo, reemplázalo por un archivo index.html que diga que el sitio está en mantenimiento.
  • Restituye la contraseña de todos los usuarios (web, FPT, servidor, etc.) en caso de que hayan sido comprometidas.
  • Evalúa los permisos de cada uno de los usuarios web y, mientras se resuelve, redúcelos a aquellos imprescindibles.
  • Si no conecta con la base de datos, accede vía FTP o SSH al archivo wp-config.php y revisa que la dirección y el nombre de la base de datos, el usuario y contraseña sean los correctos.
  • Comprueba que no haya habido cambios en la base de datos. Si tienes instalado phpMyAdmin, puedes revisar si la base de datos ha sufrido cambios o está corrupta. También se pueden revisar los registros (logs) de error en el root de Wordpress /logs/access.log y /logs/error.log.

Prevención / Sensibilización

La seguridad web es algo a lo que se debe prestar atención. Algunas recomendaciones para mitigar ataques en el futuro:

Consideraciones generales
  • Una buena práctica es no delegar la gestión del dominio a nadie de fuera de tu colectivo. Lo debe registrar una persona de confianza dentro y tener a mano las credenciales de acceso. No delegar o compartir estas credenciales con nadie. Conoce más consejos sobre gestión segura de dominios
  • El servidor de hosting es dónde está alojada nuestra web, donde se guardan los ficheros que la forman. Algunos servidores de dominios también ofrecen servicios de hosting, pero no tienen por qué ser el mismo. Es muy importante saber dónde está alojada la página web y tener a mano las credenciales del panel de control.
Administración del servidor web

En el caso que en tu colectivo tengas personas con conocimientos técnicos y hayáis escogido administrar vuestro propio servidor:

  • Fail2ban es una aplicación que permite bloquear el acceso de intrusos en tu servidor. Comprueba que tienes instalado y bien configurado el firewall para evitar ataques.
  • El fichero de configuración .htaccess define cómo se tiene que comportar tu web. Una mala configuración en este fichero o un error pueden dejar inoperativo el sitio web. Revisa que esté protegido cambiando los permisos del fichero a 640. Para cambiarlo: sudo chmod 640 /var/www/html/.htaccess.
  • Configura también los permisos de los ficheros y directorios web, así como las cuentas que tienen acceso a tu servidor.
  • Configura el acceso por terminal con SSH y elimina el acceso por contraseña. Quienes administran el servidor deberán acceder a través de sus llaves personales. Preferentemente, configura el acceso por un puerto distinto al puerto por defecto (22).
Administración de la página web

Puede ser que el servicio de hosting que tengas contratado solo te dé acceso a un panel de control con las opciones de administración. En este caso:

  • Haz copias de seguridad de manera regular, tanto de los contenidos como de la base de datos. De esa manera, en caso de cualquier problema se puede recuperar el sitio web sin mayores pérdidas.
  • Cada persona que publica en la web debe tener una usuaria única configurada con los permisos adecuados. Por ejemplo, no hacer administradores a todos por defecto. Cada usuaria debe tener una contraseña fuerte. Para saber cómo gestionar contraseñas visitar la página sobre contraseñas seguras
  • Mantén actualizado el software con el que está hecho el sitio web. Borra los plug-ins y temas que no se utilicen. Revisa la compatibilidad de los temas y plug-ins con la versión de tu CMS. Instala solo plug-ins confiables.
  • Instala plug-ins que fortalecen la seguridad del sitio:

Comentarios

  • La web caída puede ser fruto de un ataque sencillo o complejo. La resolución dependerá de la sofisticación del ataque. Se recomienda, siempre, tomar medidas preventivas.
  • Documentar bien el caso (causas y pasos tomados) para poder darle seguimiento.

Consideraciones seguridad física

  • ¿La página está alojada en un servidor propio? ¿Está accesible a personas desconocidas? ¿Está el servidor en tu casa u otro lugar que frecuentas? ¿Compartes la IP del servidor en tu conexión más frecuente?

Consideraciones autocuidados (psicosocial y emocional)

  • Si no se tienen conocimientos técnicos suficientes para llevar adelante las comprobaciones que requiere el diagnóstico y restitución de una web tras un ataque, se recomienda poner en contacto con compañeras del hacklab más cercano.
  • Puedes hacer las comprobaciones de ping, whois, etc. y, solo en última instancia, acceder al servidor o a la web. Luego, solicitar que se cambien todas las claves nuevamente.

Consideraciones legales

Derivaciones expertas recomendadas

Enlaces de interés