Cross-Site Request Forgery (CSRF) je jedním z nejstarších způsobů zneužití zranitelnosti webových stránek. Zaměřuje se na webové přepínače na straně serveru, které obvykle vyžadují ověření, jako je přihlášení. Během útoku CSRF má útočník za cíl přinutit svou oběť, aby jejím jménem podala neoprávněný a škodlivý webový požadavek.

Mezi běžné příčiny úspěšného útoku CSRF patří slabé nebo špatné postupy zabezpečení webových stránek a nedbalost na cestě uživatele.

Pojďme se podívat na to, co je útok CSRF, a na možné způsoby, jak se mu můžete zabránit jako vývojář nebo jako uživatel.

Jak na vás mají dopad CSRF útoky?

CSRF je útok používaný k implementaci neoprávněných požadavků během akcí na webu, které vyžadují přihlášení nebo ověření uživatele. Útoky CSRF mohou využít ID relace, soubory cookie a další zranitelnosti na bázi serveru k odcizení pověření uživatele.

Například povolení postupů anti-CSRF zabrání škodlivým interakcím mezi doménami.

Jakmile se tato bariéra prolomí, může útočník rychle využít ID relace uživatele prostřednictvím souborů cookie vytvořených prohlížečem uživatele a vložit značku skriptu na zranitelný web.

instagram viewer

Manipulací s ID může útočník také přesměrovat návštěvníky na jinou webovou stránku nebo zneužít metody sociálního inženýrství jako e-mail k odeslání odkazů a povzbuzení oběti ke stažení škodlivého softwaru.

Co je sociální inženýrství? Zde je návod, jak vás může napadnout hacker

Zjistěte, jak vás může sociální inženýrství ovlivnit, plus běžné příklady, které vám pomohou tyto schémata identifikovat a zůstat v bezpečí.

Jakmile oběť takové akce provede, odešle požadavek HTTP na stránku služby uživatele a autorizuje akci požadavku ve prospěch útočníka. To může být pro nic netušícího uživatele zničující.

Úspěšný útok CSRF může způsobit, že oprávnění uživatelé ztratí svá přístupová pověření k útočníkovi, zejména při akcích na serveru, jako jsou žádosti o změnu hesla nebo uživatelského jména. V horších scénářích převezme útočník celou relaci a jedná jménem uživatelů.

CSRF se používá k únosu transakcí přes web, jakož i ke změně uživatelských jmen a hesel, což vede ke ztrátě přístupu uživatelů k příslušné službě.

Jak útočníci unesou vaše relace pomocí CSRF: Příklady

Hlavními cíli útoků CSRF jsou webové akce zahrnující ověření uživatele. Aby byl úspěšný, potřebuje oběť neúmyslné akce.

Během útoku CSRF jsou hlavními cíli útočníka akce GET, DELETE a PUT, stejně jako zranitelné požadavky POST.

Pojďme se podívat na význam těchto pojmů:

  • DOSTAT: Žádost o shromáždění výsledku z databáze; například vyhledávání Google.
  • POŠTA: Obvykle pro odesílání žádostí prostřednictvím webových formulářů. Požadavek POST je běžný během registrace nebo přihlášení uživatele, jinak se mu říká autentizace.
  • VYMAZAT: Odebrání prostředku z databáze. Uděláte to vždy, když odstraníte svůj účet z konkrétní webové služby.
  • DÁT: Požadavek PUT upravuje nebo aktualizuje existující prostředek. Příkladem je změna jména na Facebooku.

V praxi útočníci používají únos relace k zálohování útoku CSRF. Při použití této kombinace může útočník pomocí únosu změnit IP adresu oběti.

Změna IP adresy poté oběť přihlásí na nový web, kam útočník vložil podvodný odkaz, který odešle replikovaný formulář nebo upravený požadavek serveru, který vytvořil prostřednictvím CSRF.

Nic netušící uživatel si pak myslí, že přesměrování pochází od poskytovatele služeb a klikne na odkaz na webové stránce útočníka. Jakmile to udělají, hackeři odešlou formulář o načtení stránky bez jejich vědomí.

Příklad útoku CSRF s požadavkem GET

Představte si, že se pokoušíte provést online platbu prostřednictvím nezabezpečené platformy elektronického obchodování. Vlastníci platformy používají ke zpracování vaší transakce požadavek GET. Ten dotaz GET může vypadat takto:

https://websiteurl/pay? částka = 10 $ & společnost = [účet společnosti ABC]

Únosce může snadno ukrást vaši transakci změnou parametrů požadavku GET. K tomu stačí jen vyměnit vaše jméno za své, a co je horší, změnit částku, kterou chcete zaplatit. Poté vyladí původní dotaz na něco takového:

https://websiteurl/pay? částka = 20000 $ a společnost = [účet útočníka]

Jakmile kliknete na odkaz na tento upravený požadavek GET, skončíte s neúmyslným převodem na účet útočníka.

Transakce prostřednictvím požadavků GET jsou špatnou praxí a činí aktivity zranitelnými vůči útokům.

Příklad útoku CSRF s požadavkem POST

Mnoho vývojářů se však domnívá, že použití požadavku POST je bezpečnější pro provádění webových transakcí. I když je to pravda, bohužel požadavek POST je citlivý i na útoky CSRF.

K úspěšnému únosu požadavku POST potřebuje útočník pouze vaše aktuální ID relace, některé replikované neviditelné formy a někdy trochu sociálního inženýrství.

Například formulář žádosti POST může vypadat takto:







Útočník však může vyměnit vaše přihlašovací údaje vytvořením nové stránky a úpravou výše uvedeného formuláře na toto:









V manipulované formě útočník nastaví hodnotu pole částky na „30000“, zamění číslo účtu příjemce, odešle formulář při načtení stránky a také skryje pole formuláře uživatel.

Jakmile tuto aktuální relaci unesou, vaše transakční stránka zahájí přesměrování na stránku útočníka, což vás vyzve ke kliknutí na odkaz, o kterém vědí, že ho s největší pravděpodobností navštívíte.

Kliknutím na toto načtete odeslání replikovaného formuláře, který převede vaše prostředky na účet útočníka. To znamená, že k provedení transakce nemusíte klikat na tlačítka jako „odeslat“, protože JavaScript to provede automaticky po načtení další webové stránky.

Útočník může také navrhnout e-mail s vloženým HTML, který vás vyzve ke kliknutí na odkaz a provedení stejného odeslání formuláře pro načtení stránky.

Další akcí, která je zranitelná vůči útoku CSRF, je uživatelské jméno nebo změna hesla, příklad požadavku PUT. Útočník replikuje váš formulář žádosti a nahradí vaši e-mailovou adresu jejich.

Poté ukradnou vaši relaci a buď vás přesměrují na stránku, nebo vám pošlou e-mail s výzvou ke kliknutí na lákavý odkaz.

To pak odešle manipulovaný formulář, který odešle odkaz na resetování hesla na e-mailovou adresu hackera místo vaší. Tímto způsobem hacker změní vaše heslo a odhlásí vás z vašeho účtu.

Jak zabránit vývojářům útokům CSRF

Jednou z nejlepších metod, jak zabránit CSRF, je použití často se měnících tokenů namísto v závislosti na cookies relace pro spuštění změny stavu na serveru.

Příbuzný: Bezplatní průvodci pro pochopení digitálního zabezpečení a ochranu vašeho soukromí

Mnoho moderních backendových frameworků nabízí zabezpečení proti CSRF. Pokud se tedy chcete vyhnout technickým možnostem posílení proti CSRF sami, můžete to snadno vyřešit pomocí rámců na straně serveru, které přicházejí s integrovanými tokeny proti CSRF.

Při použití tokenu anti-CSRF generují požadavky na serveru namísto statičtějších souborů cookie zranitelných relací náhodné řetězce. Tímto způsobem ochráníte relaci před únoscem.

Implementace systému dvoufaktorového ověřování (2FA) pro spouštění transakcí ve vaší webové aplikaci také snižuje šance na CSRF.

Je možné zahájit CSRF pomocí skriptování mezi weby (XSS), které zahrnuje vkládání skriptů do polí uživatelů, jako jsou formuláře komentářů. Aby se tomu zabránilo, je dobré povolit automatický únik HTML ve všech polích formulářů uživatelů na vašem webu. Tato akce zabrání polím formulářů interpretovat prvky HTML.

Jak zabránit útokům CSRF jako uživatel

Jako uživatel webové služby, která zahrnuje ověřování, máte roli při prevenci útočníků v krádeži vašich pověření a relací také prostřednictvím CSRF.

Ujistěte se, že používáte důvěryhodné webové služby během aktivit, které zahrnují převod prostředků.

Kromě toho použijte zabezpečené webové prohlížeče které chrání uživatele před vystavením relace, stejně jako zabezpečené vyhledávače, které chrání před úniky dat z vyhledávání.

Příbuzný: Nejlepší soukromé vyhledávače, které respektují vaše data

Jako uživatel se můžete také spolehnout na autentizátory třetích stran, jako je Google Authenticator nebo jeho alternativy pro ověření vaší identity přes web.

I když se můžete cítit bezmocní, abyste zabránili útočníkovi v únosu vaší relace, stále můžete pomoci zabraňte tomu tím, že zajistíte, aby váš prohlížeč neukládal informace, jako jsou hesla a další přihlašovací údaje podrobnosti.

Posilte své zabezpečení webu

Vývojáři musí během testování a nasazování pravidelně testovat narušení zabezpečení webových aplikací.

Je však běžné zavádět další chyby zabezpečení a zároveň se snažit zabránit ostatním. Při pokusu o blokování CSRF tedy buďte opatrní, abyste neporušili další parametry zabezpečení.

E-mailem
5 nástrojů pro heslo k vytvoření silných přístupových frází a aktualizaci zabezpečení

Vytvořte silné heslo, které si později zapamatujete. Pomocí těchto aplikací můžete dnes vylepšit zabezpečení novými silnými hesly.

Související témata
  • Bezpečnostní
  • Zabezpečení online
O autorovi
Idowu Omisola (Publikováno 46 článků)

Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas vybočuje z rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.