ACL list

Un’ACL list è un meccanismo usato per esprimere le regole che determinano l’accesso o meno ad alcune risorse di un sistema informatico da parte dei suoi utenti. Le regole vengono disposte in liste apposite chiamate ACL (Access Control List) dove è possibile dettagliare i filtri da applicare a ogni pacchetto in funzione delle informazioni presenti negli header TCP/IP, quindi a livello 3 (networking); a volte vengono analizzati anche gli header di livello 4 (transport) ma si ignorano le informazioni del protocollo applicativo al quale il pacchetto si riferisce.

Ogni regola ha la forma del tipo:

Schermata 2018-02-27 alle 17.10.31

• pattern specifica quali sono i pacchetti a cui si deve applicare la regola (es tutto il traffico di un determinato IP)

• l’azione indica se il pacchetto vada accettato o rifiutato (es permit)

Di regole ce ne possono essere tante perché si può dire per questa rete il traffico passa per quest’altra non passa e così via e quindi si parla di liste di accesso ossia di una sequenza di regole che  vengono valutate con iI criterio “first match”,  cioè si cerca la prima riga che soddisfi il pattern, e una volta verificato si intraprende l’azione specificata (permit o deny) e si termina la valutazione della ACL.

Schermata 2018-02-27 alle 17.16.52

Se nessuna regola soddisfa il pattern si applica la policy di default. Abbiamo due filosofie opposte:

  • open security policy: tutto è permesso per default e nella lista ACL è presente l’elenco dei divieti;
  • closed security policy: tutto è vietato per default e nella lista ACL sono elencati i pochi accessi che vengono permessi, come nell’esempio precedente, ed è la politica maggiormente adottata.
  • Una volta definite le regole queste si devono applicare a un’interfaccia del router, inoltre si deve specificare se vanno applicate al traffico in ingresso (inbound)  oppure in uscita (outbound).
    Schermata 2018-02-27 alle 17.19.50

    Sui router Cisco le ACL si possono categorizzare in due gruppi fondamentali:

    1. ACL standard: sono utilizzate per filtrare il traffico basandosi solo sull’indirizzo IP sorgente del pacchetto IP.
    2. ACL extended: Oltre all’indirizzo IP sorgente le ACL extended possono basare le proprie decisioni anche sull’indirizzo IP di destinazione, sul protocollo (TCP, UDP, …), sulle porte sorgente e destinazione ecc.

    • Numbered (numeriche), con identificativo basato sui numeri da 1 a 99 e da 1300 a 1999 per le  standard ACL, da 100 a 199 e da 2000 a 2699 per le ACL di tipo esteso.

    • Named (con nome), identificate da un nome scelto dall’amministratore.

    Schermata 2018-02-27 alle 17.23.19

    Un altro aspetto molto importante è il posizionamento delle ACL:

    • Posizionamento di ACL estese – Devono essere posizionate il più vicino possibile alla sorgente da filtrare. Posizionarle lontane dalla sorgente sarebbe inefficiente, poichè i pacchetti attraverserebbero troppe zone prima di essere bloccati o filtrati.

    • Posizionamento di ACL standard – Devono essere posizionate il più vicino possibile alla destinazione. Infatti, poichè le ACL standard filtrano i pacchetti solo in base all’indirizzo sorgente, il posizionamento nei pressi dell’interfaccia sorgente potrebbe bloccare del traffico ritenuto valido. Ad esempio, se si volesse bloccare l’accesso ad un server da una determinata rete con un deny indirizzi_rete, se la negazione fosse vicina alla rete sorgente, verrebbero bloccate anche altre destinazioni ritenute valide o addiritura negato tutto il traffico in uscita.

ACL STANDARD

Schermata 2018-02-27 alle 17.36.37

Supponiamo di volere bloccare il traffico generato da B e diretto al WEB server e di permettere invece il traffico generato da A e diretto a al WEB Server

La prima cosa da fare è individuare la direzione del flusso dati. Come puoi vedere i dati entrano dall’interfaccia Fa0/0 di R1, escono da Se2/0; entrano nuovamente nell’interfaccia seriale di R2 e infine escono dall’interfaccia Fa0/0. Definire l’interfaccia di entrata e uscita di ciascun router è di fondamentale importanza. 

Il passo successivo consiste nel creare un elenco di regole (rules o policy) per identificare il traffico da analizzare. Nel caso dell’esempio, il gruppo sarà quindi composto dalle seguenti regole:

Schermata 2018-02-27 alle 17.38.37

Il tutto va implementato sui router.

 Le Standard ACL devono essere configurate il più vicino possibile alla destinazione del pacchetto 

Una volta attivate le ACL, ciascun router verifica per ogni pacchetto ricevuto se esiste corrispondenza con una o più regole. In altri termini, per ciascun pacchetto, il router controlla se Source e Destination IP corrispondono a quelli riportati nelle regole. Se c’è un riscontro (match)il router applica l’azione prevista dalla regola.

Nel nostro esempio:

Schermata 2018-02-27 alle 17.46.15

Le ACL possono essere utilizzate anche per permettere o bloccare il flusso dati di un’intera subnet o porzione di essa. Per far ciò utilizza il concetto di Wildcard Mask

La wildcard mask è un numero di 32-bit diviso in 4 ottetti, simile alla subnet-mask. La differenza sostanziale è che la wildcard-mask indica quali bit di un indirizzo IP devono essere controllati in un’ACL: il valore:

  • 0  indica che il bit corrispondente deve essere controllato
  • 1 che deve essere ignorato.

Schermata 2018-02-27 alle 17.56.04

Il router agisce quindi come segue: 

  • Blocca il traffico generato dall’host 192.168.1.2, in quanto la wildcard mask impone la comparazione di tutti gli ottetti 
  • Consente il traffico generato da tutti gli indirizzi IP del tipo 192.168.2.x , in quanto la wildcard mask impone la comparazione dei soli primi tre ottetti, mentre il 4° può assumere valore qualsiasi 
  • Blocca il traffico generato da tutti gli indirizzi IP del tipo 162.16.x.x , in quanto la wildcard mask impone la comparazione dei soli primi due ottetti: 3° e 4° possono assumere valore qualsiasi.

Un’access list può essere utilizzata per permettere/negare il traffico generato da un’intera subnet.

La procedura da seguire per il calcolo della wildcard mask è semplice e deve essere svolta in questo modo:

 Utilizza il Subnet ID come indirizzo principale del comando access-list 

 La Wildcard Mask è il valore ottenuto sottraendo a 255.255.255.255 il valore  della subnet mask. 

 Quale è ad esempio la wildcard mask da utilizzare per includere nell’ACL tutti gli indirizzi della rete 162.166.68.0/255.255.252.0 ?

 

255.255.255.255 – 

255.255.252.0    = 

0. 0. 3 . 255  

 

La wildcard mask è quindi 0.0.3.255

Spesso può esser richiesto di calcolare il range di indirizzi IP che possono trovare corrispondenza in un’access-list. 

Es. Si supponga di voler testare gli indirizzi IP da 172.50.16.0 a 172.50.31.0. In questo caso conviene analizzare esclusivamente gli ultimi due ottetti:

Schermata 2018-02-27 alle 17.56.23

Per cui, in questo caso, la wildcard-mask avrà la forma 0.0.15.255.

Le Extended Numbered Access List

Sono utilizzate per permettere ad un router  di poter bloccare determinati flussi dati e permetterne degli altri, sono identificate per mezzo di un numero compreso tra i valori 100 e 199 2000-2699.

La sostanziale differenza tra le due tipologie consiste nel numero di parametri utilizzabili per rilevare l’appartenenza di un pacchetto IP ad un flusso autorizzato o meno.  In una Standard ACL il controllo può esser fatto solo analizzando l’IP sorgente.  Utilizzando invece una Extended Number ACL è possibile effettuare il controllo verificando i parametri: 

  • Ip Sorgente e  Ip Destinazione
  • Porta Sorgente e Porta Destinazione 
  • Protocollo di livello Trasporto (TCP/UDP/ICMP) 

Un’Extended Numbered ACL dovrebbe essere implementata “il più vicino possibile” alla sorgente dell’informazione.

La sintassi base del comando IOS per un’extended numbered ACL è: 

acces-list <ID> <Action> <Protocol> <Source IP> <Operator> <Source Port> <Destination IP> <Operator> <Destination Port> <Established>

 

 I campi assumono il seguente significato: 

  • <ID>: è l’identificativo dell’ACL. Può assumere valore compreso nei range 100-199, 2000-2699 
  • <Action>: è l’azione che il router intraprende in caso di ‘matching’. Generalmente sono previste le azioni Permit e Deny 
  •  <Protocol>: identifica il protocollo da sottoporre a ‘matching’. Possibili valori sono ip,tcp,udp,icmp. 
  •  <Source IP>  <Destination IP>: identificano rispettivamente l’indirizzo IP sorgente e l’indirizzo ip destinazione da sottoporre a ‘matching’. Sono espressi per mezzo dei valori Indirizzo e Wildcard Mask
  • <Source Port> <Destination Port> : identificno la porta sorgente e la pora destinazione  da sottoporre a matching
  • <Operator>: è un operatore utilizzato per selezionare una, nessuna o più porte. I principali operator sono:
  • equal: uguale
  • gt:  maggiore
  • lt : minore 
  • neq: non uguale
  • range: si deve specificare un range di porte
  • Established:  (Optional) Si utilizza solo con il protocollo TCP: indica una “estabilished connection”. Il controllo viene effettuato solo se il datagramma ha settato il bit di ACK o RST, mentre non ci sono controlli sul pacchetto iniziale per stabilire la connessione.

Esempio di ACL extended:

Schermata 2018-02-27 alle 18.06.40

In questa ACL viene:

Respinto il traffico proveniente dalla rete 10.0.0.30/24 (riga 1)

Permesso il traffico web (porte HTTP e HTTPS, 80 e 443) verso l’indirizzo IP 192.168.1.20 (righe 2 e 3)

Respinto il traffico UDP diretto alla sottorete 192.168.1.32/27, destinato a porte superiori a 5000 (riga 4)

Permesso il traffico ICMP (riga 5)

Negato tutto il resto (riga 6)

Da notare che le ACL negli esempi sono solo state definite, non sono ancora “operative”. Per essere rese tali devono essere applicate ad una interfaccia: 

Router(config)#interface gigabitEthernet 0/0

Router(config – if)#iip access-group 120 in

In questo esempio la ACL avente numero 120 viene applicata al traffico in traffico in transito sull’interfaccia “gigabitEthernet 0/0”; in particolare viene applicata al traffico in ingresso nel router (parola chiave “in”). Naturalmente può essere applicata al traffico che esce dal router (in questo caso useremmo la parola chiave “out”).

Tra i tentativi di intrusione che un firewall può tentare di contrastare si ricorda:

  • l’IP spoofing,
  • DoS (Denial of Service), 
  • IP smurfing

Se il router/ firewall non è impostato correttamente per ignorare pacchetti ICMP con destinazione IP broadcast, inoltra il pacchetto a tutte le sue interfacce e la richiesta ICMP si diffonde velocemente sia sulla rete privata sia sulla rete pubblica su cui si affaccia il router. Siccome la destinazione è broadcast, molti host risponderanno alla richiesta inviando pacchetti ICMP Echo Reply all’indirizzo IP mittente (falsificato), costringendolo a una attività stressante. Per questa ragione i firewall hanno spesso una ACL che gli impone di non inoltrare pacchetti ICMP con IP destinatario un indirizzo di broadcast. 

ACL antispoofing e antismurf

Se dalla rete pubblica giungono pacchetti TCP/IP provenienti da reti private, ciò significa che probabilmente si è di fronte a una intrusione, dato che è impossibile che dalla rete pubblica giungano pacchetti originati da reti private.

Riferendosi alla rete riportata in figura:

Schermata 2018-02-27 alle 18.12.51

Leave a Reply


Latest Posts

AAA