Hur funkar cross-site scripting?

Vad är cross-site scripting (XSS)?

Cross-site scripting är en typ av säkerhetsrisk som kan hittas i vissa webbapplikationer. XSS-attacker gör det möjligt för angripare att injicera skript på klientsidan på webbsidor som visas av andra användare. En skriptsårbarhet på flera ställen kan användas av angripare för att kringgå åtkomstkontroller såsom samma ursprungspolicy.

Skript över webbplatser som utfördes på webbplatser stod för ungefär 84 % av alla säkerhetsbrister som dokumenterades av Symantec fram till 2007. XSS-effekter varierar i intervallet från små olägenheter till betydande säkerhetsrisker, beroende på känsligheten hos den data som hanteras av den sårbara webbplatsen och arten av eventuella säkerhetsbegränsningar som implementeras av webbplatsens ägarnätverk. En man-in-the-middle-attack är i synnerhet möjlig.

Hur fungerar XSS?

Om en användare hänvisas till en webbplats som tillåter att godtycklig kod injiceras, kommer det att vara som om användaren faktiskt hade skrivit in den koden på webbplatsen själv. En angripare kan dra fördel av detta genom att skicka kod som kapar användarens session eller stjäl deras data. XSS liknar skadliga webbadresser som innehåller inbäddade hyperlänkar, men koden varierar beroende på vilket program som används.

Till exempel, i fallet med ett webbforum, ser XSS-attackscenariot ut ungefär så här: En användare går till webbplatsen och postar ett meddelande. En annan användare svarar på meddelandet och skapar ett nytt fönster med den ursprungliga affischens sida i. Den nya sidan kan innehålla vilken kod som helst som den ursprungliga affischen skrev in. Så snart affischen accepterar svaret och klickar på det nya svarsfönstret, blir det skadliga skriptet aktivt och hackaren kan komma åt den andra personens konto och data.

Vilka typer av XSS-attacker finns det?

XSS kan delas in i två typer: reflekterad och lagrad.

  • Reflected XSS: Detta inträffar när användaren dirigeras till en skadlig webbplats som innehåller ett användarkontrollerbart element som en iframe eller en inbäddning.
  • Lagrat XSS: När en användare lagrar data på servern som sedan blir tillgänglig för andra användare av webbplatsen via en iframe eller en inbäddning. Till exempel, när en användare postar ett meddelande till ett forum, lagras meddelandedatan på servern och blir tillgänglig för andra användare via en iframe eller en inbäddning.

Vad kan XSS användas till?

XSS kan användas för olika ändamål beroende på attackens sammanhang och typen av applikation som används. Några exempel på detta inkluderar:

  • Spoofing: Om en hackare lyckas få tillgång till en användares konto och skicka meddelanden till dem som verkar vara från någon annan, kan de göra detta genom att injicera skript i meddelandet som får det att se ut som om den andra person skrev det.
  • Dataexfiltrering: Om en hackare får tillgång till en användares konto och den användaren har tillgång till känslig data, kan hackaren potentiellt hämta data och använda den någon annanstans. – Ändring: Om en hackare får kontroll över en användares konto kan de eventuellt ändra kontots privilegier, lägga till eller ta bort vänner eller göra annat bus.

Hur man hittar och testar för XSS-sårbarheter

En automatiserad metod för att hitta XSS-sårbarheter är för närvarande inte tillgänglig. Det är dock möjligt att identifiera potentiella sårbarheter genom att granska dokument som webbplatsens källkod eller undersöka referenser från tredje part till webbplatsen.

Alternativt kan ett webbskanningsverktyg användas för att identifiera sårbara sidor. Om ett potentiellt XSS-problem identifieras är det viktigt att fastställa dess omfattning och svårighetsgrad. För att göra detta kan man titta på de data som kan påverkas och hur angriparen kan få tag på den.

För att bestämma omfattningen av ett XSS-problem, kan man också se var det injicerade skriptet exekveras, vilken kod som exekveras och vilken data som nås. Dessa uppgifter kan sedan användas för att prioritera saneringsinsatser.

Hur förhindrar man XSS-attacker?

Det finns lite som kan göras för att förhindra cross-site scripting-attacker, eftersom sårbarheten ligger i applikationen. Följande strategier kan dock användas för att mildra hoten från dessa attacker:

  • Använd en sandlådeapplikation: Detta hjälper till att isolera webbapplikationen från andra program på användarens dator.
  • Begränsa åtkomsten till känslig data: Detta kommer att begränsa skadan en angripare kan göra om de lyckas få kontroll över kontot.
  • Se till att all applikationskod granskas: Det är viktigt att källkoden för alla applikationer granskas för eventuella XSS-sårbarheter.