Úvod do CSRF?

CSRF, XSRF nebo Cross Site Reference Forgery je typ útoku, ke kterému dochází na webu, když škodlivý web deleguje svou žádost na jiný web nebo webovou aplikaci, která má ověřeného uživatele. Při tomto typu útoku může útočník pomocí ověřeného prohlížeče oběti přistupovat na web zcela nebo částečně.

Jak to funguje?

  • Funguje to pouze v případě, že je potenciální oběť ověřena.
  • Útočník může vstoupit na web obejít proces autentizace pomocí útoku CSRF.
  • Útoky CSRF se používají, ve scénářích, kdy oběť s dalšími právy vykonává nějakou akci a jiní se k těmto akcím nemohou dostat ani je provést. Například online bankovnictví.

CSRF Attack se provádí ve dvou hlavních částech

  • Prvním krokem je přilákání uživatele / oběti k kliknutí na odkaz nebo načtení škodlivé stránky. Útočník používá sociální inženýrství k tomu, aby oběť podvedl.
  • Druhým krokem je oklamat oběť zasláním falešné žádosti do prohlížeče oběti. Tento odkaz přesměruje legitimně vypadající žádosti na web. Útočník bude mít hodnoty nebo podrobnosti od oběti, které musí hledat, oběť by ji vyplnila, pokud by žádost byla oprávněná. Útočník bude mít také podrobnosti o přidružených souborech cookie s prohlížečem oběti.

Klíčové koncepce CSRF

  • Útočník odešle škodlivé požadavky na web, na kterém uživatel navštěvuje útočníka, který se domnívá, že oběť je ověřena na tomto konkrétním webu.
  • Prohlížeč oběti je ověřen proti cílovému webu a používá se k směrování škodlivých požadavků na cílový web.
  • Prohlížeč oběti nebo web s preventivními metodami CSRF, které jsou na něm implementovány, nejsou zranitelné, ohrožený web je hlavní zranitelností.

Jak lze zabránit padělání žádostí napříč weby (CSRF)?

Existuje řada preventivních metod CSRF, několik z nich je:

  • Odhlaste se od webových aplikací, aniž byste na tom pracovali.
  • Zabezpečte svá uživatelská jména a hesla.
  • Nedovolte prohlížečům zapamatovat si heslo.
  • Při práci v aplikaci a přihlašování do ní se vyhněte procházení.

Žetony anti-CSRF

Nejběžnější implementací k zastavení padělání křížových požadavků (CSRF) je použití tokenu, který souvisí s vybraným uživatelem a lze jej najít jako skrytou formu v každém stavu, dynamickou formu přítomnou v online aplikaci.

1. Tento token označovaný jako token CSRF funguje takto:

  • Klient požaduje stránku HTML, která má formulář.
  • V odpovědi na tento požadavek server připojí dva tokeny. Jeden odešle jako cookie a uchová další tokeny v poli formuláře, které je skryto. Tyto tokeny jsou generovány náhodně.
  • Jakmile klient odešle formulář, odešle oba tokeny zpět na server. Token cookie je odeslán jako token a token formuláře je odeslán uvnitř dat formuláře
  • Server neodpovídá nebo odmítne požadavek, pokud požadavek nemá oba požadavky.

Útočník, který se snaží vyřídit žádost, bude nyní muset uhádnout tokeny anti-CSRF spolu s ověřovacími hesly uživatele. Tyto tokeny se zneplatní po nějaké době a po skončení relace. To útočník uhodne token.

2. Soubory cookie stejného webu

S původem nebo webovou stránkou jsou spojeny některé soubory cookie. Když je na tento konkrétní původ odeslán požadavek, jsou spolu s ním odesílány také soubory cookie. Takové žádosti se nazývají žádosti o křížový původ. Během tohoto procesu jsou soubory cookie zasílány třetím stranám, což umožňuje útoky CSRF.

3. Atribut stejného souboru cookie webu

  • Chcete-li zabránit útokům CSRF, lze použít stejný atribut souboru cookie webu. Zakáže použití třetí strany pro konkrétní soubor cookie.
  • To se provádí serverem při nastavování cookie; potom požádá prohlížeč, aby poslal soubor cookie, pouze pokud uživatel přímo používá webovou aplikaci.
  • Pokud se nyní někdo pokusí o něco požádat z webové aplikace, prohlížeč soubor cookie neodešle.
  • Zabraňuje však útoku CSRF.

To má omezení. Soubory cookie stejného webu nejsou v moderních prohlížečích podporovány, zatímco webové aplikace využívající soubory cookie stejného webu nejsou ve starších prohlížečích podporovány.

Příklady CSRF

Níže jsme vysvětlili některé příklady CSRF:

1. Použití požadavků GET:

Předpokládejme, že jste implementovali a navrhli web, banking.com, k provádění akcí, jako jsou online transakce pomocí požadavků GET. Nyní může chytrý útočník, který ví, jak vytvořit škodlivou adresu URL, použít prvek, aby prohlížeč bezobslužně načíst stránku

Příklad prvku obrázku HTML obsahujícího škodlivou adresu URL:

2. K provedení stejného postupu lze použít jednu z níže uvedených technik:

  • Odesláním e-mailu s obsahem HTML
  • Umístěním skriptu nebo škodlivé adresy URL na stránky, které uživatel pravděpodobně navštíví při provádění online transakcí.

3. Použití POST požadavků

Ohledně požadavků HTTP POST existuje obecná mylná představa, že útokům CSRF lze zabránit povolením požadavků HTTP POST, což ve skutečnosti není pravda. Útočník může vytvořit formulář pomocí HTML nebo JavaScriptu a použít funkci automatického odeslání k odeslání požadavku POST bez nutnosti, aby uživatel klikl na tlačítko Odeslat.

Závěr

Cookies jsou zranitelné, protože jsou zasílány automaticky s požadavkem, což útočníkům umožňuje implementovat CSRF a odesílat škodlivé požadavky. Účinek zranitelnosti CSRF také závisí na privilegiu oběti, jejíž Cookie je odeslán na žádost útočníka. Zatímco získávání dat není hlavním předmětem útoku CSRF, změny stavu budou mít nepochybně nepříznivý dopad na zneužívanou webovou aplikaci. Doporučuje se proto zabránit tomu, aby váš web používal preventivní metody k zabezpečení svého webu před CSRF.

Doporučené články

Toto byl průvodce tím, co je CSRF. Zde jsme diskutovali o Key Concept, Anti-CSRF Tokens, jak jeho práce a příklady CSRF. Další informace naleznete také v našich dalších doporučených článcích -

  1. Co je to Java Hibernate?
  2. Co je ASP.NET?
  3. Co je AWS Lambda?
  4. Co je to XHTML?

Kategorie: