securitatea in aplicatiile web

44
Securitatea in aplicatiile web Bogdan Brinzarea-Iamandi Banca Romaneasca

Upload: shen

Post on 24-Feb-2016

61 views

Category:

Documents


0 download

DESCRIPTION

Securitatea in aplicatiile web. Bogdan Brinzarea- Iamandi Banca Romaneasca. Agenda. Securitatea in lumea de azi Mituri Injectare SQL XSS CSRF Fortare JSON Unelte ajutatoare. Securitatea in lumea de azi. Care este miza ?. Top 10 riscuri. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Securitatea  in  aplicatiile  web

Securitatea in aplicatiile webBogdan Brinzarea-IamandiBanca Romaneasca

Page 2: Securitatea  in  aplicatiile  web

Agenda• Securitatea in lumea de azi• Mituri• Injectare SQL• XSS• CSRF• Fortare JSON• Unelte ajutatoare

Page 3: Securitatea  in  aplicatiile  web

SECURITATEA IN LUMEA DE AZI

Page 4: Securitatea  in  aplicatiile  web

Care este miza?

Bani

Date

Reputatie

Page 5: Securitatea  in  aplicatiile  web

Top 10 riscuriOpen Web Application Security Project (OWASP)

Page 6: Securitatea  in  aplicatiile  web

MITURI

Page 7: Securitatea  in  aplicatiile  web

SSL (Secure Socket Layer)• Daca folosesc SSL sunt protejat!• FALS: Atacurile se pot intampla la fel si

peste SSL!

Page 8: Securitatea  in  aplicatiile  web

Firewall• Daca folosesc un firewall sunt protejat!• FALS: Firewall-ul protejeaza accesul web la

site si nu protejeaza aplicatia de atacuri rau-intentionate

Page 9: Securitatea  in  aplicatiile  web

Dezvoltatori• Securitatea aplicatiei este problema

dezvoltatorilor!• FALS: Mai multi factori care nu tin de

dezvoltatori influenteaza securitatea aplicatiei!

Page 10: Securitatea  in  aplicatiile  web

INJECTARE SQLSQL Injection

Page 11: Securitatea  in  aplicatiile  web

Injectare SQL - Definitie• Atac prin care date nevalidate ajung sa faca

parte dintr-o comanda sau query• Impact

– Se obtine acces cu roluri necuvenite– Se obtin date sensibile– Se distrug date sensibile

Page 12: Securitatea  in  aplicatiile  web

Injectare SQL - ScenariuAcces

neautorizat

Preluare date sensibile

Acordare drepturi

necuvenite

Page 13: Securitatea  in  aplicatiile  web

Injectare SQL - Scenariu

Sursa: http://xkcd.com/327/

Page 14: Securitatea  in  aplicatiile  web

Injectare SQL – Solutii• Folosirea query-urilor dinamice doar cu

parametri SQL siguri• Proceduri stocate• Eliminarea caracterelor speciale • Validarea datelor de input• Folosirea listelor albe si nu a celor negre

Page 15: Securitatea  in  aplicatiile  web

Injectare SQL - Solutii• Protejarea datelor sensibile prin criptare• Eliminarea erorilor SQL explicite din output• Limitarea informatiilor despre baza de date• Folosirea de conturi cu drepturi limitate• Folosirea librariei AntiXSS

(http://antixss.codeplex.com)

Page 16: Securitatea  in  aplicatiile  web

XSSCross-Site Scripting

Page 17: Securitatea  in  aplicatiile  web

XSS - Definitie• Atac prin care o aplicatie preia date si le

trimite catre browser fara o validare si o encodare corecta

• Permite executia de scripturi rau intentionate pe browserul clientului

• 2 tipuri– Reflectat – scriptul este inclus in cerere si este

reflectat in pagina– Persistat – scriptul este inclus in cerere, este

salvat si apoi afisat in pagini ulterioare

Page 18: Securitatea  in  aplicatiile  web

XSS – Scenariu reflectat

Page 19: Securitatea  in  aplicatiile  web

XSS – Scenariu reflectat

Page 20: Securitatea  in  aplicatiile  web

XSS – Scenariu reflectat

Page 21: Securitatea  in  aplicatiile  web

XSS – Scenariu persistat

Page 22: Securitatea  in  aplicatiile  web

XSS - Solutii• Folosirea encodarii outputului HTML

Page 23: Securitatea  in  aplicatiile  web

XSS - Solutii• Nu numai HTML-ul trebuie validat!• Encodare atribute tag-urilor • Encodare atribute de tip URL

• Validarea CSS-ului cu expresii regulate• Encodare JavaScript

Page 24: Securitatea  in  aplicatiile  web

XSS – Solutii• Validarea datelor pe client cat si pe server

Machine.config

Web.config

Page 25: Securitatea  in  aplicatiile  web

XSS - Solutii• Validarea in MVC se face la nivel de

controller

Page 26: Securitatea  in  aplicatiile  web

XSS - Solutii• Folosirea librariei AntiXSS

(http://antixss.codeplex.com/)

Sursa: antixss.codeplex.com

Page 27: Securitatea  in  aplicatiile  web

XSS - Solutii• Phil Haack – AntiXssEncoder

http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx

Page 28: Securitatea  in  aplicatiile  web

XSS - Solutii• Cookie HttpOnly – se previne accesarea cu document.cookie

Page 29: Securitatea  in  aplicatiile  web

XSS – Solutii• innerHtml trebuie folosit doar cu HMTL

encodat• innerText nu executa scripturile

Page 30: Securitatea  in  aplicatiile  web

CSRFCross-Site Request Forgery

Page 31: Securitatea  in  aplicatiile  web

CSRF - Definitie• Atac ce forteaza o victima autentificata sa

trimita o cerere HTTP falsa• Pentru ca cererea provine de la victima,

masurile de securitate traditionale sunt ocolite

Page 32: Securitatea  in  aplicatiile  web

CSRF - Scenariu

Page 33: Securitatea  in  aplicatiile  web

CSRF - Solutii• Includerea in cookie si in pagina a unui jeton

de securitate• La postarea datelor pe server se verifica

jetonul din cookie cu cel din pagina • Doar daca cele doua coincid actiunea se

efectueaza

Page 34: Securitatea  in  aplicatiile  web

CSRF - Solutii

Page 35: Securitatea  in  aplicatiile  web

FORTARE JSONJSON Hijacking

Page 36: Securitatea  in  aplicatiile  web

Fortare JSON - Definitie • Atac de tip CSRF care implica efectuarea de

catre victima autentificata unei cereri pentru obtinerea unor date confidentiale de tip JSON

• Un array JSON este considerat un JavaScript valid si este executat

Page 37: Securitatea  in  aplicatiile  web

Fortare JSON - Definitie• Urmatoarele cerinte trebuie indeplinite

– Browserul victimei suporta __defineSetter__– Serviciul JSON intoarce date confidentiale– Serviciul JSON intoarce datele la GET– Serviciul JSON intoarce datele sub forma unui

array

Page 38: Securitatea  in  aplicatiile  web

Fortare JSON - Scenariu

Page 39: Securitatea  in  aplicatiile  web

Fortare JSON - Solutii• In MVC 2, doar requesturi POST pentru

JSON• Nu trebuie luate actiuni la GET• Folosirea unui jeton de securitate

Page 40: Securitatea  in  aplicatiile  web

Fortare JSON – Solutii• Un JsonResult sigur care sa modifice

output-ul default de array• Ne putem inspira din AJAX-enabled WCF

Service

Page 41: Securitatea  in  aplicatiile  web

Fortare JSON - Solutii

System.Web.Mvc.JsonResult.cs

Page 42: Securitatea  in  aplicatiile  web

Unelte• URL Scan• URL Rewrite • Fiddler• IIS Log Analyzer• Log Parser 2.2

Page 43: Securitatea  in  aplicatiile  web

Concluzii

Page 44: Securitatea  in  aplicatiile  web

VA MULTUMESC!