Hvad er sessionsfiksering?

click fraud protection

Der findes mange forskellige typer sikkerhedssårbarheder på websteder, en interessant kaldes "Session Fixation". Sessionsfiksering er et problem, hvor en hacker kan påvirke sessionsidentifikatoren, også kaldet sessions-id'et for en bruger, og derefter bruge den til at få adgang til deres konto. Der er to måder, hvorpå denne type sårbarhed kan fungere, den kan give angriberen mulighed for enten at finde eller indstille en anden brugers sessions-id.

Hvordan et sessionsfikseringsangreb udføres

En brugers sessions-id er ofte en vigtig del af autentificeringen af ​​hjemmesiden og er i mange tilfælde de eneste data, der identificerer den specifikke bruger, der er logget ind. Problemet med dette er, at hvis en angriber kan indstille eller lære en anden brugers sessions-id, kan de bruge sessionstokenet og derefter være i stand til at agere som brugeren.

Typisk gøres dette ved at narre en bruger til at klikke på en type phishing-link. Linket i sig selv er helt legitimt, men inkluderer en variabel, der angiver et specificeret session-id. Hvis brugeren så logger på med sessions-id'et og serveren ikke tildeler dem et nyt sessions-id på login, kan angriberen blot indstille deres sessions-id til at være det samme og have adgang til offerets konto.

En anden måde, hvorpå angriberen kan opdage ofrets sessions-id, er, hvis det vises i en URL. For eksempel, hvis angriberen kan narre offeret til at sende dem et link, og det inkluderer offerets sessions-id, kan angriberen bruge sessions-id'et til at få adgang til offerets konto. I nogle tilfælde kan dette ske helt ved et uheld. For eksempel, hvis brugeren kopierer URL'en med sessions-id'et og indsætter den til en ven eller i et forum, vil enhver bruger, der følger linket, blive logget ind med brugerens konto.

Sessionsfikseringsafhjælpninger

Der er nogle få løsninger på dette problem, og som altid er den bedste løsning at implementere så mange rettelser som muligt som en del af en dybdeforsvarsstrategi. Den første løsning er at ændre brugerens sessions-id, når de logger på. Dette forhindrer en hacker i nogensinde at kunne påvirke sessions-id'et for en logget ind bruger. Du kan også konfigurere serveren til kun at acceptere session-id'er, som den har genereret, og til eksplicit at afvise enhver brugerleveret session-id.

Hjemmesiden bør konfigureres til aldrig at placere nogen følsomme brugerdetaljer såsom sessions-id i URL'en og bør placere den i en GET- eller POST-anmodningsparameter. Dette forhindrer brugeren i ved et uheld at kompromittere deres eget sessions-id. Ved at bruge både et sessions-id og et separat godkendelsestoken fordobler du mængden af ​​information, som angriberen har brug for, og forhindrer angribere i at få adgang til sessioner med kendte session-id'er.

Det er afgørende, at alle gyldige sessions-id'er for en bruger bliver ugyldige, når der klikkes på logout-knappen. Det er muligt at genskabe sessions-id'et på hver anmodning, hvis tidligere session-id'er er ugyldige forhindrer dette også angribere i at bruge kendt session-id. Denne tilgang reducerer også trusselsvinduet markant, hvis en bruger afslører deres eget sessions-id.

Ved at aktivere flere af disse tilgange kan en dybdeforsvarsstrategi eliminere dette problem som en sikkerhedsrisiko.