Cross-Site Request Forgery (CSRF) är ett av de äldsta sätten att utnyttja webbplatsens sårbarheter. Den riktar sig till webbswitchar på serversidan som vanligtvis kräver autentisering som att logga in. Under en CSRF-attack syftar en angripare till att tvinga sitt offer att göra en obehörig, skadlig webbbegäran för deras räkning.

Svag eller dålig säkerhetspraxis på webbplatsen och slarv på användarens väg är några av de vanligaste orsakerna till en framgångsrik CSRF-attack.

Låt oss titta på vad en CSRF-attack är och de möjliga sätten du kan förhindra dig själv från som utvecklare eller som användare.

Hur påverkar CSRF-attacker dig?

En CSRF är en attack som används för att implementera obehöriga förfrågningar under webbåtgärder som kräver användarinloggning eller autentisering. CSRF-attacker kan dra nytta av session-ID: n, kakor och andra serverbaserade sårbarheter för att stjäla användarens referenser.

Om du till exempel aktiverar anti-CSRF-procedurer förhindras skadliga interaktioner över domäner.

instagram viewer

När barriären bryts kan en angripare snabbt dra nytta av användarens session-ID via kakorna som skapats av användarens webbläsare och bädda in en skripttagg på den sårbara webbplatsen.

Genom att manipulera ett ID kan angriparen också omdirigera besökare till en annan webbsida eller utnyttja socialtekniska metoder som e-post för att skicka länkar och uppmuntra offret att ladda ner skadlig programvara.

Vad är socialteknik? Så här kan du hackas

Lär dig hur socialteknik kan påverka dig, plus vanliga exempel som hjälper dig att identifiera och hålla dig säker från dessa scheman.

När offret har utfört sådana åtgärder skickar det en HTTP-begäran till användarens tjänstesida och godkänner begäran till angriparen. Det kan vara förödande för en intet ont anande användare.

En framgångsrik CSRF-attack kan få auktoriserade användare att förlora sina åtkomstuppgifter till en angripare, särskilt under serverbaserade åtgärder som lösenord eller begäranden om ändring av användarnamn. I sämre scenarier tar angriparen över hela sessionen och agerar för användarnas räkning.

CSRF har använts för att kapa transaktioner via internet och ändra användarnamn och lösenord, vilket leder till att användare förlorar åtkomst till den berörda tjänsten.

Hur angripare kapar dina sessioner med CSRF: exempel

De viktigaste målen för CSRF-attacker är webbåtgärder som involverar en användares autentisering. För att lyckas behöver det oavsiktliga handlingar från offret.

Under en CSRF-attack är GET, DELETE och PUT-åtgärder samt sårbara POST-förfrågningar en angripares huvudmål.

Låt oss titta på innebörden av dessa termer:

  • SKAFFA SIG: En begäran om att samla in ett resultat från databasen; till exempel Google-sökning.
  • POSTA: Vanligtvis för att skicka förfrågningar via webbformulär. En POST-begäran är vanligt under en användares registrering eller inloggning, annars känd som autentisering.
  • RADERA: Ta bort en resurs från databasen. Du gör detta när du tar bort ditt konto från en viss webbtjänst.
  • SÄTTA: En PUT-begäran ändrar eller uppdaterar en befintlig resurs. Ett exempel är ändra ditt Facebook-namn.

I praktiken använder angripare sessionskapning för att säkerhetskopiera en CSRF-attack. När den här kombinationen används kan angriparen använda en kapning för att ändra offrets IP-adress.

Ändringen av IP-adressen loggar sedan offret till en ny webbplats där angriparen har infogat en bedräglig länk som skickar in ett replikerat formulär eller en modifierad serverförfrågan som de skapade via CSRF.

En intet ont anande användare tror att omdirigeringen kommer från tjänsteleverantören och klickar på länken på angriparens hemsida. När de väl har gjort detta skickar hackare ett formulär för sidladdning utan deras vetskap.

Exempel på en GET-begäran CSRF Attack

Tänk dig att försöka göra en onlinebetalning via en osäker e-handelsplattform. Plattformsägarna använder GET-begäran för att behandla din transaktion. Den GET-frågan kan se ut så här:

https://websiteurl/pay? belopp = $ 10 & företag = [företagets ABC-konto]

En kapare kan enkelt stjäla din transaktion genom att ändra parametrarna för GET-begäran. För att göra detta är allt de behöver göra att byta ditt namn mot sitt, och värre, ändra beloppet du tänker betala. De justerar sedan den ursprungliga frågan till något liknande detta:

https://websiteurl/pay? belopp = $ 20000 & företag = [angriparens konto]

När du klickar på en länk till den modifierade GET-begäran, slutar du göra en oavsiktlig överföring till angriparens konto.

Transaktion genom GET-förfrågningar är dålig praxis och gör aktiviteter sårbara för attacker.

Exempel på en POST-begäran CSRF Attack

Men många utvecklare tror att det är säkrare att använda POST-begäran för att göra webbtransaktioner. Även om det är sant är tyvärr också en POST-begäran mottaglig för CSRF-attacker.

För att framgångsrikt kapa en POST-begäran är allt en angripares behov ditt nuvarande session-ID, några replikerade osynliga former och ibland lite socialteknik.

Till exempel kan ett POST-förfrågningsformulär se ut så här:







En angripare kan emellertid byta din referens genom att skapa en ny sida och ändra formuläret ovan till detta:









I den manipulerade formen sätter angriparen värdet på fältet för belopp till "30000", byter mottagarens kontonummer till sitt, skickar in formuläret vid sidladdning och döljer även formulärfälten från användaren.

När de kapat den aktuella sessionen initierar din transaktionssida en omdirigering till angriparens sida, som uppmanar dig att klicka på en länk som de vet att du troligen besöker.

Genom att klicka på detta laddas inlämnandet av det replikerade formuläret, som överför dina pengar till angriparens konto. Det betyder att du inte behöver klicka på knappar som "skicka" för att transaktionen ska ske, eftersom JavaScript automatiskt gör detta när nästa webbsida laddas.

Alternativt kan en angripare också utarbeta ett HTML-inbäddat e-postmeddelande som uppmanar dig att klicka på en länk för att utföra samma sidladdningsformulär.

En annan åtgärd som är sårbar för en CSRF-attack är ett användarnamn eller en lösenordsändring, ett exempel på en PUT-begäran. En angripare replikerar din begäran och ersätter din e-postadress med deras.

Sedan stjäl de din session och omdirigerar dig antingen till en sida eller skickar ett e-postmeddelande som uppmanar dig att klicka på en tilltalande länk.

Det skickar sedan ett manipulerat formulär som skickar länken för återställning av lösenord till hackarens e-postadress istället för din. På det sättet ändrar hackaren ditt lösenord och loggar ut dig från ditt konto.

Hur man förhindrar CSRF-attacker som utvecklare

En av de bästa metoderna för att förhindra en CSRF är att använda ofta ändrade tokens istället för beroende på sessionscookies för att köra en tillståndsändring på servern.

Relaterad: Gratis guider för att förstå digital säkerhet och skydda din integritet

Många moderna backend-ramar erbjuder säkerhet mot CSRF. Så om du själv vill undvika det tekniska med att förstärka CSRF kan du enkelt hantera det med hjälp av ramar på serversidan som kommer med inbyggda anti-CSRF-tokens.

När du använder en anti-CSRF-token genererar serverbaserade förfrågningar slumpmässiga strängar istället för de mer statiska sårbara sessionskakorna. På det sättet får du skydda din session från att bli gissad av kaparen.

Implementering av ett tvåfaktorsautentiseringssystem (2FA) för att köra transaktioner i din webbapp minskar också risken för en CSRF.

Det är möjligt att starta en CSRF via cross-site scripting (XSS), vilket innebär skriptinjicering i användarfält som kommentarformulär. För att förhindra detta är det bra praxis att aktivera automatisk HTML-flykt i alla användarformfält på din webbplats. Den åtgärden förhindrar formulärfält från att tolka HTML-element.

Hur man förhindrar CSRF-attacker som användare

Som användare av en webbtjänst som innebär autentisering har du en roll att spela för att förhindra att angripare stjäl dina referenser och sessioner också via CSRF.

Se till att du använder betrodda webbtjänster under aktiviteter som innebär överföring av pengar.

Utöver detta, använd säkra webbläsare som skyddar användare från exponering av sessioner samt säkra sökmotorer som skyddar mot läckage av sökdata.

Relaterad: Bästa privata sökmotorer som respekterar dina data

Som användare kan du också lita på autentiserare från tredje part som Google Authenticator eller dess alternativ för att verifiera din identitet via webben.

Även om du kanske känner dig hjälplös för att hindra en angripare från att kapa din session kan du ändå hjälpa till förhindra detta genom att se till att din webbläsare inte lagrar information som lösenord och annan inloggning detaljer.

Beef up Your Web Security

Utvecklare måste regelbundet testa webbappar för säkerhetsöverträdelser under utveckling och distribution.

Det är dock vanligt att införa andra sårbarheter när du försöker förhindra andra. Så var försiktig så att du inte har brutit mot andra säkerhetsparametrar när du försöker blockera en CSRF.

E-post
5 lösenordsverktyg för att skapa starka lösenfraser och uppdatera din säkerhet

Skapa ett starkt lösenord som du kommer ihåg senare. Använd dessa appar för att uppgradera din säkerhet med nya starka lösenord idag.

Relaterade ämnen
  • säkerhet
  • Onlinesäkerhet
Om författaren
Idowu Omisola (46 artiklar publicerade)

Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han är uttråkad, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.

Mer från Idowu Omisola

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.