Cross-site-ul cerere de fals - o mulțime de zgomot din cauza nimic

gordey @ ptsecurity com

Lipsa lirică

În primul rând, aș dori să mă axez pe principalele concepții greșite legate de CSRF:

1. Falsificarea cererilor HTTP - un nou tip de vulnerabilități.







2. CSRF este o versiune scripting (XSS).

3. Vulnerabilitatea CSRF nu este larg răspândită și este destul de dificil de utilizat.

Datele obținute de tehnologiile pozitive în timpul testelor de penetrare și evaluare a securității aplicațiilor Web arată că această vulnerabilitate afectează majoritatea aplicațiilor Web. Spre deosebire de alte vulnerabilități, CSRF nu apare din erorile de programare, ci este comportamentul normal al serverului Web și al browserului. Ie Majoritatea site-urilor care utilizează arhitectura standard sunt vulnerabile în mod implicit.

Exemplu de utilizare

Fig. 1. Trimiterea unui mesaj

Fig. 2. Atacul CSRF

Fig. 3. Logica CSRF

Pentru a exploata CSRF, un atacator nu are nevoie să aibă un server Web deloc. Pagina care inițiază cererea poate fi trimisă prin e-mail sau în alt mod.

Sper că cititorul înțelege acum principala diferență dintre CSRF și XSS. În cazul XSS, un atacator poate accesa DOM (Document Object Model) unei pagini vulnerabile, atât în ​​citire cât și în scriere. Când execută CSRF, atacatorul are capacitatea de a trimite o cerere către server folosind browserul utilizatorului, dar să primească și să analizeze răspunsul serverului, cu atât mai puțin că antetul lui (de exemplu, Cookie) nu va putea. În consecință, "Falsificarea cererilor HTTP" vă permite să lucrați cu aplicația în modul "numai pentru scriere", care, incidental, este suficient pentru a efectua atacuri reale.

Obiectivele principale ale atacurilor CSRF sunt diverse aplicații web interactive, de exemplu, sisteme de e-mail, forumuri, CMS, interfețe pentru gestionarea la distanță a echipamentelor de rețea. De exemplu, un atacator poate trimite mesaje în numele altor utilizatori, poate adăuga conturi noi sau poate modifica setările routerului prin interfața Web.

Fig. 4. Un exemplu de utilizare a CSRF în forum

Punem perimetrul

- Identificați tipul de aplicație Web (amprentă digitală);

- selectarea parolei și autentificarea utilizând CSRF;

- Modificați setările nodului utilizând atacul CSRF.

După ce a determinat tipul de dispozitiv, un atacator poate încerca să forțeze browserul utilizatorului să trimită imediat o cerere de modificare a setărilor. Dar o astfel de solicitare va avea succes numai dacă browserul utilizatorului are deja o sesiune activă autentificată de pe dispozitiv. Având o pagină deschisă de gestionare a router-ului la îndemână este un obicei prost pentru mulți utilizatori "avansați".







Însă alte browsere, cum ar fi Firefox, oferă posibilitatea de a specifica un nume de utilizator și o parolă în URL și pot fi utilizate pentru autentificarea pe orice server, iar acest lucru se poate face fără a genera un mesaj de eroare dacă este aleasă o parolă incorectă.

Un exemplu de script pentru autentificarea "liniștită" utilizând metoda de bază, din blogul Stefan Esser, este prezentat mai jos.

Firefox HTTP Auth Bruteforcing
  • Fig. 5. Autentificare de bază în Firefox

    Într-un mediu corporativ în care sunt adesea folosite mecanisme SSO, de exemplu, pe baza domeniului Active Directory și a protocoalelor Kerberos și NTLM, operația CSRF nu necesită efort suplimentar. Browserul se va autentifica automat în contextul securității utilizatorului curent.

    Metode de protecție

    Cu toate acestea, acest mecanism are o serie de deficiențe. În primul rând, dezvoltatorul se confruntă cu problema procesării cererilor care nu au antetul Referer ca atare. Multe dintre firewall-urile personale și serverele proxy anonime au tăiat Referer ca un titlu potențial nesigur. În consecință, dacă serverul ignoră astfel de solicitări, grupul celor mai "cetățeni" paranoici nu va putea să lucreze cu acesta.

    O continuare a acestei abordări este păstrarea identificatorului sesiunii nu în cookie, ci ca parametru de formă ascuns (de exemplu, VIEWSTATE).

    Ca metodă de contracarare a CSRF, diferite variante ale testelor Turing pot fi folosite, de exemplu, bine cunoscute tuturor imaginilor - CAPTCHA. O altă opțiune populară este necesitatea introducerii unei parole de utilizator atunci când se modifică setările critice.

    Fig. 7. Protecția împotriva CSRF în mail.ru

    Astfel, Forgery-ul pentru Solicitarea Cross-Site este un atac adresat clientului aplicației Web și prin utilizarea unei verificări insuficiente a sursei cererii HTTP. Pentru a proteja împotriva unor astfel de atacuri, poate fi folosit un control suplimentar al sursei de solicitare în funcție de antetul Referer sau de un parametru suplimentar "aleator".

    • Cross-site-ul cerere de fals - o mulțime de zgomot din cauza nimic
    • Cross-site-ul cerere de fals - o mulțime de zgomot din cauza nimic
    • Cross-site-ul cererea de fals - o mulțime de zgomot din cauza nimic
    • Cross-site-ul cererea de fals - o mulțime de zgomot din cauza nimic







    Articole similare

    Trimiteți-le prietenilor: