Internet worm – Morris worm - Securitatea Informatica

Internet worm – Morris worm

Introducere

In seara zilei de 2 noiembrie 1988, dupa ora 17, un program ciudat era executat pe mai multe dintre calculatoarele Internet. Acest program aduna informatii despre host-uri, retele si utilizatori si folosea aceste informatii pentru a stabili conexiuni retea si pentru a patrunde pe alte masini. El folosea anumite defecte sau slabiciuni prezente in anumite programe. Dupa aceasta patrundere, programul se multiplica, iar copia sa incerca infectarea altor sisteme, in aceeasi maniera. Chiar daca programul nu a infectat decat sistemele Sun Microsystems Sun 3 si calculatoarele VAX pe care rulau variante ale lui 4 BSD UNIX, el s-a extins rapid, creand confuzie si consternare in randul administratorilor de sistem si al utilizatorilor, atunci cand acestia au descoperit invazia produsa in sistemele lor. Desi se cunostea ca UNIX-ul are cateva slabiciuni de securitate, in special in modul obisnuit de operare in medii deschise, totusi scopul si modul in care acestea au fost folosite a constituit o surpriza mare pentru toata lumea.

Programul era ciudat pentru utilizatori, in special din punctul de vedere al punctelor de aparitie. Au fost introduse fisiere neobisnuite in directoarele lusrltmp, iar unele mesaje stranii au aparut in fisierele unor utilitare, cum ar fi sendmail. Totusi, cel mai notabil efect a fost faptul ca sistemele au devenit din ce in ce mai incarcate cu procese datorita infectarii multiple. Cu trecerea timpului, unele dintre masini au devenit atat de incarcate, incat nu au mai fost capabile sa lucreze; unele masini au fost blocate complet, atunci cand spatiul de evacuare (swaping) sau tabela de procese au fost saturate.

In dimineata zilei de 3 noiembrie, personalul de la Universitatea Berkeley din California si de la Institutul de Tehnologie Massachusetts au “capturat’ copii ale programului si au inceput sa le analizeze. Utilizatori din alte locuri au inceput, de asemenea, sa studieze programul si au fost dezvoltate metode de eradicare a acestuia. O caracteristica a programului a iesit in evidenta: modifica resursele sistemului intr-un fel care nu putea fi detectat rapid. Au fost alterate fisiere si distruse informatiile, ceea ce a impus cautarea unei solutii. Dupa ora 5 am la mai putin de 13 ore de la prima descoperire a programului, Computer Systems Research Group de la Berkeley a stabilit un set provizoriu de masuri, in vederea opririi extinderii. Printre acestea se afla si o modificare la serviciul sendmail si sugestia de a redenumi compilatoarele C si incarcatorul, pentru a preveni utilizarea lor. Aceste sugestii au fost publicate in listele de posta electronica si prin sistemul de stiri din reteaua Usenet, cu toate ca extinderea viermelui a fost impiedicata, cel mai adesea prin deconetarea sistemelor de la INTERNET, in incercarea de a le dezinfecta ulterior.

Pe la orele 9 pm, in aceeasi zi, a fost descoperita si publicata la Purdue University o alta metoda simpla pentru stoparea invaziei acestui program. Imbunatatiri soft au fost anuntate si de catre grupul Berkeley, pentru a “astupa” fisurile ce permiteau programului sa invadeze sistemele. Tot ceea ce ramanea de facut era de a se analiza codul care a generat aceste probleme si de a descoperi cine si de ce lansat viermele.

Cronologia evenimentelor

Este foarte interesant de remarcat viteza si profunzimea cu care Viermele s-a extins si este semnificativ de urmarit rapiditatea cu care a fost identificat si-a oprit utilizandu-se aceeasi retea pentru comunicarea intre specialisti a rezultatelor. Este, credem noi, foarte interesant si instructiv de urmarit desfasurarea in timp a raspandirii 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 specialistilor.

2 Noiembrie 1988

  • 17.00. Viermele este executat pe o masina la Cornell University;
  • 18.00. Masina prep.ai.mit.edu a lui MIT a fost infectata. Prep era o masina cu acces public, utilizata pentru stocarea si distribuirea soft-ului prin proiectul GNU. Masina a fost configurata cu cateva vulnerabilitati de securitate de notorietate, care permiteau . utilizatorilor de la distanta sa introduca fisiere in sistem;
  • 18.30. Masina infectata de la Pittsburgh Univerity a infectat o masina a corporatiei RAND;
  • 21.00. Viermele este descoperit pe masinile de la Stanford University; 21.30. Este invadata o prima masina la Minnesota University;
  • 21.34. Masina gateway a Universitatii Berkeley din California este invadata. Se descopera o neobisnuita incarcare a masinii cu procese de posta;
  • 22.34. Este infectata masina gateway a Universittaii Princeton;
  • 22.40. Masini de la Universitatea Norih Carolina sunt infectate si sunt incercari de a invada alte masini;
  • 22.48. Sunt infectate masini ale SRI via sendmail (posta);
  • 22.52. Viemele incearca sa invadeze masina andrew.cmu.edu de la Universitatea Carnegie-Mellon (posta);
  • 22.54. Calculatoarele gateway de la Universitatea din MaryJand sunt atacate prin . . procesul din fundal corespunzator programului fingerd;
  • 22.59. Masinile de la Universitatea din Pennsylvania sunt atacate, dar sunt “insensibile”. Vor fi depistate 210 incercari de infectare in urmatoarele 13 ore, prin posta; 23.48. Calculatorul mimsy.umd.edu de la Universitatea din Maryland este infectat via sendmail (posta);
  • 23.40. Cercetatorii de la Berkeley descopera tintele de atac ca fiind sendmail si rsh. Ei incep sa inchida serviciile pentru alte retele, ca masura de precautie;
  • 23.45. Masinile de la Dartmouth si Laboratorul de Cercetari Balistice al Armatei (BRL) sunt atacate si infectate (posta, NCSC);
  • 23.49. Gateway-urile de la Universitatea din Utah sunt infectate. In urmatoarea ora numarul incercarilor va ajunge la 100;

3 Noiembrie 1988

  • 00.07. Este infectata masina Univesitatii din Arizona, prin posta;
  • 00.21. Este infectata masina principala a Universitatii Princeton (un VAX 8650). Numarul incercarilor ajunge la 68 si masina clacheaza;
  • 00.33. Este infectata masina dewey.udel.edu a Universitatii din Delaware;
  • 01.30. Masinile de la UCLA sunt infectate;
  • 02.00. Viermele este identificat pe masinile de la Universitatea Harvard;
  • 02.38. De la Berkeley se transmite un mesaj prin posta cu continutul: “Suntem atacati”. Domeniile mentionate ca fiind infectate sunt: U.C.Berkeley, U.C.San Diego, LLL, Stanford si NASA Ames;
  • 03.15. Sunt infectate masiniie de la Universitatea din Chicago. Una dintre masinile de la Departamentuf de fizica sufera 225 de incercari de infectare, via fingerd, de la masini 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 sa fie oprit Viermele, urmate de “Sper ca acestea ajuta, dar mai mult, sper ca este vorba de o farsa.”. 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. Datorita incarcarii retelei si masinilor, avertismentul nu este propagat ir urmatoarele 24 de ore;
  • 04.00. Universitatea Colorado este si ea supusa atacului; 04.00. Masinile de la Universitatea Purdue sunt infectate;
  • 05.54. Se transmite prin posta un avertisment cu privire la Virme si, in plus, c masura de protectie minimala referitoare la programul sendmail. Mesajul sau este preluat de grupul de stiri Usenix;
  • 06.45. Se suna la National Computer Security Center si se informeaza despre Vierme;
  • 07.00. Masini ale Institutului de Tehnologie din Georgia sunt infectate. Masina gateway (un VAX 780) sufera peste 30 de incercari;
  • 07.30. Se descopera infectarea masinilor de la Universitatea Purdue. Masinile sun atat de incarcate, incat nu se puteau citi mesajele primite prin posta, inclusiv mesajul despre Vierme;
  • 08.07. La Berkeley se identifica atacul Viermelui prin intermediul programului fingerd, dar mesajul trimis prin posta nu poate fi citit mai bine de 13 ore;
  • 08.18. Se retransmite avertismentul despre Vierme grupului de stiri Usene news.announce.important si altor 30 de site-uri. Acestea au fost primele informatii despre Vierme, aflate de cei vizati in cursul intregii zile, acest grup a schimb de mesaje prin posta cu privire la progresul si 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 aceasta ora inca nu est cunoscut;
  • 11.30. Defense Communications Agency inhiba bridge-urile de posta intre Arpane si Milnei;
  • 13.00. Sunt blocate peste 130 de masini ale SRI;’
  • 14.50. Personalul de la Purdue descopera masini infectate cu variante noi de programe sendmail instalate. Se transmite un mesaj prin posta referitor la faptul c noua versiune de sendmail nu constituie o masura de protectie suficienta. Acel lucru era cunoscut deja in multe locuri, inclusiv la Berkeley si MIT de mai bine cate ore, dar nu se publicase inca nimic;
  • 16.00. Administratorii de sisteme de la Purdue se intalnesc pentru a stabili strateg locala. Versiunile de Vierme capturate au furnizat o varianta de prevenire a infectie prin crearea unui director cu numele sh in directorul lusr tmp;
  • 18.00. La Purdue s-a descoperit cum lucreaza Virmele, cu defectiunea din program finger,
  • 19.00. La MIT, s-a reconstituit atacul Viermelui prin intermediul programului fingerd’ si s-a telefonat la Berkeley pentru a se anunta aceasta. Nu a fost transmis nimic prin posta despre acest mod de atac;
  • 19.19. S-au transmis noile imbunatatiri aduse programelor sendmail si fingerd, dar aceste mesaje au fost receptionate abia a doua zi;
  • 19.37. De la Universitatea din Rochester a fost trimisa prin posta o descriere a atacului prin intermediul programului fingerd;
  • 21.30. Grupul de la Berkeley incepe decompilarea Viermelui, pentru a determina sursa in C.

4 Noiembrie 1988

  • 00.50. Se trimite prin posta o descriere a atacului prin intermediul fingerd. Se fac si primele comentarii referitoare la stilul de cod al autorului Viermelui;
  • 05.00. Grupul MiT incheie decompilarea codului;
  • 09.00. Grupul de la Berkeley incheie decompilarea codului;
  • 11.00. Sunt reinstalate bridge-urile de posta intre Milnet-Arpanet;
  • 14.20. Se retransmit prin posta modificarile aduse la programul fingerd;
  • 15.36. De la MIT, se transmit clarificari asupra modului de operare a Viermelui; · 17.2d. Se transmite un set final de imbunatatiri pentru sendmail si fingerd;
  • 21.30. Autorul Viermelui este identificat din doua surse independente ca fiind Robert T Morris, fiut directorului stiintific al Centrului National de Securitate a Calcutatoarelor (GNSC), Robert Morris.
  • Pana pe 8 noiembrie, marea majoritate a masinilor au fost reconectate la INTERNET si traficul a revenit la normal. In aceeasi dimineata, aproximativ 50 de cercetatori s-au intalnit cu oficialitati din Centru! National de Securitate. Cu aceasta ocazie, au fost identificate direciiile ulterioare de actiune in acest domeniu. Analizatorii de trafic al retelei au continuat sa identifice incercari de infectare inca existente pe masinile INTERNET-ului. O ultima incecare a fost identificata la inceputul lunii decembrie 1988.

Despre autorul Viermelui

Dupa ce Viermele a fost oprit, au fost puse, inevitabil, doua intrebari: “cine?” si “de ce?”.

La prima intrebare raspunsul a aparut rapid prin identificarea lui Robert T. Morris de catre New York Times. Exista multe elemente care sustin identificarea facuta. Multe oficialitati federale au afirmat ca au dovezi, obtinute de la persoane distincte, prin care se specifica faptul ca Morris a discutat cu aceste persoane despre Vierme si cercetarile sale in aceasta directie. Ei sustin, de asemenea, ca au inregistrari de pe calculatoarele de la Universitatea Cornell reprezentand versiuni de inceput ale codului Viermelui testate pe masini din campus si, de asemenea, sustin ca au copii ale Viermetui gasite in contul lui Morris. Raportut furnizat de Oficiul Rectoratului Universitatii din Cornelt il indica de asemenea pe Morris ca fiind culpabil si prezinta motive convingatoare pentru a sustine aceasta concluzie.

Dar daca autorul era stabilit, motivul acestei actiuni ramanea neclar, plasat intre un experiment gresit si pana la un act inconstient de razbunare a lui Morris impotriva tatalui sau. Din studiul facut de multe persoane asupra codului decompilat, au rezultat doua concluzii:

O prima concluzie se refera la faptul ca programul nu contine, in mod explicit, portiuni de cod care ar provoca explicit distrugeri ale sistemelor pe care ar rula. Luand in considerare abilitatea si cunostintele evidentiate de cod, pentru autor ar fi constituit o chestiune simpla introducerea unor astfel de comenzi, daca aceasta ar fi fost intentia lui. In cele din urma, eliberarea prematura in retea a Viermelui arata ca intentia autorului de a distruge sau perturba structuri si sisteme nu poate fi luata in considerare in mod explicit;

A doua concluzie se refera fa faptul ca in cod nu este inclus un mecanism pentru a opri dezvoltarea Viermelui. Luand in considerare acest lucru, precum si complexitatea sirului utilizat ca argument, necesar pentru a declansa Viermele, multe persoane care au examinat codul nu considera ca Viermele a fost declansat accidental sau ca intentia a fost de a nu fi propagat puternic. Avand in vedere aceste lucruri, sunt ciudate incercarile facute pentru a justifica actiunea lui Morris, sustinandu-se ca intentia lui era de a demonstra ceva despre securitatea INTERNET ului sau ca a fost un experiment nevinovat. Raportul Rectoratului Universitatii din Cornell nu incearca sa scuze comportamentul lui Morris. Aceasta actiune este etichetata ca fiind neetica si contrara standardelor profesionale. Actiunea sa este considerata a fi indreptata impotriva politicii Universitatii si practicii acceptate si ar fi fost de asteptat ca, avand in vedere experienta pe care o are in acest domeniu, sa cunoasca ca astfel de actiuni sunt nepermise. Cei care cred ca Viermele constituie un accident sau un experiment nefericit sunt de parere ca autorul sa nu fie pedepsit, mergand pana la a cere pedepsirea administratorilor si operatorilor de pe sistemele si masinile afectate, pentru neglijenta cu care au tratat aspectele ,de securitate. Ceilalti considera ca autorul trebuie sa fie pedepsit sever, inclusiv cu privarea de libertate. Comisia de la Cornell a recomandat unele pedepse, dar nu atat de severe incat sa afecteze cariera ulterioara a lui Morris. In acea recomandare este specificata suspendarea lui Morris din Universitate pentru minimum un an. Faptul ca nu s-au intamplat mari nenorociri poate constitui un accident si este posibil ca intentia autorului sa fi fost de a supraincarca lNTERNET-ul, asa cum s-a si intamplat. Scuzarea unor astfel de acte de vandalism, sub declaratia ca autorii nu au vrut sa creeze mari neajunsuri, nu poate conduce la descurajarea repetarii unor astfel de incercari, ba chiar mai mult, acestea sunt incurajate.

Vulnerabilitati exploatate de Vierme

Viermele utilizeaza o serie de defecte sau slabiciuni existente in software-ul standard al multor sisteme UNIX. Unele dintre aceste defecte sunt descrise in continuare.

Programul Fingerd

Programul fingerd este un utilitar care permite obtinerea de informatii despre utilizatori. De obicei, este folosit pentru a identifica numele intreg sau numele de conectare (login) al unui utilizator, daca acesta se afla in sesiune si posibil, alte informatii despre persoana respectiva, cum ar fi numerele de telefon etc. Acest program este rulat ca daemon sau proces in fundal (background), pentru rezolvarea cererilor de informatii venite de la distanta, utilizandu-se protocolul fingerd, Acest program accepta conexiuni de. la programe ce ruleaza in alta parte, citeste linia de intrare si trimite raspuns receptorului care a adresat intrebarea.

Punctul slab exploatat, prin care se “sparge” acest program, implica modificarea buffer ului de intrare folosit de acesta. Biblioteca f/0 a limbajului C are cateva rutine care citesc intrarea fara a verifica limitele buffer-ului implicat in aceasta operatiune. In particular, apelul functiei gets preia datele de intrare intr-un buffer, fara a face verificarea limitelor acestuia. Apelul acestei functii a fost exploatat de Vierme. Rutina gets nu este singura care are acest neajuns. O intreaga familie de rutine din biblioteca C-ului face posibila depasirea buffer ului, atunci cand se decodifica intrarea sau cand se formateaza iesirea, daca utilizatorul nu specifica explicit numarul de caractere pentru conversie.

Cu toate ca programatorii experimentati sunt cunoscatori ai acestor probleme, multi dintre ei continua sa foloseasca aceste rutine. Necazul este ca orice server de retea sau program privilegiat, care utilizeaza aceste functii, poate fi compromis datorita utilizarii unei intrari improprii. Interesant este ca recent, au mai fost descoperite inca doua comenzi in standardul BSD UNIX, care au aceasta problema.

Dupa atacul asupra INTERNET-ului au fost relevate mai multe probleme potentiale si mai multe modalitati de a le inlatura, dar cu toate acestea, biblioteca cu aceste rutine continua sa fie utilizata.

Programul Sendmail

Programul sendmail este un serviciu de posta electronica, destinat sa ruteze scrisorile intr-o retea eterogena. Programul are mai multe moduri de operare, dar unul dintre acestea este exploatat de Vierme si implica lansarea serviciului ca proces in background (daemon). In acest mod de lucru, procesul se afla in starea de “ascultare” la un port TCP (25), pentru a face distribuirea postei sosite prin protocolul standard INTERNET, SMTP (Simple Mail Transfer Protocon. Cand o astfel de situatie este detectata, procesul intra intr-un dialog cu un alt proces de la distanta, pentru a determina expeditorul, destinatarul, instructiunile de distribuire si continutul mesajului.

Punctul slab exploatat in sendmail este legat de o optiune de depanare a codului. Viermele transmite comanda DEBUG la sendmail si apoi specifica destinatarul mesajului, ca un set de comenzi si nu ca o adresa utilizator. Intr-o operatiune normala, acest lucru nu este permis; insa, in activitatea de depanare a codului este posibila verificarea postei sosite pentru un anumit destinatar, fara a se apela rutinele de adresare. Prin utilizarea acestei optiuni, testele pot rula programe care sa afiseze starea sistemului de posta, fara trimiterea de mesaje sau stabilirea unei conexiuni. Aceasta optiune de depanare este adesea utilizata tocmai datorita complexitatii configurarii lui sendmail.

Programul sendmail este de mare importanta, mai ales pentru sisteme UNIX derivate din BSD, deoarece manuieste procese complexe de rutare si distribuire a postei. Totusi, in ciuda importantei mari si a utilizarii largi, cea mai mare parte a administratorilor de sisteme stiu putin despre felul in care lucreaza sendmail. Desi sunt relatate multe aparitii de driver e scrise de administratori de sisteme sau modificari aduse Kernel-ului, nimeni nu a adus inca modificari la sendmail sau la configuratia fisierelor sale. In concluzie, punctele slabe prezentate in sendmail sunt putin cunoscute, iar unele dintre ele sunt depistate si comunicate pe masura descoperirii lor.

Parole

Una din “piesele de rezistenta” ale Viermelui implica incercarea de a descoperi parolele utilizatorilor. In sistemele UNIX, utilizatorul furnizeaza o parola ca semn de verificare a identitatii. Parola este criptata, utilizand o versiune a algoritmului DES, iar rezultatul este comparat cu rezultatul criptarii anterioare, prezent in fisierul letclpasswd. Daca acestea coincid, accesul este permis. In acest fisier nu sunt incluse parolele in clar si algoritmul se presupune a fi neinversabil; deci, fara cunoasterea parolei nu avem acces.

Organizarea parolelor in UNIX permite unor comenzi neprivilegiate sa utilizeze informatii din fisierul /etc/passwd si sa acceseze schema de autentificare a parolelor. Deci se permite un atac prin criptarea unei liste cu parole posibile si compararea rezultatelor cu fisierul letclpasswd, fara a se face apel la o functie sistem, special dedicata. De fapt, securitatea parolelor este asigurata in principal prin numarul mare de incercari ce trebuie efectuate pentru a le determina, cu toate combinatiile de caractere posibile. Din nefericire, exista masini care lucreaza rapid si costul unei astfel de actiuni este in continua descrestere, datorita rapiditatii dezvoltarii produselor hard.

Divizand procesul pe mai multe procesoare, se reduce mult timpul necesar determinarii unei parole. Astfel de atacuri sunt usurate mult, atunci cand utilizatorul alege drept parola un cuvant comun sau des folosit. In acest caz, toata cautarea se rezuma la determinarea parolei prin verificarea unor cuvinte comune, existente intr-o astfel de lista (vezi capitolul 2).

Viermele utilizeaza pentru spargerea parolei un astfel de tip de atac. In acest sens se foloseste o lista de cuvinte standard, cuvinte care sunt considerate a fi parole posibile. Viermele asigura criptarea lor prin intermediul unei versiuni rapide a algoritmului de cifrare si apoi, compara rezultatul cu continutul fisierului /etc/passwd. Deci Viermele exploateaza accesul la acest fisier, cuplat cu tendinta utilizatorilor de a alege cuvinte comune drept parole.

Un defect discutat in prezent si care a fost exploatat de Vierme implica utilizarea sesiunilor de incredere. Una din facilitatile utile ale soft-ului de retea al lui BSD UNIX este suportul de executie a proceselor pe masini aflate la distanta. Pentru a se evita repetarea tiparirii parolelor pentru accesul in conturi aflate la distanta, se asigura posibilitatea unui utilizator de a specifica o lista cu perechi gazda/cont, care sunt considerate a fi de incredere, in sensul ca un acces la distanta de la calculatorul gazda la acel cont se face fara a utiliza parola contului respectiv. Acest aspect este responsabil de numeroasele accese neautorizate la calculatoare, dar continua sa fie utilizat, fiind convenabil. Viermele a exploatat acest mecanism prin incercarea de a localiza host-urile de incredere si a determina perechile corespunzatoare. Acest lucru a fost realizat prin examinarea de catre Vierme a fisierului de pe host-ul curent, care contine perechile host/conturi. Odata ce Viermele gaseste astfel de candidati, va incerca, in modul cel mai rapid, sa se autoinstaleze pe aceste masini, folosind facilitatea executiei la distanta, copiindu-se pe sine pe masina de la distanta, ca si cum ar fi un utilizator autorizat, care efectueaza o operatie standard de la distanta. Pentru a inlatura astfel de incercari in viitor, este necesar ca actualul mecanism de acces la distanta sa fie anulat si inlocuit cu ceva nou. Un mecanism nou creat, care se apropie de cerintele de mai sus, este server ul de autentificare Kerberos (vezi subcapitolul 7.4).

Descrierea Viermelui

Viermele INTERNET este constituit din doua parti: un program principal si un program vector (bootstrap).

  • Programul principal, o data instalat pe o masina, va colecta informatii despre alte masini din retea, cu care calculatorul gazda poate fi conectat. Va face aceasta colectare prin citirea fisierelor de configurare si prin lansarea proceselor corespunzatoare programelor utilitare de sistem, care furnizeaza informatii despre starea curenta a conexiunilor din retea. Apoi, va incerca sa profite de fisurile din soft, descrise mai sus, pentru a instala programul sau vector pe fiecare din aceste calculatoare aflate la distanta;
  • Programul vector are 99 de linii de cod C, care vor fi compilate si rulate pe masina de la distanta. Sursa acestui program va fi transferata la “victima”, folosind una dintre metode4e care vor fi prezentate in continuare. Apoi, sursa va fi apelata pe masina victima, prin intermediul unei linii de comanda, cu trei argumente: adresa de retea a calculatorului infectat, numarul port-ului de retea pentru conectarea la aceasta masina (pentru a se copia fisierele programului principal al Viermelui) si un numar magic, care actioneaza efectiv ca o parola cu o singura utilizare.

Daca Viermele “server”, de pe masina de la distanta, nu receptioneaza inapoi acelasi numar magic (cel trimis de programul vector) inainte de inceperea transferului, va fi deconectat imediat de la programul vector. Acest lucru este realizat pentru a preveni incercarile de capturare a fisierelor binare prin inselarea Viermelui “server”.

Codul vectorului actioneaza pentru ascunderea sa si prin punerea pe 0 a vectorului sau de argumente (imaginea liniei de comanda), si prin utilizarea mecanismului fork pentru crearea unui proces fiu identic. Daca se intampla o defectiune in timpul transferului de fisiere, codul determina stergerea fisierelor deja transferate si apoi, face iesirea.

O data instalat pe o masina, programul vector se va conecta cu calculatorul pe care se executa procesul Vierme original si va executa transferul unor fisiere binare (cod precompilat) catre masina locala. Fiecare fisier binar reprezinta o versiune a programului Vierme principal, compilat corespunzator unei anumite arhitecturi de calculator si unei anumite versiuni de sistem de operare. Programul vector va transfera, de asemenea, o copie a sursei sale folosita pentru infectarea altor sisteme. Una dintre trasaturile mai curioase ale programului vector a generat multe intrebari: programul are alocate structuri de date pentru transferul a 20 de fisiere, din care au fost folosite doar 3. Acest lucru a condus la speculatia ca a fost planificata, probabil pentru a fi lansata la o data ulterioara, o versiune extinsa a Viermelui, cu alte fisiere de comanda, fisiere de parole, virusi locali si programe de tip “cai troieni”.

Odata ce fisierele binare au fost transferate, programul vector incarca fisierele corespunzator versiunii locale a bibliotecilor standard, pe care le leaga cu programele aduse. Ulterior, aceste programe vor fi apelate. Daca unul dintre acestea ruleaza cu succes, citeste in memoria proprie copiile programului vector si ale fisierelor binare si apoi sterge originalele de pe disc.

In pasul urmator, va incerca sa forteze patrunderea pe alte masini. Daca nici una dintre versiuni nu ruleaza cu succes, atunci mecanismul de rulare a programului vector (un fisier de comenzi) va sterge toate fisierele de pe disc create pe durata incercarii de infectare, lasand sistemul curat.

Twitter Digg Delicious Stumbleupon Technorati Facebook


Nici un comentariu inca... Fii primul care lasa un comentariu!

Lasa un raspuns

This site is protected by Comment SPAM Wiper. This site is protected by WP-CopyRightPro