La seguridad de las aplicaciones web consiste en proteger a sitios y aplicaciones web de ataques y vulnerabilidades para evitar que los ciberdelincuentes puedan acceder a datos confidenciales, sustraer información o limitar la funcionalidad de la aplicación. Para ello, se implementan medidas para impedir el acceso no autorizado y evitar la pérdida o la sustracción de datos sensibles.
El desarrollo de aplicaciones web no deja de ser un proceso dirigido por humanos, por lo que es lógico que se introduzcan, sin querer, errores en el código y la configuración que los atacantes intentarán aprovechar. La seguridad de las aplicaciones web ayuda a subsanar estas vulnerabilidades mediante prácticas seguras de desarrollo, pruebas de seguridad a lo largo del ciclo de desarrollo, resolución de defectos a nivel de diseño y prevención de riesgos durante el despliegue y el tiempo de ejecución.
Las aplicaciones web están pensadas para almacenar, procesar y transmitir datos confidenciales, lo que las convierte en el blanco de todo ciberdelincuente. Cuando una aplicación no está bien protegida, puede producirse tiempo de inactividad, un mal funcionamiento o la pérdida o el robo de datos confidenciales, todo lo cual redunda en una reducción del tráfico, la pérdida de ventas y de la confianza de los consumidores o multas por incumplimiento de la legislación vigente, entre otras consecuencias.
Los riesgos a la seguridad de las aplicaciones web más comunes son los siguientes:
Relleno de credenciales: este ataque utiliza una lista de credenciales robadas (nombres de usuario y contraseñas) para intentar entrar, sin la debida autorización, a cuentas online.
Inyección: en este ataque, se inyecta código malicioso a una aplicación web, ya sea por SQL u otro método.
Secuestro de sesión: este ataque consiste en apropiarse de la sesión activa de un usuario para obtener acceso fraudulento a una aplicación web. Para ello, se utilizan técnicas como la suplantación de IP, el secuestro lateral, ataques de intermediario y la fijación de sesión.
Scripting entre sitios (XSS): en este ataque, se inyecta código malicioso a una página web que acaba ejecutando el navegador de la persona que visita la web.
Falsificación de petición entre sitios (CSRF): este ataque implica el engaño a un usuario, que envía una petición maliciosa a una aplicación web.
Revelación de datos sensibles: a este ataque también se le conoce como pérdida o filtración de datos y puede producirse por varios tipos de canales, como el correo electrónico, almacenamiento en la nube, redes sociales o mediante una violación de la seguridad.
Lagunas en la gestión de sesiones y autenticación: este ataque aprovecha vulnerabilidades en la manera en que una aplicación web procesa la información de sesión y autenticación.
Configuración incorrecta de la seguridad: este ataque, por su parte, aprovecha vulnerabilidades en la configuración de una aplicación web.
Fuerza bruta: en este caso, el atacante intenta adivinar una contraseña u otras credenciales de autenticación probando todas las combinaciones posibles de caracteres. Para ello, se suele utilizar un programa automatizado hasta que se descubre la combinación correcta.
La lista de las 10 principales vulnerabilidades según OWASP recopila los riesgos de seguridad más habituales e importantes a los que se enfrentan las aplicaciones web actuales. La publica el Open Web Application Security Project (OWASP), una organización dedicada a la mejora de la seguridad de las aplicaciones web.
La lista del OWASP ha servido a los expertos en seguridad, tanto del sector público como del privado, como guía para elaborar un conjunto unificado de prácticas y garantías contra ataques y vulnerabilidades habituales. Si entienden y hacen frente a estos riesgos, las organizaciones tendrán mucho ganado a la hora de proteger sus aplicaciones web.
La lista del OWASP se pone al día cada ciertos años para reflejar el estado de la seguridad de las aplicaciones web y clasifica los riesgos por orden de prevalencia, potencial de daño y facilidad de explotación. Cabe destacar, no obstante, que esta lista no es exhaustiva y que las organizaciones deben estar alerta y defenderse de otros riesgos a su seguridad.
El actual «top ten» según OWASP (2022):
Inyección
Lagunas en la gestión de sesiones y autenticación
Scripting entre sitios (XSS)
Referencias a objetos directos no seguras
Configuración incorrecta de la seguridad
Revelación de datos confidenciales
Falsificación de petición entre sitios (CSRF)
Uso de componentes con vulnerabilidades conocidas
Tareas insuficientes de creación de registros y supervisión
Falta de restricciones en el acceso a una URL
Para proteger aplicaciones web de amenazas a la seguridad, es necesario combinar herramientas, servicios, formación, personal y políticas a lo largo y ancho del departamento de ingeniería.
Ya no basta con dejarlo todo en manos del personal de seguridad, puesto que muchas empresas no cuentan con los recursos humanos o los conocimientos necesarios para tener un buen programa de protección. Ante este escenario, lo habitual en el desarrollo actual es que se empiecen a implementar prácticas de seguridad en la fase de creación de código y se siga haciendo en el despliegue, la implementación y el mantenimiento, después de que se publique una aplicación.
Las organizaciones tienen a su disposición varias medidas para proteger sus aplicaciones web y reducir al mínimo el riesgo de una violación de los datos, pero es importante tener en cuenta que no hay sistema totalmente seguro y que es esencial mantenerse siempre alerta, supervisando y renovando continuamente las medidas de seguridad para estar al día de las amenazas que surjan.
Usar un firewall de aplicaciones web (WAF): un WAF es una herramienta de seguridad que supervisa y filtra el tráfico que llega a un sitio web, bloquea el tráfico malicioso y deja pasar el legítimo hasta el origen.
Mitigación de DDoS: los servicios de protección contra DDoS utilizan una red de servidores en múltiples ubicaciones para absorber y filtrar el tráfico de DDoS antes de que alcance al sitio o la red pretendidos.
Activar HTTPS: HTTPS es un protocolo HTTP seguro para la transmisión de datos por internet que ayuda a evitar que se intercepten datos del sitio o la aplicación.
Utilizar contraseñas únicas y potentes: el uso de contraseñas únicas y potentes para todas las cuentas vinculadas con las aplicaciones y el sitio web contribuye a prevenir los accesos no autorizados.
Mantener los programas y complementos actualizados: los programas y complementos sin actualizar pueden contener vulnerabilidades que serán presa fácil para los atacantes. Con unos programas y complementos del sitio actualizados, estará resuelta toda vulnerabilidad conocida.
Supervisar y registrar la actividad: al supervisar y registrar la actividad de tu sitio web, podrás identificar comportamientos sospechosos.
Buscar vulnerabilidades con cierta frecuencia: si vas repasando tu sitio web y aplicación para encontrar vulnerabilidades, podrás detectar y resolver problemas potenciales de seguridad antes de que los aprovechen los ciberdelincuentes.
Formar a los empleados: la formación sobre prácticas recomendadas de seguridad puede contribuir a evitar violaciones accidentales de la seguridad.
Implementar controles de seguridad: los controles de seguridad, como la validación de entradas, escape de salidas y el control de errores, reducen los vectores de ataque que aprovechan los atacantes.
Usar estándares de escritura de código seguros: redacta directrices para la creación y el diseño de aplicaciones y propiedades web, y revisa el código con regularidad para identificar y resolver vulnerabilidades antes de publicarlo.
Respuesta ante incidentes: traza un plan de respuesta ante incidentes para detectar y responder lo antes posible a violaciones de la seguridad.
Es crucial proteger las aplicaciones web para garantizar su seguridad y la de los datos confidenciales que alberguen, por lo que debe convertirse en una prioridad para todos y cada uno de los departamentos de cualquier organización. Manteniéndose al día y mostrando una actitud proactiva, los equipos pueden proteger los datos y aplicaciones web de atacantes potenciales y así evitar todo tipo de consecuencias que afecten a la infraestructura, la cultura en el seno de la empresa y la confianza de los usuarios. Es mejor prevenir que curar; es decir, es preferible tomar medidas preventivas que tener que arreglar los estragos que haya provocado una violación de la seguridad.