Introducción
Las tecnologías web son una parte fundamental de nuestra vida digital. La gran mayoría de los servicios que utilizamos diariamente, desde la banca electrónica o la gestión de la salud digital, están implementados sobre las tecnologías web: páginas, aplicaciones y servidores web que utilizan principalmente HTML, CSS y JavaScript para funcionar.
En esta sección se introduce la importancia de la seguridad de las aplicaciones web y las vulnerabilidades características de estas tecnologías. Para ello se profundiza en una de las referencias más extendidas y consensuadas de categorización de vulnerabilidades web, el OWASP Top 10.
El OWASP Top Ten (Open Web Application Security Project Top Ten) es una lista de las diez vulnerabilidades de seguridad más críticas en aplicaciones web. Fue creada por el Proyecto OWASP, una comunidad de expertos en seguridad de aplicaciones web que se dedica a mejorar la seguridad del software.
ENLACE
El propósito principal del OWASP Top Ten es proporcionar una guía para que los desarrolladores, profesionales de seguridad y organizaciones comprendan las principales amenazas a las que se enfrentan las aplicaciones web y tomen medidas para mitigar esos riesgos.
La lista se actualiza periódicamente para reflejar las nuevas amenazas y tendencias en seguridad de aplicaciones web. La última versión publicada, a fecha de elaboración de este documento, es la OWASP Top 10 2021. Sin embargo, un conocimiento muy interesante es el que nos brinda la posibilidad de comparar la versión anterior, el OWASP Top 10 2017, con la versión actual, para conocer cuáles son las tendencias en los últimos años a nivel de amenazas web. En los siguientes subapartados se explica en qué consisten las vulnerabilidades de cada categoría, las cuales están identificadas por un código, de la forma “ A<ranking>:2021”.
Nota
La información utilizada para elaborar esta catalogación de las vulnerabilidades web proviene de diversas fuentes, como informes, análisis de incidentes, encuestas, etc. Estos datos son suministrados por expertos de seguridad y empresas especializadas en el sector, cuyo trabajo diario se basa en desarrollar y garantizar la seguridad de este tipo de aplicaciones.

Pérdida del control de acceso
La primera de las categorías del OWASP Top 10 2021 es “A01:2021-Broken Access Control”, o pérdida del control de acceso. Este tipo de vulnerabilidades se refieren a situaciones en las que un sistema permite el acceso no autorizado, de forma equivocada, a ciertas funcionalidades o datos.
Un ejemplo de esto es cuando un usuario sin privilegios puede acceder a información confidencial o realizar acciones que deberían estar restringidas, como modificar registros de otros usuarios o acceder a secciones administrativas sin autorización adecuada.
Cabe destacar la tendencia que estamos viviendo en los últimos años con este tipo de vulnerabilidades, que han subido del puesto número cinco al primero desde la versión del 2017 del ranking.
Fallos criptográficos
La segunda categoría del OWASP Top 10 2021 es “A02:2021- Cryptographic Failures”, en español, “fallos criptográficos”. Esta categoría se enfoca en las debilidades relacionadas con el uso inadecuado de algoritmos criptográficos, gestión de claves y almacenamiento seguro de datos. Estas utilidades se utilizan para garantizar la confidencialidad e integridad de los datos, tanto de los usuarios como de las aplicaciones.
Un ejemplo común de fallos criptográficos es el uso de algoritmos de cifrado débiles o vulnerables, como el uso de cifrado obsoleto o el almacenamiento inseguro de claves, lo que podría permitir a un atacante descifrar datos confidenciales.
En la versión anterior de esta guía, esta categoría era conocida como “Sensitive Data Exposure”, o exposición de datos sensibles, situada en la tercera posición del mismo. En la versión actual, ha subido un puesto hasta colocarse en la segunda de las vulnerabilidades más críticas.
Inyección
El tercer tipo de vulnerabilidades se agrupan en la categoría “A03:2021-Injection”, las vulnerabilidades de inyección. Esta categoría agrupa aquellas vulnerabilidades que consisten en la inserción no deseada de código malicioso en aplicaciones web, generalmente a través de campos de entrada no filtrados o mal validados.
En OWASP Top Ten 2017 esta vulnerabilidad ostentaba la primera posición, y aunque en los últimos años haya caído en el ranking con respecto a otras categorías, sigue siendo una de las vulnerabilidades más críticas de la seguridad web.
VÍDEO
Conceptos de Cross-Site Scripting (XSS) y SQL Injection (SQLi), destacando su relevancia dentro del contexto de la seguridad de las aplicaciones web. Se explican las consecuencias de este tipo de ataques y cómo protegerse ante ellos.
Diseño inseguro
La categoría “A04:2021-Insecure Design” o diseño inseguro agrupa los fallos de diseño que pueden comprometer la seguridad de una aplicación. Esto implica la falta de consideración de los principios de seguridad desde el inicio del proceso de desarrollo.
Un ejemplo sería la falta de autenticación adecuada en un sistema, donde no se implementan medidas sólidas para verificar y autorizar a los usuarios, lo que permite el acceso no autorizado a recursos o datos confidenciales.
Esta es una de las categorías novedosas, que no existían en la versión de 2017, del ranking OWASP Top 10.
Componentes vulnerables y desactualizados
Esta categoría, “A06:2021-Vulnerable and Outdated Components” o componentes vulnerables y desactualizados, destaca los riesgos asociados con el uso de componentes de software que contienen vulnerabilidades conocidas o desactualizadas.
Un ejemplo sería utilizar una biblioteca o plugin obsoletos en una aplicación web, que tiene vulnerabilidades conocidas y que podrían ser explotadas por un atacante para comprometer la seguridad de la aplicación.
Fallos de identificación y autenticación
La séptima categoría del ranking es “A07:2021-Identification and Authentication Failures”, que en español significa fallos de identificación y autenticación. Se refiere a debilidades en los mecanismos de identificación y autenticación de usuarios en una aplicación web. Esto puede incluir contraseñas débiles, falta de protección contra ataques de fuerza bruta o vulnerabilidades en el proceso de recuperación de contraseñas.
Un ejemplo es la falta de bloqueo de cuentas después de un número determinado de intentos fallidos de inicio de sesión, lo que facilita los ataques de fuerza bruta.
Fallos en el software y en la integridad de los datos
La octava categoría del OWASP Top 10 2021 es novedosa con respecto a la versión de 2017, y es “A08:2021-Software and Data Integrity Failures” o fallos en el software y en la integridad de los datos. Esta categoría se centra en los riesgos relacionados con la integridad y el comportamiento correcto del software, así como en la manipulación no autorizada de datos críticos.
Un ejemplo sería una aplicación que no realiza una validación adecuada de los datos de entrada, lo que podría permitir la introducción de datos maliciosos que podrían causar fallas en la aplicación o comprometer su integridad.
Fallos en los registros y monitorización de la seguridad
En la novena posición se encuentra “A09:2021-Security Logging and Monitoring Failures” o fallos en los registros y monitorización de la seguridad. Esta vulnerabilidad se refiere a la falta de un registro y monitoreo adecuados de eventos y actividades de una aplicación web. Esto puede dificultar la detección y respuesta ante incidentes de seguridad.
Un ejemplo sería la ausencia de un sistema de logs de eventos de seguridad, lo que dificulta la identificación de actividades sospechosas o ataques en curso.
Falsificación de solicitudes del lado del servidor
Por último, nos encontramos con una categoría muy específica, “A10:2021-Server-Side Request Forgery” o la falsificación de solicitudes del lado del servidor. Esta categoría se refiere a ataques en los que un atacante puede engañar al servidor para que realice acciones no deseadas en nombre del usuario legítimo.
Un ejemplo común es el ataque CSRF (Cross-Site Request Forgery), donde un atacante engaña al usuario para que realice acciones sin su consentimiento, como cambiar su contraseña o realizar transacciones no autorizadas.