Johdanto CSRF: ään?

CSRF-, XSRF- tai Cross Site Reference väärentäminen on tyyppinen hyökkäys, joka tapahtuu verkkosivustossa, kun haitallinen verkkosivusto siirtää pyyntönsä toiselle verkkosivustolle tai verkkosovellukselle, jolla on todennettu käyttäjä. Tämän tyyppisessä hyökkäyksessä hyökkääjä voi käyttää uhrin todennettua selainta verkkosivustolle kokonaan tai osittain.

Kuinka se toimii?

  • Se toimii vain, jos potentiaalinen uhri on todennettu.
  • Hyökkääjä voi päästä verkkosivustoon ohittamalla todennusprosessin CSRF-hyökkäyksen avulla.
  • CSRF-hyökkäykset otetaan käyttöön tilanteissa, joissa uhrilla, joilla on lisäoikeuksia, suoritetaan jokin toimenpide ja toiset eivät pääse näihin toimiin tai suorita niitä. Esimerkiksi verkkopankki.

CSRF Attack suoritetaan kahdessa pääosassa

  • Ensimmäinen askel on houkutella käyttäjä / uhri napsauttamaan linkkiä tai lataamaan haitallista sivua. Hyökkääjä käyttää sosiaalista tekniikkaa huijaamaan uhria.
  • Toinen vaihe on huijata uhri lähettämällä väärennetty pyyntö uhrin selaimeen. Tämä linkki ohjaa laillisen näköisen pyynnöt verkkosivustolle. Hyökkääjällä on uhrin arvoja tai tietoja, joita hänen on etsittävä, uhri olisi täyttänyt sen ajatellen pyynnön olevan laillinen. Hyökkääjällä on myös tiedot uhrin selaimeen liittyvistä evästeistä.

CSRF: n keskeiset käsitteet

  • Hyökkääjä lähettää haitalliset pyynnöt sivustoon, jolla käyttäjä vierailee hyökkääjässä uskoo, että uhri on validoitu kyseistä sivustoa vastaan.
  • Uhrin selain on todennettu kohdesivustolle ja sitä käytetään haitallisten pyyntöjen reitittämiseen kohdesivustoon.
  • Uhrin selain tai sivusto, jolla on toteutettu CSRF: n ennaltaehkäiseviä menetelmiä, eivät ole haavoittuvia, kärsivä verkkosivusto on tärkein haavoittuvuus.

Kuinka voidaan estää sivustojen välinen väärentäminen (CSRF)?

CSRF: n ennaltaehkäiseviä menetelmiä on useita, joista harvoja ovat:

  • Kirjaudu ulos verkkosovelluksista, kun et työskentele sen kanssa.
  • Suojaa käyttäjätunnuksesi ja salasanasi.
  • Älä anna selainten muistaa salasanaa.
  • Vältä selaamista, kun työskentelet sovelluksessa ja olet kirjautunut siihen.

Anti-CSRF-tokenit

Yleisin toteutus sivustojen välisen pyynnön väärentämisen (CSRF) lopettamiseksi on käyttää valittuun käyttäjään liittyvää tunnusta, joka voidaan löytää piilotettuna muodossa jokaisessa online-sovelluksen tilassa olevassa dynaamisessa muodossa.

1. Tämä tunnus, jota kutsutaan CSRF-tokeniksi, toimii seuraavasti:

  • Asiakas pyytää HTML-sivua, jolla on muoto.
  • Palvelin liittää vastaukseen pyyntöön kaksi tunnusta. Se lähettää yhden evästeenä ja pitää muita merkkejä piilotetussa lomakekentässä. Nämä tunnukset luodaan satunnaisesti.
  • Asiakas lähettää molemmat tunnuksen takaisin palvelimelle, kun hän lähettää lomakkeen. Evästeetunnus lähetetään merkkinä ja lomakemerkki lähetetään lomaketietojen sisällä
  • Palvelin ei vastaa tai hylkää pyynnön, jos pyynnössä ei ole molempia pyyntöjä.

Nyt hyökkääjän, joka yrittää väärentää pyyntöä, on arvattava anti-CSRF-tunnukset yhdessä käyttäjän todennussalasanojen kanssa. Nämä rahakkeet mitätöidään jonkin ajan kuluttua ja kun istunto on ohi. Tämä tekee hyökkääjästä arvaamaan merkinnän kovaksi.

2. Samat sivuston evästeet

Alkuperäiseen tai verkkosivustoon liittyy joitain evästeitä, ja kun pyyntö lähetetään kyseiselle alkuperälle, evästeet lähetetään sen mukana. Tällaisia ​​pyyntöjä kutsutaan alkuperälähetyspyyntöiksi. Tämän prosessin aikana evästeet lähetetään kolmansille osapuolille, mikä tekee CSRF-hyökkäyksistä mahdollisia.

3. Sama sivuston evästemääritys

  • CSRF-hyökkäysten estämiseksi voidaan käyttää samaa sivuston evästemääritteitä. Se estää kolmannen osapuolen käytön tietylle evästeelle.
  • Palvelin suorittaa sen evästettä asettaessa; sitten se pyytää selainta lähettämään evästeen vain, kun käyttäjä käyttää suoraan verkkosovellusta.
  • Jos joku yrittää nyt pyytää jotain verkkosovelluksesta, selain ei lähetä evästettä.
  • Kuitenkin estää CSRF-hyökkäyksen.

Tällä on rajoitus, samojen verkkosivustojen evästeitä ei tueta nykyaikaisissa selaimissa, kun taas vanhemmissa selaimissa ei tueta verkkosivustoja, jotka käyttävät saman sivuston evästeitä.

Esimerkkejä CSRF: stä

Alla olemme selittäneet joitain esimerkkejä CSRF: stä:

1. GET-pyyntöjen käyttäminen:

Oletetaan, että olet ottanut käyttöön ja suunnitellut verkkosivun, banking.com, suorittamaan esimerkiksi verkkotapahtumia käyttäviä toimia GET-pyyntöjen avulla. Nyt älykäs hyökkääjä, joka osaa käsitellä haitallista URL-osoitetta, voi käyttää elementti saadaksesi selaimen lataamaan sivun hiljaa

Esimerkki HTML-kuvaelementistä, joka sisältää haitallisen URL: n:

2. Yhtä seuraavista tekniikoista voidaan käyttää tekemään sama:

  • Lähettämällä HTML-sisältöä sisältävä sähköposti
  • Istuttamalla komentosarja tai haitallista URL-osoitetta sivuille, joissa käyttäjä todennäköisesti vierailee suorittaessaan verkkotapahtumia.

3. POST-pyyntöjen käyttäminen

HTTP POST -pyynnöistä on yleinen väärinkäsitys, että CSRF-hyökkäykset voidaan estää sallimalla HTTP POST -pyynnöt, mikä ei oikeastaan ​​ole totta. Hyökkääjä voi luoda lomakkeen HTML: n tai JavaScriptin avulla ja käyttää automaattisen lähetystoiminnon avulla POST-pyynnön lähettämistä ilman, että käyttäjän tarvitsee napsauttaa lähetä-painiketta.

johtopäätös

Evästeet ovat haavoittuvia, koska ne lähetetään automaattisesti pyynnön mukana, mikä antaa hyökkääjille mahdollisuuden toteuttaa CSRF ja lähettää haitallisia pyyntöjä. CSRF-haavoittuvuuden vaikutus riippuu myös uhrin oikeuksista, jonka eväste lähetetään hyökkääjän pyynnöllä. Vaikka tietojen haku ei ole CSRF-hyökkäyksen pääalue, tilamuutoksilla on varmasti kielteisiä vaikutuksia hyväksikäytettävään verkkosovellukseen. Joten on suositeltavaa estää verkkosivustosi käyttämästä ennaltaehkäiseviä menetelmiä verkkosivustosi suojaamiseksi CSRF: ltä.

Suositellut artikkelit

Tämä on opas siihen, mikä on CSRF. Tässä keskustelimme avainkonseptista, anti-CSRF-tokeneista, miten sen toiminta ja esimerkkejä CSRF: stä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Mikä on Java Hibernate?
  2. Mikä on ASP.NET?
  3. Mikä on AWS Lambda?
  4. Mikä on XHTML?