Pacalirea Firewall/IDSurilor si ascunderea identitatii

Multi pionieri ai internetului au prevazut o retea globala deschisa cu un spatiu universal de adrese IP permitand conexiuni virtuale intre oricare doua noduri. Acest lucru permite hosturilor sa actioneze ca parteneri in comunicatie, sa serveasca si sa obtina informatii unul de la celalalt. Oamenii pot accesa sistemele de acasa, sa schimbe temperatura in casa sau sa deschida usa pentru oaspetii grabiti. Viziunea conectivitatii universale a fost inabusita de micsorarea spatiului de adrese si de problemele de securitate. La inceputul anilor 90, organizatiile au inceput implementarea firewallurilor cu scopul precis de reducere a conectivitatii. Retele uriase au fost separate de Internetul nefiltrat prin aplicatii proxy, traduceri de adrese de retea (NAT) si filtre de pachete. Fluxul nerestrictionat de informatii a facut loc canalelor de comunicatie aprobate si supuse unor anumite reguli, precum si controlului datelor ce trece prin ele.

Obstacolele din retea cum ar fi firewallurile pot face din maparea retelei o operatie extrem de dificila. Nu va deveni mai usor din moment ce constrangerile aplicate retelei reprezinta adesea un scop al implementarii noilor echipamente in retea. Nu e mai putin adevarat ca Nmap ofera multe optiuni pentru intelegerea acestor retele complexe si sa verifice daca filtrele functioneaza asa cum trebuie. Chiar suporta mecanisme de depasire a sistemelor de aparare prost implementate. Punetiva in pielea unui atacator si aplicati tehnici din aceasta sectiune in reteaua dumneavoastra. Lansati un atac sarit FTP, o scanare Idle, o fragmentare a atacului sau incercati realizarea unui tunel printr-un proxy de-al dumneavoastra.

In plus fata restrictiile retelelor, companiile au inceput sa monitorizeze traficul cu sisteme de detectie a intruziunilor (IDS). Toate IDSurile cunoscute sunt livrate cu reguli care sa detecteze scanarile Nmap deoarece acestea preced de obicei un atac. Multe dintre acestea sau transformat in sisteme de prevenirea intruziunilor (IPS) care blocheaza in mod activ traficul presupus malitios. Din pacate pentru administratorii de retea si vanzatorii IDSurilor, detectarea in mod corect a relelor intentii prin analizarea pachetelor este o problema dificila. Atacatorii cu rabdare, indemanare si ajutor din partea anumitor optiuni Nmap pot in mod normal sa treaca de IDS nedetectati. Intre timp, administratorii au de a face cu o multime de alerte false cand trafic inocent este gresit diagnosticat si se emite o atentionare sau este chiar blocat.

Cateodata oamenii sugereaza ca Nmap nu ar trebui sa ofere functii de pacalire a regulilor firewallurilor sau de trecerea nedetectata de IDS. Argumeenteaza prin faptul ca pot fi folosite de atacatori. Problema in acest rationament este ca atacatorii tot vor gasi instrumente sau patchuri pentru Nmap pentru a realiza acest lucru. Intre timp, administratorii pot descoperii ca munca lor este mult mai dificila. Instalarea numai a serverelor FTP moderne, cu patchurile aplicate la zi este o metoda mult mai buna de protectie decat prevenirea distribuirii instrumentelor ce implementeaza atacurile sarite FTP.

Nu exista nici o optiune magica in Nmap pentru detectarea si pacalirea firewallurilor si a sistemelor IDS. Acest lucru ia indemanare si experienta. O prezentare detaliata este dincolo de scopul acestui ghid de referinta, care listeaza doar optiunile relevante si descrie ce fac ele.

-f(fragmenteaza pachetele); --mtu(foloseste MTU specificat – Unitatea Maxima de Transmitere)

Optiunea -fface ca scanarea ceruta (incluzand scanarea ping) sa foloseasa fragmente mici de pachete IP. Ideea este impartirea headerului TCP in mai multe pachete pentru a ingreuna misiunea filtrelor de pachete, sistemelor de detectare a intruziunilor si a altor elemente de detectare a activitatii. Atentie cu aceasta optiune! Unele programe au probleme in manevrarea acestor pachete mici. De exemplu Sniffit esua dupa primirea primului fragment. Specificati aceasta optiune o data si Nmap va imparti pachetul in fragmente de opt bytes sau mai putin dupa headerul IP. Astfel, un header TCP de 20 bytes va fi impartit in 3 pachete. Doua de opt bytes si unul cu ultimii patru. Desigur, fiecare fragment are propriul header TCP. Specificati -finca o data pentru folosirea a 16 bytes pe fragment (reducand numarul de fragmente). Sau puteti specifica propriile dimensiuni cu optiunea --mtu. Nu specificati si -fdaca folositi --mtu. Dimensiunea trebuie sa fie un multiplu de 8. Pachetele fragmentate nu vor trece de filtrele de pachete si firewallurile care interogheaza toate fragmentele IP, cum ar fi optiunea CONFIG_IP_ALWAYS_DEFRAG din kernelul Linuxului, unele retele nu-si pot permite pierderea de performanta cauzata de aceste configurari si le dezactiveaza. Altele nu pot activa configurarile de acest gen deoarece fragmentele pot intra pe rute diferite in retea. Unele sisteme defragmenteaza pachetele de iesire in kernel. Linux cu modulul de urmarire a conexiunii din iptables este un exemplu. Realizati o scanare si rulati in acelasi timp un sniffer de genul Ethereal pentru a va asigura ca pachetele sunt fragmentate. Daca sistemul de operare va creaza probleme, incercati optiunea --send-ethde sarire a nivelului IP si de trimitere de cadre ethernet brute.

-D <momeala1 [,momeala2][,ME (EU)],...>(Scanare acoperita de momeli)

Face ca o scanare acoperita de momeli sa fie executata, ceea ce face ca tinta sa creada ca momelile specificate ca argument scaneaza si ele reteaua. Astfel IDS poate raporta 5-10 scanari de porturi de la adrese IP unice, dar nu va stii care adresa scaneaza cu adevarat si care sunt momeli inocente. Cu toate ca aceasta tehnica poate fi contrata prin urmarirea caii prin routere, ignorarea raspunsului si alte mecanisme active, ea reprezinta o tehnica eficienta de ascundere a adresei IP.

Separati fiecare momeala prin virgule si folositi optional ME(adica propria adresa IP) ca una dintre momeli pentru a reprezenta adevarata pozitie a adresei IP reale. Daca puneti MEin a sasea pozitie sau mai tarziu, unele detectoare de scanari de porturi (cum ar fi Solar Design) pot sa nici nu afiseze adresa IP reala. Daca nu folositi ME, nmap il va pune intr-o pozitie aleatoare.

Retineti faptul ca tintele pe care le folositi ca momeli trebuie sa fie active sau altfel riscati sa inundati cu pachete SYN tinta. In aceeasi ordine de idei, este usor de determina cine face scanarea daca o singura adresa IP este activa. E de preferat sa utilizati adrese IP in loc de nume (astfel incat numele hostului dumneavoastra sa nu apara in logurile DNSului tinta).

Momelile sunt folosite atat in pingul initial (folosind ICMP, SYN, ACK sau orice altceva) si in timpul scanarii efective de porturi. Momelile sunt de asemenea folosite la detectarea sistemului de operare ( -O). Momelile nu functioneaza cu detectia versiunii sau scanarea TCP connect().

Nu folositi prea multe momeli deoarece pot incetini scanarea si o pot face mai putin corecta. De asemena, unii ISP vor filtra pachetele false, dar multi nu restrictioneaza pachetele IP de loc.

-S <Adresa_IP>(Seteaza adresa IP sursa)

In anumite circumstante, Nmap se poate afla in imposibilitatea determinarii adresei sursa (Nmap va anunta daca acest lucru se intampla). In aceasta situatie, folositi -Scu adresa IP a interfetei pe care doriti sa trimiteti pachetele.

Alta posibila utilizare a acestei optiuni este sa faceti tinta sa creada ca este scanata de altcineva. Imaginativa o companie permananent scanata de un competitor! Optiunea -eva fi in general necesara pentru astfel de utilizare si -P0este de asemenea recomanda.

-e <interfata>(Foloseste interfata specificata)

Spune Nmapului ce interfata sa foloseasca pentru trimiterea si primirea pachetelor. Nmap ar trebui sa poata determina automat acest lucru, dar va va anunta daca nu poate.

--source-port <numarul_portului>; -g <numarul_portului>(Seteaza portul sursa)

O greseala surprinzator de des intalnita o reprezinta configurarea relatiilor de incredere in functie de numaul portului sursa. Este usor de inteles cum stau lucrurile. Un administrator instaleaza un nou firewall si este apoi ingropat in plangeri din partea utilizatorilor nemultumiti ale caror aplicatii nu mai functioneaza. In particular, DNSul poate fi blocat deoarece raspunsurile UDP DNS de la serverele externe nu mai pot intra in retea. FTP este un alt exemplu. In transferurile FTP active, serverul incearca sa stabileasca o conexiune inapoi la client pentru transferarea fisierului solicitat.

Solutii securizate la aceste probleme exista, de obicei sub forma de proxiuri la nivelul aplicatie sau module firewall care analizeaza protocoalele. Din pacate exista si solutii mai simple si mai nesigure. Notand faptul ca raspunsurile DNS vin de la portul 53 si cele de la conexiunile FTP de la portul 20, multi administratori au cazut in capcana permiterii neconditionate a traficului de la aceste porturi. Adesea ei presupun ca nici un atacator nu va observa si exploata astfel de gauri in firewall. In alte cazuri, administratorii considera aceasta rezolvare ca una pe termen scurt pana cand vor implementa o solutie mai sigura. Apoi ei uita sa mai faca upgradeul de securitate.

Administratorii retelelor supraincarcate nu sunt singurii care cad in aceasta capcana. Numeroase produse au fost livrate cu aceste reguli nesigure. Chiar si Microsoft are partea ei de vina. Filtrele IPsec livrate cu Windows 2000 si Windows XP contin o regula implicita care permite traficul oricarui pachet UDP cu portul sursa 53 (DNS) sau 67 (DHCP).

Nmap ofera optiunile -gsi --source-port(care sunt echivalente) pentru exploatarea acestei slabiciuni. Specificati un numar ca argument si Nmap va trimite pachete de la acel port oricand acest lucru este posibil. Nmap trebuie sa foloseasca porturi diferite pentru anumite teste de detectare a sistemului de operare si cererile DNS ignora optiunea --source-portdeoarece Nmap se bazeaza pe librariile sistemului pentru a le manevra. Multe scanari TCP, incluzand-o pe cea SYN, suporta aceasta optiune, la fel ca si scanarea UDP.

--data-length <numar>(Adauga un numar aleator de date la pachetul trimis)

In mod normal Nmap trimite pachete minimaliste continand doar headerul. Astfel pachetele TCP au in general 40 bytes si cererile de raspuns ICMP doar 28. Aceasta optiune adauga un numarul dat ca argument de bytes, generati aleator, la majoritatea pachetelor trimise. Pachetele pentru detectia sistemului de operare ( -O) nu sunt afectate, dar majoritatea pingurilor si scanarilor de porturi sunt. Acest lucru incetineste viteza de scanare, dar pachetele pot fi mai putin suspicioase.

--ttl <valoare>(Seteaza campul IP time-to-live – timp de viata)

Seteaza campul IP time-to-live – timp de viata – la valoarea specificata.

--randomize-hosts(Scaneaza hosturile in ordine aleatoare)

Spune Nmapului sa aranjeze aleator grupuri de 8096 hosturi inainte de scanare. Aceasta optiune poate face scanarea mai putin vizibila pentru anumite sisteme de monitorizare a retelei, in special cand e combina cu un specificator mic de timp. Daca vreti ca aranjarea aleatoare sa se realizeze pentru grupuri mai mari, cresteti valoarea PING_GROUP_SZ din nmap.hsi recompilati. O solutie alternativa o reprezinta generarea listei de IPuri ce urmeaza a fi scanata cu o scanre de tip lista ( -sL -n -oN <numefisier>), si sa realizati aranjarea aleatoare a lor cu un script Perl, apoi sa furnizati intreaga lista Nmapului cu optiunea -iL.

--spoof-mac <adresa mac, prefix, numele vanzatorului >(Falsifica adresa MAC)

Cere Nmapului sa foloseasca adresa MAC furnizata pentru toate cadrele ethernet pe care le trimite. Aceata optiune implica --send-ethpentru a se asigura ca Nmap trimite pachetele la nivelul retea. MACul specificat poate avea cateva formate. Daca spcificati sirul 0, Nmap alege un MAC complet aleator pentru sesiunea respectiva. Daca sirul furnizat este un numar par de digiti hexa (cu perechile separate prin caracterul “:”), Nmap va folosi respectuva adresa MAC. Daca mai putin de 12 digiti sunt furnizati, Nmap umple 6 bytes cu valori aleatoare. Daca argumentul nu este nici 0, nici sir hexa, Nmap cauta in nmap-mac-prefixespentru a gasi un producator care sa contina sirul dat (cautare insenzitiva). Daca o asemanare este gasita, Nmap foloseste identificatorul unic al vanzatorului (3 bytes) si completeaza cu 3 bytes alesi aleator. Argumentele valide ale optiunii --spoof-macsunt Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, si Cisco.