O lista de control a accesului, Access Control List (ACL) este un mod prin care se poate controla accesul la anumite resurse din retea. Toti furnizorii de echipamente de securitate, dar si producatorii de sisteme de operare sau furnizorii de servicii cloud ca AWS, Azure si GCP, implementeaza intr-o forma sau alta ACL-uri. Cisco nu face exceptie, ACL-urile gasindu-se pe aproape toate echipamentele din portofoliul sau indiferent ca vorbim despre firewall-uri, routere, switch-uri, access point-uri sau controllere wireless. Cea mai buna definitie pentru un ACL implementat pe un echipament Cisco este urmatoarea: un ACL este o unealta prin care se poate identifica traficul primit de un echipament de retea pe baza metadatelor continute in pachetele IP. Ce pot face apoi cu respectivul trafic este o alta poveste. Traficul poate fi filtrat, permis sau interzis, la nivelul acelui echipament. Pachetele IP pot fi supuse procesului de translatie de adrese (NAT) in vederea accesului la Internet. ACL-ul poate fi folosit pentru a limita accesul administrativ la echipamentul de retea. Procesele de debugging pot fi conditionate sa afiseze doar anumite pachete selectate cu ajutorul unui ACL. Tunelele IPsec policy-based asigura conectivitatea intre site-uri prin crypto ACL-uri care definesc traficul interesant, acel trafic care trebuie sa treaca prin tunel si care trebuie securizat. Si lista poate continua. Toate aceste use case-uri sunt foarte des intalnite pe firewall-urile Cisco, dar si de la alti vendori din industie, si sunt posibile datorita ACL-ului.
Istoric vorbind, ACL-urile au aparut pe sistemele Unix si aveau ca responsabilitate controlul accesului la sistemul de fisiere (file system ACL) reprezentat de fisiere si directoare, mai exact ce utilizatori si grupuri au dreptul sa acceseze un fisier sau un folder si ce permisiuni au asupra acestora. Cand executam comanda ls -l pe un sistem Linux vom vedea continutul directorului curent, precum si permisiunile asupra respectivelor fisiere in formatul “rwxrwxrwx”. r vine de la read, dreptul a vizualiza/citi fisierul, w vine de la write, dreptul de a modifica fisierul, x vine de la execute, dreptul de a rula fisierul/programul/scriptul. Primul grup de “rwx” specifica permisiunile pentru “owner-ul” fisierului, al doilea grup de “rwx” specifica permisiunile pentru grupul de utilzatori asignat fisierului, iar ultimul grup de “rwx” specifica permisiunile pentru toti ceilalti utilizatori.
Stateless vs stateful
ACL-urile de pe un firewall sunt numite Network ACL pentru ca ele permit traficul autorizat sa treaca mai departe in drumul sau catre destinatie si blocheaza traficul neutorizat. Firewall-urile pot implementa ACL-urile in doua moduri: stateless si stateful.
Un firewall stateless inspecteaza fiecare pachet care il traverseaza dupa criteriile specificate in regulile din ACL, fara sa tina cont de celelalte pachete care fac parte din aceeasi sesiune/flow. O sesiune/flow este definita de cvintuplul de parametrii adresa IP sursa, adresa IP de destinatie, protocol, numar de port sursa si numar de port destinatie.
Un firewall stateful se uita la primul pachet din sesiune/flow si ia actiunea specificata in regula de ACL pe care face Match conform criteriilor definite si a informatiilor din antetul pachetului. Apoi, pentru fiecare pachet ulterior va lua aceeasi actiune, fara a mai verifica ACL-ul.
Un firewall stateless nu pastreaza contextul in care este primit un pachet (nu isi formeaza o tabela de sesiuni, la fel ca un firewall stateful) si din acest motiv va necesita mai putina memorie RAM si va lucra mai repede. Pentru o retea mica, modul simplu de functionare si viteza de procesare a unui firewall statefull sunt motive suficiente pentru a alege o astfel de securitate.
Un firewall stateful, desi poate mai lent ca unul stateless, ofera o protectie mai robusta datorita conextului pe care il creeaza cu fiecare sesiune IP stabilita prin el. De exemplu, un firewall stateful poate bloca traficul de la un anumit IP sursa, poate face filtrare de tip Geofencing, poate bloca atacuri de tip DoS sau poate impiedica accesare anumitor site-uri malitioase. Datorita acestei robustete si a caracteristicilor extra, firewall-urile stateful sunt preferate in retelele enterprise.
Securitatea retelei este mai importanta ca oricand si orice firewall este mai bun decat niciun firewall, indiferent ca este stateless sau stateful. Insa niciun firewall nu este invincibil. Ca orice sistem, firewall-ul poate fi compromis de catre un atacator daca nu este administrat si configurat in mod corect si mentinut la zi cu toate patch-urile aplicate. In plus, toate regulile de acces definite in ACL-uri trebuie testate in amanunt pentru a le valida functionarea corecta si fiabila.
Mihai Dumitrascu, Sr Systems Engineer