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 Report - ultimul numar aparut


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

Securitatea Rețelei [5] - atacurile DoS

Cadeeeeee: atacurile DoS

Alexandru Ioan Lazăr

Tocmai am venit de la școală. Am dat lucrare și am făcut varză (de parcă ar fi ceva nou). De aceea, mă întreb dacă nu cumva există o metodă de a bloca acțiunea săvârșită de profesor. Adică, pot împiedica profesorul să-mi treacă nota? În fond, e tot un serviciu și ăsta…

Mda…tocmai am bătut apropouri despre clasa de atacuri pe care o vom analiza astăzi: atacurile Denial of Service (DoS) - atacuri de refuz al serviciului.

,,Orice corp…

...își păstrează starea de repaus sau mișcare uniformă și rectilinie atâta timp cât asupra lui nu acționează o forță exterioară". La fel se întâmplă cu orice calculator: totul merge bine până când apare o "forță exterioară" (știți sloganul… pericol! Om la tastatură!).

În general, acțiunile utilizatorilor nu duc la blocarea intenționată a unei mașini. De exemplu, un server Linux cu un firewall bine configurat va refuza pachetele incomplete. Și totuși, uneori apar situații pe care nici un programator nu le poate prevedea: pachete neinteligibile sau comenzi care necesită resurse enorme, lansate de utilizatori rău intenționați. Sistemul nu le poate înțelege și are tendința de a face ce e mai sigur: se resetează sau - în cazurile cele mai serioase - se blochează.

Așadar, atacurile DoS reprezintă acele atacuri de la distanță (sau chiar locale, dar mai rar) care au ca țintă blocarea unor servicii de pe mașina țintă, sau chiar a mașinii însăși.

Bine-bine, dar de ce ar încerca un atacator să blocheze o mașină? Unii lansează asemenea atacuri numai pentru iritare (chiar și mailbombing-ul poate reprezenta un atac DoS dacă are drept consecință blocarea posibilității unui utilizator de a-și verifica mesajele). Alții doar din amuzament sau teribilism (cum ar zice răposatul Kurt Cobaine, smells like teen spirit). Aceștia sunt cei mai mulți. Există însă hackeri sau crackeri experimentați, care folosesc aceste atacuri pentru a scoate din uz o mașină a cărei adresă IP o vor folosi pentru a "păcăli" o altă mașină din rețea (acest ultim tip de atac se numește IP spoofing - imitare IP - și vom discuta despre el într-un articol viitor). Iată motivul principal pentru care atacurile tip DoS trebuie tratate cu cea mai mare seriozitate de orice administrator: orice atac DoS poate fi preludiul unui atac prin imitare IP!

Problema celor două puncte

Nu, nu puncte materiale (ce naiba, abia am scăpat de fizică!). Să zicem că tu administrezi un server Windows NT 3.51 (cazuri rare, dar e de dragul didacticii). Eu am acces la o mașină *nix, sau oricum, o mașină pe care rulează un OS capabil de a folosi directoarele partajate în rețea de către tine. (Știu… deja începe să nu-ți placă situația☺) Iată ce o să fac eu…

$telnet 142.141.5.13
Trying 142.141.5.13...
Connected to 142.141.5.13.
Escape character is ´^]´.
Welcome to our domain!
>

Evident, e vorba de un caz ipotetic… nu vă gândiți că m-am apucat să sparg rețele reale (de fapt, cele din clasa xxx.xxx.5.xxx sunt private, n-am curaj nici să mă gândesc ce organizații le dețin). ´>´ reprezintă prompt-ul, deci mașina așteaptă comenzi. Mai departe, eu voi…

>DIR ../

Și brusc, conexiunea va fi întreruptă. De ce? Aplauze, te rog, tocmai ți-am blocat mașina… Pe ecranul mașinii NT a apărut un mesaj STOP, după care sistemul a fost reinițializat.

Cazul de mai sus este cel mai simplist. De fapt, există mai multe metode de a bloca un calculator aflat la distanță. La ora actuală, nu cred că mai există vreun calculator care să poată fi blocat în acest fel, pentru că Microsoft a lansat un patch (versiunile afectate erau doar NT 3.50 și 3.51). Rezultate asemănătoare se pot obține bombardând ținta cu cereri telnet, finger, ping, sau blocând demonul inetd. De fapt, chiar acesta este principiul DoS: atacurile vizează epuizarea resurselor țintei, sau blocarea traficului prin rețea. De obicei, un hacker cu experiență va folosi mai întâi o altă tehnică, anume aceea de syn flooding.

Syn flooding

Dacă mai ții minte, am vorbit în primul articol din această serie despre înțelegerea în trei părți. Privește figura 1: în primul pas, clientul (atacatorul) va trimite o cerere de conexiune către țintă. Pachetul este de tip TCP:syn (synchronize). Ținta va răspunde cu un pachet TCP:syn/ack (synchronize/acknowledge) și va aștepta. Cel puțin în teorie - clientul va răspunde cu un pachet TCP:ack (observă sintaxa pe care o vom folosi de acum încolo: [protocol]:[tip pachet]), și schimbul de date poate începe.

Fig. 1 - Structura protocolului

Să presupunem că mașina noastră a răspuns deja cu pachetul TCP:syn/ack, și așteaptă ca atacatorul să răspundă cu TCP:ack. Dacă acesta întârzie, mașina noastră va aștepta… și va aștepta…

Bineînțeles, dacă e vorba de un singur port atacat nu e ceva foarte grav. O simplă intervenție din partea mea va finaliza scurt tentativa de atac. Situația devine periculoasă dacă atacatorul ia la rând toate porturile mașinii mele. La un moment dat, ținta nu va mai putea face față și se va reseta (dacă nu se va bloca înainte).

Dar cum se pot trimite atâtea cereri? Nici un hacker nu poate lucra atât de repede. Probabil că deja v-ați gândit la Perl… și eu, dar Perl funcționează numai pentru alte tehnici (implementarea unui syn_flooding în Perl e prea complicată). În schimb, folosind C/C++ sau un alt limbaj puternic (am văzut chiar și un program în Assembler), un asemenea atac se poate implementa foarte ușor. Programe care automatizează atacuri DoS se pot găsi pe internet cu zecile de mii - unele sunt adevărate bijuterii în materie de programare. Ar trebui să le studiați cu atenție, pentru a vă putea proteja sistemul.

Fortress Arround Your Heart

(Știu, și mie îmi place Sting ☺). Dar dacă veni vorba de fortărețe, să vedem cum se poate proteja un sistem…

Mai întâi, trebuie să știi că singurele sisteme sigure împotriva atacurilor DoS prin internet sunt mașinile neconectate la Rețea. Celelalte pot suferi de pe urma acestor atacuri.

Există totuși metode prin care te poți proteja. În primul rând, instalează toate patch-urile oficiale și fii cu ochii pe buletinele de știri. Ultima parte poate chiar să dea greș! Sunt mulți hacker care nu-și împărtășesc descoperirile decât cu colegi de breaslă. Așa că poți încerca să te "infiltrezi" sub un pseudonim fals și să iei pulsul acțiunii chiar de la atacatori (mai ales dacă ești expert în securitate). E o metodă murdară și periculoasă (unii indivizi sunt de-a dreptul dubioși, mulți au dat deja o raită prin închisorile federale), dar funcțională.

Scanează-ți mașina cu un scanner de calitate (identTCPscan, Strobe sau nmap) și închide toate serviciile inutile. Cu cât mașina ta rulează mai puține servicii, cu atât este mai puțin vulnerabilă, deoarece există mai puține programe care pot fi atacate, și mai multe resurse disponibile (operații care ar bloca o mașină configurată greșit s-ar putea să nu blocheze mașina ta, deoarece dispun de resursele necesare).

Încearcă orice metodă de a ataca un sistem. Dacă ai aflat despre o tehnică de atac, testeaz-o imediat și găsește o modalitate de protecție (pe sistemul tău, normal). La fel - dacă ai descoperit o tehnică de protecție, caută-i vulnerabilitățile. În felul acesta, vei putea fi cu un pas înaintea eventualului atacator.

Folosește neapărat un firewall și un wrapper. Pe Linux, perechea TIS - TCP Wrapper este aproape imbatabilă (mai ales ultimul, este un program excepțional, scris de Wietse Wenema). Ai grijă la felul în care utilizatorii de la distanță (sau chiar locali) pot afla informații despre rețeaua ta. Ai văzut deja câte pot afla folosind comanda host. Dar oricine poate afla informații despre o mașină folosind servicii ca uptime, ps, showmount, host, netstat… nu ezita să le dezactivezi pe cele care nu sunt necesare.

Dacă ai fost atacat, vei descoperi urme în fișierele-jurnal. Contactează imediat ISP-ul atacatorului și - foarte important - dacă atacul a fost o formă de concurență neloială, ai de-a face cu un caz penal! Nu știu de vreo reglementare specială pentru atacurile DoS în România, dar peste hotare ea este ilegală - iar în România, dacă ești în căutare de distracții ca acestea, vei avea probleme cu ISP-ul. Lecția? Ca de obicei, încearcă tehnicile numai pe sistemul tău!

Toceala…

Mâine am lucrare la chimie și mă întorc, deci, la caiet și la obișnuita toceală. Pentru toceala ta, ar trebui să încerci www.astalavista.com Nu trebuie să-mi spui, înregistrarea costă, dar se menține tradiția hackerilor adevărați: accesul la informații de valoare nu este condiționat de calitatea de membru. Acolo vei găsi informații despre DoS (și programe-exemplu). De asemenea, poți consulta revista Phrack! (www.phrack.org). Este o revistă care apare practic anual, revistă mai mult cu numele - de obicei are în jur de 3-400 de pagini, mai ceva ca manualul meu de mate☺ - care conține informații despre orice are legătură cu securitatea.

OK… cam atât pentru ziua de azi. Urați-mi succes mâine!

 


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

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro