Mi az a webhelyek közötti kérelem-hamisítás?

A CSRF vagy Cross-Site Request Forgery egy olyan webhely-sebezhetőség, ahol a támadó műveletet idézhet elő az áldozat munkamenetében egy másik webhelyen. Az egyik dolog, ami miatt a CSRF olyan nagy kockázatot jelent, az az, hogy nem is igényel felhasználói beavatkozást, mindössze annyi kell, hogy az áldozat megtekintsen egy olyan weboldalt, amelyen az exploit található.

Tipp: A CSRF-t általában betűről betűre vagy „tengeri szörf”-ként ejtik.

Hogyan működik a CSRF támadás?

A támadás során a támadó olyan webhelyet hoz létre, amely egy másik webhelyen kérelmezhető. Ez felhasználói beavatkozást igényelhet, például egy gomb megnyomására, de az is előfordulhat, hogy nincs interakció. A JavaScriptben vannak módok egy művelet automatikus végrehajtására. Például egy nulláról nullára képpontos kép nem lesz látható a felhasználó számára, de beállítható úgy, hogy az „src” kérést küldjön egy másik webhelynek.

A JavaScript egy kliensoldali nyelv, ami azt jelenti, hogy a JavaScript kód a böngészőben fut, nem pedig a webszerveren. Ennek a ténynek köszönhetően a CSRF-kérést küldő számítógép valójában az áldozaté. Sajnos ez azt jelenti, hogy a kérés a felhasználó összes jogosultságával történik. Miután a támadó webhely becsapta az áldozatot a CSRF-kérelem benyújtására, a kérés lényegében megkülönböztethetetlen a szokásos kérést benyújtó felhasználótól.

A CSRF egy példa a webböngésző elleni „zavart helyettes támadásra”, mivel a böngészőt egy ilyen jogosultsággal nem rendelkező támadó ráveszi az engedélyek használatára. Ezek az engedélyek a munkamenet és a hitelesítési tokenek a cél webhelyhez. Böngészője automatikusan tartalmazza ezeket az adatokat minden kérésben.

A CSRF-támadások megszervezése meglehetősen bonyolult. Először is, a célwebhelynek rendelkeznie kell egy olyan űrlappal vagy URL-lel, amely mellékhatásokkal jár, például a fiók törlésével. A támadónak ezután egy kérést kell létrehoznia a kívánt művelet végrehajtásához. Végül a támadónak rá kell vennie az áldozatot, hogy töltsön be egy weboldalt a kizsákmányolással, miközben be van jelentkezve a célwebhelyre.

A CSRF-problémák megelőzése érdekében a legjobb, amit tehet, ha beilleszt egy CSRF-jogkivonatot. A CSRF-token egy véletlenszerűen generált karakterlánc, amely cookie-ként van beállítva, és az értéket minden válaszban szerepeltetni kell egy kérésfejléc mellett, amely tartalmazza az értéket. Míg a CSRF-támadások tartalmazhatják a cookie-t, a fejléc beállításához nem lehet meghatározni a CSRF-token értékét, így a támadás elutasításra kerül.