Sunteți pe pagina 1din 19

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.

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