Seansi kaaperdamine ja teised seansiründed

shape
shape
shape
shape
shape
shape
shape
shape

Seansi identifikaatorid on pahatahtlikele häkkeritele maitsvaks saagiks. Kui ründaja saab enda valdusesse seansi ID-ga, avaneb talle volitamata juurdepääs veebirakendusele ja ta saab täies ulatuses teeselda kehtivat kasutajat. Kehtiva seansi ID saamiseks on üldiselt kolm peamist meetodit: 

  • Kehtiva seansi ID mõistatamine (seansiennustus, ingl k session prediction
  • Kehtiva seansi ID loomine ja kasutaja meelitamine seda kasutama (seansipete, ingl k session fixation
  • Kasutajalt kehtiva seansi ID saamine (seansi kaaperdamine, ingl k session hijacking

Märkus: Mõned allikad käsitlevad ennustamist ja petmist mitte eraldi ründetüüpidena, vaid seansikaaperdamise meetoditena. 

Enamus meetodeid keskendub seansiküpsistele, kuna neid kasutatakse seansi ID edastamiseks kõige sagedamini. Ent need meetodid ei piirdu küpsiste kaaperdamisega, kuna paljud käivad ka seanssi identifitseerivate sõnumielementide (ingl k token) kohta, mida saadetakse teistes HTTP-päringute osades, näiteks kohandatud päisepäringus või päringu kehas. 

Seansiennustus 

Seansi ID peaks olema unikaalne ja raskesti äraarvatav. Seepärast on seansi ID-d enamusel juhtudel lihtsalt pikalt, juhuslikult genereeritud numbrid. Kuid mitte kõik arendajad ei kasuta turvalisi, tunnustatud seansihaldusteeke. Mõned otsustavad ise seansi ID-d genereerida, kuid ei tee seda kuigi hästi. 

Seansiennustusrünneteks on üldiselt kõik ründed, mis püüavad (ükskõik millise kasutaja) kehtivat seansi ID-d mõistatada lähtuvalt sellest, kui palju ID-sid genereeritakse. Näiteks võib arendaja otsustada kasutada seansi identifikaatorina base64-ga kodeeritud Epochi aega. Sellest tulenevalt näeks kehtiv seansi ID välja järgmine MTU4MDMwMDE1OQ==. Kui ründaja selle algoritmi ära arvab, siis võib ta üritada kehtivad seansi identifikaatorit mõistatada teiste Epoch’ite ja nende bas64-s kodeerimise katsetamisega.  

Ka jõurünnet võib pidada teatud mõttes seansiennustuseks. Kui seansi võti on lühike ning veebiserver ei ole kaitstud hulgikatsete eest, siis võib ründaja ükshaaval katsetada kõiki erinevaid väärtusi, kuni jõuab selleni, mis töötab. 

Seansipete 

Seansipete toimub siis, kui ründaja genereerib kehtiva seansi ID, mida pole veel kasutatud, ja edastab selle seejärel kasutajale, kes kasutab seda siis autentimiseks. Ründaja peab kõigepealt välja uurima, millises formaadis seansi ID-d on kehtivad, ning kasutama seejärel suhtlusrünnet, näiteks õngitsemist või mõnda muud sarnast tehnikat, et panna kasutaja pettusega sisselogimislingile klõpsama ja sisestama oma andmed, seostades seansi ID sel moel kontoga.  

Kui soovite seansipette kohta rohkem teada saada, lugege meie artiklit „Mis on seansipete“

Seansi külgkaaperdus 

Mõistet seansi külgkaaperdus kasutatakse vahendusrünnete (ingl k man-in-the-middle attacks, MITM) puhul, mida korraldatakse seansi kaaperdamiseks. Ründaja kuulab veebiserveri ja kliendi vahelist suhtlust ning lõikab kehtivad seansi ID-d vahelt. 

Erinevatel MITM rünnetel kasutatakse paljusid seansi külgkaaperdamise tehnikaid. Kõige lihtsamal juhul, kui liiklus ei ole krüpteeritud, läheb vaja ainult lihtsat võrgunuuskurit, mis tegutseb kliendiga samas kohalikus võrgus, otsides võrguliiklusest kasutaja ühendusi ja analüüsides pakette. See on eriti levinud avalikes WiFi võrkudes.  

Kui veebileht või veebirakendus kasutab ainult krüpteeritud ühendusi, ei piisa lihtsalt seansi nuuskimisest, kuid proovida võib muid võtteid. Et nende kohta rohkem teada, vaadake meie artiklit „Kõik, mida te peate teadma vahendusrünnetest“.  

Skriptisüst (XSS) 

Üheks kõige tõhusamaks viisiks, kuidas ründaja võib seansi küpsise enda valdusse saada, on skriptisüstimise (ingl k Cross-site Scripting) kasutamine. Kui teie veebilehel või veebirakendusel esineb XSS-i haavatavusi, võib ründaja teie kasutajat petta. Sellisel juhul külastab ohver veebilehte, mis käivitab kliendi brauseris pahatahtliku JavaScript’i. Pahatahtlik kood saab juurdepääsu seansi küpsisele ning saadab selle siis ründaja poolt kontrollitud serverile. 

Kui soovite skriptisüstimise kohta rohkem teada saada, vaadake meie artikleid „Skriptisüstimine (XSS)” ja „Skriptisüstimise (XSS-i) tüübid“

Teised meetodid 

Ründajad võivad seansiinfo saamiseks kasutada ka muid meetodeid. Näiteks võivad nad proovida nakatata kasutajate arvutisüsteeme mõne pahavara nagu troojalasega. Selle näiteks võib tuua vaheründe brauseris, kus seansi identifikaatorid varastatakse otse kasutaja veebibrauserist. 

Kaitse seansikaaperdamise ja sarnaste rünnete eest 

Selleks, et oma seansi identifikaatoreid kaitsta, tuleks järgida järgmisi reegleid: 

  • Ärge mõelge, kuidas ise seansse luua. Kasutage levinud raamistikes saadaolevaid turvalisi tööriistu. 
  • Rakendage kõigil oma lehtedel HTTPS-i, mitte ainult sisselogimislehel. Kasutage näiteks HSTS-i ja määrake seansiküpsiste jaoks lipp “Turvaline”. 
  • Muutke peale kasutaja sisselogimist seansi ID-d. 
  • Logige mitteaktiivsed kasutajad teatud aja möödudes välja ning tunnistage seansi ID-d kehtetuks.  
  • Määrake seansi küpsistele lipp HttpOnly. 
  • Skaneerige regulaarselt oma veebisaiti või veebirakendust haavatavuse skanneriga, näiteks Acunetix’iga, et avastada potentsiaalset skriptisüstimist (ja palju muud). 

Allikas:- https://www.acunetix.com/blog/web-security-zone/session-hijacking/