ScholarGate
Asistente

Seguridad de Aplicaciones Web

La seguridad de las aplicaciones web aborda las vulnerabilidades específicas del software web —inyección, scripting entre sitios, autenticación rota y fallas de control de acceso— que se encuentran entre las más comunes y de mayor impacto en los sistemas modernos.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La seguridad de las aplicaciones web es la práctica de proteger el software basado en la web y a sus usuarios de ataques que explotan el manejo de entradas, sesiones, autenticación y control de acceso de la aplicación, así como las debilidades en el modelo de seguridad del navegador.

Scope

Este tema cubre el modelo de amenaza de las aplicaciones web (cliente no confiable, red hostil, servidores multiusuario) y sus clases de vulnerabilidad características: inyección (SQL y comandos), scripting entre sitios, falsificación de solicitudes entre sitios, control de acceso y autenticación rotos, y deserialización insegura. Cubre el modelo de seguridad del navegador (política del mismo origen, política de seguridad de contenido) y las defensas estándar. Excluye la explotación de memoria de bajo nivel y el proceso general de desarrollo seguro, tratados en temas relacionados.

Core questions

  • ¿Por qué la mezcla de entradas no confiables con código o consultas crea vulnerabilidades de inyección?
  • ¿Cómo atacan el scripting entre sitios y la falsificación de solicitudes entre sitios a los usuarios de un sitio?
  • ¿Cómo restringe la política del mismo origen del navegador lo que puede hacer el código web?
  • ¿Cómo se rompen comúnmente la autenticación, las sesiones y el control de acceso en las aplicaciones web?
  • ¿Qué defensas estándar previenen las vulnerabilidades web más prevalentes?

Key concepts

  • Inyección SQL y de comandos
  • scripting entre sitios (XSS)
  • falsificación de solicitudes entre sitios (CSRF)
  • control de acceso roto
  • autenticación y gestión de sesiones rotas
  • política del mismo origen
  • política de seguridad de contenido
  • consultas parametrizadas
  • OWASP Top Ten

Key theories

Inyección y la confusión código/datos
Las fallas de inyección (inyección SQL, inyección de comandos) surgen cuando la entrada no confiable se interpreta como código; la defensa es mantener los datos y el código separados, principalmente a través de consultas parametrizadas y una codificación de salida estricta.
Modelo de seguridad del navegador y ataques del lado del cliente
La política del mismo origen aísla el contenido de diferentes orígenes, pero el scripting entre sitios inyecta scripts de atacantes en una página confiable y la falsificación de solicitudes entre sitios abusa de la sesión autenticada de un usuario; las defensas incluyen la codificación de salida, la política de seguridad de contenido y los tokens anti-CSRF.

Mechanisms

La inyección SQL ocurre cuando la entrada del usuario se concatena en una consulta, permitiendo que un atacante altere su lógica; las consultas parametrizadas solucionan esto al vincular la entrada como datos. El scripting entre sitios inyecta scripts en una página que luego los navegadores de otros usuarios ejecutan, lo que se mitiga mediante la codificación de salida consciente del contexto y la política de seguridad de contenido. La falsificación de solicitudes entre sitios engaña a un navegador autenticado para que realice solicitudes no deseadas, lo que se defiende con tokens anti-CSRF y cookies SameSite. Las fallas de control de acceso surgen cuando el servidor no verifica la autorización en cada solicitud.

Clinical relevance

Las vulnerabilidades de las aplicaciones web causan muchas de las mayores filtraciones de datos: la inyección SQL y el control de acceso roto han expuesto miles de millones de registros, y el scripting entre sitios compromete rutinariamente las cuentas de los usuarios. Debido a que casi todos los servicios tienen una interfaz web, la seguridad web afecta directamente el comercio electrónico, la banca, los portales de atención médica y los sistemas gubernamentales, y es un pilar para las pruebas de penetración, los programas de recompensas por errores y los regímenes de cumplimiento como PCI-DSS.

Evidence & guidelines

El OWASP Top Ten es la referencia de facto para los riesgos web prevalentes, complementado por el OWASP Application Security Verification Standard (ASVS) y las hojas de trucos. Las defensas aplicadas por el navegador (Política de Seguridad de Contenido, cookies SameSite, Integridad de Subrecursos) están estandarizadas por el W3C y WHATWG. Los marcos de cumplimiento como PCI-DSS exigen controles de seguridad web para los sistemas que manejan datos de pago.

History

La seguridad de las aplicaciones web creció con la web dinámica de finales de los años 90 y 2000, a medida que las bases de datos y la entrada de usuarios crearon fallas de inyección y scripting. El OWASP Top Ten (publicado por primera vez en 2003) estandarizó la conciencia sobre los riesgos más críticos. Las defensas del lado del navegador evolucionaron a través de la política del mismo origen y, posteriormente, la Política de Seguridad de Contenido, mientras que las filtraciones históricas demostraron repetidamente el costo real de la inyección SQL y el control de acceso roto.

Key figures

  • Dafydd Stuttard
  • Ross Anderson
  • Jeremiah Grossman
  • Michal Zalewski

Related topics

Seminal works

  • stuttard2011
  • owasp2021
  • anderson2020

Frequently asked questions

¿Cuál es la defensa más efectiva contra la inyección SQL?
El uso de consultas parametrizadas (sentencias preparadas), que envían la estructura SQL y los valores proporcionados por el usuario por separado para que la entrada nunca pueda interpretarse como parte de la consulta. Esto mantiene el código y los datos distintos y neutraliza la clase de ataque.
¿En qué se diferencia el scripting entre sitios de la inyección SQL?
Ambos provienen de entradas no confiables, pero la inyección SQL se dirige a la base de datos del servidor, mientras que el scripting entre sitios inyecta scripts maliciosos que se ejecutan en los navegadores de otros usuarios dentro del sitio confiable. La inyección SQL roba o altera datos del servidor; el XSS secuestra sesiones y acciones de los usuarios.

Methods for this concept

Related concepts