Universitatea Spiru Haret
Securitatea retelelor de calculatoare Securitatea la nivel retea locala
Alexandru Averian
De ce securitate la nivel LAN ? 1/3 • Comunicatiile (inclusiv cele din LAN) folosesc ca model de referinta ierarhia ISO/OSI: – primitive de acces la servicii (intre entitati aflate pe niveluri adiacente, pe acelasi host); – protocoale (intre entitati aflate pe acelasi nivel, host-uri diferite).
De ce securitate la nivel LAN ? 2/3 • • •
Efectul Domino – daca un nivel este compromis, toate comunicatiile sunt compromise Gradul de securitate al intregului sistem de comunicatii este cel mult egal cu al celui mai nesigur nivel Nivelul 2 (LAN) poate fi foarte vulnerabil
De ce securitate la nivel LAN ? • 99% din porturile de retea ale companiilor sunt deschise • In mod obisnuit, orice laptop se poate conecta pe unul din aceste porturi si obtine acces in retea • Studiul anual facut de CIS/FBI (Computer Crime and Security Survey, arata ca:
– Cel putin 55% din atacuri provin din interiorul retelei locale – Pierderile estimate (cumulate) ale companiilor care au raspuns la interviu (639) au fost de aproximativ 130 milioane dolari
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “MAC”
Adrese MAC •
Rol: permit comunicatia fizica intre doua statii aflate pe acelasi segment de retea (adresele IP, de nivel 3, permit comunicatia intre doua statii aflate in retele diferite)
•
•
Pentru a-si indeplini rolul si a optimiza distributia traficului, switchurile “invata” aceste adrese, memorandu-le intr-o asa numita tabela MAC (se mai numeste si Content Addressable Memory – CAM) Tabela MAC a unui switch dispune de o zona limitata de memorie (parametru important al unui switch)
Functionarea normala a unui switch 1/3
Functionarea normala a unui switch 2/3
Functionarea normala a unui switch 3/3
Depasirea capacitatii tabelei MAC (MAC Flooding) 1/3 • Pana in Mai 1999 considerat un atac teoretic posibil • In Mai 1999, Ian Vitek demonstreaza printr-un program scris in Perl - macoff – ca atacul este practic posibil • Programul a fost ulterior portat in C, sub numele de dsniff • Atacul se bazeaza pe capacitatea limitata a memoriei destinata tabelei MAC intr-un switch (valori uzuale: 32K, 64K, 128K)
Depasirea capacitatii tabelei MAC 2/3
Depasirea capacitatii tabelei MAC 3/3
Contramasuri la atacurile de tip “MAC Flooding” • Limitarea numarului maxim de adrese MAC invatate pe un port de switch
Solutia: • Limitarea numarului de adrese MAC permise pe un port • blocarea portului in caz de depasire • informarea administratorului prin transmiterea unei trape SNMP
Mecanismul “Port Security” • In versiunile mai vechi, asocierea MAC<->Port se putea face doar static, prin configurare explicita (o singura adresa permisa) • In versiunile mai noi, se poate seta o limita a numarului maxim de adrese pe care un port le poate invata dinamic • Se pot defini contoare de timp pentru fiecare asociere dintre o adresa MAC si un port • Maparile statice sunt recomandate pentru porturile dedicate (servere, imprimante, etc) • O adresa MAC poate fi invatata dinamic pe un port si, apoi, asociata permanent cu acesta, prin salvarea automata in configuratia switch-ului (in caz de restartare, asocierea se pastreaza)
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “DHCP”
DHCP – Descriere sumara 1/2
• Administratorul configureaza un spatiu de adrese IP alocabil dinamic • Server-ul aloca dinamic o adresa IP, la cerere • Adresa este alocata pentru o perioada de timp • In campul “Options” sunt furnizate informatii suplimentare
DHCP – Descriere sumara 2/2 • Este definit de RFC 2131
DHCP – Formatul Pachetului
DHCP – Tipuri de mesaje
Atacul de tip “DHCP Starvation” e
Attacker
• •
Atacatorul incearca sa inchirieze/obtina toate adresele IP disponibile prin DHCP Atac de tip DoS
Contramasura pentru “DHCP Starvation” – Mecanismul “Port Security”
• Atacatorul face o noua cerere DHCP, utilizand o alta adresa MAC • Mecanismul “Port Security” restrictioneaza numarul maxim de adrese MAC acceptate pe un port • Atacatorul nu va putea obtine un numar de adrese IP mai mare decat numarul maxim de adrese MAC acceptate pe acel port
Atacul de tip “Rogue DHCP Server” 1/2
Atacul de tip “Rogue DHCP Server” 2/2 •
Ce poate face serverul DHCP al atacatorului ?
•
Furnizeaza informatii incorecte, cum ar fi: Default Gateway – Adresa IP a atacatorului DNS Server – Atacatorul este server DNS Adresa IP – Alocata incorect (atac de tip DoS)
Contramasura pentru atacul de tip “Rogue DHCP Server” – Mecanismul “DHCP Snooping” 1/3
• La activarea mecanismului, implicit, toate porturile unui switch sunt in starea “Untrusted” • Se va configura starea “Trust” pe portul pe care se afla server-ul DHCP (eventual, pe portul de “uplink”, daca server-ul nu se afla pe acelasi switch)
Contramasura pentru atacul de tip “Rogue DHCP Server” – Mecanismul “DHCP Snooping” 2/3
• Switch-ul blocheaza mesajele “DHCP Reply” ce vin de pe porturile marcate “Untrusted” • Switch-ul intercepteaza mesajele “DHCP Reply” ce vin de pe portul “Trusted” si construieste in memorie o tabela de corespondenta • Intrarile din tabela expira dupa “Lease time”
Contramasura pentru atacul de tip “Rogue DHCP Server” – Mecanismul “DHCP Snooping” 3/3
•
•
• •
•
Atacatorul foloseste o adresa MAC unica pentru fiecare cerere DHCP, dar mecanismul “Port Security” previne acest lucru Ce se intampla daca frame-urile Ethernet corespunzatoare cererilor DHCP contin aceeasi adresa MAC sursa, dar in corpul mesajului DHCP CHADDR este mereu alta ? “Port Security” nu va detecta acest atac (DoS) “DHCP Snooping” verifica daca adresa MAC sursa din header-ul Ethernet este aceeasi cu cea din campul CHADDR; In caz negativ, cererea DHCP este blocata
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “ARP”
ARP – Descriere sumara 1/2 • • •
Inainte ca o statie sa poata comunica cu o alta, aceasta va transmite o cerere ARP, cu scopul de a-i afla adresa fizica (MAC) Cererea ARP este trimisa sub forma de broadcast (atat la nivel 2, cat si la nivel 3) Toate statiile din aceeasi retea vor receptiona si procesa cererea ARP; de raspuns, va raspunde doar statia care isi va identifica propriul IP in continutul cererii
ARP – Descriere sumara 2/2 •
• • •
In conformitate cu standardul ARP, unei statii ii este permis sa transmita un raspuns ARP nesolicitat, sub forma de unicast/broadcast, sau o cerere ARP pentru propria adresa IP (“Gratuitous ARP”) Celelalte statii din retea pot memora aceasta informatie in propriile tabele ARP Astfel, oricine poate pretinde ca este proprietarul unui IP/MAC Atacurile de tip “ARP” folosesc aceasta posibilitate, pentru redirectionarea traficului
Atacuri “ARP” – Instrumente disponibile in Internet • Exista cel putin trei, care faciliteaza atacuri de tip “Manin-the-Middle”: Dsniff – http://monkey.org/~dugsong/dsniff/ Ettercap – http://ettercap.sourceforge.net/index.php Cain – http://www.oxid.it/cain.html (versiune Windows, foarte puternica)
• Ettercap si Cain sunt considerate de generatia a 2-a, au interfata de tip GUI, permit interceptarea si spargerea parolelor, inserarea de pachete, etc • Toate pot captura traficul/parolele urmatoarelor aplicatii: FTP, Telnet, SMTP, HTTP, POP, NNTP, IMAP, SNMP, LDAP, RIP, OSPF, PPTP, MS-CHAP, SOCKS, X11, IRC, ICQ, AIM, SMB, Microsoft SQL, VNC, etc.
Atac de tip “ARP” 1/3 •
Atacatorul modifica tabelele ARP ale ruterului si PC-ului
Atac de tip “ARP” 2/3 •
Tot traficul este, astfel, interceptat
Atac de tip “ARP” 3/3 • •
In final, atacatorul corecteaza tabelele ARP Traficul revine la normal
Contramasura la atacul “ARP” – Mecanismul “Dynamic ARP Inspection” • •
• •
Se bazeaza pe “DHCP Snooping” Pentru a fi acceptate, toate pachetele ARP trebuie sa aiba o intrare de corespondenta IP/MAC in tabela DHCP de pe switch In caz contrar, sunt blocate Daca o statie nu foloseste DHCP, atunci switch-ul trebuie sa permita crearea de intrari statice in tabela
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “Spoofing” (Disimulatie) “MAC Spoofing” – Preluarea identitatii MAC a altui host
“IP Spoofing” – – – –
Preluarea identitatii IP a altui host “Ping of Death” “ICMP Unreachable Storm” “Syn Flooding”
Atac “MAC Spoofing” • •
Atacatorul transmite frame-uri cu adresa MAC sursa incorecta Daca accesul in retea este controlat pe baza adresei MAC, atunci atacul este reusit
Atac “IP Spoofing” • •
Atacatorul transmite pachete cu adresa IP sursa incorecta Indiferent cui ii este adresat pachetul, atacatorul nu va primi niciodata un raspuns
Atac “IP & MAC Spoofing” •
•
Atacatorul transmite pachete cu adresa MAC sursa si adresa IP sursa incorecte Astfel, pachetele par ca si cum ar proveni de la un host real
Contramasura la atacurile de tip “Spoofing” – Mecanismul “IP Source Guard” 1/2 • •
Se bazeaza pe “DHCP Snooping” Opereaza similar cu “Dynamic ARP Inspection”, cu diferenta ca verifica orice tip de trafic
Contramasura la atacurile de tip “Spoofing” – Mecanismul “IP Source Guard” 2/2 • Foloseste informatia din tabela construita de “DHCP Snooping”
• Orice pachet receptionat pe un port este inspectat la nivel adresa MAC sursa si adresa IP sursa • Daca exista o intrare in tabela, corespunzatoare acelui port, pachetul este acceptat si livrat mai departe spre destinatie • Daca nu, pachetul este blocat
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “Spanning Tree”
Spanning Tree Protocol (STP) – descriere sumara •
Scop: mentinerea unei topologii de retea de fara bucle, in cazul unei arhitecturi redundante • Unul din switch-uri este ales drept radacina a arborelui (Root) • Dupa alegerea Root-ului, switch-urile construiesc un arbore de drumuri minime, fara bucle
• • •
• Alegerea are la baza un parametru de prioritate, configurabil (0 - 65535)
Comunicatia STP intre switch-uri se face prin transmisia de “Bridge Protocol Data Units” (BPDUs) Mesajele de baza folosite sunt: “Configuration”, “Hello” si “Topology Change Notification/Acknowledge” Eliminarea buclelor asigura protectie impotriva inundarii retelei cu trafic, pana la saturatie (“Broadcast Storm”)
Atacuri de tip “Spanning Tree” 1/2 • Atacatorul transmite mesaje BPDU, incercand sa devina “Root”
Atacuri de tip “Spanning Tree” 2/2 • • • •
•
Dupa ce devine “Root”, atacatorul are acces la toate pachetele transmise intre statiile conectate pe switch-uri diferite Sunt posibile atacuri de tip “Man-in-theMiddle” si “Denial-of-Service” Desi STP ia in considerare largimea de banda la determinarea drumului minim, aceasta se face din perspectiva “Root”-ului Astfel, un atac posibil (de tip DOS) este si scaderea capacitatii de transport pe “backbone” (scaderea dramatica a performantei retelei), de la n x Gpbs Full Duplex, la 10 Mbps Half Duplex Acest atac presupune ca cel care il declanseaza are acces la doua switch-uri, simultan
Contramasuri la atacuri de tip “Spanning Tree” • •
•
•
Nu lasati STP sa functioneze “by default” Configurati-l in asa fel incat topologiile de retea rezultate in urma unor evenimente sa fie predictive (Primary Root si Secondary Root bine alese) Chiar daca nu aveti o arhitectura redundanta a retelei, nu dezactivati STP (un atac de tip DOS foarte la indemana – conectarea printr-un cablu a doua prize/porturi de retea/switch) Mecanisme de protectie: “BPDU Guard” – dezactivarea portului, la receptia unui BPDU; se configureaza doar pe acele porturi de switch pe care stim sigur ca nu se conecteaza decat statii, servere, imprimante, etc (nu alte switch-uri) “Root Guard” – dezactivarea portului care din starea “Blocking” sau “Designated Forwarding” are tendinta sa devina “Root Port”; se configureaza doar pe acele porturi care conecteaza switch-uri intre ele si nu sunt proiectate a deveni “Root Port” in nici o topologie.
Securitatea la nivel LAN • Atacuri specifice si contramasuri – Atacuri de tip “VLAN Hopping”
Porturi de tip “Trunk”
• • • •
In mod normal sunt folosite intre switch-uri, pentru interconectarea (multiplexarea) a pana la 2^12 VLAN-uri, pe o aceeasi conexiune fizica Porturile de tip “Trunk” au, implicit, acces la toate VLAN-urile Pentru a putea pastra apartenenta la VLAN-uri, frame-urile sunt transmise intre porturile celor doua switch-uri marcate conform standardului IEEE 802.1Q (au cate un asa numit “tag” – numar de VLAN) Unul din VLAN-uri este considerat “Native” si este transmis nemarcat (implicit, VLAN-ul nr. 1)
Marcarea frame-urilor – standardul IEEE 802.1Q
• TPID (Tag Protocol IDentifier) are o valoare fixa (8100 in hexazecimal) • TCI (Tag Control Information) are trei campuri: – Priority defineste 8 niveluri (2^3) de prioritate, conform standardului IEEE 802.1p, utilizate pentru tratarea diferentiata a traficului (Quality of Services) – CFI (Canonical Format Indicator), pe 1 bit, are intotdeauna valoarea 0 pentru un switch ethernet – VID (Vlan IDentifier), pe 12 biti (2^12 valori posibile), este numarul asociat VLAN-ului
Dynamic Trunk Protocol (DTP) • Utilizat pentru automatizarea configurarii Trunk/802.1Q pe conexiunile dintre switch-uri • Din perspectiva DTP un port poate avea una din starile: “On”, “Off”, “Auto”, “Desirable”, “Non-Negotiate” • Implicit, toate porturile unui switch sunt in starea “Desirable” • Astfel, la conectarea fizica a doua switch-uri, modul de operare Trunk devine automat activ pe cele doua porturi, intre switch-uri transportandu-se toate VLAN-urile, inclusiv VLAN 1 (nemarcat)
Atacuri de tip “VLAN Hopping” 1/2
• • •
O statie (atacatorul) poate simula comportamentul unui switch, utilizand DTP si marcarea 802.1Q a frame-urilor Astfel, atacatorul reuseste sa obtina accesul in toate VLAN-urile Cu exceptia starii “Off”, toate celelalte stari permit crearea automata a Trunk-ului http://www.sans.org/resources/idfaq/vlan.php
Atacuri de tip “VLAN Hopping” – marcarea dubla 2/2
• • • •
Un port de acces (care nu se afla in starea Trunk) accepta un frame marcat daca valoarea VID din tag este identica cu numarul VLAN-ului in care se afla portul Atacatorul transmite frame-uri marcate dublu (primul marcaj folosit pentru ca frame-ul sa fie acceptat de switch, a doilea pentru a desemna VLAN-ul destinatie/tinta) Traficul este posibil doar unidirectional (de la atacator spre victima; atac de tip DoS) Pentru a functiona este necesar ca VLAN-ul nativ dintre cele doua switch-uri sa fie acelasi cu cel de pe portul pe care se afla atacatorul
Securitatea VLAN-urilor – Recomandari • Nu folositi VLAN 1 deloc (nu se poate dezactiva, dar nu alocati porturi in acest VLAN) • Dezactivati porturile nefolosite si alocati-le unui VLAN nefolosit (altul decat VLAN 1) • Dezactivati auto-trunking –ul pe toate porturile (DTP “Off”) • Configurati explicit trunking –ul (DTP “On”) acolo unde este necesar (intre switch-uri, pe conexiunea spre un server, router, firewall) • Nu transportati decat VLAN-urile necesare, pe porturile de tip Trunk • Evitati folosirea VLAN-urilor “campus wide” • Daca se poate, nu folositi VLAN-uri native pe porturile Trunk (toate frame-urile vor fi marcate); daca nu, ID-ul VLAN-ului nativ sa fie diferit de cel al VLAN-urilor in care sunt alocate porturi utilizatorilor
Administrarea switch-urilor • Poate prezenta cele mai mari vulnerabilitati – Toate tehnicile de protectie mentionate anterior sunt nefolositoare, atat timp cat un atacator poate obtine acces prin telnet/ssh la consola administrativa, putandu-le dezactiva sau manevra
• Cele mai multe din protocoalele utilizate pentru administrarea obisnuita a retelei sunt nesigure (http, telnet, ftp, tftp, snmp v1/v2, syslog, etc) • Folositi variantele sigure ale acestor protocoale, daca sunt disponibile (https, ssh, sftp, scp, snmp v3, etc); daca nu, folositi administrarea Out-Of-Band (OOB) – crearea unul VLAN dedicat administrarii de retea • Daca nici administrarea OOB nu este posibila, atunci folositi mecanismele de limitare a accesului in sens administrativ, disponibile pe switch (liste de control al accesului)
Referinte
• •
•
Network Security Architectures, Sean Convery, ISBN: 158705115X Stealing the Network : How to Own the Box, Ryan Russell, Tim Mullen, Dan Kaminsky, Joe Grand, Ken Pfeil, Ido Dubrawsky, Mark Burnett, Paul Craig, ISBN: 1931836876 Defense and Detection Strategies Against Internet Worms, Jose Nazario, ISBN: 1580533572