# Fixació de sessió

En la seguretat de la xarxa informàtica, els atacs de fixació de sessions intenten explotar la vulnerabilitat d'un sistema que permet a una persona fixar (trobar o establir) l'identificador de sessió d'una altra persona. La majoria dels atacs de fixació de sessions es basen a la web i la majoria es basen en el fet que els identificadors de sessió s'accepten dels URL (cadena de consulta) o de les dades POST.

## Escenaris d'atac

L'Alice té un compte al banc {{format ref}} http://unsafe.example.com/
Mallory té la intenció d'apuntar els diners de l'Alice del seu banc.
L'Alice té un nivell raonable de confiança en Mallory i visitarà els enllaços que Mallory li envia.

### Un escenari d'atac senzill

Escenari senzill:
* Mallory ha determinat que {{format ref}} http://unsafe.example.com/ accepta qualsevol identificador de sessió, accepta identificadors de sessió de cadenes de consulta i no té validació de seguretat. Per tant, {{format ref}} http://unsafe.example.com/ no és segur.
* Mallory envia un correu electrònic a l'Alice: "Hola, comproveu-ho, hi ha una característica nova de resum del compte al nostre banc, {{format ref}} http://unsafe.example.com/?SID=I_WILL_KNOW_THE_SID ". Mallory està intentant fixar el SID a I_WILL_KNOW_THE_SID.
* L'Alice està interessada i visita {{format ref}} http://unsafe.example.com/? SID=I_WILL_KNOW_THE_SID. Apareix la pantalla d'inici de sessió habitual i l'Alice inicia sessió.
* Mallory visita {{format ref}} http://unsafe.example.com/? SID=I_WILL_KNOW_THE_SID i ara té accés il·limitat al compte de l'Alice.

### Atacar utilitzant el SID generat pel servidor

Una idea errònia és que si un servidor només accepta identificadors de sessió generats pel servidor, està fora de perill de la fixació. Això és fals.
Escenari:
* Mallory visita {{format ref}} http://vulnerable.example.com/ i comprova quin SID es retorna. Per exemple, el servidor pot respondre: Set-Cookie: SID=0D6441FEA4496C2.
* Mallory ara pot enviar a l'Alice un correu electrònic: "Fes una ullada a aquesta nova funció fantàstica al nostre banc, {{format ref}} http://vulnerable.example.com/?SID=0D6441FEA4496C2 ".
* L'Alice inicia sessió amb l'identificador de sessió fixat SID=0D6441FEA4496C2.
Mallory visita {{format ref}} http://vulnerable.example.com/? SID=0D6441FEA4496C2 i ara té accés il·limitat al compte de l'Alice.

### Atacs amb galeta entre subdominis

Aquest tipus d'atac és similar a un atac de galetes entre llocs, excepte que no es basa en la vulnerabilitat del navegador de l'usuari. Més aviat, es basa en el fet que les galetes comodís les pot establir un subdomini i que aquestes galetes poden afectar altres subdominis.
Escenari:
* Un lloc web www.example.com distribueix subdominis a tercers no fiables
* Un d'aquests partits, Mallory, que ara controla evil.example.com, atrau Alice al seu lloc
* Una visita a evil.example.com estableix una galeta de sessió amb el dominiexample.com al navegador d'Alice
* Quan l'Alice visiti www.example.com aquesta galeta s'enviarà amb la sol·licitud i l'Alice tindrà la sessió especificada per la galeta de Mallory.
* Si ara l'Alice inicia sessió, la Mallory pot utilitzar el seu compte.

## Contramesures
### No acceptar identificadors de sessió de variables GET/POST

No es recomanen els identificadors de sessió a l'URL (cadena de consulta, variables GET) o variables POST, ja que simplifiquen aquest atac – és fàcil fer enllaços o formularis que estableixin variables GET / POST.

### Acceptar només els SID generats pel servidor

Una manera de millorar la seguretat és no acceptar identificadors de sessió que no hagin estat generats pel servidor. Tanmateix, com s'ha indicat anteriorment, això no impedeix tots els atacs de fixació de sessions.

## Referències

* ↑ «Session fixation | OWASP Foundation» (en anglès). [Consulta: 21 novembre 2023].
* ↑ «Session Fixation Attack» (en anglès americà), 31-07-2022. [Consulta: 21 novembre 2023].
* ↑ Banach, Zbigniew. «Understanding session fixation attacks» (en anglès americà), 16-07-2021. [Consulta: 21 novembre 2023].
* ↑ «CWE - CWE-384: Session Fixation (4.13)» (en anglès). [Consulta: 21 novembre 2023].