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





IPRO - PC Magazine Romania, Mai 2004
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB

Securitatea Rețelei [8]

Maestrul deghizărilor: Imitarea IP

Alexandru Ioan Lazăr

În urmă cu foarte multe numere (de fapt, în primul număr al acestui serial), am adus vorba despre Kevin Mitnick și, mai ales, despre cadoul de Crăciun pe care i l-a trimis lui Tsutomu Shimomura. Rețeaua specialistului japonez fusese spartă printr-o metodă complexă, numită IP spoofing (imitare IP).

Mitnick s-a folosit de un element caracteristic rețelor atacabile prin imitare IP: rețeaua era atât de mare, încât era fizic imposibil pentru un administrator să se descurce altfel decât folosind rlogin/rsh (imaginează-ți cum e să treci pe la fiecare din cele trei sute de calculatoare, căutându-l pe cel cu IP-ul care face probleme).

Trusssst in me, jusssssst in me…

Relația de încredere dintre două stații înseamnă că una din ele poate permite conexiunea de la cealaltă stație fără a cere autentificarea prin parolă - deși, în mod normal, ar trebui să o ceară. Nu știi să fi setat asta pe mașina ta? Gândește-te din nou! Multe sisteme au încredere, implicit, cam în toată lumea☺. Există (cel puțin sub Linux) câteva moduri în care relațiile de încredere pot să apară: fișierele .rhosts și hosts.equiv, prin NFS (Network File System), servere X cu portul 6000 deschis și așa mai departe. Iar cineva poate afla mașinile cu relații de încredere prin rularea unor comenzi simple (shoumount -e, de exemplu, va arăta unde sunt exportate fișierele NFS).

Dintre ele, aproape toate se datorează faptului că nu există nici o metodă de a verifica, de exemplu dacă adresa IP este categoric corespunzătoare numelui asociat ei. Nu e clar acum? Hai să vedem exact cum are loc o spargere prin imitare IP.

Balada balului mascat…

Mai știți că spuneam despre finger că este unul dintre cele mai periculoase instrumente de securitate? Folosind interogări finger, un cracker poate afla mașina de la care se loghează administratorul (contul root, în mod normal). De obicei, aceasta este atât de bine protejată, încât este foarte greu să fie spartă. În schimb, este foarte posibil ca ea să fie în relații de încredere cu alte mașini din rețea.

De aceea, cracker-ul va încerca să găsească o metodă de a "păcăli" celelalte stații. Va trebui să le convingă că pachetele care sosesc sunt de la el, de fapt, de la acea mașină de unde se tot loghează administatorul. Cu alte cuvinte, va trebui să modifice baza de date cu numele asociate IP-urilor din rețea, astfel încât să modifice numele asociat IP-ului mașinii "imitate" în numele mașinii sale. Vei fi surprins să afli câte programe pot fi păcălite în acest fel. Versiunile Red Hat mai vechi nici nu au bănuit tehnica atunci când am încercat-o pe rețeaua mea.

Această metodă funcționează însă numai în cazul unui software prost configurat. De multe ori verificarea nu se face pe bază de nume, ci pe bază de adresă IP. Atunci e mai complicat…

Cracker-ul va face, în mare, aceleași operațiuni ca cele de mai sus. Numai că în loc să păcălească ținta prin schimbarea numelui mașinii sale, el va imita IP-ul unei mașini în care ținta are încredere.

Există o mare problemă în cazul rețelelor Ethernet: nu pot exista două mașini cu aceeași adresă! Prin urmare, el trebuie să scoată din uz mașina administratorului. Mai ții minte atacurile DoS? Atacul syn_flooding va forța acea mașină să se oprească.

În cele maxim câteva minute cât durează resetarea mașinii imitate, el trebuie să găsească o metodă de a falsifica pachetele trimise. Din păcate, deși este una din cele mai interesante elemente ale spargerii de sisteme, spațiul nu-mi permite să detaliez această falsificare (poate într-un articol viitor voi explica mai pe larg). Pot să spun însă că se bazează pe interceptarea anumitor pachete TCP și citirea unor informații numite TCP Sequence numbers, care se folosesc apoi la trimiterea propriilor pachete. De fapt, cracker-ul nu își schimbă nici un moment IP-ul, doar pachetele pretind că vin din altă parte.

Uite un exemplu (așa am testat tehnicile din acest articol). Privește figura de mai jos.

Printr-o serie de interogări host și traceroute am ajuns la concluzia că topologia rețelei trebuie să fie cam așa: router—-192.168.141.19—-192.168.141.18—-192.168.141.17 (m-am înșelat doar în privința poziției lui .19 și .17, de fapt erau invers). Am ales să "dau jos" pe .19 (rulează beOS, un sistem în care nu am lucrat atât de mult, și deci nu risc) și să-i imit IP-ul. Pentru atacul DoS, deși aș fi vrut să folosesc o metodă mai puțin consumatoare de trafic, a trebuit să recurg la un atac syn_flooding, pentru că experiența mea cu beOS nu m-a ajutat deloc. Așa că nu prea mi-am acoperit urmele. Apoi am "falsificat" pachetele, și am reușit să obțin acces la consola lui .18.

Ce grad de control asupra țintei oferă imitarea IP? Asta depinde de serviciile care folosesc relații de încredere. De obicei, va permite accesul prin rlogin/rsh, poate chiar ca root! În orice caz însă, un atac prin imitare IP va fi lansat cu succes împotriva unei mașini cu software modern și configurat corect doar de un hacker foarte experimentat. De aceea, fie și obținerea unui acces cu multe constrângeri poate însemna compromiterea rețelei tale.

La porțile Orientului

Din proprie experiență îți spun, o rețea mare se poate transforma foarte ușor într-un haos foarte… oriental☺. Ideea este ca, pentru maximă protecție, să ai unele setări comune tuturor stațiilor din rețeaua ta. Renunță la relațiile de încredere, cere un nume de utilizator și o parolă indiferent de serviciu. Directoarele partajate în rețea pot fi o sursă foarte serioasă de "găuri", motiv pentru care e o idee bună să consulți documentele de securitate referitoare la ele (dacă mai ții minte, vorbisem odată de un sit, astalavista.com). Dacă ții neapărat la relațiile de încredere, nu le stabili cu stații rulând alte sisteme decât UNIX (vei vedea imediat de ce).

Firewall-urile pot oferi o oarecare protecție, dar nu te aștepta să facă minuni (deși am găsit o formă curioasă de "magie": în timp ce am scris articolul, am încercat tehnicile detaliate. Inițial, am configurat o mașină-firewall cu Slackware 8.1, folosind iptables, și atacul mi-a reușit. Am repetat "figura" a doua zi, dar în loc de Slackware am folosit Red Hat 9, și din motive care îmi sunt total străine atacul meu a eșuat. Am repetat încercarea cu Fedora Core I, și a mers - apoi din nou cu RH9, dar am "schimbat" un pic tehnica - și atacul a reușit).

Diagnosticarea sau "Cânticlu a cucuveaulei"

La final, vreau să vorbesc un pic despre diagnosticarea unui atac prin imitare IP. "Cucuveaua" care prezice un atac prin imitare IP este lansarea unui număr mare de conexiuni finger, traceroute, host și shoumount. Folosind rezultatele furnizate de aceste comenzi, se pot face prezumții referitoare la topologia rețelei tale.

La prima vedere, poate fi greu să diagnostichezi un atac prim imitare IP. Cum să fii sigur că ai fost atacat în felul acesta, dacă nu lasă urme în fișierul-jurnal? Greșit! Urma cea mai evidentă este mașina scoasă din uz prin DoS.

Iată ce-mi place mie la Linux: spre deosebire de alte sisteme, logarea se face atent și, mai ales, după fiecare restartarea nu tocmai ortodoxă, logarea activităților legate de restaurarea sistemului de fișiere ext3 (sistem "journaling") este consemnată.

Dacă ajungi dimineața la serviciu și găsești o mașină care îți prezintă amabil ecranul cu login și, după logare, observi că peste noapte a avut loc o restartarea "neortodoxă", în timp traficul în acel segment de rețea a fost anormal de mare, ghici ce concluzie se poate trage… Reține, atacurile DoS sunt aproape întotdeauna caracterizate de traficul foarte mare. Dacă nu, examinarea unor fișiere-jurnal te poate aduce imediat la concluzia că a avut loc un atac DoS (am putut diagnostica asemenea atacuri DoS prin sendmail pe Slackware 8.1 instalat și folosind configurația implicită. Setări corecte pot să te facă să ghicești un atac DoS fără prea mare bătaie de cap).

Dezactivează serviciile r - rlogin și rsh, pentru că sunt principalele "găuri" legate de atacurile prin IP spoofing. Și, cel mai important, să reduci la maximum numărul informațiilor despre topologia rețelei care pot fi obținute.

OK. Cam atât pentru acest număr, până data viitoare când vom încheia serialul cu analiza unui sistem spart. Până atunci, aștept mesajele tale pe [email protected]. Mult noroc!


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