Tips para proteger sus aplicaciones web.En la mayoría de los casos, los servidores de aplicaciones web deben ser de acceso público, lo que significa que están expuestos a todo tipo de amenazas.
Muchas de estas amenazas son predecibles y fácilmente evitables, mientras que otras son desconocidas y pueden pillarte desprevenido. Para minimizar la posibilidad de este último caso, ofrecemos una lista de consejos esenciales para mantener los servidores de aplicaciones web lo más seguros posible.
Antes de comenzar con la lista de sugerencias, debe comprender que un servidor de aplicaciones web no es una isla. El servidor es el componente central de la granja de aplicaciones web que hace posible el alojamiento y el funcionamiento de una aplicación web. Por lo tanto, para proteger, debe tener en cuenta todos los componentes que lo rodean y proteger todo el entorno de la aplicación web.
Un entorno básico para alojar y ejecutar aplicaciones web incluye el sistema operativo (Linux, Windows), el software de servidor web (Apache, Nginx), un servidor de base de datos. Si se rompe alguno de estos componentes, los atacantes podrían obtener acceso y realizar todas las acciones maliciosas que deseen.
Un primer consejo básico para asegurar un entorno como el descrito anteriormente es leer las pautas de seguridad y la lista de mejores prácticas para cada uno de los componentes. Dicho esto, revisemos una serie de pautas de seguridad de sentido común que se aplican a casi todos los entornos de aplicaciones web.
El cortafuegos desmitificado
Es posible que sienta la tentación de verificar rápidamente este elemento y piense: “por suerte, ya tengo un firewall que protege mi red”. Pero es mejor que sostengas tus caballos.
Su cortafuegos puede estar cuidando los límites de su red, manteniendo alejados a los malos y a los buenos, pero seguramente está dejando una puerta abierta para que los atacantes entren en su servidor de aplicaciones web.
¿Cómo?
Simple: el firewall de su red debe al menos permitir el tráfico entrante en los puertos 80 y 443 (es decir, HTTP y HTTPS), y no sabe quién o qué está pasando a través de esos puertos.
Lo que necesita para proteger su aplicación es un firewall de aplicaciones web (WAF) que analice específicamente el tráfico web y bloquee cualquier intento de explotar vulnerabilidades como la creación de secuencias de comandos entre sitios o la inyección de código. Un WAF funciona como un antivirus y antimalware típico: busca patrones conocidos en el flujo de datos y lo bloquea cuando detecta una solicitud maliciosa.
Para ser eficaz, el WAF necesita que su base de datos se actualice constantemente con nuevos patrones de amenaza, para poder bloquearlos. El problema con la prevención de ataques basados en patrones es que su aplicación web puede ser uno de los primeros objetivos de una nueva amenaza que su WAF aún no conoce.
Por estos motivos, su aplicación web necesita capas de protección adicionales además del firewall de red.
Analizar vulnerabilidades específicas de la web
Nuevamente, no piense que su servidor de aplicaciones web está libre de vulnerabilidades solo porque su escáner de seguridad de red lo dice.
Los escáneres de red no pueden detectar vulnerabilidades específicas de la aplicación. Para detectar y eliminar estas vulnerabilidades, debe someter las aplicaciones a una serie de pruebas y auditorías, como pruebas de penetración, escaneo de recuadros negros y auditoría de código fuente. Sin embargo, ninguno de estos métodos es a prueba de balas. Idealmente, debe realizar tantos como sea posible para eliminar todas las vulnerabilidades.
Por ejemplo, los escáneres de seguridad, como Netsparker , aseguran que ningún código explotable llegue al entorno de producción. Pero podría haber vulnerabilidades lógicas que solo pueden detectarse mediante auditoría de código manual. La auditoría manual, además de costar mucho, es un método humano y, por lo tanto, propenso a errores. Una buena idea para hacer este tipo de auditoría sin perder mucho dinero es incorporarlo en el proceso de desarrollo, principalmente educando a sus desarrolladores.
Eduque a sus desarrolladores
Los desarrolladores tienden a pensar que sus aplicaciones se ejecutan en mundos ideales, donde los recursos son ilimitados, los usuarios no cometen errores y no hay personas con intenciones despiadadas. Desafortunadamente, en algún momento, deben enfrentar problemas del mundo real, especialmente aquellos relacionados con la seguridad de la información.
Al desarrollar aplicaciones web, los codificadores deben conocer e implementar mecanismos de seguridad para garantizar que esté libre de vulnerabilidades. Esos mecanismos de seguridad deben ser parte de la guía de mejores prácticas que el equipo de desarrollo debe cumplir.
La auditoría de calidad del software se utiliza para garantizar el cumplimiento de las mejores prácticas. Las mejores prácticas y la auditoría son las únicas formas de detectar vulnerabilidades lógicas, como (por ejemplo) pasar parámetros no cifrados y visibles dentro de una URL, que un atacante podría cambiar fácilmente para hacer lo que quiere.
Desactiva la funcionalidad innecesaria
Suponiendo que las aplicaciones web estén tan libres de errores como sea posible y que la granja de servidores web esté protegida, veamos qué se puede hacer en el servidor para protegerlo de los ataques.
Un consejo básico de sentido común es reducir el número de puntos de entrada potencialmente vulnerables. Si los atacantes pueden explotar cualquiera de los componentes del servidor web, todo el servidor web podría estar en peligro.
Haga una lista de todos los puertos abiertos y servicios o demonios en ejecución en su servidor y cierre, deshabilite o apague los innecesarios. El servidor no debe usarse para ningún otro propósito que no sea ejecutar sus aplicaciones web, así que considere trasladar todas las funciones adicionales a otros servidores en su red.
Use entornos separados para el desarrollo, las pruebas y la producción.
Los desarrolladores y evaluadores necesitan privilegios en los entornos en los que trabajan que no deberían tener en el servidor de aplicaciones en vivo. Incluso si confía ciegamente en ellos, sus contraseñas podrían filtrarse fácilmente y caer en manos no deseadas.
Además de las contraseñas y los privilegios, en los entornos de desarrollo y prueba, generalmente hay puertas traseras, archivos de registro, código fuente u otra información de depuración que podría exponer datos confidenciales, como nombres de usuario y contraseñas de bases de datos. El proceso de implementación de la aplicación web debe ser realizado por un administrador, que debe asegurarse de que no se exponga información confidencial después de instalar la aplicación en el servidor en vivo.
El mismo concepto de segregación debe aplicarse a los datos de la aplicación. Los probadores y desarrolladores siempre prefieren trabajar con datos reales, pero no es una buena idea otorgarles acceso a la base de datos de producción, o incluso a una copia de la misma. Además de las preocupaciones obvias de privacidad, la base de datos podría contener parámetros de configuración que revelen la configuración interna del servidor, como direcciones de punto final o nombres de ruta, por nombrar un par.
Mantenga actualizado el software de su servidor
Por obvio que parezca, esta es una de las tareas más olvidadas. SUCURI descubrió que el 59% de las aplicaciones de CMS estaban desactualizadas, lo que está abierto a riesgos.
Todos los días aparecen nuevas amenazas, y la única forma de evitar que pongan en peligro su servidor es instalar siempre los últimos parches de seguridad.
Mencionamos antes que los firewalls de red y los escáneres de seguridad de red no son suficientes para prevenir ataques a aplicaciones web. Pero son necesarios para proteger su servidor de amenazas comunes de ciberseguridad, como los ataques DDoS . Por lo tanto, asegúrese de tener dichas aplicaciones siempre actualizadas y de que protejan efectivamente su aplicación comercial.
Restringir acceso y privilegios
Una medida de seguridad básica es mantener el tráfico de acceso remoto, como RDP y SSH, encriptado y tunelizado. También es una buena idea mantener una lista reducida de direcciones IP desde donde se permite el acceso remoto, asegurándose de que cualquier intento de iniciar sesión remotamente desde cualquier otra IP esté bloqueado.
Los administradores ocasionalmente otorgan a las cuentas de servicio todos los privilegios posibles porque saben que, al hacerlo, “todo funcionará”. Pero esta no es una buena práctica ya que los atacantes pueden usar vulnerabilidades en los servicios para penetrar en el servidor. Si esos servicios se ejecutan con privilegios de administrador, pueden aprovechar todo el servidor.
Un buen equilibrio entre seguridad y practicidad requiere que cada cuenta, tanto las cuentas de inicio de sesión como las cuentas de servicio, tengan los privilegios que necesita para realizar su trabajo, y nada más.
Por ejemplo, puede definir diferentes cuentas para que un administrador realice diferentes tareas: una para hacer copias de seguridad, otra para limpiar archivos de registro, otras para cambiar la configuración de los servicios, etc. Lo mismo se aplica a las cuentas de la base de datos: una aplicación generalmente solo necesita los permisos para leer y escribir datos, y no para crear o descartar tablas. Por lo tanto, debe ejecutarse con una cuenta con privilegios limitados para realizar las tareas que necesita realizar.
Esté atento a los registros del servidor
Los archivos de registro están ahí por una razón.
Los administradores deben monitorearlos regularmente para detectar cualquier comportamiento sospechoso antes de que cause algún daño. Al analizar los archivos de registro , puede descubrir mucha información para ayudarlo a proteger mejor la aplicación. Si ocurriera un ataque, los archivos de registro podrían mostrarle cuándo y cómo comenzó, lo que ayudará a mejorar el control de daños.
También debe tener un procedimiento automatizado para eliminar archivos de registro antiguos o para eliminar información obsoleta, para evitar que consuman todo el espacio de almacenamiento disponible en el servidor.
Consejo extra: manténgase informado
Hay una gran cantidad de información gratuita y útil en Internet que puede utilizar en beneficio de su aplicación web. No se pierda ninguna publicación nueva en blogs de seguridad acreditados (como este) y manténgase informado sobre lo que está sucediendo en la industria de la seguridad y la web.
Los tutoriales , cursos , videos y libros también son fuentes de conocimiento útil. Practique pasar una o dos horas a la semana solo para mantenerse informado de las noticias de la industria: le dará la tranquilidad de saber que está haciendo lo correcto para mantener sus aplicaciones seguras.
Leer también:Tendencias en Ciberseguridad, para empresas y personas; ¿Qué sucede cuando sus servidores caen?; Mejores prácticas de prevención de pérdida de datos
More from Hosting
Servidores Dedicados: ¿Qué son y por qué podrías necesitar uno?
En la era digital actual, la presencia en línea se ha convertido en un pilar fundamental para empresas y emprendedores. …
Protegiendo tu Blog de Ataques de Rastreo y Scraping
En el mundo digital actual, los blogs son una parte integral de la expresión personal y profesional en línea. Sin …
Soluciones a 5 problemas comunes del server room
Soluciones a 5 problemas comunes del server room. Cuando se trata de seguridad para la red de su empresa, la …