Tema 3
Las aplicaciones web suelen fallar en patrones que se repiten. Conocer las amenazas más frecuentes y usar OWASP Top 10 como mapa permite identificar riesgos reales antes de que se conviertan en incidentes de seguridad.
Las aplicaciones web modernas comparten tecnologías, patrones de desarrollo y errores frecuentes. Eso hace que muchas vulnerabilidades se repitan entre sistemas distintos. Un sitio de comercio electrónico, una intranet administrativa, un portal educativo o una API móvil pueden diferir en funcionalidad, pero suelen exponerse a familias de riesgos muy parecidas.
Conocer estas amenazas no sirve solo para memorizar nombres técnicos. Sirve para aprender a hacer preguntas correctas: qué pasa si un usuario manipula una entrada, si intenta acceder a datos ajenos, si inyecta contenido en una respuesta, si automatiza miles de solicitudes o si el sistema confía en una configuración insegura.
OWASP Top 10 ayuda justamente a ordenar esa mirada. No reemplaza el análisis del sistema real, pero ofrece una referencia clara sobre categorías de riesgo que aparecen una y otra vez en aplicaciones web.
Una amenaza web es una posibilidad de abuso, explotación o afectación sobre una aplicación accesible mediante tecnologías web. La amenaza puede materializarse por una vulnerabilidad técnica, una mala decisión de diseño, una configuración débil, una exposición innecesaria o una combinación de varias fallas.
Desde el punto de vista práctico, una amenaza web importa porque puede comprometer alguno de estos objetivos:
Conviene separar algunos conceptos que a menudo se mezclan:
Por ejemplo, una consulta SQL construida con datos del usuario puede ser la vulnerabilidad. La amenaza es que un atacante inserte instrucciones maliciosas. La explotación ocurre cuando lo hace con éxito. El impacto puede ser lectura, modificación o borrado de datos.
OWASP, sigla de Open Worldwide Application Security Project, es una comunidad abierta dedicada a mejorar la seguridad del software. Produce guías, proyectos, materiales educativos y referencias ampliamente utilizadas por desarrolladores, auditores y equipos de seguridad.
Su valor no está solo en listar problemas. Su utilidad práctica consiste en ofrecer lenguaje común, priorización y enfoques de mitigación. En seguridad web, hablar de XSS, control de acceso roto o configuración insegura suele apoyarse en categorías difundidas por OWASP.
OWASP Top 10 es una lista de categorías de riesgos de seguridad relevantes en aplicaciones web. No es un ranking cerrado de técnicas ni una lista exhaustiva de todas las vulnerabilidades posibles. Es una guía de alto nivel para recordar qué tipos de fallas aparecen con frecuencia y merecen revisión prioritaria.
Su mayor utilidad es conceptual:
También tiene límites. Una aplicación puede no tener varias categorías del Top 10 y aun así sufrir una falla grave de lógica de negocio o una exposición muy específica de su contexto.
Las amenazas web más comunes se repiten por varias razones estructurales:
En otras palabras, el problema no es solo técnico. También es de diseño, de proceso y de disciplina de desarrollo.
Una de las categorías más críticas es el control de acceso roto. Ocurre cuando la aplicación no verifica correctamente qué recursos o funciones puede usar cada usuario.
Esto incluye situaciones como:
Su gravedad es alta porque muchas veces no requiere explotar una técnica sofisticada. Basta con probar recursos que la aplicación expone sin verificar correctamente la autorización.
Otra categoría importante aparece cuando la aplicación no protege adecuadamente datos sensibles. Esto puede ocurrir si transmite información sin HTTPS, si guarda contraseñas de forma insegura, si expone tokens en lugares incorrectos o si utiliza mecanismos criptográficos débiles o mal aplicados.
No se trata solo de "usar cifrado". Se trata de usarlo en el lugar correcto, con claves adecuadas, para el tipo de dato correcto y evitando errores de implementación.
| Error | Consecuencia técnica | Impacto posible |
|---|---|---|
| Contraseñas mal almacenadas | Recuperación o crackeo más simple | Toma de cuentas y reutilización de credenciales |
| Tráfico sin HTTPS | Exposición en tránsito | Robo de credenciales o sesión |
| Claves o secretos expuestos | Acceso a sistemas o integraciones | Escalada del incidente |
| Datos sensibles devueltos en exceso | Filtración por respuestas o logs | Impacto legal y reputacional |
Las fallas de inyección aparecen cuando datos controlados por el usuario se mezclan de forma insegura con comandos, consultas o expresiones que el sistema interpreta. El caso más conocido es SQL Injection, pero existen otras variantes: NoSQL Injection, inyección de comandos del sistema operativo, LDAP Injection, XPath Injection y más.
La idea central es siempre la misma: el sistema esperaba datos, pero termina ejecutando instrucciones alteradas por el atacante.
Sus efectos pueden ser graves:
No todos los problemas se deben a una línea de código mal escrita. A veces el riesgo nace en la arquitectura o en la lógica del sistema. El diseño inseguro aparece cuando los flujos, supuestos o mecanismos centrales de la aplicación ya son débiles desde su concepción.
Ejemplos típicos:
Este tipo de falla es importante porque puede sobrevivir incluso si el código está "bien programado".
Muchas aplicaciones no caen por una vulnerabilidad exótica sino por configuraciones débiles. Una configuración insegura puede aparecer en el servidor, en el framework, en el contenedor, en la base de datos, en las cabeceras HTTP o en funciones auxiliares expuestas sin necesidad.
Algunos ejemplos frecuentes son:
Las aplicaciones modernas dependen de frameworks, librerías, paquetes y servicios de terceros. Si alguno de esos componentes contiene vulnerabilidades conocidas y no se actualiza, la aplicación hereda el riesgo.
Esto es especialmente importante porque:
La autenticación es el proceso por el cual el sistema verifica la identidad de un usuario o servicio. Cuando este proceso es débil, todo lo demás pierde valor. Una mala autenticación puede incluir contraseñas triviales, recuperación de cuenta insegura, falta de MFA, sesiones mal protegidas o tokens fáciles de reutilizar.
El impacto puede ser directo: toma de cuenta, fraude, acceso administrativo o movimiento lateral hacia otros sistemas integrados.
Esta categoría apunta a escenarios donde el sistema confía en software, actualizaciones, dependencias o datos sin validar adecuadamente su origen o su integridad. Puede involucrar procesos de despliegue inseguros, paquetes manipulados, dependencias alteradas o flujos de actualización débiles.
Su relevancia creció porque hoy gran parte del desarrollo depende de automatización, repositorios de paquetes y cadenas de construcción complejas.
Una aplicación puede ser atacada y no detectarlo a tiempo si registra poco, registra mal o no observa los eventos relevantes. La ausencia de logging y monitoreo adecuados no crea por sí sola la vulnerabilidad inicial, pero agrava enormemente el impacto.
Si no hay visibilidad suficiente:
Además de las categorías más conocidas, existen amenazas web que merecen atención especial según el tipo de aplicación. Un ejemplo importante es SSRF, donde el atacante induce al servidor a realizar solicitudes a destinos que él elige. Esto puede exponer servicios internos, metadatos cloud o sistemas no accesibles desde internet.
También son frecuentes:
Aunque después los veremos en detalle, conviene ubicarlos desde ahora porque aparecen con frecuencia y suelen confundirse.
En ambos casos el navegador del usuario cumple un papel central, pero la naturaleza del abuso es distinta. XSS explota salida insegura y ejecución de scripts. CSRF explota confianza indebida en solicitudes originadas desde el navegador de un usuario ya autenticado.
Cuando analizamos una amenaza del estilo OWASP Top 10, conviene pensarla siempre con este esquema:
Este enfoque evita memorizar la categoría como un nombre y obliga a comprender el mecanismo real de explotación.
Imaginemos un portal donde los clientes inician sesión, consultan facturas, cambian datos personales y descargan documentos. En ese solo sistema podrían convivir varias amenazas:
Este ejemplo muestra que OWASP Top 10 no describe problemas aislados. Describe familias de riesgos que suelen combinarse en una misma aplicación.
Las principales amenazas web no son una colección de conceptos abstractos, sino patrones de fallo que aparecen repetidamente en sistemas reales. Conocerlos permite revisar mejor una aplicación, diseñar controles más sólidos y detectar antes las debilidades que suelen pasar desapercibidas.
En el próximo tema entraremos en una de las bases prácticas de casi toda defensa web: validación de entradas, sanitización y manejo seguro de datos.