Segrest de sessió

De la Viquipèdia, l'enciclopèdia lliure

En informàtica, el segrest de sessió, de vegades també conegut com a segrest de galetes, és l'explotació d'una sessió informàtica vàlida —de vegades també anomenada clau de sessió per obtenir accés no autoritzat a informació o serveis en un sistema informàtic. En particular, s'utilitza per referir-se al robatori d'una galeta màgica utilitzada per autenticar un usuari a un servidor remot. Té una rellevància particular per als desenvolupadors web, ja que les galetes HTTP [1] utilitzades per mantenir una sessió en molts llocs web poden ser robades fàcilment per un atacant mitjançant un ordinador intermedi o amb accés a les galetes desades a l'ordinador de la víctima (vegeu robatori de galetes HTTP). Després d'haver robat correctament les galetes de sessió adequades, un adversari pot utilitzar la tècnica Pass the Cookie per realitzar un segrest de sessió.[2] El segrest de galetes s'utilitza habitualment contra l'autenticació del client a Internet.[3] Els navegadors web moderns utilitzen mecanismes de protecció de galetes per protegir la web d'atacs.[3]

Un mètode popular és utilitzar paquets IP encaminats a la font. Això permet que un atacant del punt B de la xarxa participi en una conversa entre A i C animant els paquets IP a passar per la màquina de B.

Si l'enrutament de fonts està desactivat, l'atacant pot utilitzar el segrest "cec", mitjançant el qual endevina les respostes de les dues màquines. Així, l'atacant pot enviar una ordre, però mai pot veure la resposta. Tanmateix, una ordre habitual seria establir una contrasenya que permeti l'accés des d'altres llocs de la xarxa.

Un atacant també pot estar "en línia" entre A i C mitjançant un programa d'olor per veure la conversa. Això es coneix com un "atac home-in-the-middle".

Història d'HTTP[modifica]

Les versions del protocol HTTP 0.8 i 0.9 no tenien galetes i altres funcions necessàries per al segrest de sessions. La versió 0.9beta de Mosaic Netscape, publicada el 13 d'octubre de 1994, admetia galetes.

Les primeres versions d'HTTP 1.0 tenien algunes debilitats de seguretat relacionades amb el segrest de sessions, però eren difícils d'explotar a causa dels capricis de la majoria dels primers servidors i navegadors HTTP 1.0. Com que HTTP 1.0 ha estat designat com a alternativa per a HTTP 1.1 des de principis dels anys 2000, i com que els servidors HTTP 1.0 són essencialment servidors HTTP 1.1, el problema del segrest de sessions s'ha convertit en un risc de seguretat gairebé permanent.[4]

La introducció de supercookies i altres funcions amb l'HTTP 1.1 modernitzat ha permès que el problema del segrest es converteixi en un problema de seguretat constant. L'estandardització de la màquina d'estat del servidor web i del navegador ha contribuït a aquest problema de seguretat en curs.

Mètodes[modifica]

Hi ha quatre mètodes principals utilitzats per perpetrar un segrest de sessió. Aquests són:

  • Fixació de sessió, on l'atacant estableix l'identificador de sessió d'un usuari a un que conegui, per exemple, enviant a l'usuari un correu electrònic amb un enllaç que conté un identificador de sessió concret. L'atacant ara només ha d'esperar fins que l'usuari iniciï sessió.
  • Session side jacking, on l'atacant utilitza l'olor de paquets per llegir el trànsit de xarxa entre dues parts per robar la galeta de sessió. Molts llocs web utilitzen el xifratge SSL per a les pàgines d'inici de sessió per evitar que els atacants vegin la contrasenya, però no utilitzen el xifratge per a la resta del lloc un cop autenticat. Això permet als atacants que poden llegir el trànsit de la xarxa interceptar totes les dades que s'envien al servidor o a les pàgines web visualitzades pel client. Com que aquestes dades inclouen la galeta de sessió, els permet suplantar la identitat de la víctima, encara que la contrasenya no estigui compromesa. Els punts d'accés Wi-Fi no segurs són especialment vulnerables, ja que qualsevol persona que comparteixi la xarxa en general podrà llegir la major part del trànsit web entre altres nodes i el punt d'accés.
  • Cross-site scripting, on l'atacant enganya l'ordinador de l'usuari perquè executi codi que es considera fiable perquè sembla que pertany al servidor, permetent a l'atacant obtenir una còpia de la galeta o realitzar altres operacions.
  • El programari maliciós i els programes no desitjats poden utilitzar el segrest del navegador per robar els fitxers de galetes d'un navegador sense el coneixement de l'usuari i, a continuació, realitzar accions (com instal·lar aplicacions d'Android) sense que l'usuari ho sàpiga. Un atacant amb accés físic pot intentar robar la clau de sessió, per exemple, obtenint el fitxer o el contingut de la memòria de la part adequada de l'ordinador de l'usuari o del servidor.

Després d'haver adquirit correctament les galetes de sessió adequades, un adversari pot aprofitar la tècnica Pass the Cookie per realitzar un segrest de sessió.

Prevenció[modifica]

Els mètodes per prevenir el segrest de sessions inclouen:

  • Xifratge del tràfic de dades passat entre les parts mitjançant SSL/TLS; en particular, la clau de sessió (encara que idealment tot el trànsit per a tota la sessió ). Els bancs basats en la web i altres serveis de comerç electrònic confien àmpliament en aquesta tècnica, perquè evita completament els atacs d'estil sniffing. Tanmateix, encara podria ser possible realitzar algun altre tipus de segrest de sessió. En resposta, els científics de la Universitat Radboud de Nijmegen van proposar el 2013 una manera d'evitar el segrest de sessions correlacionant la sessió de l'aplicació amb les credencials SSL/TLS.
  • Ús d'un nombre aleatori llarg o una cadena com a clau de sessió. Això redueix el risc que un atacant pugui simplement endevinar una clau de sessió vàlida mitjançant atacs de prova i error o de força bruta.
  • S'està regenerant l'identificador de sessió després d'una sessió correcta. Això impedeix la fixació de la sessió perquè l'atacant no coneix l'identificador de sessió de l'usuari després d'haver iniciat sessió.
  • Alguns serveis fan comprovacions secundàries amb la identitat de l'usuari. Per exemple, un servidor web podria comprovar amb cada sol·licitud realitzada que l'adreça IP de l'usuari coincideix amb la darrera utilitzada durant aquesta sessió. Això no evita els atacs d'algú que comparteix la mateixa adreça IP, però, i podria ser frustrant per als usuaris l'adreça IP dels quals pot canviar durant una sessió de navegació.
  • Alternativament, alguns serveis canviaran el valor de la galeta amb totes i cadascuna de les sol·licituds. Això redueix dràsticament la finestra en què un atacant pot operar i fa que sigui fàcil identificar si s'ha produït un atac, però pot causar altres problemes tècnics (per exemple, dues sol·licituds legítimes i molt puntuals del mateix client poden conduir a una comprovació de testimonis). error al servidor).
  • És possible que els usuaris també vulguin tancar la sessió dels llocs web sempre que acabin d'utilitzar-los. Tanmateix, això no protegirà contra atacs com Firesheep.

Referències[modifica]

  1. «Warning of webmail wi-fi hijack» (en anglès). BBC News, August 3, 2007.
  2. wunderwuzzi23. «Pivot to the Clouds using Pass the Cookie» (en anglès). Pass The Cookie, 16 December 2018.
  3. 3,0 3,1 Bugliesi, Michele; Calzavara, Stefano; Focardi, Riccardo; Khan, Wilayat Journal of Computer Security, 23, 4, 16-09-2015, pàg. 509–537. DOI: 10.3233/jcs-150529. ISSN: 1875-8924.
  4. «Session Hijacking & HTTP Communication» (en anglès), 19-10-2020.