Una guía para fortalecer su servidor web

Publicado: 2022-03-15

Debido a su función, los servidores web son diferentes de muchos otros dispositivos en un entorno de red típico: no solo están expuestos a Internet por diseño, sino que probablemente entregan tráfico web a completos extraños. Además, en muchas situaciones, es probable que los servidores web sirvan aplicaciones dinámicas como sitios web de WordPress o actúen como servidores proxy hacia otras aplicaciones internas. Por lo tanto, no sorprende que los servidores web se presenten como objetivos interesantes para los atacantes.

Fortalecer un sistema se refiere al proceso de mejorar las defensas de un sistema de modo que sea más difícil para un pirata informático malintencionado comprometer ese sistema y establecerse dentro de una red.

El proceso de endurecimiento de un servidor web dependerá, por supuesto, del tipo de servidor web que esté utilizando (por ejemplo, Apache HTTP Server, Nginx, Microsoft IIS...), sin embargo, existen una serie de principios básicos y mejores prácticas para mejorar su seguridad del servidor web que debe tener en cuenta, independientemente del servidor web que esté utilizando.

Este artículo es una guía de fortalecimiento del servidor web. En él, veremos una serie de mejores prácticas independientes de la tecnología mediante las cuales puede mejorar la seguridad de su servidor web. Para el fortalecimiento de WordPress, consulte nuestra guía de seguridad y fortalecimiento de WordPress.

1. Mantén actualizado tu servidor web

Mantener el software actualizado puede no parecer un gran problema, pero la aplicación de parches de seguridad a tiempo es sin duda una de las defensas más importantes que puede implementar. Aparte de las mejoras de rendimiento y estabilidad, las actualizaciones del servidor web y del sistema operativo a menudo contienen correcciones para las vulnerabilidades de seguridad.

En la superficie, puede sonar trivial, sin embargo, cualquier profesional de seguridad de la información le dirá que parchear es más complicado de lo que parece, no porque instalar la última versión de la mayoría del software sea particularmente difícil, sino porque parchear siempre se ve como algo que puede posponerse.

El mejor enfoque para asegurarse de que el software de su servidor web se actualice constantemente es encontrar un sistema o una rutina que funcione para usted o para quien tenga la tarea de actualizar su servidor web y el software del sistema operativo. La mayoría de las veces se reduce a un recordatorio periódico (por ejemplo, configurar un evento de calendario repetido) para el que hará tiempo.

2. Eliminar software y módulos innecesarios

Aunque no siempre lo parezca, los servidores web son piezas de software complejas. Algunos servidores web, como Apache HTTP Server, vienen con una serie de "módulos" (similares a los complementos de WordPress) que puede habilitar o deshabilitar según su caso de uso. Se sabe que los atacantes maliciosos aprovechan las características y vulnerabilidades de un módulo de servidor web para recopilar más información sobre su servidor web. Si bien esta puede no ser la única razón para un ataque exitoso, el objetivo principal del fortalecimiento del servidor web es adoptar un enfoque de defensa en profundidad y dificultar que los actores maliciosos ganen incluso el más mínimo punto de apoyo.

Un ejemplo práctico de esto son módulos como mod_status de Apache HTTP Server. Este módulo está diseñado para obtener una descripción general de la actividad y el rendimiento del servidor (hosts actuales, cantidad de solicitudes procesadas, cantidad de trabajadores inactivos y utilización de la CPU) a través de la URL /estado del servidor. Esta característica puede proporcionar a un atacante una buena indicación de qué tan bien está funcionando su servidor web, una herramienta bastante útil en caso de un ataque de denegación de servicio (DoS).

Del mismo modo, otro software no utilizado que se ejecuta en su servidor web podría representar un riesgo innecesario. Por ejemplo:

  1. ¿Está ejecutando un servidor FTP, como vsftpd , que no necesita?
  2. ¿Hay algún agente de transferencia de correo como Sendmail o Postfix que ya no necesite? Si utiliza un servicio de terceros para mejorar la capacidad de entrega de correo electrónico de WordPress, no necesitará dicho servicio.

Estas aplicaciones/servicios y muchos otros en el servidor son todos componentes que tienen sus propias peculiaridades de seguridad, vulnerabilidades y requisitos de parches.

En resumen, ejecute menos software cuando sea posible. Si no está utilizando un módulo o un servicio, debe considerar deshabilitarlo o eliminarlo. Naturalmente, no se limite a deshabilitar módulos o aplicaciones sin realizar pruebas exhaustivas en un entorno de desarrollo o ensayo (a veces puede que no quede completamente claro si se está utilizando una aplicación o un módulo de servidor web).

3. Apriete el control de acceso

Controlar el acceso a su servidor web es esencial para hacerlo bien. Después de todo, desea minimizar la posibilidad de que el acceso a su servidor web caiga en manos equivocadas. Las siguientes son una serie de mejores prácticas a seguir en relación con el mantenimiento de un control de acceso adecuado.

  • No utilice el usuario raíz. Si necesita realizar tareas administrativas, utilice sudo en su lugar;
  • Utilice contraseñas seguras del sistema (y de WordPress);
  • Use claves SSH a favor de la contraseña cuando use SSH;
  • Considere restringir el acceso SSH/RDP desde direcciones IP específicas;
  • Habilite la autenticación de dos factores (2FA) en cualquier cuenta de proveedor de nube;
  • Asegúrese de que cada persona que acceda al servidor web tenga su propio usuario; no comparta cuentas de usuario entre usuarios;
  • Limite el acceso de Shell/SSH/Escritorio remoto explícitamente a las personas que lo necesitan.

4. Configurar el Monitoreo de Integridad de Archivos (FIM)

El Monitoreo de integridad de archivos (FIM) ayuda a los administradores de sistemas a identificar cuándo cambian los archivos en un servidor web. Si bien algunos archivos cambian con bastante frecuencia como parte de las operaciones normales del servidor web, los archivos como una instalación de WordPress nunca deberían cambiar a menos que un administrador realice cambios (por ejemplo, actualizando el archivo wp-config.php) o actualizando WordPress mismo.

Si bien hay una multitud de opciones que puede elegir usar cuando se trata de Monitoreo de integridad de archivos, se recomienda ceñirse a algo que sea específico para la aplicación que está ejecutando, que sea fácil de configurar y operar, y que no requiera un mucha sintonía. De lo contrario, te ahogarás en notificaciones sin sentido y, antes de que te des cuenta, aparecerá la fatiga de alerta, borrando tu esfuerzo por estar contigo. En resumen, más alertas y características no equivalen a mejor cuando se trata de FIM, sino que busque una solución que ofrezca el mayor valor con la menor cantidad de gastos generales.

5. Utilice un servicio de mitigación de DDoS y WAF

En lugar de exponer su servidor web directamente a Internet, debería considerar usar un servicio como Cloudflare, Fastly, Akamai o similar para protegerse contra una amplia gama de ataques, incluidos los ataques de denegación de servicio distribuido (DDoS). Un ataque de denegación de servicio (DoS) es un tipo de ataque en el que un atacante tiene como objetivo abrumar un sitio web con solicitudes y, como resultado, evitar que su servidor web entregue solicitudes a usuarios legítimos.

Además de la mitigación de la denegación de servicio, estos servicios en la nube suelen ofrecer capacidades de firewall de aplicaciones web (WAF) que pueden detener muchos ataques de aplicaciones web comunes y corrientes, como inyección SQL básica (SQLi) y Cross-site simple. Secuencias de comandos (XSS). Si bien los WAF no son una solución para las vulnerabilidades de las aplicaciones web, ofrecen cierta protección contra la explotación, especialmente con las reglas WAF que están optimizadas para los sitios web de WordPress.

¿Cuáles son los siguientes pasos?

Si bien este artículo cubre algunas técnicas comunes de fortalecimiento de servidores web, nada en seguridad es una panacea. Como tal, ningún método para defender un sistema es infalible, especialmente frente a un adversario determinado. Por lo tanto, necesita proteger cada componente que conforma su sitio web de WordPress. No puede proteger su servidor web e ignorar la seguridad de WordPress o su propia computadora.

Sin embargo, la aplicación constante de parches y el seguimiento de buenas prácticas de seguridad e higiene pueden aumentar drásticamente el esfuerzo que un atacante debe realizar para llevar a cabo con éxito un ataque, lo que, la mayoría de las veces, significa frustrar al atacante y forzarlo a buscar un objetivo más fácil.