TW_10_web_sec

download TW_10_web_sec

If you can't read please download the document

description

sx

Transcript of TW_10_web_sec

Informatica EconomicaSecuritatea aplica.iilor webProf. univ. dr. Fl. NASTASECUPRINS1.Caracteristici ale aplica.iilor web2.Conceptede bazaale securitatii3.96% din aplica.iileweb au vulnerabilita.i4.Riscurialesecurita.ii aplica.iilor5.WASP Top 10 Vulnerabilita.i ale aplica.iilor web6.Injection7.Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorCross Site Scripting8.Cross-Site Scripting (XSS)9.Instrumente de scanareCaracteristici ale aplica.iilor webInterac.iunea client -server Arhitectura n-tierAcces de la distan.aEterogenitateLivrare de con.inut prin HTTPAcces concuren.ialManagementul sesiunilorAutentificarea .i autorizareaConcepte de baza ale securitatiiSecuritateaelectronicaestedefinitacafiind:politicile,recomandarilesiactiunilenecesareminimizariirisculuiasociatefectuariitranzactiilorelectronice,risccesereferalabresensistem,intruziunisaufurtsauoricemijloc,tehnicasauprocesutilizatpentruaprotejainformatiileunuisistem.Untestdesecuritateesteometodadeevaluareasecurita.iiunuisistemdecalculsauauneire.eleprintr-ometodologiedevalidarea.iverificareaaeficien.eicontroalelordesecuritatealeaplica.iilor.Untestpentrusecuritateaplica.ieiwebseconcentreazadoarpeevaluareasecurita.iiuneiaplica.iiweb.Procesuldetestareimplicaoanalizaactivaaaplica.ieipentrudepistaoricedeficien.a,defectetehnicesauvulnerabilita.i.Oriceproblemadesecuritatecareesteidentificatavafiprezentataproprietaruluisistemului,mpreunacuoevaluareaimpactului,precum.iopropuneredeatenuaresauosolu.ietehnica.Concepte de baza ale securitatiiOvulnerabilitateesteoslabiciunecarepoatedeclansaaccidentalsauintentionatoanumitaexploatareasistemului.Osursadeamenintare:oricecircumstantasauevenimentcarearputeaproducepagubentr-unsistemIT.Sursadeamenintaresepoatefolosideoanumitavulnerabilitateasistemului.Osursadeamenintarenupoatereprezentaunriscatuncicndnuexistaovulnerabilitatepecaresaopoataexploata.Concepte de baza ale securitatiiConcepte de baza ale securitatiin general, vulnerabilita.ile uneiaplica.iiweb pot fi exploatateprin:intrari, ie.iri.irurile de caractere ale unei interogari (cum ar fi, www.nume_server.domeniu/file.php?id=309)parametrii unui formular (exemplu, &nume=ionescu&telefon=22221212)antetele HTTP cookie-uriVulnerabilita.i exista la fiecare nivel al unei aplica.ii webServer Web Cod interfa.a utilizarorFrontendAplica.ieBackendAplica.ieBaze de dateDateDate invalide pot exploata vulnerabilita.i ale aplica.iei, ob.inndu-se accesul neautorizat la conturi, resurse ale aplica.iei, datele sensibile si poate duce la un refuz al serviciilor aplica.iei. Intrare validaHTML/HTTPBrowserIntrare invalidaHTML/HTTPConceptede bazaale securitatiiConcepte de baza ale securitatiiTopul tarilor cu site-uri infectateProcentajul aplica.iilor testate cu vulnerabilita.i(sursa: Cenzic_Vulnerability_Report_2014.pdf )96% din aplica.iileweb au vulnerabilita.iNumarul mediu de vulnerabilita.i pe aplica.ie(sursa: Cenzic_Vulnerability_Report_2014.pdf )Aplica.iilewebaudevenitvectorulprincipalpentruhackeri.Testeledepenetrare.iserviciiledeevaluarepotidentificavulnerabilita.ile,permi.ndrezolvarealornaintecahackeriisalegaseasca.isaleexploateze.Riscurialesecurita.ii aplica.iilorAplica.iilewebpotfifolositedeatacatorindiversefeluri,pentruafacerauuneiafacerisauuneiorganiza.ii.Fiecareatacpoatereprezintaunrisccarearputea,saunu,safiesuficientdegravpentruaiseacordaaten.ie.(sursa: OWASP Top10 2013.pdf)OWASP Top 10 Vulnerabilita.i ale aplica.iilor web(Sursa: OWASP Top10 2013.pdf)OWASP Top 10 Vulnerabilita.i ale aplica.iilor web(Sursa: www.owasp.org)(sursa: Cenzic_Vulnerability_Report_2014.pdf) Principalele vulnerabilita.iCSRF (Cross-Site Request Forgery)Injection1.NnAgent de amenin.areVectorii de atacVulnerabilita.i de securitateImpact tehnicImpact asupra afaceriiSpecific aplica.ieiExploatabilitate u.oaraExtinderecomunaDetectabilitate medieImpact severSpecific afacerii/ aplica.ieiOricine care poate trimite datele nesigure n sistem, inclusiv utilizatori externi, utilizatori interni .i administratori.Atacatorul trimite text simplu, care exploateaza sintaxa interpretorului vizat. Aproape orice sursa de date poate fi un vector de injectare, inclusiv surse interne.Injection flaws apar atunci cnd o aplica.ie trimite date nesigure spre a fi interpretate.Injection flaws sunt foarte raspndite. Ele sunt adesea gasite n SQL, LDAP, XPath, sau interogari NoSQL; comenzi OS; interpretoare XML, antete SMTP, argumente de programe etc.Injection flaws se descopera u.or prinexaminarea codului, dar adesea greu de determinat prin testare. Injectarea poate duce la pierderi de date sau coruperea lor, lipsa de responsabilitate, sau refuzul accesului.Se are n vedere valoarea de afacere a datelor afectate .i platforma de pe care se interpreteaza intrarile. Toate datele pot fi furate, modificate sau .terse. Ar putea fi prejudiciata chiar reputa.ia afacerii.InjectionInjectionflaws(puncteslabedeinjec.ie),cumarfiinjec.iaSQLsauLDAP(LightweightDirectoryAccessProtocol)apareatuncicnddatecarenuprezintancrederesunttrimiselauninterpretorcaparteauneicomenzisauauneiinterogari.Dateleatacatoruluipotn.elainterpretorulprinexecutareaunorcomenzimodificatesauprinaccesareadatelorneautorizate.Majoritateaaplica.iilorwebfolosescbazededatepentrustocareadatelor.LimbajulSQLesteunstandardinterna.ionalcestabile.teregulile.isintaxacomenzilorcarepotfitransmiseunuisistemdegestiuneabazelordedate,pentrumanipulareadatelorstocate.SQLInjectionOvulnerabilitatedetipSQLinjectionexistaatuncicndunutilizatorrauinten.ionatpoate:-introduceoricedatentr-ointerogareSQLtransmisauneibazededate;-modificalogicadeclaratiei,astfelnctsaseexecuteoactiunediferita,fiindposibilfurtuldatelorprivate.SQLinjectionesteunadincelemaifrecventevulnerabilita.ifiindunadevaratpericolpentruaplica.iileweb.SQLInjectionncazulunuiatacSQLinjectionreu.it,sepot:-citidatesensibiledinbazadedate;-modificadatedinbazadedate(Insert/Update/Delete);-executaoperatiunideadministrareabazeidedate(cumarfishutdownDBMS);-recuperareacontinutuluiunuifisierprezentnsistemuldefi.ierealbazeidedate;-emitereadecomenzipentrusistemuldeoperare.SQLInjectionFieurmatoareainterogareSQL:Select*FromusersWhereemail='$login_email'ANDpassword='$login_passwordunde:-$login_email-textulintrodusdeutilizatorlalogarepentrue-mail-$login_password-textulintrodusncmpulpentruparola.Daca$login_password=""or""="",comandarezultatavadeveni:Select*FromusersWhereemail='$login_email'ANDpassword=""or""=""conditiafinala(valoareapentruparola)vafiadevaratapentruoricee-mail,conectareasepoatefacefaraasecunoa.teparolacorectapentrue-mailulselectat.SQLInjectionsebazeazapefaptul""=""estentotdeaunaadevarat.InjectionPrevenirea injec.iei impune pastrarea datelor nesigure separat de comenzi .i interogari. Apoi:.este preferabil sa se utilizeze o interfa.a API sigura sau o interfa.a parametrizata; .n cazul n care interfa.a API parametrizata nu este disponibila, trebuie sa se urmareasca cu aten.ie caracterele speciale; .se recomandata validarea intrarilor. Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorAgent de amenin.areVectorii de atacVulnerabilita.i de securitateImpact tehnicImpact asupra afaceriiSpecific aplica.ieiExploatabilitate medieExtinderepe scara largaDetectabilitate medieImpact severSpecific afacerii /aplica.ieiVor fi lua.i n considerare atacatorii externi anonimi, precum .i utilizatorii care au propriile lor conturi .i care ar putea ncerca sa ob.ina informa.ii despre conturile altora. De asemenea, multa aten.ie la utilizatorii interni, care doresc sa-.i ascunda ac.iunile lor.Atacatorul folose.te unele defecte din func.iile de autentificare sau pentru managementul sesiunilor (cum ar fi, expunerea conturilor, parolelor, ID-urilor de sesiuni) pentru a prelua rolul adevaratului utilizator.Dezvoltatorii realizeaza, n mod frecvent, scheme personalizate pentru autentificarea .i managementul sesiunilor, dar programarea corecta a acestora este dificila. Ca rezultat, aceste sisteme personalizate au frecvente imperfec.iuni n zonele de logout, de managementul parolelor, ntrebari secrete, actualizari de conturi etc. Identificarea micilor scapari poate fi uneori greoaie.Aceste imperfec.ini pot permite unora sau chiar tuturor conturile sa fie atacate. Conturi privilegiate sunt frecvent vizate.Se ia n considerare valoarea de afacere a datelor sau func.iilor aplica.iei afectate; dar .i impactul afacerii la expunerea publica a vulnerabilita.ii.Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorIdentificareareprezintaproceselesiprocedurilenecesarepentrustabilireauneiidentitatiunicepentruunutilizatorsauoentitatencadrulunuisistem/aplica.ie.Identificareapermitecontabilizareatuturoroperatiunilorindividualesiprevineaccesulneautorizat.Autentificareaprocedurapentruverificareaidentitatiientitatiicaresolicitaacceslasistem/aplica.ie,procesulprincaresistemulvalideazainformatiiledeconectareoferitedeentitateautilizatoare.Atacatorularedouaposibilita.ipentruadepa.iunsistemdeautentificare:.utilizareaunordatedeidentificare(numeutilizator/parola)ob.inutenmodfraudulos;.evitareaverificariiautentificarii.Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorPentruidentificareasimonitorizareaactivita.iiunuiutilizatorpeopaginaweb,acestuiaiseatribuieuntokenunicdesesiune,deobiceisubformadecookie-uri.Cookie-ulreprezintaunmecanismstandardcarepermitecaunserverWebsatrimitaanumiteinforma.iipecalculatorulunuiutilizator,prinintermediulbrowser-ului,sasoliciteclientuluisastochezeacesteinforma.iipentruca,ulterior,navigatorulsaretransmitainforma.iilecatreserverulweb.Uncookieconstadintr-operechenume=valoareCapacitateaserver-uluiwebdearecunoa.tecaocererefacepartedintr-osuccesiunedecereridelaacela.iclientesteutila,spreexemplu,pentruaccesareauneizoneprotejatecuparola-cazncareutilizatorulseautentificaodata,apoitoatecereriledelaacestclientsuntconsiderateautentificatepnalalogout.Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorHTTPesteunprotocolstate-less.Prinurmare,unserverwebnupoatedeterminadacaocerereestelegatalogicdeunaanterioaratransmisadelaacela.iclient.Cookie-urilesuntfolositedeserverelewebpentruaputeadiferen.iautilizatorii.ipentruaputeareac.ionanfunc.iedeac.iunileacestorancadruluneisesiuniformatedinmaimultetranzac.iiseparate.Sesiuneaestemecanismulprincaresepermitere.inereainforma.iilordesprestareaclientului.Cookie-urileaufostinventatepentruaseimplementaunco.decumparaturivirtual:utilizatorulmaintiseautentifica(login),apoinavigheazapesite,adaugasaueliminanvoieobiectedinco.,apoiafi.eazacon.inutulco.ului,cerecalculareapre.uluifinal,sehotara.tesacomande(orisarenun.e),iarlasfr.itnchidesesiunea(logout).Odataautentificat,utilizatorulesteidentificatdoardupacookie-uldesesiune,dacaunatacatorlcompromite,ghicindu-ivaloareasaufurndu-l,reusestesatreacacusuccesdemecanismuldeautentificareapaginiirespectivesisaiialoculvictimei.Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorPrinJavaScriptsepoatecrea,citi,.i.terge.icookie-urilecuproprietateadocument.cookie..Creareaunuicookiedocument.cookie="username=JohnDoe;expires=Thu,18Dec201412:00:00UTC";Sepoateadaugadatadeexpirare-nmodimplicit,cookie-uleste.terscndbrowser-ulestenchis..Citireaunuicookievarx=document.cookie;SintaxapentrucreareaunuicookieprinPHP:setcookie(name, value, expire, path, domain, secure, httponly);nPHPosesiuneestestartataprinfunc.iasession_start().Nerespectarea/evitarea autentificarii.i a managementuluisesiunilorMetodedeprevenireavulnerabilitatilorlegatedemanagementulsesiunilor:.Complexitateaparolelor:restric.ionareaparolelorlaunanumitnumarminimdecaractere,tipuridecaractere,regulideschimbareaperiodicaaparoleloretc..Utilizareaparolelor:utilizatoruluisaiselimitezenumaruldencercaridelogarentr-oanumitaunitatedetimp,tentativeleesuatesafieconsemnate..Schimbareaparolelor:sasefoloseascaunsingurmecanismdeschimbareaparolelorindiferentdecircumstantelencareacestlucrusentmpla..Stocareaparolelor:toateparoleletrebuiecriptate,indiferentdeloculundesuntstocate..ProtejareaID-uluidesesiune:sesiuneautilizatoruluiartrebuiprotejataprinSSL(nacestmodcookie-uldesesiunenuarputeafipreluatdeentita.ineautorizate)..Listadeconturi:aplica.iileartrebuiproiectatenasafelnctsanupermitaaccesulutilizatorilorlalistadeconturidepesite.Cross-Site Scripting (XSS)CrossSiteScripting(prescurtatXSS)esteovulnerabilitatewebcepermiteutilizatorului/atacatoruluisaintroducauncodpersonalntr-opaginaweb.Vulnerabilitateaestefolositapentruafortaafisareaunuicod(scrisdeobicein(X)HTML,JavaScript,ActiveX,Java,Flashetc.)malitiosntr-opaginaweb,caresevaexecutaulteriornbrowser-ulunuiutilizator.XSSpermiteatacatorilorsaexecutescript-urinbrowser-ulvictimei.Cuajutorulscripturilorsepotdeturnasesiunideutilizator,.tergesite-uriweb,redirec.ionautilizatorulspresite-urimali.ioasesaufuradiferiteinforma.iiutiledespreutilizatori.Acesttipdeatacnuarecatintaserverulsite-uluiweb,acestafiinddoarogazda,adevaratatintaaataculuiesteutilizatorul.Vulnerabilitateaestedetipclient-side.AtacurileXSSsefolosescdedatelecevindinexterior,cumarfi:formulare,webe-mail,fisiereledetipXMLsauRSS.Cross-Site Scripting (XSS)Atac XSS tipic (sursa: http://www.acunetix.com/websitesecurity/xss/)Cross-Site Scripting (XSS)Agent de amenin.areVectorii de atacVulnerabilita.i de securitateImpact tehnicImpact asupra afaceriiSpecific aplica.ieiExploatabilitate medieExtinderepe scara largaDetectabilitate u.oaraImpact moderatSpecific afacerii /aplica.ieiOricine care poate trimite datele nesigure n sistem, inclusiv utilizatori externi, utilizatori interni .i administratori.Atacatorul trimite scripturi bazate pe text, care vor fi interpretate n browser. Aproape orice sursa de date poate fi un vector de atac, inclusiv surse interne, cum ar fi datele din baza de date.XSSesteceamairaspanditabre.adesecuritateaaplica.iilorweb.XSSapareatuncicndoaplica.ieincludeposibilitateacautilizatorulsafurnizezedateprintr-opaginaweb,faraavalidasauevaluaacelcon.inutnmodcorespunzator.ExistatreitipurideXSS:1)stocate,2)reflectate.i3)bazatpeDOM.XSSsedetecteazadestuldeu.orprintestaresauanalizadecod.Atacatorii pot executa script-uri n browser-ul unei victime .ipotdeturna sesiunile utilizatorilor, .terge site-uri web, introduce con.inut ostil, redirec.iona utilizatorii etc.Se va lua n considerare valoarea de afacere a sistemului afectat .i toate datele pe care le proceseaza, precum .i impactul asupra afacerii prin expunerea publica a vulnerabilita.ii.Cross-Site Scripting (XSS)Atacurile XSS sunt:-atacuri XSS persistente (memorat) .codulmali.iosestepermanentstocatpesite-ulaplicatieintr-opaginawebcarearepotentialmaredeafivizitatadecatreutilizatori(comentariiledepebloguri,posturiledepeforumuri,chat-urietc.)..odataceutilizatorulviziteazapaginainfectata,executiaesteautomata;.nuexistacaleprincareutilizatorulsepoateapara.Cross-Site Scripting (XSS)Scenariul pentru XSS persistentCross-Site Scripting (XSS)Atacurile XSS sunt (2):-atacurileXSSnon-persistente(reflectat)-dateleprovenitedelaunutilizatorsuntfolositeimediatdeserverpentruageneraonouapagina;codulmali.iosestereflectatdecatresite-ulaplicatiei.-AtacuridetipDOM(DocumentObjectModel)printr-unscriptJavaScriptsepoateaccesaunparametruURLsisepoatefolosiacestparametrupentruamodificapaginawebrespectiva.Cross-Site Scripting (XSS)Exemplu1.Fiecodulunuiformularsimplu: