Verkkosivustoilta löytyy monenlaisia tietoturva-aukkoja, joista yksi mielenkiintoinen on nimeltään "Session Fixation". Istuntokorjaus on ongelma, jossa hyökkääjä voi vaikuttaa istunnon tunnisteeseen eli käyttäjän istuntotunnukseen ja käyttää sitä päästäkseen tililleen. Tämäntyyppinen haavoittuvuus voi toimia kahdella tavalla: sen avulla hyökkääjä voi joko löytää tai asettaa toisen käyttäjän istuntotunnuksen.
Kuinka istunnon kiinnityshyökkäys suoritetaan
Käyttäjän istuntotunnus on usein keskeinen osa verkkosivuston todentamista, ja se on usein ainoa tieto, joka tunnistaa tietyn sisäänkirjautuneen käyttäjän. Ongelma tässä on se, että jos hyökkääjä voi asettaa tai oppia toisen käyttäjän istuntotunnuksen, hän voi käyttää istuntotunnusta ja sitten toimia käyttäjänä.
Yleensä tämä tehdään huijaamalla käyttäjä napsauttamaan tietojenkalastelulinkkiä. Itse linkki on täysin laillinen, mutta sisältää muuttujan, joka asettaa tietyn istuntotunnuksen. Jos käyttäjä kirjautuu sisään istuntotunnuksella eikä palvelin määritä hänelle uutta istuntotunnusta kirjautumalla sisään, hyökkääjä voi yksinkertaisesti asettaa istuntotunnuksensa samaksi ja saada pääsyn uhrin tunnukseen tili.
Toinen tapa, jolla hyökkääjä voi löytää uhrin istuntotunnuksen, on, jos se näkyy URL-osoitteessa. Jos hyökkääjä voi esimerkiksi huijata uhrin lähettämään hänelle linkin ja se sisältää uhrin istuntotunnuksen, hyökkääjä voi käyttää istuntotunnusta päästäkseen uhrin tilille. Joissakin tapauksissa tämä voi tapahtua täysin vahingossa. Jos käyttäjä esimerkiksi kopioi URL-osoitteen istuntotunnuksella ja liittää sen ystävälle tai keskusteluryhmään, jokainen linkkiä seuraava käyttäjä kirjautuu sisään käyttäjän tilillä.
Istunnon kiinnityskorjaukset
Tähän ongelmaan on olemassa muutamia ratkaisuja, ja kuten aina, paras ratkaisu on toteuttaa mahdollisimman monta korjausta osana syvällisen puolustuksen strategiaa. Ensimmäinen ratkaisu on muuttaa käyttäjän istuntotunnusta, kun hän kirjautuu sisään. Tämä estää hyökkääjää koskaan vaikuttamasta kirjautuneen käyttäjän istuntotunnukseen. Voit myös määrittää palvelimen hyväksymään vain sen luomat istuntotunnukset ja hylkäämään erikseen kaikki käyttäjän toimittamat istuntotunnukset.
Verkkosivusto tulee määrittää siten, että se ei koskaan sijoita arkaluontoisia käyttäjätietoja, kuten istuntotunnusta, URL-osoitteeseen, ja se tulee sijoittaa GET- tai POST-pyyntöparametriin. Tämä estää käyttäjää vaarantamasta omaa istuntotunnusta vahingossa. Käyttämällä sekä istuntotunnusta että erillistä todennustunnusta kaksinkertaistat hyökkääjän tarvitseman tiedon määrän ja estät hyökkääjiä pääsemästä istuntoihin tunnetuilla istuntotunnuksilla.
On erittäin tärkeää, että kaikki käyttäjän kelvolliset istuntotunnukset mitätöidään, kun uloskirjautumispainiketta napsautetaan. On mahdollista luoda uudelleen istuntotunnus jokaisessa pyynnössä. Jos aiemmat istuntotunnukset mitätöidään, tämä estää myös hyökkääjiä käyttämästä tunnettua istuntotunnusta. Tämä lähestymistapa vähentää myös merkittävästi uhkaikkunaa, jos käyttäjä paljastaa oman istuntotunnuksensa.
Ottamalla käyttöön useita näistä lähestymistavoista, syvällisen puolustuksen strategia voi poistaa tämän ongelman turvallisuusriskinä.