Tema 1
La seguridad web estudia cómo proteger aplicaciones, APIs, sesiones, usuarios, datos y lógica de negocio frente a ataques que buscan leer información sensible, modificar comportamientos, escalar privilegios o comprometer la disponibilidad de un sistema. Comprender este tema es la base para analizar correctamente cualquier vulnerabilidad moderna.
Las aplicaciones web forman parte del funcionamiento diario de empresas, organismos públicos, comercios, universidades y plataformas personales. Un sistema de ventas, una tienda online, una API móvil, un panel administrativo, un portal de clientes o una intranet son, en esencia, aplicaciones web o servicios web expuestos a usuarios internos o externos.
Esa exposición trae valor porque permite acceso remoto, automatización, integración y escalabilidad. Pero también introduce riesgo. Cada formulario, parámetro, cookie, archivo subido, encabezado HTTP, endpoint de API y flujo de autenticación puede transformarse en un punto de ataque si fue diseñado, implementado o configurado incorrectamente.
La seguridad web no consiste solamente en evitar que un atacante "hackee" una página. Su propósito real es preservar la confidencialidad de la información, la integridad de los procesos, la disponibilidad del servicio, la seguridad de las sesiones, la trazabilidad de las acciones y la confianza en el sistema.
En este primer tema construiremos el marco conceptual necesario para entender por qué existen vulnerabilidades web, cómo se originan, qué papel cumple OWASP Top 10 y por qué la seguridad debe pensarse desde el diseño y no solo como corrección posterior.
La seguridad web es la disciplina que se ocupa de proteger aplicaciones y servicios accesibles mediante tecnologías web frente a accesos no autorizados, manipulación de datos, abuso de funcionalidad, exposición de información y fallas de disponibilidad.
En términos prácticos, la seguridad web busca responder preguntas como estas:
Una visión superficial podría hacer pensar que la seguridad web protege únicamente páginas HTML. En realidad protege activos mucho más amplios y valiosos.
| Activo | Ejemplos | Riesgo si se compromete |
|---|---|---|
| Datos sensibles | Contraseñas, datos personales, tarjetas, historiales, documentos | Robo de información, fraude, sanciones legales, daño reputacional |
| Sesiones de usuario | Cookies, tokens, identificadores de sesión | Suplantación de identidad, secuestro de cuenta |
| Lógica de negocio | Precios, descuentos, transferencias, permisos, workflows | Abuso funcional, pérdidas económicas, escalamiento no previsto |
| Infraestructura de aplicación | Servidor web, base de datos, API, panel administrativo | Ejecución remota, toma de control, alteración del servicio |
| Disponibilidad | Sitio público, API de clientes, sistema interno | Interrupción operativa, caída del negocio, indisponibilidad crítica |
Por eso una vulnerabilidad web no debe medirse solo por "si rompe o no la página". Muchas veces el mayor impacto está en el acceso indebido a información, el abuso de procesos internos o la pérdida de confianza sobre el sistema.
No todo lo web tiene el mismo nivel de riesgo ni la misma complejidad. Distinguir conceptos ayuda a entender mejor la superficie de ataque.
Hoy es común que una misma solución combine frontend web, backend, API REST, autenticación con tokens, panel administrativo y servicios externos. Desde seguridad, eso significa múltiples capas de interacción y más puntos donde puede aparecer una debilidad.
Para comprender las vulnerabilidades hay que entender primero el flujo normal de una aplicación web. Aunque los detalles cambien según la tecnología, el patrón general es bastante estable.
Las vulnerabilidades suelen aparecer cuando alguno de esos pasos confía demasiado en la entrada, expone demasiada información, aplica controles inconsistentes o asume que el usuario actuará siempre de forma legítima.
Las aplicaciones web son atacadas con frecuencia por una razón simple: están expuestas, contienen datos y permiten ejecutar acciones valiosas. A diferencia de otros sistemas internos, una aplicación pública puede ser observada, probada y atacada desde cualquier lugar con una conexión a internet.
Además, ofrecen una combinación especialmente atractiva para un atacante:
Desde el punto de vista del atacante, una sola debilidad puede abrir el camino a robo de cuentas, acceso a datos, movimientos laterales, fraude o ejecución de código.
Los principios clásicos de seguridad siguen siendo válidos en aplicaciones web, pero se manifiestan de forma concreta en funcionalidades y flujos.
Cuando una aplicación falla en uno de estos objetivos, la consecuencia no siempre es visible de inmediato. Un sistema puede seguir "funcionando" mientras expone datos o permite acciones indebidas en silencio.
Una vulnerabilidad web es una debilidad en el diseño, implementación, configuración o operación de una aplicación que puede ser aprovechada para generar un comportamiento no previsto o inseguro.
No todas las vulnerabilidades se parecen entre sí. Algunas permiten leer información, otras modificar datos, otras evadir controles y otras ejecutar código o tomar control del servidor. También existen fallas que no dependen de una "inyección" clásica, sino de errores de lógica o autorizaciones mal planteadas.
Es importante distinguir entre varios conceptos:
Las vulnerabilidades rara vez aparecen por una única causa. En general surgen por decisiones acumuladas o por supuestos equivocados sobre cómo será usado el sistema.
Entre los orígenes más comunes se encuentran:
La superficie de ataque es el conjunto de puntos por los que un usuario o sistema interactúa con la aplicación y, por lo tanto, el conjunto de lugares donde puede intentarse un abuso.
En una aplicación web moderna, esa superficie incluye:
Mientras más extensa y menos controlada sea esa superficie, mayores oportunidades habrá para errores y explotación.
Incluso antes de estudiar cada categoría de OWASP conviene reconocer algunos patrones de ataque comunes.
No todos estos ataques dependen de "romper" el sistema. Muchos explotan comportamientos válidos pero mal restringidos.
Las aplicaciones web tienen una particularidad central: parte del procesamiento ocurre del lado del cliente y parte del lado del servidor. Desde seguridad, eso obliga a entender muy bien qué decisiones pueden confiarse al navegador y cuáles no.
Regla general: el cliente nunca debe ser considerado confiable. El navegador, la aplicación móvil o cualquier consumidor de API puede ser manipulado, automatizado o reemplazado por herramientas como proxies, scripts y clientes personalizados.
Por eso los controles críticos deben aplicarse en el servidor:
Las validaciones del lado cliente mejoran experiencia de uso, pero no reemplazan controles reales de seguridad.
OWASP significa Open Worldwide Application Security Project. Es una comunidad abierta enfocada en mejorar la seguridad del software. Produce documentación, guías, herramientas, proyectos de referencia y materiales educativos ampliamente utilizados en la industria.
OWASP no es un fabricante ni un organismo regulador. Su valor reside en reunir conocimiento práctico y consensuado sobre riesgos, metodologías y buenas prácticas de desarrollo seguro.
Entre sus recursos más conocidos se encuentran:
OWASP Top 10 es una lista de las categorías de riesgos de seguridad más relevantes en aplicaciones web. No es un ranking exhaustivo de todas las vulnerabilidades existentes, sino una selección de áreas críticas que aparecen con frecuencia y generan impactos importantes.
Su objetivo principal es pedagógico y de concientización. Ayuda a desarrolladores, líderes técnicos, testers, auditores y responsables de negocio a entender qué tipos de fallas deben observarse con especial atención.
La edición actualmente más utilizada como referencia formativa es la de 2021, cuyas categorías son:
OWASP Top 10 se volvió un estándar de hecho porque traduce un problema complejo en una lista entendible, útil para capacitación, revisión de proyectos y conversaciones entre áreas técnicas y no técnicas.
Su importancia práctica se ve en varios niveles:
Sin embargo, debe utilizarse con criterio. Una aplicación puede estar libre de fallas obvias del Top 10 y aun así sufrir problemas graves de negocio, privacidad, fraude o seguridad específica del dominio.
Antes de estudiarlas una por una en el curso, conviene tener una visión global de lo que representa cada categoría.
| Categoría | Idea central | Ejemplo de impacto |
|---|---|---|
| A01 Broken Access Control | Usuarios acceden a recursos o acciones que no deberían | Ver o modificar datos de otra cuenta |
| A02 Cryptographic Failures | Protección insuficiente de datos sensibles | Exposición de contraseñas o datos personales |
| A03 Injection | Entradas maliciosas alteran consultas o comandos | Lectura o borrado de datos, ejecución de comandos |
| A04 Insecure Design | El problema está en el diseño mismo del sistema | Flujos abusables aunque el código no tenga errores triviales |
| A05 Security Misconfiguration | Configuraciones débiles o expuestas | Paneles abiertos, errores detallados, permisos excesivos |
| A06 Vulnerable and Outdated Components | Uso de componentes inseguros o sin mantenimiento | Compromiso por fallas conocidas |
| A07 Identification and Authentication Failures | Fallas al verificar identidad y proteger sesiones | Toma de cuentas o bypass de login |
| A08 Software and Data Integrity Failures | Procesos o actualizaciones no confiables | Deserialización insegura o cadena de suministro comprometida |
| A09 Logging and Monitoring Failures | Falta visibilidad para detectar y responder | Incidentes extensos que pasan inadvertidos |
| A10 SSRF | El servidor realiza solicitudes no previstas | Acceso a servicios internos o metadatos sensibles |
Un error frecuente en equipos principiantes es creer que aprender el Top 10 equivale a conocer toda la seguridad web. No es así. El Top 10 es un marco introductorio excelente, pero no agota el problema.
Hay áreas que requieren atención adicional, por ejemplo:
Por eso el curso combinará OWASP Top 10 con otras vulnerabilidades web y con criterios más amplios de diseño y defensa.
En seguridad web no todo se reduce a errores técnicos clásicos. Una aplicación puede estar libre de SQL Injection y aun así permitir fraudes o abusos severos si su lógica de negocio fue mal diseñada.
Ejemplos de fallas de negocio:
Esto es clave porque introduce una idea central: la seguridad no es solo sanitizar entradas, sino entender cómo puede ser abusado el sistema en su propósito real.
Corregir vulnerabilidades una vez que la aplicación ya fue implementada suele ser más costoso y menos eficaz que pensar la seguridad desde el inicio. El diseño seguro busca anticipar abuso, dependencias críticas, flujos peligrosos y decisiones arquitectónicas que podrían volverse inseguras.
Diseñar con enfoque de seguridad implica:
Esto no elimina todos los errores, pero reduce la probabilidad de fallas estructurales difíciles de corregir más adelante.
Una aplicación no se vuelve segura por una única revisión final. La seguridad debe estar presente durante todo el ciclo de vida del software.
| Etapa | Preguntas de seguridad relevantes |
|---|---|
| Requisitos | ¿Qué datos son sensibles? ¿Qué nivel de protección exige el negocio? |
| Diseño | ¿Cómo se autentica? ¿Cómo se autorizan acciones? ¿Qué puede salir mal? |
| Desarrollo | ¿Se validan entradas? ¿Se usan componentes seguros? ¿Hay secretos expuestos? |
| Pruebas | ¿Se verifican casos de abuso además de casos funcionales? |
| Despliegue | ¿La configuración es segura? ¿Hay hardening y mínimos privilegios? |
| Operación | ¿Se monitorea? ¿Se corrigen dependencias? ¿Se analizan incidentes? |
Algunos ejemplos simples ayudan a conectar teoría con situaciones reales:
Estos ejemplos muestran que muchas vulnerabilidades nacen de decisiones cotidianas de desarrollo y operación, no necesariamente de escenarios excepcionales.
El objetivo del curso no es solo memorizar nombres de vulnerabilidades, sino desarrollar criterio técnico. A lo largo de los temas aprenderás a:
La seguridad web es una disciplina esencial porque las aplicaciones modernas concentran datos, procesos y decisiones críticas del negocio. Cuando una aplicación se diseña o implementa sin criterios de seguridad, no solo se expone a ataques técnicos, sino también a fraude, abuso funcional, pérdida de confianza y daños operativos.
OWASP Top 10 ofrece un marco muy valioso para empezar a estudiar este campo porque organiza los riesgos más relevantes en categorías comprensibles y prácticas. A partir de esta base, en los próximos temas analizaremos cómo funciona una aplicación web por dentro y luego profundizaremos en cada una de las principales vulnerabilidades.