Úvod do CSRF?

CSRF, XSRF alebo Cross Site Reference Forgery je typ útoku, ktorý sa vyskytne na webovej stránke, keď škodlivá webová stránka deleguje svoju žiadosť na inú webovú stránku alebo webovú aplikáciu, ktorá má autentizovaného používateľa. Pri tomto type útoku môže útočník pomocou autentifikovaného prehliadača obete pristupovať na web úplne alebo čiastočne.

Ako to funguje?

  • Funguje to iba vtedy, ak je potenciálna obeť overená.
  • Útočník môže vstúpiť na webovú stránku obchádzaním procesu autentifikácie pomocou útoku CSRF.
  • Útoky CSRF sa začínajú používať v situáciách, keď obeť s dodatočnými právami vykonáva určitú akciu a iní nemôžu mať prístup k týmto akciám. Napríklad online bankovníctvo.

Útok CSRF sa vykonáva v dvoch hlavných častiach

  • Prvým krokom je prilákanie používateľa / obete na kliknutie na odkaz alebo načítanie škodlivej stránky. Útočník používa sociálne inžinierstvo na oklamanie obete.
  • Druhým krokom je oklamať obeť zaslaním falšovanej žiadosti do prehliadača obete. Tento odkaz presmeruje legitímne vyzerajúce žiadosti na webovú stránku. Útočník bude mať hodnoty alebo podrobnosti od obete, ktorú musí hľadať, obeť by ju vyplnila, ak by žiadosť bola oprávnená. Útočník bude mať tiež podrobnosti o pridružených súboroch cookie s prehliadačom obete.

Kľúčové koncepcie CSRF

  • Útočník odošle škodlivé žiadosti na web, na ktorom používateľ navštívi útočníka, ktorý je presvedčený, že obeť je overená proti konkrétnemu webu.
  • Prehliadač obete je autentizovaný proti cieľovej stránke a používa sa na smerovanie škodlivých požiadaviek na cieľovú stránku.
  • Tu prehliadač obete alebo web s preventívnymi metódami CSRF, ktoré sú v ňom implementované, nie sú zraniteľné, hlavnou zraniteľnosťou je postihnutá webová stránka.

Ako možno zabrániť falšovaniu žiadostí medzi jednotlivými webmi (CSRF)?

Existuje niekoľko preventívnych metód CSRF, z ktorých je niekoľko:

  • Odhláste sa z webových aplikácií, zatiaľ čo na nich pracujete.
  • Zabezpečte svoje používateľské mená a heslá.
  • Nedovoľte prehliadačom zapamätať si heslo.
  • Počas práce v aplikácii a prihlásení do nej sa vyhýbajte prehľadávaniu.

Žetóny anti-CSRF

Najbežnejšou implementáciou na zastavenie falšovania krížových žiadostí (CSRF) je použitie tokenu, ktorý súvisí s vybraným používateľom a možno ho nájsť ako skrytý formulár v každom stave, dynamický formulár prítomný v online aplikácii.

1. Tento token, ktorý sa označuje ako token CSRF, funguje takto:

  • Klient požaduje stránku HTML, ktorá má formulár.
  • V odpovedi na túto požiadavku server pripojí dva tokeny. Jeden odošle ako súbor cookie a ostatné tokeny ponechá v poli formulára, ktoré je skryté. Tieto tokeny sa generujú náhodne.
  • Po odoslaní formulára klient odošle token späť na server. Token súboru cookie sa odosiela ako token a token formulára sa odosiela vo vnútri údajov formulára
  • Server neodpovedá alebo odmietne požiadavku, ak požiadavka nemá obidve požiadavky.

Útočník, ktorý sa pokúša vyhovieť žiadosti, bude musieť uhádnuť tokeny anti-CSRF spolu s autentifikačnými heslami používateľa. Tieto tokeny sa zneplatnia po určitom čase a po skončení relácie. Útočník tak uhádne token.

2. Súbory cookie rovnakej stránky

S pôvodom alebo webovou stránkou sú spojené niektoré súbory cookie a keď sa na tento konkrétny pôvod pošle žiadosť, odosielajú sa spolu s tým aj súbory cookie. Takéto žiadosti sa nazývajú žiadosti o krížový pôvod. Počas tohto procesu sa cookies posielajú tretím stranám, čo umožňuje útoky CSRF.

3. Atribút cookie rovnakej stránky

  • Aby ste predišli útokom CSRF, je možné použiť rovnaký atribút súboru cookie stránok. Zakáže použitie tretej strany pre konkrétny súbor cookie.
  • Robí to server pri nastavovaní cookies; potom požiada prehliadač, aby poslal súbor cookie iba vtedy, keď používateľ priamo používa webovú aplikáciu.
  • Ak sa niekto pokúsi niečo požiadať od webovej aplikácie, prehliadač súbor cookie neodošle.
  • Zabraňuje však útoku CSRF.

Toto má obmedzenie, súbory cookie rovnakej stránky nie sú v moderných prehliadačoch podporované, zatiaľ čo webové aplikácie, ktoré používajú súbory cookie rovnakej stránky, nie sú v starších prehliadačoch podporované.

Príklady CSRF

Ďalej uvádzame príklady CSRF:

1. Používanie žiadostí GET:

Predpokladajme, že ste implementovali a navrhli webovú stránku banking.com na vykonávanie akcií, ako sú napríklad online transakcie pomocou požiadaviek GET. Teraz môže inteligentný útočník, ktorý vie, ako vytvoriť škodlivú adresu URL, použiť prvok, aby prehliadač bezobslužne načítal stránku

Príklad prvku obrázka HTML obsahujúceho škodlivú adresu URL:

2. Jedna z techník uvedených nižšie sa môže použiť na to isté:

  • Odoslaním e-mailu s obsahom HTML
  • Vysadením skriptu alebo škodlivej adresy URL na stránkach, ktoré používateľ pravdepodobne navštívi pri online transakciách.

3. Používanie POST požiadaviek

O požiadavkách HTTP POST existuje všeobecná mylná predstava, že útokom CSRF možno zabrániť povolením HTTP POST požiadavkám, čo v skutočnosti nie je pravda. Útočník môže vytvoriť formulár pomocou HTML alebo JavaScript a pomocou funkcie automatického odoslania môže odoslať požiadavku POST bez toho, aby musel užívateľ kliknúť na tlačidlo odoslania.

záver

Súbory cookie sú zraniteľné, pretože sa odosielajú automaticky so žiadosťou, ktorá útočníkom umožňuje implementovať CSRF a odosielať škodlivé žiadosti. Účinok zraniteľnosti CSRF tiež závisí od privilégia obete, ktorej Cookie sa odosiela na žiadosť útočníka. Aj keď získavanie údajov nie je hlavným predmetom útoku CSRF, zmeny stavu budú mať určite nepriaznivý vplyv na zneužívanú webovú aplikáciu. Preto vám odporúčame zabrániť, aby vaše webové stránky používali preventívne metódy na ochranu svojich webových stránok pred CSRF.

Odporúčané články

Toto bol sprievodca tým, čo je CSRF. Tu sme diskutovali o Key Concept, Anti-CSRF Tokens, ako funguje a príklady CSRF. Ak sa chcete dozvedieť viac, môžete si tiež prečítať naše ďalšie navrhované články -

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

Kategórie: