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 monissa tapauksissa ainoa tieto, joka tunnistaa tietyn sisäänkirjautuneen käyttäjän. Ongelmana tässä on se, että jos hyökkääjä voi asettaa tai oppia toisen istuntotunnuksen käyttäjä, he voivat 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 ja palvelin ei anna hänelle uutta istuntotunnusta sisäänkirjautumisen yhteydessä, hyökkääjä voi yksinkertaisesti asettaa istuntotunnuksensa samaksi ja saada pääsyn uhrin tilille.
Toinen tapa hyökkääjälle voi löytää uhrin istuntotunnuksen, jos se näkyy URL-osoitteessa. Jos hyökkääjä voi esimerkiksi huijata uhria 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, kaikki linkkiä seuraavat käyttäjät kirjautuvat 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 hänen kirjautuessaan sisään. Tämä estää hyökkääjää koskaan vaikuttamasta sisäänkirjautuneen 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ä.