Cross-Site Request Forgery (CSRF) este una dintre cele mai vechi modalități de exploatare a vulnerabilităților unui site web. Se adresează comutatoarelor web de pe server care necesită de obicei autentificări precum conectarea. În timpul unui atac CSRF, un atacator își propune să-și forțeze victima să facă o cerere web neautorizată și rău intenționată în numele lor.
Practicile de securitate a site-urilor web slabe sau slabe și neglijența pe calea utilizatorului sunt câteva dintre cauzele comune ale unui atac CSRF de succes.
Să ne uităm la ce este un atac CSRF și la modalitățile posibile prin care vă puteți preveni de la acesta ca dezvoltator sau ca utilizator.
Cum vă afectează atacurile CSRF?
Un CSRF este un atac folosit pentru a implementa cereri neautorizate în timpul acțiunilor web care necesită autentificare sau autentificare de utilizator. Atacurile CSRF pot profita de ID-uri de sesiune, cookie-uri, precum și de alte vulnerabilități bazate pe server pentru a fura acreditările unui utilizator.
De exemplu, activarea procedurilor anti-CSRF previne interacțiunile rău intenționate între domenii.
Odată ce bariera se rupe, un atacator poate profita rapid de ID-ul sesiunii utilizatorului prin intermediul cookie-urilor create de browserul utilizatorului și poate încorpora o etichetă de script în site-ul vulnerabil.
Prin manipularea unui ID, atacatorul poate redirecționa vizitatorii către o altă pagină web sau poate exploata metode de inginerie socială cum ar fi e-mail pentru a trimite link-uri, încurajând victima să descarce programe malware
Aflați cum vă poate afecta ingineria socială, plus exemple obișnuite pentru a vă ajuta să identificați și să vă feriți de aceste scheme.
Odată ce victima efectuează astfel de acțiuni, trimite o solicitare HTTP către pagina de servicii a utilizatorului și autorizează acțiunea de solicitare în favoarea atacatorului. Acest lucru poate fi devastator pentru un utilizator nebănuit.
Un atac CSRF reușit poate face ca utilizatorii autorizați să își piardă acreditările de acces către un atacator, în special în timpul acțiunilor bazate pe server, cum ar fi cererile de modificare a parolei sau a numelui de utilizator. În scenarii mai rele, atacatorul preia întreaga sesiune și acționează în numele utilizatorilor.
CSRF a fost folosit pentru a deturna tranzacțiile de fonduri pe internet, precum și pentru a schimba numele de utilizator și parolele, ceea ce duce la pierderea accesului utilizatorilor la serviciul afectat.
Cum atacatorii vă deturnează sesiunile cu CSRF: exemple
Principalele ținte pentru atacurile CSRF sunt acțiunile web care implică autentificarea unui utilizator. Pentru a avea succes, are nevoie de acțiuni neintenționate din partea victimei.
În timpul unui atac CSRF, acțiunile GET, DELETE și PUT, precum și solicitările POST vulnerabile sunt principalele ținte ale unui atacator.
Să ne uităm la semnificația acestor termeni:
- OBȚINE: O cerere de colectare a unui rezultat din baza de date; de exemplu, căutare Google.
- POST: De obicei pentru trimiterea cererilor prin intermediul formularelor web. O cerere POST este obișnuită în timpul înregistrării sau autentificării unui utilizator, cunoscută și sub numele de autentificare.
- ȘTERGE: Pentru a elimina o resursă din baza de date. Faceți acest lucru ori de câte ori vă ștergeți contul dintr-un anumit serviciu web.
- A PUNE: O cerere PUT modifică sau actualizează o resursă existentă. Un exemplu este schimbându-vă numele de Facebook.
În practică, atacatorii folosesc deturnarea de sesiune pentru a sprijini un atac CSRF. Atunci când folosește această combinație, atacatorul poate folosi un hijack pentru a schimba adresa IP a victimei.
Schimbarea adresei IP face apoi conectarea victimei la un nou site web unde atacatorul a inserat un link înșelător care trimite un formular replicat sau o cerere de server modificată pe care au creat-o prin CSRF.
Un utilizator nebănuit crede că redirecționarea provine de la furnizorul de servicii și face clic pe linkul de pe pagina web a atacatorului. După ce au făcut acest lucru, hackerii trimit un formular de încărcare a paginii fără știrea lor.
Exemplu de atac GET Request CSRF
Imaginați-vă că încercați să efectuați o plată online printr-o platformă de comerț electronic nesecurizată. Proprietarii platformei folosesc solicitarea GET pentru a procesa tranzacția dvs. Această interogare GET ar putea arăta astfel:
https://websiteurl/pay? suma = 10 USD & compania = [contul companiei ABC]
Un pirat vă poate fura tranzacția cu ușurință modificând parametrii cererii GET. Pentru a face acest lucru, tot ce trebuie să facă este să vă schimbe numele cu al lor și, mai rău, să schimbați suma pe care intenționați să o plătiți. Apoi, modifică interogarea inițială cu așa ceva:
https://websiteurl/pay? sumă = 20000 $ & companie = [contul atacatorului]
După ce faceți clic pe un link către acea solicitare GET modificată, ajungeți să efectuați un transfer neintenționat în contul atacatorului.
Tranzacționarea prin cereri GET este o practică proastă și face activitățile vulnerabile la atacuri.
Exemplu de atac POST Request CSRF
Cu toate acestea, mulți dezvoltatori cred că utilizarea cererii POST este mai sigură pentru efectuarea de tranzacții web. Deși este adevărat, din păcate, o cerere POST este susceptibilă și la atacurile CSRF.
Pentru a deturna cu succes o solicitare POST, tot ce are nevoie un atacator sunt ID-ul curent al sesiunii, unele forme invizibile replicate și, uneori, puțină inginerie socială.
De exemplu, un formular de solicitare POST ar putea arăta astfel:
Cu toate acestea, un atacator vă poate schimba acreditările făcând o nouă pagină și modificând formularul de mai sus în aceasta:
În forma manipulată, atacatorul setează valoarea câmpului de sumă la „30000”, schimbă numărul contului destinatarului către al lor, trimite formularul la încărcarea paginii și, de asemenea, ascunde câmpurile formularului utilizatorul.
Odată ce deturnează acea sesiune curentă, pagina dvs. de tranzacție inițiază o redirecționare către pagina atacatorului, care vă solicită să faceți clic pe un link pe care știu că sunteți cel mai probabil să-l vizitați.
Dând clic pe aceasta, se încarcă trimiterea formularului replicat, care vă transferă fondurile în contul atacatorului. Aceasta înseamnă că nu trebuie să faceți clic pe butoane precum „trimiteți” pentru ca tranzacția să aibă loc, deoarece JavaScript face acest lucru automat la încărcarea următoarei pagini web.
Alternativ, un atacator poate, de asemenea, să redacteze un e-mail încorporat în HTML care vă solicită să faceți clic pe un link pentru a efectua aceeași trimitere a formularului de încărcare a paginii.
O altă acțiune vulnerabilă la un atac CSRF este un nume de utilizator sau o modificare a parolei, un exemplu de cerere PUT. Un atacator îți reproduce formularul de solicitare și îți înlocuiește adresa de e-mail cu a lor.
Apoi vă fură sesiunea și fie vă redirecționează către o pagină, fie vă trimit un e-mail care vă solicită să faceți clic pe un link atrăgător.
Apoi, acesta trimite un formular manipulat care trimite linkul de resetare a parolei la adresa de e-mail a hackerului, în locul celei dvs. În acest fel, hackerul îți modifică parola și te deconectează din cont.
Cum să preveniți atacurile CSRF ca dezvoltator
Una dintre cele mai bune metode pentru a preveni un CSRF este de a folosi jetoane care se schimbă frecvent în loc să depindă de cookie-urile de sesiune pentru a rula o modificare de stare pe server.
Legate de: Ghiduri gratuite pentru a înțelege securitatea digitală și a vă proteja confidențialitatea
Multe cadre de backend moderne oferă securitate împotriva CSRF. Deci, dacă doriți să evitați singur tehnicile de consolidare împotriva CSRF, îl puteți aborda cu ușurință utilizând cadre de pe partea serverului care vin cu jetoane anti-CSRF încorporate.
Când utilizați un jeton anti-CSRF, cererile bazate pe server generează șiruri aleatorii în locul cookie-urilor de sesiune vulnerabile mai statice. În acest fel, veți putea să vă protejați sesiunea de a fi ghicit de către hijacker.
Implementarea unui sistem de autentificare cu doi factori (2FA) pentru executarea tranzacțiilor pe aplicația dvs. web reduce, de asemenea, șansele unui CSRF.
Este posibil să inițiați un CSRF prin intermediul cross-site scripting (XSS), care implică injectarea de scripturi în câmpurile utilizatorului, cum ar fi formularele de comentarii. Pentru a preveni acest lucru, este o bună practică să activați auto-escape HTML în toate câmpurile de formular de utilizator de pe site-ul dvs. web. Această acțiune împiedică câmpurile de formular să interpreteze elemente HTML.
Cum să preveniți atacurile CSRF ca utilizator
În calitate de utilizator al unui serviciu web care implică autentificare, aveți un rol de jucat în prevenirea atacatorilor de a vă fura acreditările și sesiunile prin CSRF.
Asigurați-vă că utilizați servicii web de încredere în timpul activităților care implică transfer de fonduri.
În plus față de aceasta, utilizați browsere web sigure care protejează utilizatorii de expunerea la sesiune, precum și motoare de căutare sigure care protejează împotriva scurgerilor de date de căutare.
Legate de: Cele mai bune motoare de căutare private care vă respectă datele
Ca utilizator, puteți depinde și de autentificatori terți, cum ar fi Google Authenticator sau alternativele sale pentru verificarea identității dvs. pe web.
Deși s-ar putea să vă simțiți neajutorat pentru a opri un atacator să vă deturneze sesiunea, totuși vă puteți ajuta preveniți acest lucru asigurându-vă că browserul dvs. nu stochează informații precum parole și alte date de conectare Detalii.
Consolidați-vă securitatea web
Dezvoltatorii trebuie să testeze în mod regulat aplicațiile web pentru încălcări ale securității în timpul dezvoltării și implementării.
Cu toate acestea, este obișnuit să se introducă alte vulnerabilități în timp ce se încearcă prevenirea altora. Deci, aveți grijă să vă asigurați că nu ați încălcat alți parametri de securitate în timp ce încercați să blocați un CSRF.
Creați o parolă puternică pe care să o puteți aminti mai târziu. Folosiți aceste aplicații pentru a vă actualiza securitatea cu noi parole puternice astăzi.
- Securitate
- Securitate online
Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.