Sunteți pe pagina 1din 11

4. Aspecte de securitate n comerul electronic B. Securitatea n comerul electronic vulnerabiliti server Web i site-uri c.e.

B1. Securitatea serverelor Web i a site-urilor de comer electronic Structura unui sistem Web generic

URL-uri

Pentru un asemenea sistem, exist mai multe puncte de intrare posibile: vulnerabilitile softwareului server Web, ale sgbd-ului (mecanisme insuficiente de securitate), vulnerabilitile din programe. a toate nivelurile !n sistemul de securitate care se de"volt, un prim principiu de securitate este limitarea suprafeei de atac. #ceasta !nseamn restricionarea accesului la acele resurse strict necesare. $ prim msur de protecie va fi plasarea sistemului, !ncep%nd de la serverul Web &i restul sistemului !n spatele unor firewall-uri. 'xist posibilitatea po"iionrii diverse a firewall-ului (firewallurilor): unul singur !naintea serverului Web, unul !naintea serverului Web ( unul !ntre serverul Web &i restul sistemului. )e obicei, se permite acces prin firewall doar pentru *+ ,--P &i ../ ,--P cu 00 . 1n acest fel, nu sunt admise conexiuni peste alte protocoale (2-P, telnet,3), reduc%nd posibilitile de atac (protocol filtering).

4i pentru serviciile (Web, !n spe) rmase accesibile trebuie implementate msuri adecvate de securitate. 5ontrolul accesului la serverul Web se poate reali"a !n diverse moduri: - 67 -uri ascunse (problema e c acestea se pot afla: prin tran"itivitate, publicarea lin8-ului, motoare de cutare)9 - restricionarea accesului doar de la anumite calculatoare, pe ba"a adresei lor :nternet (:P sau );0) < anumite directoare sunt accesibile numai de la anumite adrese (address filtering). ;u este o metod sigur, de vreme ce se pot impersona :P-uri. -otu&i, trebuie reinut c pac=etele re"ultat trimise de la server nu vor a>unge la atacator. 'xemplu ::0:

restricionare ba"at pe identitatea utili"atorilor < autentificare (utili"ator login &i password). #ceasta pare s fie o metod mai eficient9 se procedea" uneori la !nlocuirea parolelor cu certificate client.

1n general, funcionalitile de ba" ale serverului Web sunt extinse prin module de genul: 5?:, #0P, @0P, P,P etc riscul s existe posibilitatea de exploatare a unor erori !n site, astfel !nc%t s: se de"vluie date private9 se preia controlul asupra ma&inii Web, urmat de alte aciuni ruvoitoare. 'xist dou te=nici pentru a limita de"astrele cau"ate de aceste #P: &i 5?:: - programele trebuie modelate &i verificate astfel !nc%t s se asigure c ele reali"ea" numai funciile dorite. 5%teva sc=eme de atac ale unui site se comer electronic vor fi descrise, cu soluiile corespun"toare, !n continuare (AB-A.). - programele trebuie rulate !ntr-un mediu restricionat (face parte din aceea&i strategie de limitare a suprafeei de atac). 'xemplu: #ceasta se reali"ea" !n ::0 prin combinarea: - autentificrii la nivelul site-ului Web (utili"atorCparol) cu - drepturile de acces la resurse stabilite la nivel ;-20 &i pentru site-ul Web. 0erverul Web ::0 permite s se stabileasc pentru diverse poriuni ale unui site accesul liber (anonDmous access) sau pe ba" de autentificare, de exemplu ca un user al sistemului de operare. 1n

continuare, dac accesul la o resurs e liber, aceasta e accesat cu drepturile unui utili"ator predefinit :607Emac=inename. )ac accesul e pe ba" de autentificare ca un user 6 al sistemului de operare, atunci accesul la resursa respectiv se face cu drepturile lui 6. 7elativ la drepturile de acces, e vorba de: - !n ;-20, fiecare resurs are preci"ate drepturi de acces asupra ei pentru diver&i utuli"atori (inclusiv :607Emac=inename &i 6)9 - la nivelul site-ului Web, pentru toi utili"atorii se specific drepturile asupra resurselor (read, execute, view source etc).

B2. Erori n programele / scripturile incluse n site i care trebuie e ecutate de serverul Web !n"ecie S#$ 'xist posibilitatea s fie erori !n site, care s fie exploatate astfel !nc%t s: se de"vluie date private9 se preia controlul asupra ma&inii Web, urmat de alte aciuni ruvoitoare. Aa"ele de date se gsesc !n centrul celor mai multe dintre aplicaiile Web: stoc=ea" datele necesare siteurilor &i aplicaiilor Web, preferine ale utili"atorilor, date despre produse, stocuri, pli, informaii financiare sensibile etc. )up cum sugerea" numele, un atac prin Fin>ecie 0G H const !n in>ectarea sau manipularea codului 0G . Prin adugarea la interogri a unor elemente 0G neprev"ute, e posibil s se manipule"e ba"a de date !n multe moduri neanticipate. 6nul dintre cele mai populare moduri de a autentifica un utili"ator pe un site este s se furni"e"e o form ,-I , unde acesta va introduce un nume de utili"ator &i o parol. #tunci c%nd forma e submis, c%mpurile parol &i utili"ator sunt trimise unui script #0P, @0P etc &i sunt disponibile acelui script prin intermediul unei colecii 7eJuest.2orm. 5ea mai u&oar modalitate de verificare a validitaii datelor

introduse de client este s se construiasc o interogare 0G , care confrunt datele introduse cu cele existente !ntr-un tabel corespun"tor din ba"a de date. Problema K: autentificarea unui utili"ator fr a cunoa&te o parol corect B% &ccess (=ttp:CCoraservCAoo8#0PC0G )emo.asp)
<!-- #INCLUDE FILE="storefuncs.asp" --> <% ' Get Lo !n Infor"at!on userna"e = #$I%& $e'uest& "userna"e" ( ( pass)or* = #$I%& $e'uest& "pass)or*" ( ( ' +pen Data,ase Connect!on -et Con = -er.er.Create+,/ect& "0D+D1.Connect!on" ( Con.Connect!on-tr!n ="2ro.!*er=%!crosoft.3et.+LED1.4.56Data-ource=7" Con.+pen ' Get User ID userID = c8ec9pass)or*& userna"e: pass)or*: Con ( Con.C;ose IF userID > 5 #<EN %> autent!f!care reus!ta = ( ! <% EL-E %> <8t";> <8ea*><t!t;e>->L In/ect!on De"o<?t!t;e><?8ea*> <,o*@ , co;or=")8!te"> <center> <ta,;e )!*t8="A55" ,or*er=5 ce;;pa**!n =4 ce;;spac!n =5> <tr> <t* , co;or="*ar9 reen"> <font co;or=")8!te" face="0r!a;"> <?tr> <tr> <t*> <for" "et8o*="post" act!on="->LDe"o.asp"> <!nput na"e=";o !n" t@pe="8!**en" .a;ue="B"> <font face="0r!a;" s!Ce="D"> 2;ease enter @our userna"e an* pass)or*= <?font> <font face="Cour!er" s!Ce="D"> <p><,>userna"e=<?,> <!nput na"e="userna"e" s!Ce="D5"><?,> <,r><,>pass)or*=<?,> <!nput na"e="pass)or*" s!Ce="D5"><?,> <!nput t@pe="su,"!t" .a;ue="Lo !n"> <?font> <?for"> <?t*><?tr> <?ta,;e> <?,o*@> <?8t";> <% END IF %> FUNC#I+N c8ec9pass)or*& ,@Ea; userna"e: ,@Ea; pass)or*: ,@$ef Con ( s';-tr!n = "-ELEC# userF!* F$+% users " GF "H<E$E userna"e='" G userna"e G "' " GF "0ND pass)or*='" G pass)or* G "'" -E# $- = Con.EIecute& s';-tr!n ( IF $-.E+F #<EN c8ec9pass)or* = - B EL-E c8ec9pass)or* = $-& "userF!*" ( a**Coo9!e "userna"e": userna"e a**Coo9!e "pass)or*": pass)or* END IF END FUNC#I+N

<,>Lo !n<?,>

<?font>

<?t*>

5ombinaia loginLa*"!n, passwordL

' or 'B=B conduce la formarea urmtoarei fra"e 0G :

-ELEC# userF!* F$+% users H<E$E userna"e='a*"!n' 0ND pass)or*=' ' or 'B=B'

care autentific pe admin fr o parol corespun"toare. B% S#$ Server (=ttp:CCoraservCAoo8#0PC0G )emoB.asp) M%


' Get Lo !n Infor"at!on userna"e = #$I%& $e'uest& "userna"e" ( ( pass)or* = #$I%& $e'uest& "pass)or*" ( ( ' +pen Data,ase Connect!on -et Con = -er.er.Create+,/ect& "0D+D1.Connect!on" ( Con.Connect!on-tr!n ="2ro.!*er=->LNCLI.B6Data -ource=->LJ->LEK2$E--62ass)or*=76User Cata;o =7" Con.+pen ' Get User ID 's';-tr!n = "-ELEC# na"e fro" s@s.ta,;es" 's';-tr!n = "create ta,;e ;o !ns &u;o !n .arc8ar&B5(: pass)or* .arc8ar&D5((" 's';-tr!n = "!nsert !nto ;o !ns .a;ues&'a*"!n': 'pass)or*'(" 's';-tr!n = "create ta,;e test &c .arc8ar&A((" 'Con.EIecute& s';-tr!n ( s';-tr!n = "-ELEC# na"e fro" s@s.ta,;es )8ere na"e='test'" response.)r!te s';str!n G" <,r>" -E# $- = Con.EIecute& s';-tr!n ( IF $-.E+F #<EN response.)r!te "0 fost sters ta,e;u; test!!!" G "<,r>" EL-E response.)r!te "EI!sta ta,e;u; test!!!" G "<,r>" END IF s';-tr!n = "-ELEC# u;o !n: pass)or*: pr!.s F$+% ;o !ns " GF "H<E$E u;o !n='" G userna"e G "' " GF "0ND pass)or*='" G pass)or* G "'" response.)r!te s';str!n G" <,r>" -E# $- = Con.EIecute& s';-tr!n ( IF $-.E+F #<EN userID = -B EL-E userID = B END IF s';-tr!n = "-ELEC# na"e fro" s@s.ta,;es )8ere na"e='test'" -E# $- = Con.EIecute& s';-tr!n ( IF $-.E+F #<EN response.)r!te "0 fost sters ta,e;u; test!!!" G "<,r>" EL-E response.)r!te "EI!sta ta,e;u; test!!!" G "<,r>" END IF Con.C;ose IF userID > 5 #<EN %> autent!f!care reus!ta = ( <% EL-E %> <8t";> <8ea*><t!t;e>->L In/ect!on De"o<?t!t;e><?8ea*> <,o*@ , co;or=")8!te"> <center> <ta,;e )!*t8="A55" ,or*er=5 ce;;pa**!n =4 ce;;spac!n =5> <tr> <t* , co;or="*ar9 reen"> <font co;or=")8!te" face="0r!a;"> <,>Lo !n<?,>

ID=76In!t!a;

<?font> <?t*> <?tr> <tr> <t*> <for" "et8o*="post" act!on="->LDe"oD.asp"> <!nput na"e=";o !n" t@pe="8!**en" .a;ue="B"> <font face="0r!a;" s!Ce="D"> 2;ease enter @our userna"e an* pass)or*= <?font> <font face="Cour!er" s!Ce="D"> <p><,>userna"e=<?,> <!nput na"e="userna"e" s!Ce="D5"><?,> <,r><,>pass)or*=<?,> <!nput na"e="pass)or*" s!Ce="D5"><?,> <!nput t@pe="su,"!t" .a;ue="Lo !n"> <?font> <?for"> <?t*> <?tr> <?ta,;e> <?,o*@> <?8t";> <% END IF %>

6n scenariu asemntor pentru 0G 0ever: user: a*"!n &i password: p' or B=B-user: a L! password: '6 *rop ta,;e test-Problema B: se poate determina tabelul din ba"a de date unde sunt stocate informaiile de autentificare, structura acelui tabel &i apoi se pot insera date (pentru un utili"ator nou cu drepturi de administrator pe site) -rebuie configurat browserul s afi&e"e paginile cu mesa>ele de eroare a&a cum sunt returnate de ::0C#0P9 !n ie: -ools C :nternet $ptions C #dvanced C Arowsing 0=ow friendlD ,--P 'rror Iessages s fie deselectat. 0cenariu: 6sername L ' 8a.!n B=B- Co;u"n ';o !ns.u;o !n' !s !n.a;!* !n t8e se;ect ;!st ,ecause... tabelul care stoc=ea" informaiile de autentificare se nume&te ;o !ns &i prima coloan u;o 6sername L ' roup ,@ ;o !ns.u;o !n 8a.!n B=B- Co;u"n ';o !ns.pass)or*' !s !n.a;!* !n t8e se;ect ;!st ,ecause... a doua coloan pass)or*

!n

3
6sername L ' roup ,@ u;o !n: pass)or*: pr!.s 8a.!n B=B- nu se mai produc erori, cunosc structura tabelului logins(ulogin, password, privs) 6sername L ' un!on se;ect su"&u;o !n( fro" ;o !ns- +peran* *ata t@pe .arc8ar !s !n.a;!* for su" operator coloana ulogin e de tip varc=ar

3
6sername L '6 !nsert !nto u;o !ns .a;ues&Mattac9erN: MN: 5Iffff( --

atacatorul !&i creea" un cont de utili"ator 6sername L ' un!on se;ect 'a': 'a': "!n&u;o !n( fro" ;o !ns )8ere u;o !n>'a'- Con.ers!on fa!;e* )8en con.ert!n t8e .arc8ar .a;ue 'a*"!n' to *ata t@pe !nt. exist utili"ator admin 6sername L ' un!on se;ect 'a':'a':"!n&pass)or*( fro" ;o !ns )8ere u;o !n>='a*"!n'- Con.ers!on fa!;e* )8en con.ert!n t8e .arc8ar .a;ue 'pass)or*' to *ata t@pe !nt. utili"atorul admin are parola password Problema /: o dat cu controlul asupra ba"ei de date, se poate ataca mai departe ma&ina unde rulea" sgbd-ul &i alte ma&ini din reea. )e exemplu, folosind procedura stocat extins xpEcmds=ell, se pot executa comen"i pe ma&ina server de bd, ca utili"atorul 0G 0erver. 5omanda exec master..xpEcmds=ell NdirO va produce listarea coninutului directorului curent de lucru al procesului 0G 0erver. (serverul 0G 0erver trebuie s fie configurat pentru a avea suport xpEcmds=ell pentru ca atacul s funcione"e: utilitarul 0G 0erver 0urface #rea, opiunea 0G 0erver 0urface #rea 5onfiguration for 2eatures9 !n plus, utili"atorul care se conectea" la bd trebuie s aib drept de execuie al procedurii respective)

0oluii pentru problemele menionate: K) Palidarea datelor de intrare 'xemple: - respingerea datelor care se &tie c sunt Fbad inputH, anume cele care conin FselectH, FupdateH, FinsertH, FdeleteH, FdropH, FQF, FOH - acceptarea numai a datelor care constituie Fgood inputH, anume pentru c%mpul parol se accept numai &iruri formate cu caractere alfanumerice.

B) 2olosirea corect a procedurilor stocate /) )repturile utili"atorului care e folosit pentru conectarea la ba"a de date s fie minimale9 de exemplu, pentru construirea unui co& electronic e suficient accesul !n consultare (0' '5-) la tabelul cu produse &i inserare (:;0'7-) !n tabelul cu comen"i (restricionarea suprafeei de atacR). Aibliografie:
8ttp=??"s*nD."!crosoft.co"?en-us?;!,rar@?"sBOBPAQ.aspI 8ttp=??))).s!tepo!nt.co"?pr!nt?s';-!n/ect!on-attac9s-safe 8ttp=??s8a;tnot.or ?D55O?BD?DR?s';-!n/ect!on-tutor!a;? 8ttp=??))).!!s-resources.co"?"o*u;es?0%-?art!c;e.p8pSstor@!*=ARO

B'. Erori n programele / scripturile incluse n site i care trebuie e ecutate de serverul Web &tacuri folosind buffer overflo( $ eroare buffer overflow are loc atunci c%nd datele scrise !ntr-un buffer corup valorile din adrese de memorie adiacente bufferului respectiv ("on de memorie alocat). )e obicei, se produce prin copierea &irurilor de caractere dintr-un buffer !n altul. 'xemplu: dou variabile adiacente !n memorie, un buffer de * caractere (#) &i un !ntreg pe doi octei (A), au urmtoarele valori: # # # # # # # # A A + + + + + + + + + / Prin stocarea &irului de caractere SexcessiveS !n #, re"ult &i rescrierea lui A (sf%r&itul &irului e marcat cu caracterul cu cod +): # # # # # # # # A A TeT TxT TcT TeT TsT TsT TiT TvT TeT +

1n afar de a sc=imba valorile unor variabile care n-au legtur unele cu altele, dep&irile de acest fel pot fi exploatate de atacatori pentru a fora un program s execute un cod furni"at. )e exemplu, la un apel de funcie, dep&irile !n stiv produse pentru anumite variabile locale ale funciei pot suprascrie adresa de retur a funciei. 0uprascrierea se poate face cu adresa unei "one de memorie care s conin cod executabil care s reali"e"e operaii destructive. var / var B var K retur param B param K 3
Pariabila var / primeste o valoare care produce depsire9 adresa de retur poate fi setat la o adres ca in imagine, unde se afla cod executabil (e dificil s se sete"e aceast adres de retur nouR)

5resterea stivei

#cest scenariu a fost exploatat pentru 5?:-uri, c=iar &i pentru servere Web (exemplu: B++K, 5ode 7ed worm exploata un buffer overflow al Iicrosoft ::0). $ soluie evident pentru a evita astfel de scenarii e verificarea datelor de intrare primite. #lte soluii sunt: randomi"area stivei &i interdicia de a executa cod de pe stiv. B). &tacuri %oS *%enial of Service &ttac+s, 6n atac denial of service L o !ncercare de a face o resurs (calculator, serviciu) indisponibil pentru utili"atorii pentru care aceasta a fost destinat. Uintele tipice sunt serverele Web cu !ncrcare mare

(solicitate de obicei de muli clieni), iar atacurile vi"ea" s fac indisponibile paginile Web g"duite de acestea. $ form comun de atac se ba"ea" pe ideea de a fora calculatorul victim s-&i consume resursele de calcul (band, disc, timp 5P6), astfel !nc%t s nu mai poat furni"a serviciile eficient. 5%teva exemple de atac: a) #tac 0V; (0V; floods): profit de modul !n care se instania" o conexiune !n protocolul -5P. 0tabilirea conexiunii implic trei pa&i de iniiali"are, fiecare pas fiind executat numai dup execuia pasului anterior: K. 6n pac=et 0V; (sinc=roni"e) este trimis de la client ctre server (de la un port pe ma&ina surs ctre un port specific pe ma&ina destinaie). 7epre"int cererea clientului pentru o conexiune pe server. B. 6n pac=et 0V;-#5W este trimis de la server la client, pentru a-i comunica acestuia acceptarea conexiunii. 0erverul re"erv spaiu pentru conexiune &i a&teapt un rspuns #5W. /. 6n #5W (a8nowledge) este trimis de la client !napoi la server. )in acest moment clientul &i serverul au stabilit conexiunea. 1ntr-un atac 0V;, atacatorul face un flood de pac=ete 0V; ctre serverul int, deseori cu adresa expeditorului falsificat. 0erverul tratea" fiecare dintre aceste pac=ete ca o cerere de stabilire a unei conexiuni: creea" conexiuni semi-desc=ise, trimite pac=ete 0V;-#5W &i a&teapt rspunsul. 5um adresele clienilor sunt false, nu sunt primite astfel de rspunsuri: fie clientul nu exist, fie va ignora pac=etul 0V;-#5W. #ceste conexiuni semi-desc=ise consum resurse pe server &i limitea" capacitatea acestuia de a rspunde clienilor legitimi. b) #tac )o0 de coninut: 2ie un formular 2 prin intermediul crora se submit date ce se vor stoca !n ba"a de date de ctre o pagin ) (de exemplu, un forum Web)9 ) e pagina ctre care e direcionat formularul 2. 6n atac poate consta !n crearea unui program care s implemente"e desc=iderea repetat de conexiuni ,--P &i s trimit datele a&teptate (username, opinie etc) paginii ). Aa"a de date poate fi populat astfel cu date aleatoare. $ soluie poate fi verificarea la nivelul serverului a identitii clienilor &i limitarea resurselor alocate pentru fiecare client (numr maxim de conexiuni simultane C client). 0e poate eluda, !ns, &i aceast msur folosind openproxD care s ascund identitatea clientului c) #tac ))o0 ()istributed )o0): 1ntr-un atac ))o0, un atacator coordonea" atacuri )o0 ctre site-uri int, de pe multiple ma&ini client (deseori referite ca &i "ombie), distribuite pe tot globul, &i folosind un singur program client. 2olosind suficiente ma&ini client, un atacator poate distruge orice site. 5omponentele soft ce intervin intr-un atac ))o0 includ: - client < softul de control utili"at de atacator pentru a lansa atacuri. 5lientul direcionea" stringuri de comand catre =ost-urile subordonate. - daemon < programe soft ce rulea" pe un "ombie, &i care primesc stringuri de comand &i se comport !n consecin. #cesta este, de fapt, cel care implementea" atacul. Ia&inile implicate !ntr-un atac8 )do0: - master < calculatorul pe care rulea" softul client - "ombie < calculatorul ce rulea" procesul daemon - inta < inta atacului

Anatomia unui atac DDOS Pentru a recruta ma&ini pentru atac, atacatorii atac ma&ini nesecuri"ate adecvat conectate la :nternet. )up ce o ma&in nesigur a fost identificat, atacatorul compromite sistemul < !&i asigur access ca root. 6rmea" &tergerea urmelor, astfel ca sistemul s nu par c ar fi compromis. 6nele din ma&inile atacate devin master, altele devin "ombie. Pe master se instalea" &i o copie a softului client &i este un intermediar intre atacator &i "ombie. Iaster prime&te ordinele &i caut printre "ombie pe aceia care sunt activi. Pentru ma&inile master nu este important lrgimea de band - ele trimit doar comen"i. 6n daemon poate fi programat pentru a lansa mai multe tipuri de atacuri. 1n februarie B+++ a fost lansat un astfel de atac ctre #ma"on, Da=oo, 5;;, eAaD & AuD.com. Va=oo a fost inaccesibil timp de / ore. Va=oo primea aproximativ K?A trafic pe secund.

. Securitatea n comerul electronic securitatea calculatoarelor client


#meninri posibile: - datele &i coninutul activ livrat clientului !n paginile dinamice pot fi nocive9 - Fdeg=i"areaH unui server Web ruvoitor ca unul legitim poate determina clienii s de"vluie acestuia informaii sensibile. $ soluie la aceast problem a fost descris < folosirea certificatelor digitale.

a) 5oo8ie-uri (=ttp:CCwww.grc.comCcoo8ies.=tm) 5oo8ie L &iruri de caractere folosite !n comunicarea client-server Web, care servesc pentru etic=etarea clientului, astfel !nc%t acesta s fie recunoscut la vi"ite succesive. 5lasificare: - session coo8ies < exist doar pe durata unei sesiuni a unui client, p%n c%nd clientul !nc=eie sesiunea - persistent coo8ies < se stoc=ea" pentru o perioad indefinit9 - first partD - oferite browserului de serverul care e vi"itat - t=ird partD < provenite de la servere Web t=ird partD, care pstrea" resurse referite de pagina vi"itat de browser (de exemplu: servere de publicitate centrali"at). Prin urmrirea coo8ie-urilor t=ird partD se pot construi profile ale utili"atorilor, referitoare la istoricul &i obiceiurile de navigare. #ceste coo8ie-uri t=ird partD repre"int o ameninare a intimitii clientului. site K site resurse publicitare client site B

b) 5oninut activ L programe care sunt !nglobate transparent !n paginile Web &i care pot reali"a diverse tipuri de aciuni, de la afi&area de animaie, descrcare &i redare coninut audio, reali"area unor calcule parte din funcionalitile co& de cumprturi etc. 2orme sub care poate fi livrat coninut activ: - limba>e de script (@ava0cript, PA0cript), - applet-uri @ava (sandbox) - controale #ctiveX (au acces complet la calculatorul client) - imagini (unele formate grafice conin instruciuni pentru redarea imaginilor) - plug-ins (programe care sporesc capabilitile brwoser-ului)9 7ealPlaDer, KYYY - ata&amente e-mail pot g"dui coninut executabil

S-ar putea să vă placă și