Seguridad para Aplicaciones Web
Natalia Betancur Ayala
Juan Fernando Moreno
Juan Guillermo Restrepo
CSRF
Falsificación de Petición a Sitios Cruzados
Cross-Site Request Forgery
¿En qué consiste?
Es un tipo de ataque que obliga a un usuario final a ejecutar acciones no deseadas en una aplicación web en la cual el usuario este autenticado.
Se aprovecha de la confianza que tiene la página web en el usuario:
La víctima debe visitar la web con el código malicioso y en el mismo momento debe estar validado en la aplicación web legitima.
El atacante debe acertar con todos los valores de la petición ya que no puede ver la salida de la misma
El atacante debe hacer que la victima ejecute el código malicioso en el momento que esté validado en la web objetivo
Por suerte hay limitaciones
El atacante debe encontrar la manera de envíar las peticiones a la web para obtener algún tipo de resultado
La aplicación web cuenta con las medidas necesarias para contrarrestar los ataques CSRF
1
2
3
4
Tokens
CAPTCHA
- Identificadores únicos
- Generados aleatoriamente
- Cifrados y largos
- Asociados a la sesión del usuario
- Comprobados por el servidor
No fueron diseñados para fastidiar a los usuarios sino para evitar que se ejecutarán scripts de forma automatica al momento de rellenar y enviar un formulario
3
¡Se cumple la limitación !
El atacante no puede conocer el valor correcto por lo que no puede mandar la petición
Utilizar un buen navegador
que prevenga este tipo de
ataques y que cuente con
plugins que reduzcan el riesgo.
# Σ * ∞
¡Se cumple la limitación !
Es una medida VISIBLE para el usuario final
2
1
Hay que prevenir
Veamos un ejemplo
{>:)}
- Consultar mi saldo
- Revisar mis movimientos
- Revisar mis tarjetas
- Solicitar reposición de tarjeta
- "Transfiera todo a esta cuenta..."
- "Enviar respaldo de datos a este email..."
- "Cambie el email por el siguiente:..."
Operaciones
My-Bank-o.com
"Tan seguros como Interbolsa"
Todo esto sin que el usuario final lo note hasta que ya es muy tarde...
Prácticos
Seamos un poco más
Revelación de Información y Gestión Incorrecta de Errores
Information Leakage and Improper Error Handling
¿En qué consiste?
Es revelar (involuntariamente) mediante mensajes de error información sensible como:
- Configuración
- Tiempo de ejecución de operaciones
- Funcionamiento interno
- Estado interno
- Sentencias SQL
- Códigos de error
- Implementación
- Datos personales
- Diferentes resultados a diferentes entradas
- ...
*Ejemplo ficticio
Garantizar que todo el equipo de desarrollo de software comparte un enfoque común a la gestión de errores
Deshabilitar o limitar la gestión de errores detallada. No mostrar información de depuración a los usuarios finales, trazas de la pila o información sobre rutas
Crear un gestor de errores predeterminado que devuelva un mensaje de error ‘esterilizado’ para la mayoría de usuarios en producción
Hay que prevenir
Controlar los errores de todos los niveles como la capa de la base de datos o el servidor web subyacente (IIS, Apache, etc)
1
2
4
3
Algunos ejemplos
Prácticos
Seamos un poco más
Gracias
Muchas
Referencias Bibliograficas
Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php?title=Cross-Site_Request_Forgery_(CSRF)&setlang=es
Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet
Falsificación de peticiones en sitios cruzados (Cross-Site Request Forgery (CSRF)) (Ataques Informáticos V)
http://cyberseguridad.net/index.php/453-falsificacion-de-peticiones-en-sitios-cruzados-cross-site-request-forgery-csrf-ataques-informaticos-v
Exploiting by Information Disclosure, Part 1
http://resources.infosecinstitute.com/exploiting-information-disclosure-part-1/
Understanding CSRF, the video tutorial edition
https://www.troyhunt.com/understanding-csrf-video-tutorial/
Seguridad para Aplicaciones Web
By Juangui Restrepo
Seguridad para Aplicaciones Web
- 289