Sunteți pe pagina 1din 18

Securitatea reelelor.

Viermele Internetului

Internet este o structur deschis, la care se poate conecta un numr mare de calculatoare fiind deci greu de controlat. De aceea putem vorbi de vulnerabilitatea reelelor manifestat pe variate planuri. Un aspect crucial al reelelor de calculatoare, n special al comunicaiilor prin Internet l constituie securitatea informaiilor. Categorii de atacuri asupra reelelor Ameninrile la adresa securitii unei reele de calculatoare pot avea urmtoarele origini: dezastre sau calamiti naturale, defectri ale echipamentelor, greeli umane de operare sau manipulare, fraude. Primele trei tipuri de ameninri sunt accidentale, n timp ce ultima este intenionat. Cteva studii de securitate a calculatoarelor estimeaz c jumtate din costurile implicate de incidente sunt datorate aciunilor voit distructive, un sfert dezastrelor accidentale i un sfert greelilor umane. Acestea din urm pot fi evitate sau, n cele din urm, reparate printr-o mai bun aplicare a regulilor de securitate (salvri regulate de date, discuri oglindite, limitarea drepturilor de acces). n ameninrile datorate aciunilor voite, se disting dou categorii principale de atacuri: pasive i active. 1) Atacuri pasive - sunt acelea n cadrul crora intrusul observ informaia ce trece -prin "canal", fr s interfereze cu fluxul sau coninutul mesajelor. Ca urmare, se face doar analiza traficului, prin citirea identitii prilor care comunic i "nvnd" lungimea i frecvena mesajelor vehiculate pe un anumit canal logic, chiar dac coninutul acestora este neinteligibil. Atacurile pasive au urmtoarele caracteristici comune: Nu cauzeaz pagube (nu se terg sau se modific date); ncalc regulile de confidenialitate; Obiectivul este de a "asculta" datele schimbate prin reea; . Pot fi realizate printr-o varietate de metode, cum ar fi

supravegherea legturilor telefonice sau radio, exploatarea radiaiilor electromagnetice emise, rutarea datelor prin noduri adiionale mai puin protejate. 2) Atacuri active - sunt acelea n care intrusul se angajeaz fie n furtul mesajelor, fie -in modificarea, reluarea sau inserarea de mesaje false. Aceasta nseamn c el _ poate terge, ntrzia sau modifica mesaje, poate s fac inserarea unor mesaje false sau vechi, poate schimba ordinea mesajelor, fie pe o anumit direcie, fie pe -ambele direcii ale unui canal logic. Aceste atacuri sunt serioase deoarece modific starea sistemelor de calcul, a datelor sau a sistemelor de comunicaii. Exist . urmtoarele tipuri de ameninri active: Mascarada - este un tip de atac n care o entitate pretinde a fi o alt entitate. De exemplu, un utilizator ncearc s se substitue altuia sau un serviciu pretinde a fi un alt serviciu, n intenia de a lua date secrete (numrul crii de credit, parola sau cheia algoritmului de criptare). O "mascarad" este nsoit, de regul, de o alt ameninare activ, cum ar fi nlocuirea sau modificarea mesajelor; Reluarea - se produce atunci cnd un mesaj sau o parte a acestuia este reluat (repetat), n intenia de a produce un efect neautorizat. De exemplu, este posibil reutilizarea informaiei de autentificare a unui mesaj anterior. n conturile bancare, reluarea unitilor de date implic dublri i/sau alte. modificri nereale ale valorii conturilor; Modificarea mesajelor - face ca datele mesajului s fie alterate prin modificare, inserare sau tergere. Poate fi folosit pentru a se schimba beneficiarul unui credit n transferul electronic de fonduri sau pentru a modifica valoarea acelui credit. O alt utilizare poate fi modificarea cmpului destinatar/expeditor al potei electronice; Refuzul serviciului - se produce cnd o entitate nu izbutete s ndeplineasc propria funcie sau cnd face aciuni care mpiedic o alt entitate de la ndeplinirea propriei funcii; Repudierea serviciului - se produce cnd o entitate refuz s recunoasc un serviciu executat. Este evident c n aplicaiile de transfer electronic de fonduri este important s se evite

repudierea serviciului att de ctre emitor, ct i de ctre destinatar. n cazul atacurilor active se nscriu i unele programe create cu scop distructiv i care afecteaz, uneori esenial, securitatea calculatoarelor. Exist o terminologie care poate fi folosit pentru a prezenta diferitele posibiliti de atac asupra unui sistem. Acest vocabular este bine popularizat de "povetile" despre "hackeri". Atacurile presupun, n general, fie citirea informaiilor neautorizate, fie (n cel mai frecvent caz) distrugerea parial sau total a datelor sau chiar a calculatoarelor. Ce este mai grav este posibilitatea potenial de infestare, prin reea sau copieri de dischete, a unui mare numr de maini. Dintre aceste programe distructive amintim urmtoarele: Viruii - reprezint programe inserate n aplicaii, care se multiplic singure n alte programe din spaiul rezident de memorie sau de pe discuri; apoi, fie satureaz complet spaiul de memorie/disc i blocheaz sistemul, fie, dup un numr fixat de multiplicri, devin activi i intr ntr-o faz distructiv (care este de regul exponenial); Bomba software - este o procedur sau parte de cod inclus intr-o aplicaie "normal", care este activat de un eveniment predefinit. Autorul bombei anun evenimentul, lsnd-o s "explodeze", adic s fac aciunile distructive programate; Viermii - au efecte similare cu cele ale bombelor i viruilor. Principala diferen este aceea c nu rezid la o locaie fix sau nu se duplic singuri. Se mut n permanen, ceea ce i face dificil de detectat. Cel mai renumit exemplu este Viermele INTERNET ului, care a scos din funciune o parte din INTERNET n noiembrie 1988; Trapele - reprezint accese speciale la sistem, care sunt rezervate n mod normal pentru proceduri de ncrcare de la distan, ntreinere sau pentru dezvoltatorii unor aplicaii. Ele permit ns accesul la sistem, eludnd procedurile de identificare uzuale; Calul Troian - este o aplicaie care are o funcie de utilizare foarte cunoscut i care, intr-un mod ascuns, ndeplinete i o

alt funcie. Nu creeaz copii. De exemplu, un hacker poate nlocui codul unui program normal de control "login" prin alt cod, care face acelai lucru, dar, adiional, copiaz ntr-un fiier numele i parola pe care utilizatorul le tasteaz n procesul de autentificare. Ulterior, folosind acest fiier, hacker-ul va penetra foarte uor sistemul. Modelul de securitate n reele Modelul de securitate pentru un calculator seamn cu o ceap. Niveluri de securitate nconjoar subiectul ce trebuie protejat. Fiecare nivel izoleaz subiectul i l face mai greu de accesat n alt mod dect n cel n care a fost planificat. 1) Securitatea fizic reprezint nivelul exterior al modelului de securitate i const, n general, n ncuierea echipamentelor informatice ntr-un birou sau ntr-o alt incint. Securitatea fizic merit o consideraie special. Problema cea mai mare o constituie salvrile pentru copii de rezerv ale datelor i programelor i sigurana pstrrii suporilor de salvare. n aceste situaii, reelele locale sunt de mare ajutor: dac toate fiierele schimbate frecvent rezid pe un server, aceleai persoane (sigure i de ncredere), care lanseaz salvrile pentru mainframe-uri, pot face acelai lucru i la server. Calculatorul, ca orice pies costisitoare, ar trebui s fie protejat i. de pericolul furtului. Pstrarea n afara zonelor publice este una dintre cele mai bune forme de protecie. Simpla ncuiere a echipamentelor va preveni mutrile ascunse precum i furtul. ntr-un sistem n care prelucrarea este distribuit, prima msur de securitate fizic care trebuie avut n vedere este prevenirea accesului la echipamente. Pentru a nvinge orice alte msuri de securitate, trebuie s se dispun de acces fizic la echipamente. Acest lucru este comun tuturor sistemelor de calcul, distribuite sau nu. 2) Securitatea logic const din acele metode care asigur controlul accesului Ia resursele i serviciile sistemului. Ea are, la rndul ei, mai multe niveluri, mprite n dou grupe mari: niveluri de securitate a accesului (SA) i niveluri de securitate a serviciilor (SS).

3) Securitatea accesului (SA) cuprinde: accesul la sistem (AS), care este rspunztor de a determina dac i cnd reeaua este accesibil utilizatorilor. EI poate fi, de asemenea, rspunztor pentru decuplarea unei staii, ca i de gestiunea evidenei accesului. AS execut, de asemenea, deconectarea forat, dictat de supervizor. AS poate, de exemplu, s previn conectarea n afara orelor de serviciu i s ntrerup toate sesiunile, dup un anumit timp; accesul la cont (AC), care verific dac utilizatorul care se conecteaz cu un anumit nume i cu o parol exist i are un profil utilizator valid; drepturile de acces (DA), care determin ce privilegii de conectare are utilizatorul (de exemplu, contul poate avea sesiuni care totalizeaz 4 ore pe zi sau contul poate utiliza doar staia 27). Securitatea serviciilor (SS), care se afl sub SA, controleaz accesul la serviciile sistem, cum ar fi fire de ateptare, I/O la disc i gestiunea server ului. Din acest nivel fac parte: controlul serviciilor (CS), care este responsabil cu funciile de avertizare i de raportare a strii serviciilor; de asemenea, el activeaz i dezactiveaz diferitele servicii; drepturile la servicii (DS), care determin exact cum folosete un anumit cont un serviciu dat; de exemplu, un cont poate avea numai dreptul de a aduga fiiere la spooler-ul unei imprimante, dar are drepturi depline, de a aduga i terge fiiere, pentru o alt imprimant. O dat stabilit conexiunea, SA valideaz i definete contul. Operaiile ce trebuie executate sunt controlate de SS, care mpiedic cererile ce nu sunt specificate n profilul utilizatorului. Accesul intr-un sistem de securitate perfect trebuie s se fac prin aceste niveluri de securitate, de sus n jos. Orice sistem care v las s evitai unul sau mai multe niveluri ale modelului de securitate implic riscul de a fi nesigur.

Viermele Internet-ului Introducere n seara zilei de 2 noiembrie 1988, dup ora 17, un program ciudat era executat pe mai multe dintre calculatoarele Internet. Acest program aduna informaii despre host-uri, reele i utilizatori i folosea aceste informaii pentru a stabili conexiuni reea i pentru a ptrunde pe alte maini. El folosea anumite defecte sau slbiciuni prezente n anumite programe. Dup aceast ptrundere, programul se multiplica, iar copia sa ncerca infectarea altor sisteme, n aceeai manier. Chiar dac programul nu a infectat dect sistemele Sun Microsystems Sun 3 i calculatoarele VAX pe care rulau variante ale lui 4 BSD UNIX, el s-a extins rapid, crend confuzie i consternare n rndul administratorilor de sistem i al utilizatorilor, atunci cnd acetia au descoperit invazia produs n sistemele lor. Dei se cunotea c UNIX-ul are cteva slbiciuni de securitate, n special n modul obinuit de operare n medii deschise, totui scopul i modul n care acestea au fost folosite a constituit o surpriz mare pentru toat lumea. Programul era ciudat pentru utilizatori, n special din punctul de vedere al punctelor de apariie. Au fost introduse fiiere neobinuite n directoarele lusrltmp, iar unele mesaje stranii au aprut n fiierele unor utilitare, cum ar fi sendmail. Totui, cel mai notabil efect a fost faptul c sistemele au devenit din ce n ce mai ncrcate cu procese datorit infectrii multiple. Cu trecerea timpului, unele dintre maini au devenit att de ncrcate, nct nu au mai fost capabile s lucreze; unele maini au fost blocate complet, atunci cnd spaiul de evacuare (swaping) sau tabela de procese au fost saturate. n dimineaa zilei de 3 noiembrie, personalul de la Universitatea Berkeley din California i de la Institutul de Tehnologie Massachusetts au "capturat' copii ale programului i au nceput s le analizeze. Utilizatori din alte locuri au nceput, de asemenea, s studieze programul i au fost dezvoltate metode de eradicare a acestuia. O caracteristic a programului a ieit n eviden: modifica resursele sistemului ntr-un fel care nu putea fi

detectat rapid. Au fost alterate fiiere i distruse informaiile, ceea ce a impus cutarea unei soluii. Dup ora 5 am la mai puin de 13 ore de la prima descoperire a programului, Computer Systems Research Group de la Berkeley a stabilit un set provizoriu de msuri, n vederea opririi extinderii. Printre acestea se afla i o modificare la serviciul sendmail i sugestia de a redenumi compilatoarele C i ncrctorul, pentru a preveni utilizarea lor. Aceste sugestii au fost publicate n listele de pot electronic i prin sistemul de tiri din reeaua Usenet, cu toate c extinderea viermelui a fost mpiedicat, cel mai adesea prin deconetarea sistemelor de la INTERNET, n ncercarea de a le dezinfecta ulterior. Pe la orele 9 pm, n aceeai zi, a fost descoperit i publicat la Purdue University o alt metod simpl pentru stoparea invaziei acestui program. mbuntiri soft au fost anunate i de ctre grupul Berkeley, pentru a "astupa" fisurile ce permiteau programului s invadeze sistemele. Tot ceea ce rmnea de fcut era de a se analiza codul care a generat aceste probleme i de a descoperi cine i de ce lansat viermele. Cronologia evenimentelor Este foarte interesant de remarcat viteza i profunzimea cu care Viermele s-a extins i este semnificativ de urmrit rapiditatea cu care a fost identificat i-a oprit utilizndu-se aceeai reea pentru comunicarea ntre specialiti a rezultatelor. Este, credem noi, foarte interesant i instructiv de urmrit desfurarea n timp a rspndirii Viermelui, cel mai important eveniment de securitate din istoria INTERNET-ului, dar -este la fel de util de a vedea rapiditatea cu care s-a cristalizat riposta specialitilor. 2 Noiembrie 1988 17.00. Viermele este executat pe o main la Cornell University; 18.00. Maina prep.ai.mit.edu a lui MIT a fost infectat. Prep era o main cu acces public, utilizat pentru stocarea i distribuirea soft-ului prin proiectul GNU. Maina a fost configurat cu cteva vulnerabiliti de securitate de

notorietate, care permiteau . utilizatorilor de la distan s introduc fiiere n sistem; 18.30. Maina infectat de la Pittsburgh Univerity a infectat o main a corporaiei RAND; 21.00. Viermele este descoperit pe mainile de la Stanford University; 21.30. Este invadat o prim main la Minnesota University; 21.34. Maina gateway a Universitii Berkeley din California este invadat. Se descoper o neobinuit incrcare a mainii cu procese de pot; 22.34. Este infectat maina gateway a Universitii Princeton; 22.40. Maini de la Universitatea Norih Carolina sunt infectate i sunt ncercri de a invada alte maini; 22.48. Sunt infectate maini ale SRI via sendmail (pot); 22.52. Viemele incearc s invadeze maina andrew.cmu.edu de la Universitatea Carnegie-Mellon (pot); 22.54. Calculatoarele gateway de la Universitatea din MaryJand sunt atacate prin . . procesul din fundal corespunztor programului fingerd; 22.59. Mainile de la Universitatea din Pennsylvania sunt atacate, dar sunt "insen-sibile". Vor fi depistate 210 ncercri de infectare n urmtoarele 13 ore, prin pot; 23.48. Calculatorul mimsy.umd.edu de la Universitatea din Maryland este infectat via sendmail (pot); 23.40. Cercettorii de la Berkeley descoper intele de atac ca fiind sendmail i rsh. Ei incep s nchid serviciile pentru alte reele, ca msur de precauie; 23.45. Mainile de la Dartmouth i Laboratorul de Cercetri Balistice al Armatei (BRL) sunt atacate i infectate (pot, NCSC); 23.49. Gateway-urile de la Universitatea din Utah sunt infectate. n urmtoarea or numrul ncercrilor va ajunge la 100; 3 Noiembrie 1988

00.07. Este infectat maina Univesitii din Arizona, prin pot; 00.21. Este infectat maina principal a Universitii Princeton (un VAX 8650). Numrul ncercrilor ajunge la 68 i maina clacheaz; 00.33. Este infectat maina dewey.udel.edu a Universitii din Delaware; 01.30. Mainile de la UCLA sunt infectate; 02.00. Viermele este identificat pe mainile de la Universitatea Harvard; 02.38. De la Berkeley se transmite un mesaj prin pot cu coninutul: "Suntem atacai". Domeniile menionate ca fiind infectate sunt: U.C.Berkeley, U.C.San Diego, LLL, Stanford i NASA Ames; 03.15. Sunt infectate mainiie de la Universitatea din Chicago. Una dintre mainile de la Departamentuf de fizic sufer 225 de ncercri de infectare, via fingerd, de la maini din Cornell; 03.39. Avertismentul despre Vierme este transmis de la foo@bar.arpa sub forma: "Este probabil un virus pierdut prin INTERNET.". Urmau trei scurte fraze despre cum s fie oprit Viermele, urmate de "Sper c acestea ajut, dar mai mult, sper c este vorba de o fars.". Cel ce transmitea s-a dovedit a fi Andy Sudduth de fG Narvard, care a fost sunat prin telefon de presupusul autor al Viermelui, Robert T Morris. Datorit ncrcrii reelei i mainilor, avertismentul nu este propagat ir urmtoarele 24 de ore; 04.00. Universitatea Colorado este i ea supus atacului; 04.00. Mainile de la Universitatea Purdue sunt infectate; 05.54. Se transmite prin pot un avertisment cu privire la Virme i, n plus, c msur de protecie minimal referitoare la programul sendmail. Mesajul su este preluat de grupul de tiri Usenix; 06.45. Se sun la National Computer Security Center i se informeaz despre Vierme; 07.00. Maini ale Institutului de Tehnologie din Georgia sunt infectate. Maina gateway (un VAX 780) sufer peste 30 de

ncercri; 07.30. Se descoper infectarea mainilor de la Universitatea Purdue. Mainile sun att de ncrcate, nct nu se puteau citi mesajele primite prin pot, inclusiv mesajul despre Vierme; 08.07. La Berkeley se identific atacul Viermelui prin intermediul programului fingerd, dar mesajul trimis prin pot nu poate fi citit mai bine de 13 ore; 08.18. Se retransmite avertismentul despre Vierme grupului de tiri Usene news.announce.important i altor 30 de site-uri. Acestea au fost primele informaii despre Vierme, aflate de cei vizai n cursul ntregii zile, acest grup a schimb de mesaje prin pot cu privire la progresul i comportarea Viermelui; 10.36. Se transmite prima descriere cu privire la modul de lucru al Viermelui cele din lista nntp-managers. Atacul prin programul fingerd la aceast or nc nu est cunoscut; 11.30. Defense Communications Agency inhib bridge-urile de pot ntre Arpane i Milnei; 13.00. Sunt blocate peste 130 de maini ale SRI;' 14.50. Personalul de la Purdue descoper maini infectate cu variante noi de programe sendmail instalate. Se transmite un mesaj prin pot referitor la faptul c noua versiune de sendmail nu constituie o msur de protecie suficient. Acel lucru era cunoscut deja n multe locuri, inclusiv la Berkeley i MIT de mai bine cte ore, dar nu se publicase nc nimic; 16.00. Administratorii de sisteme de la Purdue se ntlnesc pentru a stabili strateg local. Versiunile de Vierme capturate au furnizat o variant de prevenire a infecie prin crearea unui director cu numele sh n directorul lusr tmp; 18.00. La Purdue s-a descoperit cum lucreaz Virmele, cu defeciunea din program finger, 19.00. La MIT, s-a reconstituit atacul Viermelui prin intermediul programului fingerd' i s-a telefonat la Berkeley pentru a se anuna aceasta. Nu a fost transmis nimic prin pot despre acest mod de atac; 19.19. S-au transmis noile mbuntiri aduse programelor sendmail i fingerd, dar aceste mesaje au fost recepionate abia

a doua zi; 19.37. De la Universitatea din Rochester a fost trimis prin pot o descriere a atacului prin intermediul programului fingerd; 21.30. Grupul de la Berkeley ncepe decompilarea Viermelui, pentru a determina sursa n C. 4 Noiembrie 1988 00.50. Se trimite prin pot o descriere a atacului prin intermediul fingerd. Se fac i primele comentarii referitoare la stilul de cod al autorului Viermelui; 05.00. Grupul MiT ncheie decompilarea codului; 09.00. Grupul de la Berkeley ncheie decompilarea codului; 11.00. Sunt reinstalate bridge-urile de pot ntre MilnetArpanet; 14.20. Se retransmit prin pot modificrile aduse la programul fingerd; 15.36. De la MIT, se transmit clarificri asupra modului de operare a Viermelui; 17.2d. Se transmite un set final de mbuntiri pentru sendmail i fingerd; 21.30. Autorul Viermelui este identificat din dou surse independente ca fiind Robert T Morris, fiut directorului tiinific al Centrului Naional de Securitate a Calcutatoarelor (GNSC), Robert Morris. Pn pe 8 noiembrie, marea majoritate a mainilor au fost reconectate la INTERNET i traficul a revenit la normal. n aceeai diminea, aproximativ 50 de cercettori s-au intlnit cu oficialitti din Centru! National de Securitate. Cu aceast ocazie, au fost identificate direciiile ulterioare de aciune n acest domeniu. Analizatorii de trafic al reelei au continuat s identifice ncercri de infectare nc existente pe mainile INTERNET-ului. O ultim ncecare a fost identificat la nceputul lunii decembrie 1988. Despre autorul Viermelui

Dup ce Viermele a fost oprit, au fost puse, inevitabil, dou ntrebri: "cine?" i "de ce?". La prima ntrebare rspunsul a aprut rapid prin identificarea lui Robert T. Morris de ctre New York Times. Exist multe elemente care susin identificarea fcut. Multe oficialiti federale au afirmat c au dovezi, obinute de la persoane distincte, prin care se specific faptul c Morris a discutat cu aceste persoane despre Vierme i cercetrile sale n aceast direcie. Ei susin, de asemenea, c au nregistrri de pe calculatoarele de la Universitatea Cornell reprezentnd versiuni de nceput ale codului Viermelui testate pe maini din campus i, de asemenea, susin c au copii ale Viermetui gsite n contul lui Morris. Raportut furnizat de Oficiul Rectoratului Universitii din Cornelt l indic de asemenea pe Morris ca fiind culpabil i prezint motive convingtoare pentru a susine aceast concluzie. Dar dac autorul era stabilit, motivul acestei aciuni rmnea neclar, plasat ntre un experiment greit i pn la un act incontient de rzbunare a lui Morris mpotriva tatlui su. Din studiul fcut de multe persoane asupra codului decompilat, au rezultat dou concluzii: O prim concluzie se refer la faptul c programul nu conine, n mod explicit, poriuni de cod care ar provoca explicit distrugeri ale sistemelor pe care ar rula. Lund n considerare abilitatea i cunotinele evideniate de cod, pentru autor ar fi constituit o chestiune simpl introducerea unor astfel de comenzi, dac aceasta ar fi fost intenia lui. n cele din urm, eliberarea prematur n reea a Viermelui arat c intenia autorului de a distruge sau perturba structuri i sisteme nu poate fi luat n considerare n mod explicit; A doua concluzie se refer fa faptul c n cod nu este inclus un mecanism pentru a opri dezvoltarea Viermelui. Lund n considerare acest lucru, precum i complexitatea irului utilizat ca argument, necesar pentru a declana Viermele, multe persoane care au examinat codul nu consider c Viermele a fost declanat accidental sau c intenia a fost de a nu fi propagat puternic. Avnd n vedere aceste lucruri, sunt ciudate ncercrile fcute pentru a justifica aciunea lui Morris, susinndu-se c intenia lui

era de a demonstra ceva despre securitatea 7NTERNET ului sau c a fost un experiment nevinovat. Raportul Rectoratului Universitii din Cornell nu ncearc s scuze comportamentul lui Morris. Aceast aciune este etichetat ca fiind neetic i contrar standardelor profesionale. Aciunea sa este considerat a fi ndreptat mpotriva politicii Universitii i practicii acceptate i ar fi fost de ateptat ca, avnd n vedere experiena pe care o are n acest domeniu, s cunoasc c astfel de aciuni sunt nepermise. Cei care cred c Viermele constituie un accident sau un experiment nefericit sunt de prere ca autorul s nu fie pedepsit, mergnd pn la a cere pedepsirea administratorilor i operatorilor de pe sistemele i mainile afectate, pentru neglijena cu care au tratat aspectele ,de securitate. Ceilali consider c autorul trebuie s fie pedepsit sever, inclusiv cu privarea de libertate. Comisia de la Cornell a recomandat unele pedepse, dar nu att de severe nct s afecteze cariera ulterioar a lui Morris. n acea recomandare este specificat suspendarea lui Morris din Universitate pentru minimum un an. Faptul c nu s-au ntmplat mari nenorociri poate constitui un accident i este posibil ca intenia autorului s fi fost de a suprancrca lNTERNET-ul, aa cum s-a i ntmplat. Scuzarea unor astfel de acte de vandalism, sub declaraia c autorii nu au vrut s creeze mari neajunsuri, nu poate conduce la descurajarea repetrii unor astfel de ncercri, ba chiar mai mult, acestea sunt ncurajate. Vulnerabiliti exploatate de Vierme Viermele utilizeaz o serie de defecte sau slbiciuni existente n software-ul standard al multor sisteme UNIX. Unele dintre aceste defecte sunt descrise n continuare. Programul Fingerd Programul fingerd este un utilitar care permite obinerea de informaii despre utilizatori. De obicei, este folosit pentru a identifica numele ntreg sau numele de conectare (login) al unui utilizator, dac acesta se afl n sesiune i posibil, alte informaii despre persoana respectiv, cum ar fi numerele de telefon etc. Acest program este rulat ca daemon sau proces n fundal

(background), pentru rezolvarea cererilor de informaii venite de la distan, utilizndu-se protocolul fingerd, Acest program accept conexiuni de. la programe ce ruleaz n alt parte, citete linia de intrare i trimite rspuns receptorului care a adresat ntrebarea. Punctul slab exploatat, prin care se "sparge" acest program, implic modificarea buffer ului de intrare folosit de acesta. Biblioteca f/0 a limbajului C are cteva rutine care citesc intrarea fr a verifica limitele buffer-ului implicat n aceast operaiune. n particular, apelul funciei gets preia datele de intrare ntr-un buffer, fr a face verificarea limitelor acestuia. Apelul acestei funcii a fost exploatat de Vierme. Rutina gets nu este singura care are acest neajuns. O ntreag familie de rutine din biblioteca Cului face posibil depirea buffer ului, atunci cnd se decodific intrarea sau cnd se formateaz ieirea, dac utilizatorul nu specific explicit numrul de caractere pentru conversie. Cu toate c programatorii experimentai sunt cunosctori ai acestor probleme, muli dintre ei continu s foloseasc aceste rutine. Necazul este c orice server de reea sau program privilegiat, care utilizeaz aceste funcii, poate fi compromis datorit utilizrii unei intrri improprii. Interesant este c recent, au mai fost descoperite nc dou comenzi n standardul BSD UNIX, care au aceast problem. Dup atacul asupra INTERNET-ului au fost relevate mai multe probleme poteniale i mai multe modaliti de a le nltura, dar cu toate acestea, biblioteca cu aceste rutine continu s fie utilizat. Programul Sendmail Programul sendmail este un serviciu de pot electronic, destinat s ruteze scrisorile ntr-o reea eterogen. Programul are mai multe moduri de operare, dar unul dintre acestea este exploatat de Vierme i implic lansarea serviciului ca proces n background (daemon). n acest mod de lucru, procesul se afl n starea de "ascultare" la un port TCP (25), pentru a face distribuirea potei sosite prin protocolul standard INTERNET, SMTP (Simple Mail Transfer Protocon. Cnd o astfel de situaie este detectat, procesul intr ntr-un dialog cu un alt proces de la

distan, pentru a determina expeditorul, destinatarul, instruciunile de distribuire i coninutul mesajului. Punctul slab exploatat n sendmail este legat de o opiune de depanare a codului. Viermele transmite comanda DEBUG la sendmail i apoi specific destinatarul mesajului, ca un set de comenzi i nu ca o adres utilizator. ntr-o operaiune normal, acest lucru nu este permis; ns, n activitatea de depanare a codului este posibil verificarea potei sosite pentru un anumit destinatar, fr a se apela rutinele de adresare. Prin utilizarea acestei opiuni, testele pot rula programe care s afieze starea sistemului de pot, fr trimiterea de mesaje sau stabilirea unei conexiuni. Aceast opiune de depanare este adesea utilizat tocmai datorit complexitii configurrii lui sendmail. Programul sendmail este de mare importan, mai ales pentru sisteme UNIX derivate din BSD, deoarece mnuiete procese complexe de rutare i distribuire a potei. Totui, n ciuda importanei mari i a utilizrii largi, cea mai mare parte a administratorilor de sisteme tiu puin despre felul n care lucreaz sendmail. Dei sunt relatate multe apariii de driver e scrise de administratori de sisteme sau modificri aduse Kernelului, nimeni nu a adus nc modificri la sendmail sau la configuraia fiierelor sale. n concluzie, punctele slabe prezentate n sendmail sunt puin cunoscute, iar unele dintre ele sunt depistate i comunicate pe msura descoperirii lor. Parole Una din "piesele de rezisten" ale Viermelui implic ncercarea de a descoperi parolele utilizatorilor. n sistemele UNIX, utilizatorul furnizeaz o parol ca semn de verificare a identitii. Parola este criptat, utiliznd o versiune a algoritmului DES, iar rezultatul este comparat cu rezultatul criptrii anterioare, prezent n fiierul letclpasswd. Dac acestea coincid, accesul este permis. n acest fiier nu sunt incluse parolele n clar i algoritmul se presupune a fi neinversabil; deci, fr cunoaterea parolei nu avem acces. Organizarea parolelor n UNIX permite unor comenzi neprivilegiate s utilizeze informaii din fiierul /etc/passwd i s acceseze schema de autentificare a parolelor. Deci se permite un

atac prin criptarea unei liste cu parole posibile i compararea rezultatelor cu fiierul letclpasswd, fr a se face apel la o funcie sistem, special dedicat. De fapt, securitatea parolelor este asigurat n principal prin numrul mare de ncercri ce trebuie efectuate pentru a le determina, cu toate combinaiile de caractere posibile. Din nefericire, exist maini care lucreaz rapid i costul unei astfel de aciuni este n continu descretere, datorit rapiditii dezvoltrii produselor hard. Diviznd procesul pe mai multe procesoare, se reduce mult timpul necesar determinrii unei parole. Astfel de atacuri sunt uurate mult, atunci cnd utilizatorul alege drept parol un cuvnt comun sau des folosit. n acest caz, toat cutarea se rezum la determinarea parolei prin verificarea unor cuvinte comune, existente ntr-o astfel de list (vezi capitolul 2). Viermele utilizeaz pentru spargerea parolei un astfel de tip de atac. n acest sens se folosete o list de cuvinte standard, cuvinte care sunt considerate a fi parole posibile. Viermele asigur criptarea lor prin intermediul unei versiuni rapide a algoritmului de cifrare i apoi, compar rezultatul cu coninutul fiierului /etc/passwd. Deci Viermele exploateaz accesul la acest fiier, cuplat cu tendina utilizatorilor de a alege cuvinte comune drept parole. Un defect discutat n prezent i care a fost exploatat de Vierme implic utilizarea sesiunilor de ncredere. Una din facilitile utile ale soft-ului de reea al lui BSD UNIX este suportul de execuie a proceselor pe maini aflate la distan. Pentru a se evita repetarea tipririi parolelor pentru accesul n conturi aflate la distan, se asigur posibilitatea unui utilizator de a specifica o list cu perechi gazd/cont, care sunt considerate a fi de ncredere, n sensul c un acces la distant de la calculatorul gazd la acel cont se face fr a utiliza parola contului respectiv. Acest aspect este responsabil de numeroasele accese neautorizate la calculatoare, dar continu s fie utilizat, fiind convenabil. Viermele a exploatat acest mecanism prin ncercarea de a localiza host-urile de ncredere i a determina perechile corespunztoare. Acest lucru a fost realizat prin examinarea de ctre Vierme a fiierului de pe host-ul curent, care conine perechile host/conturi. Odat ce Viermele gsete astfel de candidai, va ncerca, n

modul cel mai rapid, s se autoinstaleze pe aceste maini, folosind facilitatea execuiei la distan, copiindu-se pe sine pe maina de la distan, ca i cum ar fi un utilizator autorizat, care efectueaz o operaie standard de la distan. Pentru a inltura astfel de ncercri n viitor, este necesar ca actualul mecanism de acces la distan s fie anulat i nlocuit cu ceva nou. Un mecanism nou creat, care se apropie de cerinele de mai sus, este server ul de autentificare Kerberos (vezi subcapitolul 7.4). Descrierea Viermelui Viermele INTERNET este constituit din dou pri: un program principal i un program vector (bootstrap). Programul principal, o dat instalat pe o main, va colecta informaii despre alte maini din reea, cu care calculatorul gazd poate fi conectat. Va face aceast colectare prin citirea fiierelor de configurare i prin lansarea proceselor corespunztoare programelor utilitare de sistem, care furnizeaz informaii despre -starea curent a conexiunilor din reea. Apoi, va ncerca s profite de fisurile din soft, descrise mai sus, pentru a instala programul su vector pe fiecare din aceste calculatoare aflate la distan; Programul vector are 99 de linii de cod C, care vor fi compilate i rulate pe maina de la distan. Sursa acestui program va fi transferat la "victim", folosind una dintre metode4e care vor fi prezentate n continuare. Apoi, sursa va fi apelat pe maina victim, prin intermediul unei linii de comand, cu trei argumente: adresa de reea a calculatorului infectat, numrul port-ului de reea pentru conectarea la aceast main (pentru a se copia fiierele programului principal al Viermelui) i un numr magic, care acioneaz efectiv ca o parol cu o singur utilizare. Dac Viermele "server", de pe maina de la distan, nu recepioneaz napoi acelai numr magic (cel trimis de programul vector) nainte de nceperea transferului, va fi deconectat imediat de la programul vector. Acest lucru este realizat pentru a preveni ncercrile de capturare a fiierelor

binare prin nelarea Viermelui "server". Codul vectorului acioneaz pentru ascunderea sa i prin punerea pe 0 a vectorului su de argumente (imaginea liniei de comand), i prin utilizarea mecanismului fork pentru crearea unui proces fiu identic. Dac se ntmpl o defeciune n timpul transferului de fiiere, codul determin tergerea fiierelor deja transferate i apoi, face ieirea. O dat instalat pe o main, programul vector se va conecta cu calculatorul pe care se execut procesul Vierme original i va executa transferul unor fiiere binare (cod precompilat) ctre maina local. Fiecare fiier binar reprezint o versiune a programului Vierme principal, compilat corespunztor unei anumite arhitecturi de calculator i unei anumite versiuni de sistem de operare. Programul vector va transfera, de asemenea, o copie a sursei sale folosit pentru infectarea altor sisteme. Una dintre trsturile mai curioase ale programului vector a generat multe ntrebri: programul are alocate structuri de date pentru transferul a 20 de fiiere, din care au fost folosite doar 3. Acest lucru a condus la speculaia c a fost planificat, probabil pentru a fi lansat la o dat ulterioar, o versiune extins a Viermelui, cu alte fiiere de comand, fiiere de parole, virui locali i programe de tip "cai troieni". Odat ce fiierele binare au fost transferate, programul vector ncarc fiierele corespunztor versiunii locale a bibliotecilor standard, pe care le leag cu programele aduse. Ulterior, aceste programe vor fi apelate. Dac unul dintre acestea ruleaz cu succes, citete n memoria proprie copiile programului vector i ale fiierelor binare i apoi terge originalele de pe disc. n pasul urmtor, va ncerca s foreze ptrunderea pe alte maini. Dac nici una dintre versiuni nu ruleaz cu succes, atunci mecanismul de rulare a programului vector (un fiier de comenzi) va terge toate fiierele de pe disc create pe durata ncercrii de infectare, lsnd sistemul curat.

Referat luat de pe www.e-referate.ro Webmaster : Dan Dodita

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