Cross-Site Request Forgery (CSRF) er en af ​​de ældste måder at udnytte et websteds sårbarheder på. Det er målrettet mod websideswitche på serveren, der normalt kræver godkendelser som at logge ind. Under et CSRF-angreb sigter en angriber mod at tvinge sit offer til at fremsætte en uautoriseret, ondsindet webanmodning på deres vegne.

Svag eller dårlig websidesikkerhedspraksis og skødesløshed på brugerens vej er nogle af de almindelige årsager til et vellykket CSRF-angreb.

Lad os se på, hvad et CSRF-angreb er, og de mulige måder, du kan forhindre dig selv i at være som udvikler eller som bruger.

Hvordan påvirker CSRF-angreb dig?

En CSRF er et angreb, der bruges til at implementere uautoriserede anmodninger under webhandlinger, der kræver bruger login eller godkendelse. CSRF-angreb kan drage fordel af session-id'er, cookies samt andre serverbaserede sårbarheder til at stjæle en brugers legitimationsoplysninger.

Aktivering af anti-CSRF-procedurer forhindrer f.eks. Ondsindede interaktioner på tværs af domæner.

instagram viewer

Når denne barriere går i stykker, kan en angriber hurtigt drage fordel af brugerens session-id via de cookies, der er oprettet af brugerens browser og integrere et script-tag i det sårbare websted.

Ved at manipulere et ID kan angriberen også omdirigere besøgende til en anden webside eller udnytte sociale ingeniørmetoder som e-mail for at sende links, der opfordrer offeret til at downloade ondsindet software.

Hvad er social engineering? Sådan kan du blive hacket

Lær, hvordan social engineering kan påvirke dig, plus almindelige eksempler, der hjælper dig med at identificere og holde dig sikker fra disse ordninger.

Når offeret udfører sådanne handlinger, sender det en HTTP-anmodning til brugerens tjenesteside og godkender anmodningen til fordel for angriberen. Det kan være ødelæggende for en intetanende bruger.

Et vellykket CSRF-angreb kan få autoriserede brugere til at miste deres adgangsoplysninger til en angriber, især under serverbaserede handlinger som anmodninger om adgangskode eller ændring af brugernavn. I værre scenarier overtager angriberen hele sessionen og handler på brugernes vegne.

CSRF er blevet brugt til at kapre transaktioner via internettet og ændre brugernavne og adgangskoder, hvilket fører til, at brugere mister adgang til den berørte tjeneste.

Hvordan angribere kaprer dine sessioner med CSRF: eksempler

De vigtigste mål for CSRF-angreb er webhandlinger, der involverer en brugers godkendelse. For at få succes, har det brug for utilsigtede handlinger fra offeret.

Under et CSRF-angreb er GET, SLET og PUT-handlinger samt sårbare POST-anmodninger en angribers hovedmål.

Lad os se på betydningen af ​​disse udtryk:

  • FÅ: En anmodning om at indsamle et resultat fra databasen; for eksempel Google-søgning.
  • STOLPE: Typisk til at indsende anmodninger via webformularer. En POST-anmodning er almindelig under en brugers registrering eller login, ellers kendt som godkendelse.
  • SLET: For at fjerne en ressource fra databasen. Du gør dette, når du sletter din konto fra en bestemt webtjeneste.
  • SÆTTE: En PUT-anmodning ændrer eller opdaterer en eksisterende ressource. Et eksempel er ændre dit Facebook-navn.

I praksis bruger angribere session-kapring til at sikkerhedskopiere et CSRF-angreb. Når du bruger denne kombination, kan angriberen bruge en kapring til at ændre offerets IP-adresse.

Ændringen i IP-adresse logger derefter offeret på et nyt websted, hvor angriberen har indsat et vildledende link, der indsender en replikeret form eller ændret serveranmodning, de oprettede via CSRF.

En intetanende bruger mener derefter, at omdirigering kommer fra tjenesteudbyderen og klikker på linket på angriberens webside. Når de har gjort dette, sender hackere en formular til sideindlæsning uden deres viden.

Eksempel på et GET-anmodning CSRF-angreb

Forestil dig at prøve at foretage en online betaling via en usikret e-handelsplatform. Platformsejerne bruger GET-anmodningen til at behandle din transaktion. Denne GET-forespørgsel kan se sådan ud:

https://websiteurl/pay? beløb = $ 10 & firma = [virksomhed ABCs konto]

En flykaprer kan stjæle din transaktion let ved at ændre parametrene for GET-anmodningen. For at gøre dette er alt, hvad de har brug for, at bytte dit navn mod deres, og værre, ændre det beløb, du har til hensigt at betale. De tilpasser derefter den originale forespørgsel til noget som dette:

https://websiteurl/pay? beløb = $ 20000 & firma = [angriberens konto]

Når du først klikker på et link til den ændrede GET-anmodning, foretager du en utilsigtet overførsel til angriberen.

Transaktion gennem GET-anmodninger er dårlig praksis og gør aktiviteter sårbare over for angreb.

Eksempel på et POST-anmodning CSRF-angreb

Imidlertid mener mange udviklere, at brugen af ​​POST-anmodning er mere sikker til at foretage webtransaktioner. Selvom det er sandt, er en POST-anmodning desværre også modtagelig for CSRF-angreb.

For at kapre en POST-anmodning er alt, hvad en angriber har brug for, dit nuværende session-id, nogle replikerede usynlige former og nogle gange lidt social engineering.

For eksempel kan en POST-anmodningsformular se sådan ud:







En angriber kan dog bytte din legitimationsoplysninger ved at oprette en ny side og ændre formularen ovenfor til dette:









I den manipulerede form indstiller angriberen værdien af ​​beløbfeltet til "30000", bytter modtagerens kontonummer til deres, sender formularen til sideindlæsning og skjuler også formularfelterne for brugeren.

Når de først kaprer den aktuelle session, starter din transaktionsside en omdirigering til angriberens side, som beder dig om at klikke på et link, som de ved, du sandsynligvis besøger.

Ved at klikke på dette indlæses indsendelsen af ​​den replikerede formular, som overfører dine midler til angriberens konto. Det betyder, at du ikke behøver at klikke på knapper som "send" for at transaktionen skal finde sted, da JavaScript automatisk gør dette ved indlæsning af den næste webside.

Alternativt kan en hacker også udarbejde en HTML-integreret e-mail, der beder dig om at klikke på et link for at udføre den samme sideindlæsningsformularindsendelse.

En anden handling, der er sårbar over for et CSRF-angreb, er et brugernavn eller en ændring af adgangskoden, et eksempel på en PUT-anmodning. En hacker replikerer din anmodningsformular og erstatter din e-mail-adresse med deres.

Derefter stjæler de din session og omdirigerer dig enten til en side eller sender dig en e-mail, der beder dig om at klikke på et tiltalende link.

Der indsender derefter en manipuleret formular, der sender linket til nulstilling af adgangskode til hackers e-mail-adresse i stedet for din. På den måde ændrer hackeren din adgangskode og logger dig ud af din konto.

Sådan forhindres CSRF-angreb som udvikler

En af de bedste metoder til at forhindre en CSRF er at bruge hyppigt skiftende tokens i stedet for afhængigt af sessionscookies til at køre en tilstandsændring på serveren.

Relaterede: Gratis guider til forståelse af digital sikkerhed og beskyttelse af dit privatliv

Mange moderne backend-rammer tilbyder sikkerhed mod CSRF. Så hvis du selv vil undgå det tekniske ved at styrke CSRF, kan du nemt tackle det ved hjælp af serverrammer, der følger med indbyggede anti-CSRF-tokens.

Når du bruger et anti-CSRF-token, genererer serverbaserede anmodninger tilfældige strenge i stedet for de mere statiske sårbare sessionscookies. På den måde får du beskyttet din session mod at blive gættet af flykapreren.

Implementering af et 2-faktor-godkendelsessystem (2FA) til at køre transaktioner på din webapp reducerer også chancerne for en CSRF.

Det er muligt at starte en CSRF via cross-site scripting (XSS), som involverer scriptinjektion i brugerfelter som kommentarformularer. For at forhindre dette er det god praksis at aktivere HTML-automatisk flugt i alle brugerformularfelter på tværs af dit websted. Denne handling forhindrer formfelter i at fortolke HTML-elementer.

Sådan forhindres CSRF-angreb som bruger

Som bruger af en webtjeneste, der involverer godkendelse, har du en rolle at spille i at forhindre angribere i at stjæle dine legitimationsoplysninger og sessioner også via CSRF.

Sørg for, at du bruger pålidelige webtjenester under aktiviteter, der involverer pengeoverførsel.

Ud over dette skal du bruge sikre webbrowsere der beskytter brugerne mod eksponering af sessioner samt sikre søgemaskiner, der beskytter mod lækagedata.

Relaterede: Bedste private søgemaskiner, der respekterer dine data

Som bruger kan du også stole på tredjepartsautentifikatorer som f.eks Google Authenticator eller dens alternativer for at bekræfte din identitet via internettet.

Selvom du måske føler dig hjælpeløs til at stoppe en angriber fra at kapre din session, kan du stadig hjælpe forhindre dette ved at sikre, at din browser ikke gemmer oplysninger som adgangskoder og andet login detaljer.

Oksekød op din websikkerhed

Udviklere skal regelmæssigt teste webapps for sikkerhedsbrud under udvikling og implementering.

Det er dog almindeligt at introducere andre sårbarheder, mens du prøver at forhindre andre. Så vær forsigtig med at sikre, at du ikke har overtrådt andre sikkerhedsparametre, mens du prøver at blokere en CSRF.

E-mail
5 adgangskodeværktøjer til at oprette stærke adgangssætninger og opdatere din sikkerhed

Opret en stærk adgangskode, som du kan huske senere. Brug disse apps til at opgradere din sikkerhed med nye stærke adgangskoder i dag.

Relaterede emner
  • Sikkerhed
  • Onlinesikkerhed
Om forfatteren
Idowu Omisola (46 artikler offentliggjort)

Idowu brænder for alt smart tech og produktivitet. På fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans lidenskab for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.