Hi ha molts tipus diferents de vulnerabilitats de seguretat que es troben als llocs web, una d'interessant s'anomena "Fixació de sessions". La fixació de la sessió és un problema en què un atacant pot influir en l'identificador de sessió, també conegut com l'identificador de sessió d'un usuari i després utilitzar-lo per accedir al seu compte. Hi ha dues maneres en què aquest tipus de vulnerabilitat pot funcionar, pot permetre a l'atacant trobar o establir l'identificador de sessió d'un altre usuari.
Com es realitza un atac de fixació de sessió
L'identificador de sessió d'un usuari és sovint una part clau de l'autenticació al lloc web i, en molts casos, és l'única dada que identifica l'usuari específic que ha iniciat sessió. El problema és que si un atacant pot establir o aprendre l'identificador de sessió d'un altre. usuari, poden utilitzar el testimoni de sessió i després poder actuar com a usuari.
Normalment, això es fa enganyant un usuari perquè faci clic en un tipus d'enllaç de pesca. L'enllaç en si és completament legítim, però inclou una variable que estableix un identificador de sessió especificat. Si l'usuari inicia sessió amb l'identificador de sessió i el servidor no li assigna un nou identificador de sessió en iniciar la sessió, l'atacant simplement pot configurar el seu identificador de sessió perquè sigui el mateix i tingui accés al compte de la víctima.
Una altra manera en què l'atacant pot descobrir l'identificador de sessió de la víctima és si apareix en una URL. Per exemple, si l'atacant pot enganyar la víctima perquè li enviï un enllaç i inclou l'identificador de sessió de la víctima, l'atacant pot utilitzar l'identificador de sessió per accedir al compte de la víctima. En alguns casos, això pot passar completament per accident. Per exemple, si l'usuari copia l'URL amb l'identificador de sessió i l'enganxa a un amic o en un fòrum, qualsevol usuari que segueixi l'enllaç iniciarà la sessió amb el compte de l'usuari.
Reparacions de fixació de sessió
Hi ha algunes solucions a aquest problema i, com sempre, la millor solució és implementar tantes solucions com sigui possible com a part d'una estratègia de defensa en profunditat. La primera solució és canviar l'identificador de sessió de l'usuari quan iniciï sessió. Això evita que un atacant pugui influir en l'identificador de sessió d'un usuari connectat. També podeu configurar el servidor perquè només accepti els identificadors de sessió que hagi generat i rebutgi explícitament els identificadors de sessió proporcionats per l'usuari.
El lloc web s'ha de configurar per no col·locar mai cap detall sensible de l'usuari, com ara l'identificador de sessió a l'URL, i s'ha de col·locar en un paràmetre de sol·licitud GET o POST. Això evita que l'usuari comprometi accidentalment el seu propi identificador de sessió. Si utilitzeu tant un identificador de sessió com un testimoni d'autenticació independent, doblegueu la quantitat d'informació que l'atacant necessita per obtenir i eviteu que els atacants accedeixin a sessions amb identificadors de sessió coneguts.
És vital que tots els identificadors de sessió vàlids d'un usuari estiguin invalidats quan es fa clic al botó de tancament. És possible regenerar l'identificador de sessió a cada sol·licitud, si els identificadors de sessió anteriors estan invalidats, això també impedeix als atacants utilitzar l'identificador de sessió conegut. Aquest enfocament també redueix significativament la finestra d'amenaça si un usuari revela el seu propi identificador de sessió.
En habilitar múltiples d'aquests enfocaments, una estratègia de defensa en profunditat pot eliminar aquest problema com a risc de seguretat.