Ce este Session Hijacking?

Publicat: 2023-04-27

Deturnarea sesiunii este un tip de atac cibernetic despre care proprietarii de site-uri WordPress trebuie să știe. Cunoscută și sub denumirea de deturnarea sesiunii TCP, deturnarea sesiunii îi face pe atacatori să arate ca utilizatori autentificați corespunzător. Atacatorul preia o sesiune de utilizator obținând ID-ul de sesiune fără știrea sau permisiunea validă a utilizatorului. După ce un atacator a furat ID-ul de sesiune al unui utilizator, acesta se poate masca drept utilizatorul vizat. Atacatorul va putea face tot ce poate face utilizatorul autorizat după ce utilizatorul autorizat se conectează la același sistem.

Unul dintre cele mai rele lucruri pe care le pot face hackerii cu o sesiune deturnată este să obțină acces la o aplicație web sau la controalele serverului fără autentificare. Când un atacator deturnează sesiunea unui utilizator, nu trebuie să se autentifice atâta timp cât sesiunea este activă. Aplicația care a generat sesiunea crede că este utilizatorul autentificat a cărui sesiune a deturnat-o.

Cu alte cuvinte, hackerul se va bucura de același acces ca și utilizatorul pe care l-a compromis. Deoarece utilizatorul legitim și-a autentificat deja sesiunea înainte de a avea loc atacul, o deturpare cu succes îi permite unui atacator să ocolească complet autentificarea.

În acest ghid, ne vom scufunda în detaliile deturnării sesiunii. Vă vom arăta exact ce trebuie să faceți pentru a preveni acest lucru pe site-ul dvs. WordPress.

Ce este exact o sesiune?

O sesiune este pur și simplu o serie de interacțiuni între punctele finale de comunicare care au loc într-o singură conexiune HTTP.

Protocolul de transfer hipertext (HTTP) este fundamental pentru web. Este ceea ce vă permite să utilizați link-uri hipertext și să încărcați pagini web. HTTP este, de asemenea, un protocol de nivel de aplicație pentru transmiterea de informații între dispozitivele dintr-o rețea.

O caracteristică cheie a HTTP este că este „apatrid”. Aceasta înseamnă că nu salvează date despre clienții (cum ar fi dvs. și browserul dvs.) care deschid o sesiune cu un site web. Fiecare sesiune este complet nouă. HTTP nu păstrează datele despre utilizatori din sesiunile lor anterioare.

Confruntarea cu apatridia

Aplicațiile web precum WordPress trebuie să urmărească starea dintre mai multe conexiuni de la aceiași utilizatori și diferiți. Trebuie să identifice sesiunea fiecărui utilizator, odată ce acesta s-a conectat - potențial pe mai multe dispozitive sau browser.

Când un utilizator se conectează la o aplicație precum WordPress, serverul creează o sesiune. Sesiunea va menține „starea” conexiunii pentru utilizator prin stocarea parametrilor care sunt unici pentru acesta. Sesiunile sunt menținute vii pe server pentru întreaga perioadă în care un utilizator este conectat la aplicație.

O sesiune se termină atunci când un utilizator se deconectează din sistem sau după o perioadă predefinită de lipsă de activitate. Când se termină o sesiune de utilizator, aplicația ar trebui să-și ștergă datele din memoria serverului.

Identificatori de sesiune

ID-urile de sesiune (sau „cheile” sau „jetonele”) sunt identificatorii unici de sesiune. De obicei, acestea sunt șiruri alfanumerice lungi, aleatorii, pe care serverul și clientul le transmit unul altuia. Aplicația de autentificare stochează în mod normal ID-urile de sesiune în adrese URL, cookie-uri sau câmpuri ascunse de pe paginile web.

În timp ce ID-urile de sesiune sunt utile pentru menținerea stării într-un sistem fără stat, ele vin și cu unele pericole potențiale de securitate. De exemplu, dacă înțelegem algoritmii care generează ID-uri de sesiune pentru o aplicație web, le putem genera noi înșine. În plus, dacă aplicația web nu utilizează criptarea SSL pentru a cripta HTTP ca HTTPS, va transmite ID-urile de sesiune în mod clar. Într-o rețea publică, oricine poate asculta conexiunile necriptate și poate fura ID-urile de sesiune.

Cum funcționează exact deturnarea sesiunii în practică?

Un atac de deturnare a sesiunii de succes este extrem de ascuns. De obicei, acestea se desfășoară în rețele foarte aglomerate, cu o mulțime de sesiuni de comunicare active.

Unele dintre cele mai comune forme de deturnare a sesiunii folosesc:

  • ID-uri de jeton de sesiune previzibile
  • Sesiune de adulmecare
  • Sesiune sidejacking
  • Malware de tip Man-in-the-browser
  • Scripturi între site-uri
  • Fixarea sesiunii

Să aruncăm o privire la fiecare dintre acești vectori de amenințare în mod individual.

ID-uri previzibile de token de sesiune

O mulțime de servere web folosesc algoritmi personalizați sau modele predefinite pentru a-și genera ID-urile de sesiune. Cu cât predictibilitatea generală a unui jeton de sesiune unic este mai mare, cu atât este mai slab.

Și cu atât este mai ușor pentru un hacker să prezică.

Sesiunea de adulmecare

Session Sniffing este una dintre cele mai simple și de bază metode pe care le folosesc hackerii pentru deturnarea sesiunii la nivel de aplicație.

Un atacator va folosi un sniffer de pachete, cum ar fi Wireshark, sau un proxy precum OWASP Zed pentru a capta traficul de rețea. Dacă acest trafic conține ID-uri de sesiune necriptate pentru conexiunile dintre clienți și un site web, ID-urile pot fi furate. Hackerii pot folosi ID-ul sau tokenul valid pentru a obține rapid acces neautorizat la site și la conturile utilizatorilor acestuia.

Sesiune Sidejacki ng

Un atacator poate folosi packet sniffing pentru a intercepta cookie-urile de sesiune pentru utilizatori în timp ce se conectează la un site. Dacă paginile de conectare nu sunt criptate sau este utilizată o criptare slabă, un criminal cibernetic poate deturna cu ușurință sesiunile utilizatorilor în acest fel.

Omul-în-browser

În acest atac, atacatorul trebuie să infecteze inițial computerul sau browserul victimei cu malware.

Acest malware poate modifica în mod invizibil informațiile despre tranzacțiile din browser și poate crea tranzacții fără ca utilizatorul să fie conștient. Solicitările browserului corupt sunt inițiate de dispozitivul fizic al victimei, așa că se presupune că sunt valide.

Cross-Site Scripting

Un criminal cibernetic poate exploata vulnerabilitățile aplicațiilor sau ale serverului pentru a injecta cod arbitrar în paginile web ale unui site. Acest lucru va determina browserele vizitatorilor să execute acel cod atunci când o pagină compromisă este încărcată.

Când numai HTTP nu este setat în modulele cookie de sesiune, este posibil să furați o cheie de sesiune prin codul injectat. Acest lucru le-ar oferi atacatorilor tot ce au nevoie pentru a deturna o sesiune de utilizator.

Fixarea sesiunii

Aceasta utilizează un ID de sesiune valid care nu a fost încă autentificat. Folosind fixarea sesiunii, un atacator va încerca să păcălească un utilizator să se autentifice cu acest ID special.

Odată ce are loc autentificarea, un atacator are acum acces deplin la computerul victimei.

Fixarea sesiunii explorează o mare limitare în modul în care aplicația web gestionează un ID de sesiune.

Ce iese un hacker din deturnarea sesiunii?

Când un hacker deturnează o sesiune, poate face orice a fost autorizat să facă un utilizator legitim în acea sesiune activă.

Cea mai eficientă - și dăunătoare - deturnarea sesiunii poate duce la:

  • Conturi bancare compromise
  • Cumpără online neautorizat articole online
  • Identificați furtul
  • Furtul de date din sistemele interne ale companiei

Nu e bun! O sesiune reușită de deturnare a sesiunii poate provoca multe daune.

Care sunt câteva exemple de deturnare a sesiunii?

În toamna lui 2012, doi cercetători de securitate pe nume Juliano Rizzo și Thai Duong au anunțat CRIME, un atac care profită de o scurgere de informații în cadrul raportului de compresie al solicitărilor TLS ca canal secundar. Acest lucru le-a permis să decripteze cererile făcute de client către server.

La rândul său, acest lucru le-a permis să apuce cookie-ul de conectare al unui utilizator și să deturneze sesiunea, uzurpându-le identitatea în destinații online de mare valoare, cum ar fi site-uri de comerț electronic și bănci.

Această demonstrație a arătat cum un hacker ar putea executa acest tip de atac pentru a recupera anteturile unei solicitări HTTP.

CRIME funcționează pentru a decripta cookie-urile HTTPS care sunt setate de site-uri web pentru a reține utilizatorii autentificați folosind forța brută. Codul de atac obligă browserul victimei să trimită solicitări HTTPS special concepute către un site web vizat și analizează variația lungimii acestora după ce au fost comprimate pentru a determina valoarea cookie-ului de sesiune al victimei. Acest lucru este posibil deoarece SSL/TLS folosește un algoritm de compresie numit DEFLATE, care elimină șirurile duplicate, așa cum am văzut mai sus.

Codul de atac nu poate citi cookie-ul de sesiune inclus în solicitări din cauza mecanismelor de securitate din browser. Cu toate acestea, poate controla calea fiecărei solicitări noi și poate insera diferite șiruri de caractere în ea în încercarea de a se potrivi cu valoarea cookie-ului.

Valorile cookie-urilor de sesiune pot fi foarte lungi. Sunt construite din litere mari și mici și cifre.

Drept urmare, codul de atac CRIME trebuie să inițieze un număr foarte mare de solicitări pentru a le decripta, ceea ce poate dura câteva minute.

Prevenirea deturnării sesiunii

Este important să rețineți că atacatorii pot fura și reutiliza ID-urile de sesiune (sau alte valori cookie care sunt sensibile) atunci când sunt transmise sau stocate în mod nesigur. În timp ce protecția 100% nu este o garanție, utilizarea criptării este o apărare majoră.

Când utilizatorii se autentifică, cookie-urile SSL și securizate trebuie să fie obligatorii. Și atunci când utilizatorii autentificați vizitează mai multe pagini securizate, aceștia trebuie să fie forțați să utilizeze HTTPS.

În plus, proprietarii de site-uri WordPress trebuie să folosească pluginul de securitate WordPress iThemes Security Pro pentru protecția împotriva deturnării sesiunii. Funcția Dispozitive de încredere încorporată în iThemes Security Pro va funcționa 24 de ore pe zi, șapte zile pe săptămână, pentru a vă proteja site-ul de acest atac periculos. Aflați cum să o configurați pentru utilizatorii site-ului dvs.

Înțelegerea și prevenirea deturnării sesiunii

Cu informațiile din acest ghid, știți tot ce aveți nevoie pentru a vă proteja site-ul WordPress de deturnarea sesiunii:

  1. Asigurați-vă că site-ul dvs. este complet criptat folosind SSL și va forța utilizatorii să rămână în HTTPS.
  2. Descărcați și instalați pluginul iThemes Security Pro.

Făcând acești pași simpli, vă veți proteja site-ul împotriva deturnării sesiunii.