Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

Vad är sessionskapning?

Sessionskapning (även känd som Cookie-kapning eller Cookie side-jacking) är en av de mest sofistikerade man-in-the-middle-attackerna som ger angriparen tillgång till offrets webbsessioner.

Snabbt svar: Sessionskapning är en attack där någon stjäl eller förutspår ett giltigt sessions-ID och använder det för att utge sig för att vara en redan inloggad användare utan att behöva ett lösenord. Den kringgår inloggningskontroller helt och hållet och kan exponera reglerad data. Lösningen: kryptera tokens under överföring, ställ in säkra cookieflaggor, håll sessionerna korta och rotera ID:n vid ändring av behörighet.

Viktiga takeaways:

  • Sessionskapning kringgår lösenord och MFA genom att stjäla en redan autentiserad session, inte genom att knäcka autentiseringsuppgifter.
  • De vanligaste ingångspunkterna är XSS-stulna cookies, okrypterad nätverkssniffning och sessionsfixering.
  • Secure, HttpOnly och SameSite-cookieflaggor plus TLS under överföring blockerar de flesta stöldtekniker direkt.
  • Korta sessionstider, omautentisering för känsliga åtgärder och ID-rotation vid inloggning begränsar skadan även när en token läcker ut.
  • Kontinuerlig övervakning av avvikande sessionsbeteende är skyddsnätet för de attacker som ändå kommer igenom.

Publicerad: 26 juli 2024. Uppdaterad: augusti 2026. Granskad av Encryption Consultings PKI- och applikationssäkerhetsteam.

Vad är sessionskapning?

Sessionskapning är en attack där en angripare tar över en giltig, redan autentiserad webbsession genom att stjäla eller gissa den unika sessionsidentifieraren som en server använder för att känna igen en inloggad användare, och sedan återanvänder den identifieraren för att utge sig för att vara offret utan att någonsin ange ett lösenord. Eftersom sessionen redan är betrodd av servern kringgår attacken inloggningsformulär, lösenord och i många fall flerfaktorsautentisering helt och hållet.

Några termer dyker upp ständigt i detta ämne, så det är värt att definiera dem tydligt innan man går vidare:

  • Sessions-ID (sessionstoken): en slumpmässig sträng som en server utfärdar till en klient efter inloggning så att den kan känna igen samma användare vid varje efterföljande förfrågan, eftersom HTTP i sig inte kommer ihåg någonting mellan förfrågningar.
  • Kaka: den lilla databit som en webbläsare lagrar och automatiskt skickar vidare till en webbplats, oftast används för att överföra sessions-ID mellan webbläsaren och servern.
  • TLS (Transportlagersäkerhet): krypteringsprotokollet bakom HTTPS som skyddar data, inklusive sessionscookies, medan de färdas över nätverket.
  • MITM (man-in-the-middle): en attackposition där motståndaren sitter mellan användaren och servern och kan läsa eller ändra trafik som passerar mellan dem, ett av sätten som ett sessions-ID kan samlas in.
  • XSS (skriptning över flera webbplatser): en webbapplikationsbrist som låter en angripare köra sitt eget skript i offrets webbläsare, som vanligtvis används för att läsa och exfiltrera sessionscookies.

Sessionskapning kallas ibland cookiekapning eller cookie-sidejacking, eftersom en sessionscookie är det vanligaste som stjäls. Det är nära besläktat med, men skiljer sig från, en generell MITM-attack: en MITM-attack beskriver angriparens nätverksposition, medan sessionskapning beskriver vad angriparen gör med den positionen, nämligen att stjäla och återanvända en livesession. OWASP klassificerar trasig sessionshantering under Identifierings- och autentiseringsfel , en av dess ihållande toppriskkategorier för webbapplikationer.

Hur fungerar sessionskapning?

Sessionskapning fungerar genom att fånga en giltig sessionsidentifierare och spela upp den innan servern har någon anledning att tvivla på att den tillhör någon annan. Attacken följer vanligtvis samma fem steg oavsett vilken kapningsteknik som används:

  1. Bekräftelse. Angriparen identifierar ett målprogram och letar efter svaga punkter i hur det utfärdar, lagrar eller överför sessionsidentifierare, såsom saknade cookieflaggor eller förutsägbara ID-mönster.
  2. Insamling av sessions-ID. Angriparen får tag på ett live-sessions-ID genom en av flera metoder: att injicera ett skript via XSS för att läsa cookien, sniffa okrypterad eller nedgraderad trafik på ett delat nätverk, lura en användare att använda ett ID som angriparen tillhandahållit (sessionsfixering) eller gissa ett svagt ID direkt.
  3. Token-återspelning. Angriparen infogar det stulna sessions-ID:t i sin egen webbläsare eller klient, vanligtvis genom att ställa in matchande cookie.
  4. Sessionsimitation. Servern ser en bekant, fortfarande giltig sessionsidentifierare och behandlar begäran som kommande från den legitima, redan autentiserade användaren, utan att någon omautentiseringsutmaning utlöses.
  5. Utnyttjande. Angriparen agerar med offrets privilegier så länge sessionen är giltig, läser data, ändrar inställningar eller initierar transaktioner, ofta innan offret eller något övervakningssystem märker något ovanligt.
Diagram som visar hur sessionskapning fungerar: en angripare fångar en sessionscookie eller token och spelar upp den för att utge sig för att vara den inloggade användaren.

Tabellen nedan visar de vanligaste fångstteknikerna, hur var och en faktiskt fungerar och det enskilda försvar som mest direkt stänger dem.

AttackteknikSå fungerar detPrimärförsvar
Cross-site scripting (XSS)Angriparen injicerar ett skript på en sårbar sida; skriptet läser sessionscookien via JavaScript och skickar den till angriparen.HttpOnly-cookieflagga, så att klientsideskript inte kan läsa cookien alls, plus strikt sanering av indata och en policy för innehållssäkerhet.
Sessionssniffning (nätverksregistrering)Angripare på samma okrypterade eller nedgraderade nätverk fångar sessionscookies under överföring med hjälp av paketinsamlingsverktyg.TLS överallt, flaggan Secure cookie och HSTS för att förhindra återgång till vanlig HTTP.
SessionsfixeringAngriparen förser offret med ett känt sessions-ID i förväg och återanvänder det sedan när offret autentiserar sig mot det.Återskapa sessions-ID vid varje autentiserings- och behörighetsändring; acceptera aldrig ett klientlevererat sessions-ID som giltigt före inloggning.
Förutsägbart eller brute-forcerat sessions-IDAngriparen gissar eller itererar igenom svaga sessionsidentifierare med låg entropi tills en matchar en aktiv session.Generera sessions-ID:n med en kryptografiskt säker slumptalsgenerator vid 64 bitar entropi eller mer.
Människan i webbläsaren (sessionsskadlig programvara)Skadlig kod på offrets egen enhet läser eller manipulerar sessionsdata direkt, oberoende av nätverks- eller serverkontroller.Slutpunktsskydd, korta sessionstider och omautentisering för känsliga åtgärder för att begränsa vad en komprometterad slutpunkt kan göra.
Begäran mellan olika webbplatser utan SameSiteEn skadlig webbplats utlöser förfrågningar som lagras på offrets befintliga sessionscookie eftersom webbläsaren skickar den automatiskt.SameSite=Strict eller Lax på sessionscookien, så den är inte kopplad till begäranden mellan webbplatser.

Ett verkligt exempel på hur långt sessionskapning kan nå: CVE-2024-53704 , som avslöjades i början av 2025, var en autentiseringsförbikoppling i SonicWalls SonicOS SSL VPN-komponent som lät en fjärransluten, oautentiserad angripare kapa aktiva VPN-sessioner direkt och få tillgång till offrets bokmärken i virtuella kontoret, NetExtender-konfiguration och åtkomst till privata nätverk. Zero Day Initiative återställde CVSS till en kritisk 9.8 CVSS, och veckor efter att en patch skickades var tusentals internetanslutna enheter fortfarande omattade, en påminnelse om att sessionskapning inte är ett teoretiskt koncept som endast rör webbappar utan en verklig orsak till intrång i företagsnätverk.

Skräddarsydda molnnyckelhanteringstjänster

Vi utvärderar, strategiskt utformar och implementerar dataskyddsstrategier och lösningar anpassade efter era behov.

Hur ska man klassificera sessions- och tokenkänslighet?

Inte varje session medför samma risk, så försvar bör skalas med vad en kapad session faktiskt skulle exponera. Klassificera sessioner i nivåer innan du bestämmer hur länge de ska vara eller hur ofta de ska autentiseras igen:

SessionsnivåExempelvisRekommenderad hantering
Offentlig / anonymSurfa på en offentlig marknadsföringssajt eller kunskapsbasMinimalt sessionsläge; låg risk vid avlyssning
StandardautentiseradVisa en användarprofil, icke-finansiella kontoinställningarStandard timeout för inaktivitet, Secure och HttpOnly cookieflaggor
Känsliga/reglerade uppgifterSessioner som berör PII, PCI-kortinnehavardata eller skyddade hälsodataKort timeout för inaktivitet, SameSite=Strict, övervakas för avvikelser
Privilegierad / administrativAdministratörskonsoler, betalningsinitiering, gränssnitt för nyckelhanteringKortast livslängd, obligatorisk omautentisering för känsliga åtgärder, rotation av sessions-ID vid ändring av behörighet

Hur krypterar man sessionstokens och väljer säker lagring?

Kryptera varje sessionstoken som överförs med TLS och lagra den i en HttpOnly Secure-cookie snarare än på en plats som JavaScript eller lokal lagring kan nå. Det finns inget meningsfullt "tokeniserings"-val för sessionsidentifierare på samma sätt som det finns för lagrade kortdata; motsvarande beslut här är var och hur token finns när den väl har utfärdats, och att göra det valet fel är det som gör de flesta kapningstekniker möjliga från första början.

  • Transport: tillämpa TLS 1.2 eller högre på varje begäran som innehåller en sessionscookie, och använd HSTS så att webbläsare vägrar att återgå till vanlig HTTP även om en länk eller omdirigering pekar dit.
  • Lagringsplats: använd en HttpOnly-cookie, inte localStorage or sessionStorage, för sessionstoken, eftersom allt som kan läsas av JavaScript också kan läsas av en XSS-nyttolast.
  • Cookieflaggor: in Secure (Endast HTTPS), HttpOnly (ingen JavaScript-åtkomst), och SameSite=Strict or Lax (ingen automatisk länkning mellan webbplatser) på varje sessionscookie, enligt OWASP-sessionshantering fusklapp.
  • Entropi och längd: generera sessions-ID:n med en kryptografiskt säker slumptalsgenerator som ger minst 64 bitar entropi, vilket OWASP noterar skulle ta en angripare i storleksordningen hundratals år att använda brute force med realistiska gissningshastigheter.
  • Prefix för cookienamn: där det stöds, använd __Host- prefix, vilket tvingar webbläsaren att tillämpa Secure, inget omfång över flera domäner, och Path=/ på kakan.

Certifikat- och nyckelinfrastruktur ligger bakom allt detta: TLS-terminering är bara så tillförlitlig som certifikaten och de privata nycklarna bakom den. CertSecure Manager automatiserar hanteringen av certifikatens livscykel så att TLS-slutpunkter aldrig körs på ett utgånget eller felkonfigurerat certifikat, och HSM-as-a-Service skyddar de privata nycklarna som ligger bakom TLS-termineringen i hårdvara, snarare än i programvara som en komprometterad server kan exponera.

Vilka åtkomstkontroller begränsar skadorna från en stulen session?

Korta sessionstider och obligatorisk omautentisering för känsliga åtgärder begränsar hur mycket en angripare kan göra även efter att ha lyckats stjäla ett sessions-ID. Enligt NIST SP 800-63B bör omautentiseringstiderna skalas med säkerhetsnivån: vid AAL1, omautentisera minst en gång var 30:e dag; vid AAL2, minst var 12:e timme eller efter 30 minuters inaktivitet, beroende på vilket som inträffar först; vid AAL3, minst var 12:e timme eller efter 15 minuters inaktivitet, där omautentisering kräver båda autentiseringsfaktorerna igen. OWASP:s allmänna riktlinjer är liknande i sin anda: inaktiva timeouts på 2 till 5 minuter för applikationer med högt värde och 15 till 30 minuter för applikationer med lägre risk, med en absolut sessionstimeout på 4 till 8 timmar oavsett aktivitet, tvingad på serversidan snarare än betrodd till klienten.

Utöver timeouts, kräv en ny autentiseringsutmaning, till exempel en återinmatning av lösenordet eller en MFA-fråga med ökad säkerhet (step-up MFA), före åtgärder med stor inverkan: ändra kontots e-postadress eller lösenord, lägga till en betalningsmetod, bevilja administratörsbehörighet eller exportera känsliga data. En stulen session som inte kan passera den andra grinden är mycket mindre användbar för en angripare även om den underliggande token är giltig.

Hur ser bra styrning av sessionslivscykeln ut?

Styrning av sessionslivscykeln innebär att behandla utfärdande, rotation och ogiltigförklaring som avsiktliga, påtvingade steg snarare än biverkningar av inloggningsformuläret. Tre moment är viktigast:

  • Utgivning: generera ett helt nytt sessions-ID med hög entropi vid lyckad inloggning; återanvänd eller utöka aldrig ett sessions-ID före autentisering till ett autentiserat, vilket är precis vad sessionsfixering utnyttjar.
  • Rotation: återskapa sessions-ID:t efter en ändring av behörighetsnivå, till exempel lösenordsåterställning, rolländring eller stegvis autentisering, med hjälp av anrop på ramverksnivå som session_regenerate_id(true) i PHP eller ett motsvarande session-invalidation-anrop i ditt ramverk.
  • Annullering: förstöra sessionen på både klienten och servern vid utloggning, exponera en synlig utloggningskontroll på varje autentiserad sida och låta sessioner löpa ut på serversidan vid timeout istället för att förlita sig på cookiens eget utgångsdatum, eftersom en stulen cookie inte respekterar en klientsidig klocka.

Hur bör återställning och incidenter se ut om kapning upptäcks?

Om ett försök till sessionskapning bekräftas, ogiltigförklara omedelbart alla aktiva sessioner för det drabbade kontot och tvinga fram omautentisering innan någon session är betrodd igen. Därifrån ser en praktisk svarssekvens ut så här:

  1. Återkalla alla aktiva sessioner och tokens kopplade till det berörda kontot, serversidan, inte bara den enda sessionen som visade avvikelsen.
  2. Framtvinga en lösenordsåterställning och, där det är möjligt, rotera alla länkade API-nycklar eller långlivade tokens som kontot har utfärdat.
  3. Granska kontots senaste aktivitetslogg för åtgärder som vidtagits under kapningsfönstret och återställ eller flagga allt som inte är auktoriserat.
  4. Kontrollera den underliggande infångningsvektorn, till exempel en opatchad XSS-brist, en saknad cookie-flagga eller en komprometterad slutpunkt, och stäng den innan du återställer normal åtkomst.
  5. Meddela den berörda användaren och, om reglerad data exponerades, följ din organisations skyldigheter att anmäla dataintrång enligt tillämpligt ramverk.

Hur övervakar ni avvikande sessionsbeteende?

Kontinuerlig övervakning upptäcker kapningsförsök som slinker förbi förebyggande kontroller genom att leta efter beteenden som en legitim session inte skulle producera. Användbara signaler inkluderar:

  • Ett enda sessions-ID som används från två geografiskt avlägsna IP-adresser inom ett osannolikt kort fönster.
  • En plötslig förändring av användaragenten eller enhetens fingeravtryck mitt i en session, utan motsvarande ny inloggning.
  • En autentiserad session som plötsligt utför åtgärder med hög behörighet som den aldrig har utfört tidigare för det kontot.
  • Upprepade, snabba gissningar av sessions-ID eller felaktigt utformade sessionstokens som träffar inloggnings- eller sessionsvalideringsslutpunkten, ett tecken på brute-force-probing.
  • Trafik till kända verktygsmönster för sessionskapning, vilka system för intrångsdetektering och -förebyggande kan flagga mot kända attacksignaturer.

Inget av detta ersätter förebyggande åtgärder; det är lagret som antar att förebyggande åtgärder ibland kommer att misslyckas och förkortar den tid en angripare har en aktiv, obemärkt session.

Hur kopplas sessionssäkerhet till efterlevnadskrav?

Sessionshanteringskontroller är inte valfria tillägg i de flesta säkerhetsramverk; de är namngivna, specifika krav. Tabellen nedan visar vilka kontroller som behandlas ovan och var de behövs.

kontrollOWASPNIST SP 800-63BPCI DSS 4.0
Sessions-ID-entropi och genereringFuskblad för sessionshantering: 64+ bitar entropi via CSPRNGSessionshemligheter bundna till godkända kryptografiska autentiserareKrav 6, säker utveckling och kryptografipraxis
Attribut för cookiesäkerhetSäker, HttpOnly, SameSite krävs för sessionscookiesInte cookiespecifik, men kräver skyddade sessionsbindningarKrav 6.2, säker kodning för att förhindra sessionsfel
Inaktiv och absolut timeout2 till 5 minuters inaktivitet för värdefulla appar; 4 till 8 timmar absolutÅterautentisering efter 15 till 30 minuters inaktivitet beroende på AALKrav 8.2.8, återautentisera efter 15 minuters inaktivitet
Återautentisering för känsliga åtgärderSteg-för-steg-autentisering före åtgärder med stor inverkanFullständig omautentisering med båda faktorerna vid AAL3Krav 8, starka autentiseringskontroller för användaråtkomst
Session ogiltigförklaras vid utloggningServersidesförstöring, inte bara klientsidanSessionsavslutning förväntas vid utloggningKrav 8, åtkomst återkallad när den inte längre behövs

Begränsningar

Ingen enskild kontroll här eliminerar helt risken för sessionskapning. TLS skyddar en sessionscookie under överföring men gör ingenting mot en XSS-brist som läser cookien direkt i webbläsaren. Cookieflaggor som HttpOnly och SameSite stoppar specifika stöldtekniker men kan inte stoppa en session som stulits av skadlig kod som redan körs på offrets enhet. Korta timeouts och omautentisering minskar exponeringsfönstret men skapar verklig friktion för legitima användare, och alltför aggressiva timeouts driver människor mot lösningar som att vara permanent inloggade på en delad enhet. Övervakning av avvikande beteende hjälper till att upptäcka det som förebyggande åtgärder missar, men det är probabilistiskt, inte säkert, och en tålmodig angripare som imiterar offrets vanliga plats och enhet kan undvika det under en tid. Behandla dessa kontroller som lager på lager, inte som en enda lösning, och återvänd till dem när din applikations hotmodell ändras.

Vad skulle krypteringskonsulter rekommendera?

Börja med de kontroller som blockerar de vanligaste infångningsteknikerna direkt, och lägg sedan till övervakning och styrning i lager istället för att försöka göra allt på en gång. I praktiken hänvisar vi klienter till denna sekvens: tillämpa TLS överallt med automatiserad hantering av certifikatlivscykeln så att utgångna eller felkonfigurerade certifikat aldrig skapar ett gap för nedgraderingsattacker; ställ in Secure, HttpOnly och SameSite på varje sessionscookie som en grundläggande, icke-förhandlingsbar konfigurationsändring; generera sessions-ID:n vid inloggning och vid varje behörighetsändring; och skala inaktivitetstimeouts och omautentiseringskrav till sessionens känslighetsnivå, inte en enda organisationsomfattande standard.

Där det underliggande problemet är fragmenterad certifikat- och nyckelhantering över många applikationer, snarare än en enskild applikations sessionskod, ger PKI-as-a-Service team ett hanterat sätt att utfärda och rotera TLS-certifikaten som möjliggör krypterade sessioner från första början, utan att varje applikationsteam behöver återuppfinna hanteringen av certifikatlivscykeln på egen hand. För organisationer som hanterar detta internt täcker vår relaterade guide om de vanligaste SSL/TLS-attackerna och hur hantering av certifikatlivscykeln hjälper till att mildra dem transportsidan av detta problem mer ingående; det inlägget fokuserar på certifikat- och protokollattacker som föregår eller möjliggör avlyssning, medan det här fokuserar på vad som händer med själva sessionen när en angripare har fått fotfäste, så läs dem tillsammans snarare än som dubbletter.

Slutsats

Sessionskapning lyckas genom att utnyttja det förtroende en server ger ett sessions-ID, inte genom att knäcka ett lösenord. Försvaret är skiktat snarare än singulärt: kryptera sessioner under överföring med TLS, lås cookies med Secure-, HttpOnly- och SameSite-flaggor, håll sessioner korta och autentisera om för känsliga åtgärder, rotera sessions-ID:n vid varje privilegiumsändring och övervaka de avvikelser som glider förbi allt ovanstående. Ingen enskild kontroll stänger varje sökväg, vilket är just därför sessionssäkerhet måste styras som en hel livscykel, från utfärdande till ogiltigförklaring, snarare än att konfigureras en gång och lämnas orört.

Vanliga frågor om partihandel med mat och dryck

Är sessionskapning detsamma som sessionsfixering? Nej. Sessionsfixering är en specifik teknik för att få en session kapad: angriparen ställer in ett känt sessions-ID på offret i förväg och väntar på att de ska autentisera sig mot det. Sessionskapning är det bredare resultatet, att ta över vilken giltig session som helst, som kan nås genom fixering, XSS-baserad cookiestöld, nätverkssniffning eller flera andra tekniker.

Stoppar HTTPS ensamt sessionskapning? Nej. TLS skyddar sessionscookien medan den färdas över nätverket, vilket blockerar sniffing-baserad kapning, men det gör ingenting mot en sessionscookie som stulits på klientsidan genom en XSS-brist eller skadlig kod som redan finns på användarens enhet. HTTPS är nödvändigt men inte tillräckligt i sig självt.

Hur länge ska en sessionscookie egentligen gälla? Det beror på vad sessionen kan komma åt. OWASP:s allmänna riktlinjer är en inaktiv timeout på 2 till 5 minuter för applikationer med högt värde och 15 till 30 minuter för applikationer med lägre risk, med en absolut sessionstid på 4 till 8 timmar oavsett aktivitet. PCI DSS 4.0:s krav 8.2.8 kräver specifikt omautentisering efter 15 minuters inaktiv tid för system som ingår i scopet.

Skyddar flerfaktorsautentisering mot sessionskapning? MFA skyddar själva inloggningen, inte en redan etablerad session. När en användare har autentiserat sig och en sessionscookie finns, utger sig en angripare som stjäl den cookien för att vara en redan autentiserad session och behöver aldrig klara MFA-kontrollen alls. Det är just därför sessionens livslängd, rotation och omautentisering för känsliga åtgärder är viktiga som ett separat lager från MFA.

Vad är det allra första vi ska göra om vi misstänker en aktiv sessionskapningsattack? Ogiltigförklara den drabbade sessionen, och alla andra aktiva sessioner på det kontot, på serversidan omedelbart, och tvinga sedan fram en ny inloggning. Att enbart agera på den misstänkta sessionen räcker inte om angriparen också har kapat eller kan återanvända andra giltiga tokens kopplade till samma konto.

Referensprojekt