Introducere în CSRF?

CSRF, XSRF sau Cross Site Reference Forgery este un tip de atac care are loc pe un site web atunci când un site web rău intenționat își delegă cererea către un alt site web sau aplicație web care are un utilizator autentificat. În acest tip de atac, folosind browserul autentificat al victimei, un atacator poate accesa site-ul complet sau parțial.

Cum functioneazã?

  • Funcționează numai în cazul în care victima potențială este autentificată.
  • Un atacator poate intra într-un site web ocolind procesul de autentificare folosind un atac CSRF.
  • Atacurile CSRF sunt utilizate în scenariile în care o victimă care are drepturi suplimentare efectuează unele acțiuni, iar altele nu pot accesa sau efectua aceste acțiuni. De exemplu, serviciile bancare online.

CSRF Attack este executat în două părți principale

  • Primul pas este de a atrage utilizatorul / victima să facă clic pe un link sau să încarce o pagină rău intenționată. Ingineria socială este folosită de atacator pentru a păcăli victima.
  • Al doilea pas este să păcăliți victima, trimițând o solicitare falsificată browserului victimei. Acest link va redirecționa cererile cu aspect legitim către un site web. Atacatorul va avea valorile sau detaliile de la victima pe care trebuie să le caute, o victimă ar fi completat-o ​​crezând că cererea este legitimă. Atacatorul va avea, de asemenea, detaliile cookie-urilor asociate cu browserul victimei.

Conceptele cheie ale CSRF

  • Un atacator trimite cereri rău intenționate pe un site în care utilizatorul vizitează un atacator consideră că victima este validată împotriva acelui anumit site.
  • Browserul victimei este autentificat pe site-ul țintă și este utilizat pentru a direcționa solicitările rău intenționate către site-ul vizat.
  • Aici, browserul unei victime sau un site cu metode de prevenire a CSRF implementate pe ea, nu sunt vulnerabile, un site web afectat este principala vulnerabilitate.

Cum poate fi prevenită falsificarea cererilor de tip inter-site (CSRF)?

Există o serie de metode de prevenire a CSRF, dintre care câteva sunt:

  • Deconectați-vă aplicațiile web în timp ce nu lucrați la acestea.
  • Asigurați-vă numele de utilizator și parolele.
  • Nu permiteți browserelor să-și amintească parola.
  • În timp ce lucrați într-o aplicație și vă conectați, evitați navigarea.

Jetoane anti-CSRF

Cea mai obișnuită implementare pentru a opri falsificarea cererii de site-uri (CSRF) este să folosești un jeton care este legat de un utilizator selectat și poate fi găsit ca o formă ascunsă în fiecare stare, formă dinamică prezentă în aplicația online.

1. Acest jeton denumit Token CSRF funcționează după cum urmează:

  • Clientul solicită o pagină HTML care are un formular.
  • În răspunsul acestei solicitări, serverul adaugă două jetoane. Acesta trimite unul ca cookie și păstrează alte jetoane într-un câmp de formular care este ascuns. Aceste jetoane sunt generate la întâmplare.
  • Clientul trimite ambele jetoane înapoi la server odată ce trimite formularul. Jetonul cookie este trimis ca un jeton și jetonul de formular este trimis în datele formularului
  • Serverul nu răspunde sau respinge cererea dacă o solicitare nu are ambele solicitări.

Acum, un atacator care încearcă să falsifice cererea va trebui să ghicească tokenurile anti-CSRF împreună cu parolele de autentificare ale utilizatorului. Aceste jetoane sunt invalidate după ceva timp și odată ce ședința a trecut. Acest lucru îl face pe atacator să ghicească jetonul.

2. Aceleași cookie-uri de site

Există unele cookie-uri asociate cu o origine sau un site web și atunci când o solicitare este trimisă la acea anumită origine, cookie-urile sunt trimise împreună cu acesta. Astfel de solicitări se numesc cereri de origine încrucișată. În timp ce acest proces, cookie-urile sunt trimise către terți, ceea ce face posibile atacurile CSRF.

3. Același atribut al cookie-urilor

  • Pentru a preveni atacurile CSRF, se poate utiliza același atribut cookie de site. Dezactivează utilizarea terților pentru un anumit cookie.
  • Este realizat de server în timp ce setează cookie-ul; atunci solicită browserului să trimită cookie-ul numai atunci când utilizatorul utilizează direct aplicația web.
  • Acum, dacă cineva încearcă să solicite ceva de la aplicația web, browserul nu va trimite cookie-ul.
  • Cu toate acestea, previne atacul CSRF.

Aceasta are o limitare, aceleași cookie-uri de site nu sunt acceptate în browserele moderne, în timp ce aplicațiile web care folosesc cookie-uri din același site nu sunt acceptate în browserele mai vechi.

Exemple de CSRF

Mai jos am explicat câteva exemple de CSRF:

1. Utilizarea cererilor GET:

Să presupunem că ați implementat și proiectat un site web, banking.com, pentru a efectua acțiuni, cum ar fi tranzacțiile online, folosind cererile GET. Acum, poate folosi un atacator inteligent care știe să creeze un URL rău intenționat element pentru a obține browserul încarcă în tăcere pagina

Exemplu de element de imagine HTML care conține o adresă URL dăunătoare:

2. O tehnică de mai jos poate fi folosită pentru a face același lucru:

  • Prin trimiterea unui e-mail cu conținut HTML
  • Prin plantarea unui script sau a unui URL rău intenționat în paginile pe care un utilizator este probabil să le viziteze în timp ce face tranzacții online.

3. Utilizarea cererilor POST

Există o concepție greșită generală cu privire la solicitările HTTP POST că atacurile CSRF pot fi prevenite prin a permite solicitările HTTP POST, ceea ce nu este adevărat. Atacatorul poate crea un formular folosind HTML sau JavaScript și poate folosi funcționalitatea de trimitere automată pentru a trimite solicitarea POST fără a solicita utilizatorului să facă clic pe butonul de trimitere.

Concluzie

Cookie-urile sunt vulnerabile, deoarece sunt trimise automat odată cu solicitarea, ceea ce permite atacatorilor să implementeze CSRF și să trimită solicitări rău intenționate. Efectul unei vulnerabilități CSRF depinde și de privilegiul victimei, al cărei Cookie este trimis odată cu solicitarea atacatorului. În timp ce preluarea datelor nu este obiectivul principal al unui atac CSRF, schimbările de stare vor avea cu siguranță un efect negativ asupra aplicației web care este exploatată. Așadar, se recomandă să împiedicați site-ul dvs. web să utilizeze metode preventive pentru a vă proteja site-ul împotriva CSRF.

Articole recomandate

Acesta a fost un ghid pentru ceea ce este CSRF. Aici am discutat Conceptul cheie, jetoane anti-CSRF, modul în care funcționează și exemplele de CSRF. De asemenea, puteți parcurge și celelalte articole sugerate pentru a afla mai multe -

  1. Ce este Java Hibernate?
  2. Ce este ASP.NET?
  3. Ce este AWS Lambda?
  4. Ce este XHTML?