Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   





Clic aici
PC Magazine





Soluții - PC Magazine Romania, Iulie 2004

Securitatea Rețelei [9]

Chasing shadows: Analiza unui sistem spart

Mircea Scărlătescu

Există zeci de moduri în care îți poți da seama că rețeaua ta a fost spartă. Ceea ce vei citi este cât se poate de real: așa lucrez eu când trebuie să văd ce s-a întâmplat "peste noapte".

Trebuie să încep prin a spune că analiza decurge, în mare, la fel, atunci când ai de-a face cu Windows2000/XP/NT, cu unele excepții (fișiere ca .bash_history). Motivul pentru care am fost, azi, ceva mai Linux-centric decât de obicei este că am vrut să vă prezint o situație reală. Și realitatea este că stațiile din rețeaua pe care am examinat-o aveau Linux instalat…

Parcă mergea mai repede…

Există mai multe lucruri care ar trebui să te îngrijoreze. Nu are nici un sens să fii paranoic și să începi să verifici fiecare stație din rețea imediat ce ajungi la lucru.

Lucrurile se schimbă radical pe o stație spartă. Un atacator vrea să facă următoarele lucruri: să pătrundă în rețea, să-și acopere urmele, și să lase o "poartă" deschisă, în caz că va dori mai târziu să reia atacul. De aceea, el trebuie să modifice foarte serios stația pe care a obținut acces.

Cele mai evidente probleme sunt întârzierile mari de la logare și rezultatele ciudate cauzate de comenzile uzuale. Aceste două simptome apar din cauza aplicării unor patch-uri asupra utilitarelor de sistem (/bin/*), pentru a servi mai bine cracker-ului.

În cazul meu, am întâlnit o întârziere abia perceptibilă la logarea stației 192.168.141.5 Iiată completă cu mașinile din rețea :

192.168.141.1 - router, Linux Red Hat 5.2
192.168.141.2 - firewall, Linux Slackware 8.1
192.168.141.3 - stație Linux Slackware 8.1 cu XFree
192.168.141.4 - stație Linux Red Hat 9.0 cu XFree
192.168.141.5 - stație Linux Slackware 8.1, fără XFree
192.168.141.6 - stație Windows 3.1/DOS (pentru cursul de arheologie J)
192.168.141.7 - stație Linux Red Hat 7 cu XFree
192.168.141.8 - statie beOS, rulând în rețea, serverul pentru Intranet
192.168.141.9 - server de fisiere, Linux Debian, fără XFree
192.168.141.10 -....
192.168.141.11 -....
192.168.141.12 -....
192.168.141.13 -....
192.168.141.14 -....
192.168.141.15 -....

Ea ar fi trebuit să fie un server www, dar nu avusesem timp să instalez sistemul de operare seara și, pentru că era prima dată când trebuia să configurez apache, am lăsat mașina pornită, am tipărit câteva documente pe imprimanta de rețea (instalasem demonul, dar nu îl configurasem) și cam atâta.

A doua zi, sistemul era instalat, dar era oarecum mai lent decât mă așteptam pentru un Slackware. M-am gândit un moment că pornisem prea multe procese, sau că aveam vreo greșeală de configurare. Sincer, numai din curiozitate am trecut la 192.168.141.3 și am folosit finger. Rezultatul m-a cam întors pe dos:

root@ad: finger @192.168.141.5
Login: root
Name: (null)
Directory: /root Shell:
/bin/bash
On since Sun Mar 15 04:40
(EET) on tty1
No plan

La ora aceea nimeni, dar nimeni nu putea să se logheze ca root. În plus de asta, eram cât se poate de sigur că nu lăsasem mașina pornită logat ca root - ar fi fost o sinucidere curată!

Am trecut deci la treabă. Citind fișierele din /var/log (locația fișierelor-jurnal sub Linux), am întâlnit următoarea linie:

MAR 15 02:32:31webserver
Invalid password for ´root´
on ´tty1´

Asta nu e de la mine! Păi ia stai așa…

MAR 15 02:32:32webserver
Invalid password for
´operator´
on ´tty1´
MAR 15 02:32:32webserver
Invalid password for
´admin´ on ´tty1´
MAR 15 02:32:34
webserver
Invalid password for ´games´
on ´tty1´
MAR 15 02:32:34webserver
Invalid password for
´news´ on ´tty1´
MAR 15 02:32:36
webserver
Invalid password for
´mail´ on ´tty1´
MAR 15 02:32:38
webserver
Invalid password for
´www´ on ´tty1´

"Ceva" a luat la rând tot fișierul /etc/passwd încercând o parolă - nu știu exact care. Un moment, m-am temut că atacatorul a reușit să-mi fure fișierul cu parole, dar n-a reușit să le spargă - în schimb, având o hartă cu numele de utilizatori, putea găsi unul neprotejat. M-am speriat degeaba - contul ´operator´, de exemplu, știam sigur că nu a existat niciodată pe acea mașină. Probabil că ar mai fi încercat mult și bine prin bruteforce, dacă n-ar fi întâlnit contul lp (imprimanta de rețea), pe care, în grija mea de a configura apache, nu l-am protejat cu parolă L.

Acesta a fost momentul în care toată securitatea rețelei mele a fost compromisă. Dar asta nu explică totul. S-a logat user-ul lp, dar cum a ajuns root?

Am aruncat o privire în /etc/passwd și am intrat în directorul home al user-ului "lp". Nimic în neregulă, am crezut eu:

root@ad:/var/spool/lpd# ls
\ ./
\ ../

Ba chiar m-am bucurat văzând că atacatorul nu se luase de fișierul meu cu alias-uri (de fapt, prin ´ls´ eu vroiam să se-nțeleagă ´ls -a´, care arată și fișierele ascunse). Am continuat cu tot ceea ce știam că e logic: fișierele-jurnal care nu fuseseră șterse (unele fuseseră). Marele meu noroc a fost că cel care mă atacase nu și-a dat seama că mașina mea consemnează și logările eșuate (logarea ca ´lp´ nu fusese eșuată… deci nu a fost consemnată, dar eu știam că lp nu e protejat prin parolă!).

După vreo două ore de săpat printre fișiere, am văzut totuși că e ceva în neregulă. Unele din alias-urile mele nu mergeau. De fapt, nu mergea cam nici unul. Și totuși, cum se face că îmi arătase fișiere ascunse "." și ".." de mai sus?

Abia atunci mi-am dat seama: fișierele acelea nu erau ascunse! Nu mă credeți? Ia mai uitați-vă un pic:

root@ad:/var/spool/lpd# ls
\ ./
\ ../

Cam multe slash-uri pentru gustul meu. Așa că am încercat:

root@ad:/var/spool/lpd# ls -a
. /
.. /
\ ./
\ ../

Dacă nu vă dați seama imediat din cauza fontului folosit, încercați așa: "." este ascuns și înseamnă "directorul curent". În schimb, "." ("[spațiu]." ) este un director creat de altcineva!

În cadrul lui se aflau câteva fișiere și anume un patch pentru fișierele din /bin și un exploit scris, probabil, în ASM. Exploit-urile sunt programe mici care permit obținerea anumitor privilegii prin tehnici avansate de programare. Se pare că privilegiile fuseseră foarte mari J de vreme ce atacatorul obținuse acces ca root.

Iată, pe românește, ce s-a întâmplat: eu am lăsat mașina pornită seara. Greșeala mea, mai ales că, încercând să configurez apache pentru a folosi cgi și php, uitasem să adaug o parolă pentru contul lp (serverul pentru imprimantă era "pe butuci" și a trebuit să improvizez). Atacurile prin bruteforce au reușit, în sensul că atacatorul a găsit un cont neprotejat. A intrat, și a folosit exploit-ul pentru a deveni root și a patch-ui fișierele din /bin ca să-și ascunde urmele. Mai târziu, am descoperit chiar că adăugase un cont cu username ´Root´ (diferit, în Linux, de ´root´ - Linux e case sensitive) și o parolă pe care n-am reușit s-o sparg. Oricum, am șters contul.

Apoi…

Evident, se punea problema ce voi face cu stația? Era un pericol potențial, poate că nu descoperisem toate "găurile". Iată ce trebuie făcut, în ordine, pentru a reintegra în rețea o mașină care a fost spartă.

Mai întâi, deconectează imediat masina din rețea. Nu poți știi niciodată când va avea loc următorul atac. După ce ți-ai dat seama cum a avut loc penetrarea rețelei, crează imagini ale disk-ului și pune-le undeva la păstrare. Dacă vei avea vreo discuție cu Poliția, aceste imagini pot constitui dovezi!

Apoi salvează toate documentele importante care nu pot conține viruși sau exploit-uri - documente, imagini sau MP3-uri. Acestea le vei păstra pentru reinstalarea de după. În nici un caz să nu refolosești programe, script-uri cgi/bash, pentru că ar putea fi potențiale porți pentru alți crackeri. Formatează hard-disk-ul și reinstalează sistemul de operare. Reconfigurează-l, având grijă să acoperi poarta tocmai descoperită. Abia acum poți reconecta mașina în rețea.

N-ai terminat! Ai grijă, dacă o mașină a fost spartă, e posibil să fii fost și altele. Verifică și celelalte stații pentru intruziuni similare. Abia după ce te-ai asigurat că totul e în ordine și acolo, poți fii liniștit. Ai scăpat și de data asta!

A mai trecut de-atunci ceva…

Și cu asta se încheie ultimul articol din serie. Eu voi continua să scriu despre acest subiect, dar asta nu este suficient (sau, oricum, n-ar trebui să fie suficient pentru tine). Pentru mine nu e niciodata…J. La fel ca în toate numerele, închei prin a te încuraja să te informezi cât mai bine, pe cât mai multe căi.

Grupurile USENET (poți folosi serviciul Google Groups dacă nu vrei să te chinui prea mult cu newsreadere și alte asemenea) sunt surse excelente de informații. Nu ezita să postezi pe forumuri, ți se va răspunde mereu la întrebări dacă știi cum să le pui. Internetul e plin de hackeri wannabe care se vor ofusca la o întrebare mai amatoricească ("trebuia să știi deja", "hacker ești tu sau ce?"), dar hackerii și administratorii adevărați îți vor răspunde dacă le arăți respect.

Securitatea este un domeniu foarte complex. Nu poți învăța nimic dacă nu faci decât să citești și să întrebi. Dacă nu ai o rețea "serioasă", fă rost de Virtual PC sau de VMWare Workstation, care îți vor permite să folosești o rețea virtuală pe un singur calculator. Încearcă orice afli nou pe rețeaua asta, astfel nu vei intra în conflict cu legea. Ceea ce nu vrea

să-nsemne că, atunci când vei știi mai multe, e cazul să o faci. Reține că granița între un hacker și un cracker este foarte subțire. Hackerii au adus numai beneficii lumii TI (inventariem? TCP/IP, Internet-ul deci, www, C/C++, Linux, Python…), dar crackerii doar au tras-o în jos. Primii sunt apreciați pentru ceea ce fac, iar faptul că nu totdeauna fac lucruri tocmai legale nu este un impediment pentru autorități (decât în cazuri rare). Crackerii nu sunt tocmai apreciați, iar condamnarea lor mi se pare mai mult decât îndreptățită.

Cu asta se încheie ultima parte din Securitatea Rețelei. Dar, cum spuneam, I´ll be back for more…


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro