Está en la página 1de 35

Máster en Ingeniería

del Software y
Sistemas Informáticos
Ciberseguridad Web
Tema 7
Gestión de
sesiones y
autorización en
aplicaciones web
ÍNDICE

1.Concepto de sesión
2.Implementación y propiedades de la sesión
3. Ataques a la sesión
4. Recomenciones seguridad de la sesión
5. Autorización: concepto
6. Implementación de la autorización
7. Ataques a la autorización
8. Recomendaciones
Gestión de la sesión

Sesión: Concepto
✓ Una sesión Web (o HTTP) es una secuencia de peticiones y respuestas (o transacciones) asociadas al
mismo usuario
✓ Las aplicaciones Web modernas y complejas deben mantener información (o el estado) de cada
usuario durante múltiples peticiones
✓ Las sesiones proporcionan la capacidad de establecer variables, como permisos o información de
cualquier tipo manejada por la aplicación, que se pueden utilizar en cada una de las interacciones del
usuario con la aplicación Web hasta que finalice su sesión

4
Gestión de la sesión

Sesión: Concepto

5
Gestión de la sesión

Sesión: Implementación

6
Gestión de la sesión

Sesión: Formas de envío


✓ Cookie (cabecera HTTP estándar):
Cookie: id=012345; …
✓ Parámetro URL: (URL rewriting)
https://portal.example.com/private;id=012345?...
✓ Argumento URL (petición GET):
https://portal.example.com/private?id=012345& …
✓ Argumento cuerpo (petición POST):
<INPUT TYPE=“SUBMIT” NAME=“id” VALUE=“012345”>
✓ Campo oculto de formulario (HTML):
<INPUT TYPE=“HIDDEN” NAME=“id” VALUE=“012345”>

7
Gestión de la sesión

Sesión: Procedencia de peticiones y CSRF

8
Gestión de la sesión

Sesión: Propiedades

✓ Debe contener al menos 128 bits de datos aleatorios

✓ tiempo máximo de inactividad y absoluto

✓ Debe haber un modo de terminar la sesión. (logoff)

✓ Siempre se debe comenzar una nueva sesión después de la autenticación.

✓ Implementarlo aprovechando librerías del propio framework de desarrollo

9
Gestión de la sesión

Sesión: Propiedades
✓ Debe contener al menos 128 bits de datos aleatoriosPara obtener 128 bits pseudoaleatorios, el
identificador debe contener al menos 22 caracteres (128/log2(62) = 21,5). Los 3 primeros caracteres
no se generan aleatoriamente, por lo que los identificadores de sesión tienen una longitud de 25
caracteres.
.

10
Gestión de la sesión

Sesión: Propiedades de la cabecera SET-COOKIE

11
Gestión de la sesión

Sesión: Ataques

✓ Revelación y captura de la sesión


✓ Predicción y fuerza bruta de la sesión
✓ Secuestro de sesión (sidejacking)
✓ Fijación de sesión
✓ XSS
✓ SQLI
✓ CSRF

12
Gestión de la sesión

Sesión: Ataques

✓ Revelación
✓ Ingeniería social, enlaces web, logs, buscadores, url:jsessionid...
✓ Captura:
✓ MITM
✓ CVE navegador
✓ XSS:

13
Gestión de la sesión

Sesión: Ataques

✓ SIDEJACKING
✓ (Firefox add-on) http://codebutler.com/firesheep
✓ CookieMonster http://fscked.org/projects/cookiemonster
✓ Hamster (y Ferret) http://hamster.erratasec.com
✓ The Middler http://inguardians.com/tools/middler-1.0.tgz
✓ Surfjack https://code.google.com/p/surfjack/

14
Gestión de la sesión

Sesión: Ataques

✓ Manipulación
✓ Cambiar URL en el navegador
✓ Auto URL-rewriting (parámetro GET)
✓ Cambiar, guardar y recarga de formulario
✓ Modificación fichero de cookies persistente
✓ Capacidades de edición de memoria en el navegador (extensiones)

15
Gestión de la sesión

Sesión: Ataques
✓ Fijación de sesión

16
Gestión de la sesión

Sesión: Recomendaciones

✓ Usar sesion timeouts absolutos.


✓ Usar session timeouts de inactividad.
✓ Limitar la concurrencia de la sesión.
✓ Usar secure cookies.
✓ Usar el parámetro samesite.
✓ Usar httponly cookies.

17
Gestión de la sesión

Sesión: Recomendaciones

✓ Regenerar los identificadores de sesión en cada autenticación.


✓ Eliminar identificadores de sesión no válidos del cliente y del servidor.
✓ Usar cookies cifradas.
✓ Usar protocolos criptográficos de generación de números aleatorios para los identificadores de
sesión.
✓ Integridad: usar HASH

18
Autorización

Objetivos del servicio de autorización

✓ Asegurarse que los usuarios solo pueden realizar acciones dentro de su nivel de privilegios.
✓ Controlar el acceso a los recursos protegidos usando un criterio basado en los roles y
privilegios asociados a los usuarios.
✓ Mitigar los ataques de escalada de privilegios que posibiliten acceder a usuarios a tareas de
administración o recursos no permitidos.

19
Autorización

Tipos de usuarios a autorizar el acceso a recursos

✓ Persona que accede a la aplicación.


✓ Aplicación web que accede a un servicio web.
✓ Aplicación web que accede al SGBD.
✓ Aplicación, Servicio web, SGBD que accede al S.O.

20
Autorización

Tipos de recursos de una aplicación web

✓ Funcionalidad de la aplicación.
✓ Objetos en SGBD.
✓ Ficheros.
✓ Subredes.

21
Autorización

Proceso de autorización: vista horizontal

22
Autorización

Proceso de autorización: vista vertical

23
Autorización

Autorización: Navegador

24
Autorización

Autorización: Servidor de aplicaciones

✓ Filtrado de las peticiones entrantes en función de la subred de procedencia (firewall).


whitelisting (mejor) o blacklisting.
✓ Autorización a URL,s (ficheros de configuración especificando que usuarios o grupos pueden
acceder a que URL,s).
✓ Uso de librerías externas de autorización.
✓ OAuth2
✓ BBAuth

25
Autorización

Autorización: Implementación

✓ Cadenas de consulta dinámicas en la aplicación


✓ Procedimientos almacenados
✓ Librerías framework

26
Autorización

Autorización: Procedimientos almacenados

27
Autorización

Autorización: Frameworks (JACC)

28
Autorización

Autorización: Administración

✓ Mandatory Access Control (MAC): el administrador del sistema tiene el control total sobre la
asignación de permisos a los recursos.
✓ Discretionary Access Control (DAC): los administradores delegan la administración de los
propietarios de los objetos que pueden asignar permisos en sus propios recursos
✓ ¿Cómo?
✓ Role-Based Access Control (RBAC).
✓ Perfiles

29
Autorización

Autorización: Ataques

✓ Secuestro de sesiones (credenciales) mediante sniffing, interceptación, sesion fixation


repetición, suplantación
✓ Alteración de parámetros (parameter tampering, cooking poisoning, hidden-not hiden
parameters-URL parameters). Se previenen realizando validación de las entradas de los
campos de los formularios en el código de la aplicación web.
✓ Cross Site Scripting (XSS): robo de id. de sesión e historial
✓ Manipulación de cabeceras HTML: http response splitting, que dan lugar a inyección de
código HTML y a su vez en ataques XSS: secuestro de ID de sesión.
✓ Cross Site Request Forgery (CSRF).
✓ TOCTOU time to check - time to use.

30
Autorización

Autorización: Defensas

✓ Diseño: si la aplicación falla: ir a un estado seguro: invalidar sesión: página inicial.


✓ Operar con principio de mínimos privilegios.
✓ Separación de tareas (administradores, usuarios regulares).
✓ Definición de políticas de gestión de contraseñas de usuarios robustas, expiración,
concienciación, etc.
✓ Autorización en cada petición.
✓ Centralización del mecanismo de autorización.
✓ Minimizar el desarrollo propio del mecanismo de autorización.
✓ Protección de los recursos estáticos: sistemas de ficheros.
✓ Evitar ID sesión inseguros, realizando una gestión robusta de ID,s de sesión como paso
previo a autorizar.
31
Resumen

05
Autorización: Concepto

01
Sesión: concepto

06
Autorización:

02
Sesión: Propiedades
.Implementación
Longitud, aleatoriedad, no persistentes.

03 07
Sesión: Ataques Autorización: ataques
Sniffing, Fixation… TOCTOU, LFI.

04 08
Sesión: defensas Autorización: defensas
Cookies seguras Sesiones seguras, permisos

32
Juan Ramón
Bermejo
NUESTRAS
DIRECCIONES
Rectorado Sede Madrid

Avda. de la Paz 137 Calle de Almansa 101


26006 Logroño, La Rioja 28040 Madrid
T. 941 21 02 11 T. 915 67 43 91

unir.net

También podría gustarte