Documente Academic
Documente Profesional
Documente Cultură
MANAGEMENTUL
SECURITATII INFORMAȚIEI
Profesor: Student:
POPESCU DANIELA-ELENA MOLNAR SERGIU-IONUȚ
S
1. Ce este CSRF...................................................................................................................................3
2. Exemple CSRF................................................................................................................................4
3. Metode de prevenire a atacurilor de tip CSRF.................................................................................5
4. Cum să prevenim atacurile CSRF....................................................................................................6
4.1. Folosind un token.........................................................................................................................6
4.2. Folosind Captcha..........................................................................................................................6
4.3. Folosind un system de atutentificare.............................................................................................7
4.4. Folosind token stocat local............................................................................................................7
Atacul Cross Site Request Forgery (CSRF)
1. Ce este CSRF
Cross site request forgery (CSRF), cunoscut și sub numele de CSRF, Sea Surf sau
Session Riding, este un atac care “păcălește’’ browser-ul să execute o acțiune involuntară în
cadrul unei aplicații în care utilizatorul este autentificat.[1]
Un atac CSRF executat cu succes poate fi cumplit atât pentru companii, cât și pentru
utilizatori. Acest lucru poate duce la deteriorarea relațiilor cu clienții, transferuri de fonduri
neautorizate, schimbarea involuntară a parolelor sau furturi de date – inclusiv cookie-uri de
sesiune furate.
[1]
[2]
2. Exemple CSRF
Înainte de a executa un atac, un atacator studiază de obicei aplicația pentru a putea face o
cerere falsificată să pară cât mai legitimă posibil.
De exemplu, o cerere de tip GET pentru un transfer bancar de $100000 ar arăta astfel:
http://example.com/transfer?acct=Fred&amount=100000 [3]
Un hacker poate modifica acest script pentru a-și fi transferată respectiva sumă de bani în
contul său. Astfel, cererea va arăta în felul următor:
http://example.com/transfer?acct=Attacker&amount=100000 [3]
De asemenea, atacatorul poate masca acest lucru într-un link ce pare a fi inofensiv:
<img data-fr-src=”http://example.com/transfer?
acct=Attacker&amount=100000” />[3]
Apoi, el poate distribui link-ul prin e-mail la un număr mare de clienți ai băncii. Cei care
accesează link-ul respectiv (când sunt autentificați în aplicație), vor iniția un transfer de $100000
către contul atacatorului fără a-și da seama.
De reținut este faptul că, dacă site-ul băncii folosește doar solicitări de tip POST, este
imposibil să fie inclusă o cerere malițioasă folosind proprietatea src a tag-ului <img>. Cu toate
acestea, atacul poate fi trimis într-un tag <form> care va executa automat codul JavaScript.
<body onload="document.csrf.submit()">
<form action="http://example.com/transfer" method="POST" name=”csrf”>
<input type="hidden" name="acct" value="Attacker"/>
<input type="hidden" name="amount" value="100000"/>
<input type="submit" value="Transfer"/>
</form>
</body>[3]
3. Metode de prevenire a atacurilor de tip CSRF
Există o serie de metode eficiente atât pentru prevenirea, cât și pentru atenuarea atacurilor
CSRF. Din perspectiva unui utilizator, prevenirea este o chestiune de protejare a credențialelor
de conectare și de restricționare a accesului persoanelor neautorizate la aplicații.
Dubla trimitere a cookie-urilor este o altă metodă bine-cunoscută de a bloca un atac de tip
CSRF. Similar cu utilizarea token-urilor unice, cele aleatorii sunt atribuite atât unui modul
cookie, cât și unui parametru de solicitare (request parameter). Serverul verifică apoi dacă token-
ul este valid înainte de a acorda acces la aplicație.
Deși sunt eficiente, token-urile pot fi găsite în mai multe locuri, precum istoricul browser-
ului, fișierele log ale transferurilor HTTP și anteturi de referință, în cazul în care site-ul se leagă
la un link extern. Din această cauză, token-urile devin o soluție mai puțin sigură.
4. Cum să prevenim atacurile CSRF
Câteva dintre metodele de prevenire împotriva atacurilor de tip CSRF sunt următoarele:
4.1. Folosind un token
Metoda clasică constă în crearea unei sesiuni și a unui token, care va fi verificat în
momentul în care este acționată pagina respectivă. Dacă respectivul token va fi valid, acțiunile
private vor fi executate, în caz contrar se va refuza accesul la acele acțiuni.[4]
exemplu de token
Pentru a rezolva problema de mai sus, una dintre alternative este crearea unui sistem de
captcha ce va simula aceleași verificări ca mai sus.
4.3. Folosind un sistem de autentificare
Această metodă este una ce ar trebui implementată doar în situațiile în care informațiile la
care se face accesul sunt extrem de importante și nu trebuie să fie accesibile sub nici o formă,
având o importanță ridicată. În cazurile acestea este indicat crearea unui sistem de autentificare
ce funcționează pe același principiu ca și captcha, doar că în loc de verificarea pe sesiuni se va
face verificarea pe user și parolă.[4]
Una dintre cele mai bune metode de protejare împotriva atacurilor CSRF este cea a
stocării token-ului local, într-o zonă ce este protejată oarecum de accesul publicului.
Argumentele sunt evidente: hackerul nu poate avea acces la token sub nici o formă, noi creând
un fișier cu ajutorul unui algoritm ce generează un hash unic bazat pe ip+browser+time, în care
este precizat timpul cât este valid (câteva minute maxim). Această situație va rezolva majoritatea
problemelor de extragere a informațiilor de prima metodă de protecție. În această situație singura
problemă ce se ridică este protejarea eficientă a folder-ului respectiv (probabil cu htaccess).
BIBLIOGRAFIE
1. https://www.acunetix.com/websitesecurity/csrf-attacks/
2. https://www.imperva.com/learn/wp-content/uploads/sites/13/2019/01/csrf-cross-site-
request-forgery.png
3. https://www.acunetix.com/websitesecurity/csrf-attacks/
4. https://www.slideshare.net/europeancompanies/csrf