Ce nu știi despre Windows Vista – Windows Firewall with Advanced Security
Partea 1
Windows Vista aduce o serie de noi elemente de securitate. Criticate îndelung, elementele inovatoare din Windows Vista întâmpină, de fapt, o percepție greșită din partea publicului larg. Când aceste percepții sunt înlăturate, ne lovim de problema aplicațiilor 3rd party care nu au fost schimbate astfel încât să fie compatibile cu elementele de securitate din Windows Vista. Așadar avem motive pentru care am fi reticenți față de acest sistem de operare.
Mi-am propus în această rubrică, „Ce nu știi despre Windows Vista”, să analizăm elementele din Windows Vista și să aflăm ce reprezintă fiecare și care este adevărata lor utilitate pentru calculatoarele noastre personale sau pentru firma la care lucrăm.
Tema pe care o să o abordăm acum este firewall-ul integrat în Windows Vista. Mai concret o să vedem care sunt elementele de noutate față de versiunea prezentă în Windows XP SP2.
Pe această pagină
Considerații introductive | |
Outbound filtering | |
Service restriction rules | |
Network Profiles |
Considerații introductive
Sintetic, putem enunța caracteristiciile Windows Vista Firewall astfel:
• | Posibilitatea de a defini reguli pentru traficul care vine și care pleacă spre/dinspre client |
• | Regulile pot fi setate să permită, blocheze sau ca excepții |
• | Existența a 3 profiluri de rețea: domain, private, public care schimbă comportamentul firewall-ului în funcție de rețeaua la care suntem conectați |
• | Firewall-ul procesează regulile într-o anumită ordine, în funcție de importanța lor. Deasemenea a fost introdus ceea ce se cheamă „Service restriction rules” pe care le vom analiza mai târziu |
• | Ușurința configurării politicii IPsec |
• | Integrare completă în Group Policy. |
Unde putem să configurăm firewall-ul? Avem mai multe posibilități: în Control Panel, pentru o interfață simplistă, în linie de comandă, prin netsh adv firewall și prin MMC. Cea mai rapidă cale de acces la interfață completă de configurare este să scrieți „advanced” în bara de quick search.
Configurația inițială este, după cum putem vedea din screenshot, blocarea oricărei conexiuni care vine spre client pentru care nu există o regulă explicită de a o permite. Conexiunile care pleacă dinspre client sunt permise dacă nu există o regulă explicită care să o refuze.
Outbound filtering
Prima discuție care trebuie făcută este această abilitate de a filtra pachetele care pleacă dinspre calculatorul nostru către exterior. În XP, firewall-ul permitea „by default” toate pachetele care plecau spre exterior. Această „hiba”, cum era ea văzută, a fost asiduu criticată de diverse persoane și, în special, de producătorii independenți de firewall-uri pentru stații client. S-a spus ca această permisivitate a firewall-ului reprezintă un risc pentru securitatea mașinii și că un firewall „bun” trebuie să permită numai ce a aprobat utilizatorul în mod expres – atât inbound cât și outbound. Aceste argumente nu pot forma decât un mit. De ce? Mai multe argumente îmi vin în minte, însă cel mai important ar fi lipsa de semnificație care o au acele mesaje cu “Allow”/ “Deny” pentru utilizator. El nu știe dacă acel proces trebuie sau nu trebuie să se conecteze la internet și mai mult, cine ar putea să zică dacă un program are sau nu nevoie de conexiune la internet, în era în care orice program are un update module. Dacă tot nu v-am convins, gândiți-vă care este primul obiectiv al oricarei forme de malware când infectează sistemul? Dezactivarea oricărui program de securitate. Așa că, faptul că firewall-ul vostru vă cere permisiunea de fiecare dată când un program încearcă să deschidă, să trimită pachete nu vă va ajuta absolut deloc când PC-ul a fost deja compromis și firewall-ul a fost oprit de malware. Accentul trebuie pus pe prevenirea compromiterii sistemului, nu pe instaurarea unei stări de carantină în cazul unei eventuale compromiteri, stare care de cele mai multe ori este ineficientă.
De aceea, în Windows Vista Firewall monitorizarea pachetelor care pleacă spre exterior nu este implementată în sensul clasic. Ce este prezentă este posibilitatea de a defini ce NU trebuie să trimită pachete. Astfel putem crea o regulă prin care să refuzăm unui anumit program să se conecteze la internet. Deasemenea putem defini o regulă astfel încât un anumit program să se poată conecta numai pe un anumit remote port sau/și host. În acest context, putem să vedem o utilitate pentru a controla felul în care anumite programe transmit informații, în special în ipoteza unei implementări cu IPsec (mai multe despre IPsec în partea a doua).
Service restriction rules
Cum spuneam și în introducere, avem anumite reguli pre-existente în sistem, numite Service Restriction Rules, care limitează anumite servicii în privința porturilor pe care au voie să accepte conexiuni sau le este interzisă trimiterea pachetelor sau acceptarea acestora pe orice port. Utilitatea acestor reguli este evidentă, dacă ne gândim că serviciile sunt ținte preferate ale malware, fiind exploatate în trecut de viruși gen Blaster și Sasser. În Vista, serviciile au fost regândite printr-un proces numit Services Hardening. Așadar, 4 au fost modificăriile substanțiale:
1. | Fiecare serviciu are acum un “service security ID” (SSID). Așadar, când un serviciu este creat și are nevoie de a modifica un obiect, SSID-ul acelui serviciu este adăugat în ACL-ul obiectului de către Local System. Acest lucru va permite numai acelui serviciu să aibă acces la acel obiect, o diferență substanțială față de XP, unde serviciile se foloseau direct de Local System. |
2. | Multe servicii nu mai rulează sub Local System. Așadar ele au fost mutate sub Local Service sau Network Service, în funcție de ce privilegii au nevoie pentru a rula. |
3. | Sesiunea 0 a devenit neinteractivă și sub această sesiune rulează exclusiv serviciile. Toate procesele pornite de utilizator sunt în Sesiunea 1. |
4. | Prin crearea unor reguli numite, cum am spus, Service Restriction Rules, care controlează cum anumite servicii crează sau acceptă conexiuni. |
Trebuie subliniat că de la aceste reguli predefinite nu se pot crea excepții. Aceste reguli sunt văzute de sistem ca fiind cele mai importante și sunt procesate inaintea oricărei altei reguli.
Putem găsi aceste reguli în HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Static\System. Dacă ne uităm în listă observăm că, de exemplu, serviciul Windows Defender nu are voie să facă nici o conexiune și nici nu are voie să accepte vreo conexiune. Aceasta restrictie este impusă pentru că Windows Defender descarcă pachetele de definiții prin intermediul Windows Updates, așadar nu are nevoie de acces direct la internet. Desemenea serviciul EventLog nu are voie să initieze conexiuni.
Spuneam la început că firewall-ul procesează regulile într-o anumită ordine:
1. | Service Restriction Rules |
2. | Connection Rules – în categoria aceasta intră regulile IPsec |
3. | Authenticated bypass – aceste reguli sunt create pentru a permite anumitor calculatoare autetificate să treacă peste regulile inferioare |
4. | Block Rules – Blocări explicite |
5. | Allow Rules – Permisiuni explicite |
Network Profiles
Atunci când ne conectăm la o rețea, firewall-ul, prin Network Location Awareness (NLA), culege date despre acea rețea (IP range, gateway etc) și ne întreabă ce fel de rețea este. Avem 3 alegeri de facut : Home – Work – Public. Parcă la început spuneam de alte profiluri? Da, e un pic confuz, însă trebuie să ținem minte că Home și Work = Private fără absolut nici o diferență între ele. Nu puteți să alegeți Domain! Alegerea este făcută automat de calculator atunci când acesta reușește să se autentifice la Domain Controller. Putem controla prin MMC comportamentul firewall-ului pentru oricare dintre aceste profiluri însă două particularități trebuie reținute:
• | Utilizatorul standard poate să selecteze numai Public. Pentru a crea un profil Private, utilizatorul standard va trebui să dea credențialele unui administrator. Motivul pentru această limitare este că profilul Public este menit pentru rețele nesecurizate și este mult mai restrictiv (sunt oprite Network Discovery și File and Printer Sharing) iar cel Private este pentru rețele „de acasă”. Fiind mult mai permisiv, profilul Private poate fi setat numai de administratori pentru că reprezintă un potențial risc de securitate. |
• | În cazul în care avem două NIC-uri și ne conectăm simultan la două retele diferite se va aplica tot timpul profilul cel mai restrictiv. Așadar, dacă suntem de exemplu la serviciu, autentificați la Active Directory și în același timp ne conectăm wireless nesecurizată,aplicând profilul Public, firewall-ul va aplica regulile profilului Public pentru amândouă rețelele. Această decizie a firewall-ului a fost criticată de un studiu făcut de SANS, pe care îl puteți citi aici. |
În privința creări regulilor, nu cred că o să întâmpinați probleme, wizard-ul este intuitiv și oferă atât posibilitatea definirii rapidă a regulilor cât și un mod „Custom” în care puteți defini reguli complexe.
În concluzie, Windows Firewall with Advanced Security este un strat important din conceptul de „layered-defense”. În viziunea Microsoft, rețeaua este Internetul. Într-o era în care totul este online și mobilitatea este caracteristica cea mai de preț, protecția trebuie să fie concentrată asupra datelor, și nu asupra perimetrului, acesta din urmă fiind decât un mijloc pentru ajunge la datele voastre. Citându-l pe Steve Riley: “The DMZ is dead!”
În partea a doua a acestui articol vom vorbi despre IPsec și cum îl putem implementa în rețeaua noastră. Pentru că ne dorim ca prin aceste articole să inițiem un dialog, vă invit să vă exprimați opiniile/întrebăriile/criticile pe blog-ul meu de pe Itboard:
Mai puteți citi și http://victor-youngun.blogspot.com/