際際滷

際際滷Share a Scribd company logo
Securitatea re釘elelor. 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 re釘elelor manifestat pe
variate planuri. Un aspect crucial al re釘elelor de calculatoare, 樽n
special al comunica釘iilor prin Internet 樽l constituie securitatea
informa釘iilor.


Categorii de atacuri asupra re釘elelor

      Amenin釘rile la adresa securit釘ii unei re釘ele de calculatoare
pot avea urmtoarele origini: dezastre sau calamit釘i naturale,
defectri ale echipamentelor, greeli umane de operare sau
manipulare, fraude. Primele trei tipuri de amenin釘ri sunt
accidentale, 樽n timp ce ultima este inten釘ionat. C但teva studii de
securitate a calculatoarelor estimeaz c jumtate din costurile
implicate de incidente sunt datorate ac釘iunilor 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 amenin釘rile datorate ac釘iunilor voite, se disting dou categorii
principale de atacuri: pasive i active.
1) Atacuri pasive - sunt acelea 樽n cadrul crora intrusul observ
informa釘ia ce trece -prin "canal", fr s interfereze cu fluxul sau
con釘inutul mesajelor. Ca urmare, se face doar analiza traficului,
prin citirea identit釘ii pr釘ilor care comunic i "樽nv釘但nd"
lungimea i frecven釘a mesajelor vehiculate pe un anumit canal
logic, chiar dac con釘inutul acestora este neinteligibil. Atacurile
pasive au urmtoarele caracteristici comune:
Nu cauzeaz pagube (nu se terg sau se modific date);
ncalc regulile de confiden釘ialitate;
Obiectivul este de a "asculta" datele schimbate prin re釘ea; .
Pot fi realizate printr-o varietate de metode, cum ar fi
supravegherea legturilor telefonice sau radio, exploatarea
radia釘iilor electromagnetice emise, rutarea datelor prin noduri
adi釘ionale mai pu釘in 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, 樽nt但rzia sau
modifica mesaje, poate s fac inserarea unor mesaje 但 false sau
vechi, poate schimba ordinea mesajelor, fie pe o anumit direc釘ie,
fie pe -ambele direc釘ii ale unui canal logic. Aceste atacuri sunt
serioase deoarece modific starea sistemelor de calcul, a datelor
sau a sistemelor de comunica釘ii. Exist . urmtoarele tipuri de
amenin釘ri 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 inten釘ia de a
lua date secrete (numrul cr釘ii de credit, parola sau cheia
algoritmului de criptare). O "mascarad" este 樽nso釘it, de regul,
de o alt amenin釘are activ, cum ar fi 樽nlocuirea sau modificarea
mesajelor;
Reluarea - se produce atunci c但nd un mesaj sau o parte a acestuia
este reluat (repetat), 樽n inten釘ia de a produce un efect
neautorizat. De exemplu, este posibil reutilizarea informa釘iei de
autentificare a unui mesaj anterior. n conturile bancare, reluarea
unit釘ilor 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 c但mpului destinatar/expeditor al
potei electronice;
Refuzul serviciului - se produce c但nd o entitate nu izbutete s
樽ndeplineasc propria func釘ie sau c但nd face ac釘iuni care 樽mpiedic
o alt entitate de la 樽ndeplinirea propriei func釘ii;
Repudierea serviciului - se produce c但nd o entitate refuz s
recunoasc un serviciu executat. Este evident c 樽n aplica釘iile de
transfer electronic de fonduri este important s se evite
repudierea serviciului at但t de ctre emi釘tor, c但t i de ctre
destinatar.

      n cazul atacurilor active se 樽nscriu i unele programe create
cu scop distructiv i care afecteaz, uneori esen釘ial, securitatea
calculatoarelor. Exist o terminologie care poate fi folosit pentru
a prezenta diferitele posibilit釘i de atac asupra unui sistem. Acest
vocabular este bine popularizat de "povetile" despre "hackeri".
Atacurile presupun, 樽n general, fie citirea informa釘iilor
neautorizate, fie (樽n cel mai frecvent caz) distrugerea par釘ial sau
total a datelor sau chiar a calculatoarelor. Ce este mai grav este
posibilitatea poten釘ial de infestare, prin re釘ea sau copieri de
dischete, a unui mare numr de maini. Dintre aceste programe
distructive amintim urmtoarele:
Viruii - reprezint programe inserate 樽n aplica釘ii, care se
multiplic singure 樽n alte programe din spa釘iul rezident de
memorie sau de pe discuri; apoi, fie satureaz complet spa釘iul 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 exponen釘ial);
Bomba software - este o procedur sau parte de cod inclus intr-
o aplica釘ie "normal", care este activat de un eveniment
predefinit. Autorul bombei anun釘 evenimentul, ls但nd-o s
"explodeze", adic s fac ac釘iunile distructive programate;
Viermii - au efecte similare cu cele ale bombelor i viruilor.
Principala diferen釘 este aceea c nu rezid la o loca釘ie 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 func釘iune 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釘,
樽ntre釘inere sau pentru dezvoltatorii unor aplica釘ii. Ele permit 樽ns
accesul la sistem, elud但nd procedurile de identificare uzuale;
Calul Troian - este o aplica釘ie care are o func釘ie de utilizare
foarte cunoscut i care, intr-un mod ascuns, 樽ndeplinete i o alt
func釘ie. Nu creeaz copii. De exemplu, un hacker poate 樽nlocui
codul unui program normal de control "login" prin alt cod, care
face acelai lucru, dar, adi釘ional, 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 re釘ele

   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 dec但t 樽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 considera釘ie special. Problema cea mai mare o
   constituie salvrile pentru copii de rezerv ale datelor i
   programelor i siguran釘a pstrrii supor釘ilor de salvare. n
   aceste situa釘ii, re釘elele 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 protec釘ie. 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 r但ndul ei, mai multe niveluri, 樽mpr釘ite 樽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 c但nd re釘eaua este accesibil utilizatorilor. EI poate fi, de
  asemenea, rspunztor pentru decuplarea unei sta釘ii, ca i de
  gestiunea eviden釘ei accesului. AS execut, de asemenea,
  deconectarea for釘at, 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
  sta釘ia 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 func釘iile 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.
Opera釘iile 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 evita釘i 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 informa釘ii despre host-uri, re釘ele i
utilizatori i folosea aceste informa釘ii pentru a stabili conexiuni
re釘ea 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 dec但t sistemele Sun Microsystems Sun 3
i calculatoarele VAX pe care rulau variante ale lui 4 BSD UNIX,
el s-a extins rapid, cre但nd confuzie i consternare 樽n r但ndul
administratorilor de sistem i al utilizatorilor, atunci c但nd acetia
au descoperit invazia produs 樽n sistemele lor. Dei se cunotea c
UNIX-ul are c但teva 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 apari釘ie. 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 at但t de
樽ncrcate, 樽nc但t nu au mai fost capabile s lucreze; unele maini
au fost blocate complet, atunci c但nd spa釘iul de evacuare (swaping)
sau tabela de procese au fost saturate.
      n diminea釘a 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 informa釘iile, ceea
ce a impus cutarea unei solu釘ii. Dup ora 5 am la mai pu釘in 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 re釘eaua 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. mbunt釘iri soft au fost anun釘ate i de
ctre grupul Berkeley, pentru a "astupa" fisurile ce permiteau
programului s invadeze sistemele. Tot ceea ce rm但nea 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 utiliz但ndu-se aceeai re釘ea
pentru comunicarea 樽ntre specialiti a rezultatelor. Este, credem
noi, foarte interesant i instructiv de urmrit desfurarea 樽n timp
a rsp但ndirii 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 c但teva
vulnerabilit釘i 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 corpora釘iei 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 Universit釘ii Berkeley din California
este invadat. Se descoper o neobinuit incrcare a mainii cu
procese de pot;
22.34. Este infectat maina gateway a Universit釘ii 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
re釘ele, ca msur de precau釘ie;
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 Univesit釘ii din Arizona, prin pot;
00.21. Este infectat maina principal a Universit釘ii Princeton
(un VAX 8650). Numrul 樽ncercrilor ajunge la 68 i maina
clacheaz;
00.33. Este infectat maina dewey.udel.edu a Universit釘ii 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
con釘inutul: "Suntem ataca釘i". Domeniile men釘ionate 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 re釘elei 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 protec釘ie 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 at但t de 樽ncrcate, 樽nc但t 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 informa釘ii despre Vierme, aflate de cei
viza釘i 樽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 protec釘ie suficient. Acel lucru era
cunoscut deja 樽n multe locuri, inclusiv la Berkeley i MIT de mai
bine c但te ore, dar nu se publicase 樽nc nimic;
16.00. Administratorii de sisteme de la Purdue se 樽nt但lnesc
pentru a stabili strateg local. Versiunile de Vierme capturate au
furnizat o variant de prevenire a infec釘ie prin crearea unui
director cu numele sh 樽n directorul lusr tmp;
18.00. La Purdue s-a descoperit cum lucreaz Virmele, cu
defec釘iunea 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
anun釘a aceasta. Nu a fost transmis nimic prin pot despre acest
mod de atac;
19.19. S-au transmis noile 樽mbunt釘iri aduse programelor
sendmail i fingerd, dar aceste mesaje au fost recep釘ionate 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 Milnet-
Arpanet;
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
樽mbunt釘iri pentru sendmail i fingerd;
21.30. Autorul Viermelui este identificat din dou surse
independente ca fiind Robert T Morris, fiut directorului tiin釘ific
al Centrului Na釘ional de Securitate a Calcutatoarelor (GNSC),
Robert Morris.
P但n 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 int但lnit cu
oficialitti din Centru! National de Securitate. Cu aceast ocazie,
au fost identificate direciiile ulterioare de ac釘iune 樽n acest
domeniu. Analizatorii de trafic al re釘elei 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 sus釘in identificarea fcut. Multe
oficialit釘i federale au afirmat c au dovezi, ob釘inute de la
persoane distincte, prin care se specific faptul c Morris a
discutat cu aceste persoane despre Vierme i cercetrile sale 樽n
aceast direc釘ie. Ei sus釘in, de asemenea, c au 樽nregistrri de pe
calculatoarele de la Universitatea Cornell reprezent但nd versiuni
de 樽nceput ale codului Viermelui testate pe maini din campus i,
de asemenea, sus釘in c au copii ale Viermetui gsite 樽n contul lui
Morris. Raportut furnizat de Oficiul Rectoratului Universit釘ii
din Cornelt 樽l indic de asemenea pe Morris ca fiind culpabil i
prezint motive convingtoare pentru a sus釘ine aceast concluzie.
      Dar dac autorul era stabilit, motivul acestei ac釘iuni
rm但nea neclar, plasat 樽ntre un experiment greit i p但n 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
con釘ine, 樽n mod explicit, por釘iuni de cod care ar provoca explicit
distrugeri ale sistemelor pe care ar rula. Lu但nd 樽n considerare
abilitatea i cunotin釘ele eviden釘iate de cod, pentru autor ar fi
constituit o chestiune simpl introducerea unor astfel de comenzi,
dac aceasta ar fi fost inten釘ia lui. n cele din urm, eliberarea
prematur 樽n re釘ea a Viermelui arat c inten釘ia 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. Lu但nd 樽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 inten釘ia a fost de a nu fi propagat puternic.
Av但nd 樽n vedere aceste lucruri, sunt ciudate 樽ncercrile fcute
pentru a justifica ac釘iunea lui Morris, sus釘in但ndu-se c inten釘ia lui
era de a demonstra ceva despre securitatea 7NTERNET ului sau
c a fost un experiment nevinovat. Raportul Rectoratului
Universit釘ii din Cornell nu 樽ncearc s scuze comportamentul lui
Morris. Aceast ac釘iune este etichetat ca fiind neetic i contrar
standardelor profesionale. Ac釘iunea sa este considerat a fi
樽ndreptat 樽mpotriva politicii Universit釘ii i practicii acceptate i
ar fi fost de ateptat ca, av但nd 樽n vedere experien釘a pe care o are
樽n acest domeniu, s cunoasc c astfel de ac釘iuni sunt nepermise.
Cei care cred c Viermele constituie un accident sau un
experiment nefericit sunt de prere ca autorul s nu fie pedepsit,
merg但nd p但n la a cere pedepsirea administratorilor i
operatorilor de pe sistemele i mainile afectate, pentru neglijen釘a
cu care au tratat aspectele ,de securitate. Ceilal釘i consider c
autorul trebuie s fie pedepsit sever, inclusiv cu privarea de
libertate. Comisia de la Cornell a recomandat unele pedepse, dar
nu at但t de severe 樽nc但t 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 樽nt但mplat
mari nenorociri poate constitui un accident i este posibil ca
inten釘ia autorului s fi fost de a supra樽ncrca lNTERNET-ul, aa
cum s-a i 樽nt但mplat. Scuzarea unor astfel de acte de vandalism,
sub declara釘ia 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.

Vulnerabilit釘i 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 ob釘inerea de
informa釘ii 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 informa釘ii
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 informa釘ii venite de
la distan釘, utiliz但ndu-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 c但teva rutine care citesc intrarea
fr a verifica limitele buffer-ului implicat 樽n aceast opera釘iune.
n particular, apelul func釘iei gets preia datele de intrare 樽ntr-un
buffer, fr a face verificarea limitelor acestuia. Apelul acestei
func釘ii a fost exploatat de Vierme. Rutina gets nu este singura care
are acest neajuns. O 樽ntreag familie de rutine din biblioteca C-
ului face posibil depirea buffer ului, atunci c但nd se decodific
intrarea sau c但nd se formateaz ieirea, dac utilizatorul nu
specific explicit numrul de caractere pentru conversie.
Cu toate c programatorii experimenta釘i sunt cunosctori ai
acestor probleme, mul釘i dintre ei continu s foloseasc aceste
rutine. Necazul este c orice server de re釘ea sau program
privilegiat, care utilizeaz aceste func釘ii, 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 poten釘iale i mai multe modalit釘i 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 re釘ea 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. C但nd o astfel de situa釘ie
este detectat, procesul intr 樽ntr-un dialog cu un alt proces de la
distan釘, pentru a determina expeditorul, destinatarul,
instruc釘iunile de distribuire i con釘inutul mesajului.
Punctul slab exploatat 樽n sendmail este legat de o op釘iune 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 opera釘iune 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 op釘iuni, testele pot rula programe care s afieze starea
sistemului de pot, fr trimiterea de mesaje sau stabilirea unei
conexiuni. Aceast op釘iune de depanare este adesea utilizat
tocmai datorit complexit釘ii configurrii lui sendmail.
Programul sendmail este de mare importan釘, mai ales
pentru sisteme UNIX derivate din BSD, deoarece m但nuiete
procese complexe de rutare i distribuire a potei. Totui, 樽n ciuda
importan釘ei mari i a utilizrii largi, cea mai mare parte a
administratorilor de sisteme tiu pu釘in despre felul 樽n care
lucreaz sendmail. Dei sunt relatate multe apari釘ii de driver e
scrise de administratori de sisteme sau modificri aduse Kernel-
ului, nimeni nu a adus 樽nc modificri la sendmail sau la
configura釘ia fiierelor sale. n concluzie, punctele slabe prezentate
樽n sendmail sunt pu釘in 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
identit釘ii. Parola este criptat, utiliz但nd 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 informa釘ii 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 func釘ie
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 combina釘iile de caractere
posibile. Din nefericire, exist maini care lucreaz rapid i costul
unei astfel de ac釘iuni este 樽n continu descretere, datorit
rapidit釘ii dezvoltrii produselor hard.
      Diviz但nd procesul pe mai multe procesoare, se reduce mult
timpul necesar determinrii unei parole. Astfel de atacuri sunt
uurate mult, atunci c但nd utilizatorul alege drept parol un
cuv但nt 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 con釘inutul
fiierului /etc/passwd. Deci Viermele exploateaz accesul la acest
fiier, cuplat cu tendin釘a 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
facilit釘ile utile ale soft-ului de re釘ea al lui BSD UNIX este
suportul de execu釘ie 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 con釘ine perechile host/conturi.
Odat ce Viermele gsete astfel de candida釘i, va 樽ncerca, 樽n
modul cel mai rapid, s se autoinstaleze pe aceste maini, folosind
facilitatea execu釘iei la distan釘, copiindu-se pe sine pe maina de la
distan釘, ca i cum ar fi un utilizator autorizat, care efectueaz o
opera釘ie 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 cerin釘ele de mai sus, este server ul de
autentificare Kerberos (vezi subcapitolul 7.4).

Descrierea Viermelui

     Viermele INTERNET este constituit din dou pr釘i: un
program principal i un program vector (bootstrap).
Programul principal, o dat instalat pe o main, va colecta
informa釘ii despre alte maini din re釘ea, 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 informa釘ii despre
-starea curent a conexiunilor din re釘ea. 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 re釘ea a calculatorului infectat, numrul
port-ului de re釘ea pentru conectarea la aceast main (pentru a
se copia fiierele programului principal al Viermelui) i un numr
magic, care ac釘ioneaz efectiv ca o parol cu o singur utilizare.

      Dac Viermele "server", de pe maina de la distan釘, nu
recep釘ioneaz 樽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 ac釘ioneaz 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 樽nt但mpl o defec釘iune 樽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 specula釘ia 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 for釘eze 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, ls但nd sistemul curat.

More Related Content

Securitatea Retelelor. Viermele Internetului

  • 1. Securitatea re釘elelor. 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 re釘elelor manifestat pe variate planuri. Un aspect crucial al re釘elelor de calculatoare, 樽n special al comunica釘iilor prin Internet 樽l constituie securitatea informa釘iilor. Categorii de atacuri asupra re釘elelor Amenin釘rile la adresa securit釘ii unei re釘ele de calculatoare pot avea urmtoarele origini: dezastre sau calamit釘i naturale, defectri ale echipamentelor, greeli umane de operare sau manipulare, fraude. Primele trei tipuri de amenin釘ri sunt accidentale, 樽n timp ce ultima este inten釘ionat. C但teva studii de securitate a calculatoarelor estimeaz c jumtate din costurile implicate de incidente sunt datorate ac釘iunilor 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 amenin釘rile datorate ac釘iunilor voite, se disting dou categorii principale de atacuri: pasive i active. 1) Atacuri pasive - sunt acelea 樽n cadrul crora intrusul observ informa釘ia ce trece -prin "canal", fr s interfereze cu fluxul sau con釘inutul mesajelor. Ca urmare, se face doar analiza traficului, prin citirea identit釘ii pr釘ilor care comunic i "樽nv釘但nd" lungimea i frecven釘a mesajelor vehiculate pe un anumit canal logic, chiar dac con釘inutul acestora este neinteligibil. Atacurile pasive au urmtoarele caracteristici comune: Nu cauzeaz pagube (nu se terg sau se modific date); ncalc regulile de confiden釘ialitate; Obiectivul este de a "asculta" datele schimbate prin re釘ea; . Pot fi realizate printr-o varietate de metode, cum ar fi
  • 2. supravegherea legturilor telefonice sau radio, exploatarea radia釘iilor electromagnetice emise, rutarea datelor prin noduri adi釘ionale mai pu釘in 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, 樽nt但rzia sau modifica mesaje, poate s fac inserarea unor mesaje 但 false sau vechi, poate schimba ordinea mesajelor, fie pe o anumit direc釘ie, fie pe -ambele direc釘ii ale unui canal logic. Aceste atacuri sunt serioase deoarece modific starea sistemelor de calcul, a datelor sau a sistemelor de comunica釘ii. Exist . urmtoarele tipuri de amenin釘ri 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 inten釘ia de a lua date secrete (numrul cr釘ii de credit, parola sau cheia algoritmului de criptare). O "mascarad" este 樽nso釘it, de regul, de o alt amenin釘are activ, cum ar fi 樽nlocuirea sau modificarea mesajelor; Reluarea - se produce atunci c但nd un mesaj sau o parte a acestuia este reluat (repetat), 樽n inten釘ia de a produce un efect neautorizat. De exemplu, este posibil reutilizarea informa釘iei de autentificare a unui mesaj anterior. n conturile bancare, reluarea unit釘ilor 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 c但mpului destinatar/expeditor al potei electronice; Refuzul serviciului - se produce c但nd o entitate nu izbutete s 樽ndeplineasc propria func釘ie sau c但nd face ac釘iuni care 樽mpiedic o alt entitate de la 樽ndeplinirea propriei func釘ii; Repudierea serviciului - se produce c但nd o entitate refuz s recunoasc un serviciu executat. Este evident c 樽n aplica釘iile de transfer electronic de fonduri este important s se evite repudierea serviciului at但t de ctre emi釘tor, c但t i de ctre
  • 3. destinatar. n cazul atacurilor active se 樽nscriu i unele programe create cu scop distructiv i care afecteaz, uneori esen釘ial, securitatea calculatoarelor. Exist o terminologie care poate fi folosit pentru a prezenta diferitele posibilit釘i de atac asupra unui sistem. Acest vocabular este bine popularizat de "povetile" despre "hackeri". Atacurile presupun, 樽n general, fie citirea informa釘iilor neautorizate, fie (樽n cel mai frecvent caz) distrugerea par釘ial sau total a datelor sau chiar a calculatoarelor. Ce este mai grav este posibilitatea poten釘ial de infestare, prin re釘ea sau copieri de dischete, a unui mare numr de maini. Dintre aceste programe distructive amintim urmtoarele: Viruii - reprezint programe inserate 樽n aplica釘ii, care se multiplic singure 樽n alte programe din spa釘iul rezident de memorie sau de pe discuri; apoi, fie satureaz complet spa釘iul 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 exponen釘ial); Bomba software - este o procedur sau parte de cod inclus intr- o aplica釘ie "normal", care este activat de un eveniment predefinit. Autorul bombei anun釘 evenimentul, ls但nd-o s "explodeze", adic s fac ac釘iunile distructive programate; Viermii - au efecte similare cu cele ale bombelor i viruilor. Principala diferen釘 este aceea c nu rezid la o loca釘ie 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 func釘iune 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釘, 樽ntre釘inere sau pentru dezvoltatorii unor aplica釘ii. Ele permit 樽ns accesul la sistem, elud但nd procedurile de identificare uzuale; Calul Troian - este o aplica釘ie care are o func釘ie de utilizare foarte cunoscut i care, intr-un mod ascuns, 樽ndeplinete i o alt func釘ie. Nu creeaz copii. De exemplu, un hacker poate 樽nlocui codul unui program normal de control "login" prin alt cod, care face acelai lucru, dar, adi釘ional, copiaz 樽ntr-un fiier numele i
  • 4. 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 re釘ele 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 dec但t 樽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 considera釘ie special. Problema cea mai mare o constituie salvrile pentru copii de rezerv ale datelor i programelor i siguran釘a pstrrii supor釘ilor de salvare. n aceste situa釘ii, re釘elele 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 protec釘ie. 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 r但ndul ei, mai multe niveluri, 樽mpr釘ite 樽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
  • 5. dac i c但nd re釘eaua este accesibil utilizatorilor. EI poate fi, de asemenea, rspunztor pentru decuplarea unei sta釘ii, ca i de gestiunea eviden釘ei accesului. AS execut, de asemenea, deconectarea for釘at, 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 sta釘ia 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 func釘iile 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. Opera釘iile 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 evita釘i unul sau mai multe niveluri ale modelului de securitate implic riscul de a fi nesigur. Viermele Internet-ului Introducere
  • 6. n seara zilei de 2 noiembrie 1988, dup ora 17, un program ciudat era executat pe mai multe dintre calculatoarele Internet. Acest program aduna informa釘ii despre host-uri, re釘ele i utilizatori i folosea aceste informa釘ii pentru a stabili conexiuni re釘ea 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 dec但t sistemele Sun Microsystems Sun 3 i calculatoarele VAX pe care rulau variante ale lui 4 BSD UNIX, el s-a extins rapid, cre但nd confuzie i consternare 樽n r但ndul administratorilor de sistem i al utilizatorilor, atunci c但nd acetia au descoperit invazia produs 樽n sistemele lor. Dei se cunotea c UNIX-ul are c但teva 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 apari釘ie. 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 at但t de 樽ncrcate, 樽nc但t nu au mai fost capabile s lucreze; unele maini au fost blocate complet, atunci c但nd spa釘iul de evacuare (swaping) sau tabela de procese au fost saturate. n diminea釘a 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 informa釘iile, ceea ce a impus cutarea unei solu釘ii. Dup ora 5 am la mai pu釘in de 13 ore de la prima descoperire a programului, Computer Systems Research Group de la Berkeley a stabilit un set provizoriu de
  • 7. 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 re釘eaua 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. mbunt釘iri soft au fost anun釘ate i de ctre grupul Berkeley, pentru a "astupa" fisurile ce permiteau programului s invadeze sistemele. Tot ceea ce rm但nea 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 utiliz但ndu-se aceeai re釘ea pentru comunicarea 樽ntre specialiti a rezultatelor. Este, credem noi, foarte interesant i instructiv de urmrit desfurarea 樽n timp a rsp但ndirii 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 c但teva vulnerabilit釘i 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 corpora釘iei RAND; 21.00. Viermele este descoperit pe mainile de la Stanford
  • 8. University; 21.30. Este invadat o prim main la Minnesota University; 21.34. Maina gateway a Universit釘ii Berkeley din California este invadat. Se descoper o neobinuit incrcare a mainii cu procese de pot; 22.34. Este infectat maina gateway a Universit釘ii 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 re釘ele, ca msur de precau釘ie; 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 Univesit釘ii din Arizona, prin pot; 00.21. Este infectat maina principal a Universit釘ii Princeton (un VAX 8650). Numrul 樽ncercrilor ajunge la 68 i maina clacheaz; 00.33. Este infectat maina dewey.udel.edu a Universit釘ii din Delaware; 01.30. Mainile de la UCLA sunt infectate;
  • 9. 02.00. Viermele este identificat pe mainile de la Universitatea Harvard; 02.38. De la Berkeley se transmite un mesaj prin pot cu con釘inutul: "Suntem ataca釘i". Domeniile men釘ionate 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 re釘elei 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 protec釘ie 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 at但t de 樽ncrcate, 樽nc但t 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.
  • 10. Acestea au fost primele informa釘ii despre Vierme, aflate de cei viza釘i 樽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 protec釘ie suficient. Acel lucru era cunoscut deja 樽n multe locuri, inclusiv la Berkeley i MIT de mai bine c但te ore, dar nu se publicase 樽nc nimic; 16.00. Administratorii de sisteme de la Purdue se 樽nt但lnesc pentru a stabili strateg local. Versiunile de Vierme capturate au furnizat o variant de prevenire a infec釘ie prin crearea unui director cu numele sh 樽n directorul lusr tmp; 18.00. La Purdue s-a descoperit cum lucreaz Virmele, cu defec釘iunea 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 anun釘a aceasta. Nu a fost transmis nimic prin pot despre acest mod de atac; 19.19. S-au transmis noile 樽mbunt釘iri aduse programelor sendmail i fingerd, dar aceste mesaje au fost recep釘ionate 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
  • 11. 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 Milnet- Arpanet; 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 樽mbunt釘iri pentru sendmail i fingerd; 21.30. Autorul Viermelui este identificat din dou surse independente ca fiind Robert T Morris, fiut directorului tiin釘ific al Centrului Na釘ional de Securitate a Calcutatoarelor (GNSC), Robert Morris. P但n 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 int但lnit cu oficialitti din Centru! National de Securitate. Cu aceast ocazie, au fost identificate direciiile ulterioare de ac釘iune 樽n acest domeniu. Analizatorii de trafic al re釘elei 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 sus釘in identificarea fcut. Multe oficialit釘i federale au afirmat c au dovezi, ob釘inute de la persoane distincte, prin care se specific faptul c Morris a discutat cu aceste persoane despre Vierme i cercetrile sale 樽n aceast direc釘ie. Ei sus釘in, de asemenea, c au 樽nregistrri de pe calculatoarele de la Universitatea Cornell reprezent但nd versiuni de 樽nceput ale codului Viermelui testate pe maini din campus i, de asemenea, sus釘in c au copii ale Viermetui gsite 樽n contul lui
  • 12. Morris. Raportut furnizat de Oficiul Rectoratului Universit釘ii din Cornelt 樽l indic de asemenea pe Morris ca fiind culpabil i prezint motive convingtoare pentru a sus釘ine aceast concluzie. Dar dac autorul era stabilit, motivul acestei ac釘iuni rm但nea neclar, plasat 樽ntre un experiment greit i p但n 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 con釘ine, 樽n mod explicit, por釘iuni de cod care ar provoca explicit distrugeri ale sistemelor pe care ar rula. Lu但nd 樽n considerare abilitatea i cunotin釘ele eviden釘iate de cod, pentru autor ar fi constituit o chestiune simpl introducerea unor astfel de comenzi, dac aceasta ar fi fost inten釘ia lui. n cele din urm, eliberarea prematur 樽n re釘ea a Viermelui arat c inten釘ia 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. Lu但nd 樽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 inten釘ia a fost de a nu fi propagat puternic. Av但nd 樽n vedere aceste lucruri, sunt ciudate 樽ncercrile fcute pentru a justifica ac釘iunea lui Morris, sus釘in但ndu-se c inten釘ia lui era de a demonstra ceva despre securitatea 7NTERNET ului sau c a fost un experiment nevinovat. Raportul Rectoratului Universit釘ii din Cornell nu 樽ncearc s scuze comportamentul lui Morris. Aceast ac釘iune este etichetat ca fiind neetic i contrar standardelor profesionale. Ac釘iunea sa este considerat a fi 樽ndreptat 樽mpotriva politicii Universit釘ii i practicii acceptate i ar fi fost de ateptat ca, av但nd 樽n vedere experien釘a pe care o are 樽n acest domeniu, s cunoasc c astfel de ac釘iuni sunt nepermise. Cei care cred c Viermele constituie un accident sau un experiment nefericit sunt de prere ca autorul s nu fie pedepsit, merg但nd p但n la a cere pedepsirea administratorilor i operatorilor de pe sistemele i mainile afectate, pentru neglijen釘a cu care au tratat aspectele ,de securitate. Ceilal釘i consider c
  • 13. autorul trebuie s fie pedepsit sever, inclusiv cu privarea de libertate. Comisia de la Cornell a recomandat unele pedepse, dar nu at但t de severe 樽nc但t 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 樽nt但mplat mari nenorociri poate constitui un accident i este posibil ca inten釘ia autorului s fi fost de a supra樽ncrca lNTERNET-ul, aa cum s-a i 樽nt但mplat. Scuzarea unor astfel de acte de vandalism, sub declara釘ia 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. Vulnerabilit釘i 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 ob釘inerea de informa釘ii 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 informa釘ii 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 informa釘ii venite de la distan釘, utiliz但ndu-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 c但teva rutine care citesc intrarea fr a verifica limitele buffer-ului implicat 樽n aceast opera釘iune. n particular, apelul func釘iei gets preia datele de intrare 樽ntr-un buffer, fr a face verificarea limitelor acestuia. Apelul acestei func釘ii a fost exploatat de Vierme. Rutina gets nu este singura care are acest neajuns. O 樽ntreag familie de rutine din biblioteca C-
  • 14. ului face posibil depirea buffer ului, atunci c但nd se decodific intrarea sau c但nd se formateaz ieirea, dac utilizatorul nu specific explicit numrul de caractere pentru conversie. Cu toate c programatorii experimenta釘i sunt cunosctori ai acestor probleme, mul釘i dintre ei continu s foloseasc aceste rutine. Necazul este c orice server de re釘ea sau program privilegiat, care utilizeaz aceste func釘ii, 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 poten釘iale i mai multe modalit釘i 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 re釘ea 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. C但nd o astfel de situa釘ie este detectat, procesul intr 樽ntr-un dialog cu un alt proces de la distan釘, pentru a determina expeditorul, destinatarul, instruc釘iunile de distribuire i con釘inutul mesajului. Punctul slab exploatat 樽n sendmail este legat de o op釘iune 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 opera釘iune 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 op釘iuni, testele pot rula programe care s afieze starea sistemului de pot, fr trimiterea de mesaje sau stabilirea unei conexiuni. Aceast op釘iune de depanare este adesea utilizat tocmai datorit complexit釘ii configurrii lui sendmail.
  • 15. Programul sendmail este de mare importan釘, mai ales pentru sisteme UNIX derivate din BSD, deoarece m但nuiete procese complexe de rutare i distribuire a potei. Totui, 樽n ciuda importan釘ei mari i a utilizrii largi, cea mai mare parte a administratorilor de sisteme tiu pu釘in despre felul 樽n care lucreaz sendmail. Dei sunt relatate multe apari釘ii de driver e scrise de administratori de sisteme sau modificri aduse Kernel- ului, nimeni nu a adus 樽nc modificri la sendmail sau la configura釘ia fiierelor sale. n concluzie, punctele slabe prezentate 樽n sendmail sunt pu釘in 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 identit釘ii. Parola este criptat, utiliz但nd 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 informa釘ii 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 func釘ie 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 combina釘iile de caractere posibile. Din nefericire, exist maini care lucreaz rapid i costul unei astfel de ac釘iuni este 樽n continu descretere, datorit rapidit釘ii dezvoltrii produselor hard. Diviz但nd procesul pe mai multe procesoare, se reduce mult timpul necesar determinrii unei parole. Astfel de atacuri sunt uurate mult, atunci c但nd utilizatorul alege drept parol un cuv但nt comun sau des folosit. n acest caz, toat cutarea se rezum la determinarea parolei prin verificarea unor cuvinte
  • 16. 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 con釘inutul fiierului /etc/passwd. Deci Viermele exploateaz accesul la acest fiier, cuplat cu tendin釘a 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 facilit釘ile utile ale soft-ului de re釘ea al lui BSD UNIX este suportul de execu釘ie 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 con釘ine perechile host/conturi. Odat ce Viermele gsete astfel de candida釘i, va 樽ncerca, 樽n modul cel mai rapid, s se autoinstaleze pe aceste maini, folosind facilitatea execu釘iei la distan釘, copiindu-se pe sine pe maina de la distan釘, ca i cum ar fi un utilizator autorizat, care efectueaz o opera釘ie 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 cerin釘ele de mai sus, este server ul de autentificare Kerberos (vezi subcapitolul 7.4). Descrierea Viermelui Viermele INTERNET este constituit din dou pr釘i: un program principal i un program vector (bootstrap).
  • 17. Programul principal, o dat instalat pe o main, va colecta informa釘ii despre alte maini din re釘ea, 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 informa釘ii despre -starea curent a conexiunilor din re釘ea. 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 re釘ea a calculatorului infectat, numrul port-ului de re釘ea pentru conectarea la aceast main (pentru a se copia fiierele programului principal al Viermelui) i un numr magic, care ac釘ioneaz efectiv ca o parol cu o singur utilizare. Dac Viermele "server", de pe maina de la distan釘, nu recep釘ioneaz 樽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 ac釘ioneaz 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 樽nt但mpl o defec釘iune 樽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
  • 18. 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 specula釘ia 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 for釘eze 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, ls但nd sistemul curat.