480 likes | 718 Views
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.
E N D
Securitatea in aplicatiile web Bogdan Brinzarea-Iamandi BancaRomaneasca
Agenda • Securitatea in lumea de azi • Mituri • Injectare SQL • XSS • CSRF • Fortare JSON • Unelteajutatoare
Top 10 riscuri Open Web Application Security Project (OWASP)
SSL (Secure Socket Layer) • Dacafolosesc SSL suntprotejat! • FALS: Atacurile se pot intampla la felsipeste SSL!
Firewall • Dacafolosesc un firewall suntprotejat! • FALS: Firewall-ulprotejeazaaccesul web la site si nu protejeazaaplicatia de atacurirau-intentionate
Dezvoltatori • Securitateaaplicatieiesteproblemadezvoltatorilor! • FALS: Mai multi factori care nu tin de dezvoltatoriinfluenteazasecuritateaaplicatiei!
SQL Injection Injectaresql
Injectare SQL - Definitie • Atacprin care date nevalidateajungsafaca parte dintr-o comandasau query • Impact • Se obtineacces cu rolurinecuvenite • Se obtin date sensibile • Se distrug date sensibile
Injectare SQL - Scenariu Accesneautorizat Preluare date sensibile Acordaredrepturinecuvenite
Injectare SQL - Scenariu Sursa: http://xkcd.com/327/
Injectare SQL – Solutii • Folosirea query-urilordinamicedoar cu parametri SQL siguri • Proceduristocate • Eliminareacaracterelorspeciale • Validareadatelor de input • Folosirealisteloralbesi nu a celornegre
Injectare SQL - Solutii • Protejareadatelorsensibileprincriptare • Eliminareaerorilor SQL explicite din output • Limitareainformatiilordesprebaza de date • Folosirea de conturi cu drepturilimitate • FolosirealibrarieiAntiXSS (http://antixss.codeplex.com)
XSS - Definitie • Atacprin care o aplicatiepreia date si le trimitecatre browser fara o validaresi o encodarecorecta • Permiteexecutia de scripturirauintentionatepebrowserulclientului • 2 tipuri • Reflectat – scriptulesteinclus in cereresiestereflectat in pagina • Persistat – scriptulesteinclus in cerere, estesalvatsiapoiafisat in paginiulterioare
XSS - Solutii • Folosireaencodariioutputului HTML
XSS - Solutii • Nu numai HTML-ultrebuievalidat! • Encodareatribute tag-urilor • Encodareatribute de tip URL • Validarea CSS-ului cu expresii regulate • Encodare JavaScript
XSS – Solutii • Validareadatelorpe client cat sipe server Machine.config Web.config
XSS - Solutii • Validarea in MVC se face la nivel de controller
XSS - Solutii • FolosirealibrarieiAntiXSS (http://antixss.codeplex.com/) Sursa: antixss.codeplex.com
XSS - Solutii • Phil Haack – AntiXssEncoderhttp://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx
XSS - Solutii • Cookie HttpOnly – se previneaccesarea cu document.cookie
XSS – Solutii • innerHtmltrebuiefolositdoar cu HMTL encodat • innerText nu executascripturile
CSRF - Definitie • Atacceforteaza o victimaautentificatasatrimita o cerere HTTP falsa • Pentru ca cerereaprovine de la victima, masurile de securitatetraditionalesuntocolite
CSRF - Solutii • Includerea in cookie si in pagina a unuijeton de securitate • La postareadatelorpe server se verificajetonul din cookie cu cel din pagina • Doardacaceledouacoincidactiunea se efectueaza
JSON Hijacking Fortare JSON
Fortare JSON - Definitie • Atac de tip CSRF care implicaefectuarea de catrevictimaautentificatauneicereripentruobtinereaunor date confidentiale de tip JSON • Un array JSON esteconsiderat un JavaScript valid siesteexecutat
Fortare JSON - Definitie • Urmatoarelecerintetrebuieindeplinite • Browserulvictimeisuporta__defineSetter__ • Serviciul JSON intoarce date confidentiale • Serviciul JSON intoarcedatele la GET • Serviciul JSON intoarcedatele sub forma unui array
Fortare JSON - Solutii • In MVC 2, doarrequesturi POST pentru JSON • Nu trebuieluateactiuni la GET • Folosireaunuijeton de securitate
Fortare JSON – Solutii • Un JsonResultsigur care samodifice output-ul default de array • Ne puteminspira din AJAX-enabled WCF Service
Fortare JSON - Solutii System.Web.Mvc.JsonResult.cs
Unelte • URL Scan • URL Rewrite • Fiddler • IIS Log Analyzer • Log Parser 2.2