...plica modificarea buffer ului de intrare folosit de acesta. Biblioteca f0 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 SendmailProgramul 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.ParoleUna 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 letclpassd. 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 etcpassd si sa acceseze sch...
Download