La sintassi per lo Standard access list è la seguente:
access-list list {permit|deny} address
wildcard-mask
no access-list list
"list" è un intero tra 1 e 99 ed
è usato per identificare la condizione.
L'uso delle parole-chiavi "permit" e"deny"
corrispondono alle parole permettere e bloccare.
Ogni indirizzo di destinazione IP è comparato
al valore specificato in "address".
L'"address" e la "wildcard-mask"
sono valori di 32-bit e sono scritti usando la notazione "doted-decimal".
L'address bits corrispondenti ad 1 nella wildcard-mask
sono ignorati nel confronto, mentre l'address bits corrispondenti
a 0 nella wildcard-mask sono usati nel confronto.
Consideriamo il seguente esempio:
Extended access list
La sintassi per l'extended access list è la
seguente:
access-list list {permit|deny } protocol source source-mask destination destination-mask [operator operand]
listè un intero
tra 100 e 199 ed è usato per identificare la condizione.
L'uso delle parole-chiavi "permit" e "deny"
corrispondono alle parole permettere e bloccare.
Protocol indica il tipo
di protocollo usato TCP,UDP,IP e ICMP.
"Source" e "source-mask"
sono valori di 32-bits e sono scritti usando la notazione
"dotted-decimal".
I "source" bits corrispondenti ad 1 nella
"source-mask" sono ignorati nel confronto, mentre i
"source" bits corrispondenti a 0 nella "source-mask"
sono usati nel confronto.
"Destination" e"destination-mask"
sono valori di 32-bits e sono usati nello stesso modo di "source"
e "source-mask".
L'"operator" e l'"operand" sono usati per comparare il numero di porta di destinazione ,e l'"operator" può assumere i seguenti valori:
Esempio
Supponiamo che la politica di sicurezza richieda
di negare le richieste di connessioni al servizio SMTP (porta 25) del network
199.245.180.0 da parte dello host 132.124.23.55.
no access-list 101
NOTA: Per restringere le connessioni in ingresso
ed in uscita tra le linee del Cisco router e l'indirizzo contenuto
nell'"access list" può essere usato il seguente
comando:
Questa politica può essere implementata nel seguente modo:
access-list 101 deny tcp 132.124.23.55 0.0.0.0 199.245.180.0 0.0.0.255 eq 25
access-class list {in|out}
Nel successivo esempio si definisce un "access
list" che permette solo al network 199.89.55.0 di connettersi
alle porte virtuali 1-5 del router:
access-list 18 permit 192.89.55.0 0.0.0.255
line 1 5
access-class 18 in
Il router può esaminare il traffico dei pacchetti in ogni sua porta e considerare se il pacchetto è in arrivo o in uscita in ogni sua interfaccia con la rete. Molti venditori di routers implementano il filtraggio solo per i pacchetti in uscita, in quanto applica le regole quando il router consulta la tabella per determinare la destinazione del pacchetto. Se il pacchetto non rispetta alcuna regola, questo è respinto è viene spedito un messaggio di "ICMP destination unreacheable". Facendo l'analisi solo per i pacchetti in uscita dal router si perdono delle informazioni, infatti non si sa da dove il pacchetto è arrivato. Questo rende il network vulnerabile agli attacchi chiamati address spoofing (simulazione d'indirizzo). Consideriamo il seguente esempio:
(FIGURA4)IL network 135.12.0.0 è connesso ad Internet attraverso lo screening router .
Un host esterno invia pacchetti al network cambiando il proprio indirizzo IP con l'indirizzo 135.12.10.201, che appartiene ad un host interno. Il pacchetto è ricevuto dallo screening router nella porta esterna. Se il router opera il filtraggio nei pacchetti in ingresso, riesce a capire l'inganno, poiché i pacchetti con quell'indirizzo sorgente non possono arrivare da quella porta, se invece il filtraggio avviene in uscita l'intrusore può penetrare tranquillamente all'interno della rete.
Quindi per avere una perfetta operazione di filtraggio,
bisogna operare in ogni porta del router e controllare se i pacchetti
sono in arrivo o in uscita dalla rete. Un ulteriore problema per
la sicurezza del network nasce se nella progettazione delle regole
non viene specificato una delle due porte, sorgente o destinazione.
Infatti molti routers operano il filtraggio basandosi solo nella porta sorgente.
Questo è giustificato dal fatto che in una connessione TCP il flusso dei dati è in entrambe le direzioni, quindi nella porta sorgente compaiono tutti e due i numeri delle porte degli host. Siccome il controllo non viene fatto simultaneamente sorgono dei problemi.Consideriamo il seguente esempio riportato nella tabella di filtraggio:
| Numero Regola | Azione | Sorgente | Porta Sorg. | Destinazione | Porta Dest | Opzioni Flag Protocollo | Descrizione |
| 1 | allow | 199.245.180.0 | 5555 | 135.67.12.33 | * | TCP | Permette sessioni TCP da host interni porta 5555 verso host esterni. |
| 2 | allow | 135.67.12.33 | 5555 | 199.245.180.0 | * | TCP | Permette sessioni TCP da host esterni con porta 5555 verso host interni |
La prima regola permette la connessione dalla porta 5555
dell'host interno 199.245.180.1 ad ogni porta dell'host 135.67.12.33.
La seconda regola permette la connessione dalla porta 5555 dell'host esterno 135.67.12.33 ad ogni 5555 dell'host interno.
Mentre la prima non danneggia la sicurezza, la seconda
può aprire un varco nella sicurezza della rete.
(FIGURA6)Infatti come si vede nella figura, un bogus program dell'host esterno può connettersi a qualsiasi porta dell'host interno, ed accedere cosi a qualsiasi tipo di servizio senza essere contrastato dallo screening router.
Nella tabella quindi non è presente la porta di destinazione.
| Numero Regola | Azione | Sorgente | Porta Sorg. | Destinazione | Porta Dest | Opzioni Flag Protocollo | Descrizione |
| 1 | allow | 199.245.180.0 | * | 139.40.61.3 | * | TCP | Permessa connessione TCP in uscita |
| 2 | allow | 139.40.61.3 | 20 | 199.245.180.0 | ? | TCP | Porta destinazione sconosciuta |
Un intrusore fingendosi il server e mettendo come porta sorgente la porta 20 può accedere tranquillamente al network e attaccare un servizio dell'host.
Un modo per evitarlo è prendere in considerazione
l'ACK flag, e il range di valori che può assumere una porta.
Nelle regole di filtraggio quindi avremo che i pacchetti
provenienti dalla porta 20 del server e destinati ad un internal
host con porta di destinazione maggiore di 1024 sono buoni, mentre
i pacchetti con porta di destinazione minore di 1024 possono essere
tentativi di attacchi e quindi rifiutati.
Questo perché quasi tutti i servizi sono attaccati
a porte con numeri inferiori a 1024, mentre la porta di ritorno
dei dati dell'FTP ha un valore superiore.
(FIGURA9)
Il protocollo X11 usa il TCP e come l'FTP richiede una chiamata in arrivo al Server X11, ma in questo tipo di sessione l'X-server è il terminale utilizzato dall'user. Se un user vuole gestire una X11 applicazione in un sito esterno deve prima operare una connessione TCP con questo sito, poi sarà l`applicazione X11 della macchina esterna a creare una chiamata per il server.
(FIGURA10)Consideriamo la seguente politica di sicurezza in cui è permesso un X-access da un sito esterno (128.23.0.0) alla rete interna mentre tutti gli altri accessi sono bloccati.
X-11 server usa le porte 6000-6100.
| Numero Regola | Azione | Sorgente | Porta Sorg. | Destinazione | Porta Dest | Opzioni Flag Protocollo | Descrizione |
| 1 | allow | 199.245.180.0 | * | * | * | TCP | Permette connessione TCP in uscita |
| 2 | block | 128.23.0.0 | * | 199.245.180.0 | 6000-6100 | TCP | Blocca accesso a X11 da 128.23.0.0 |
| 3 | allow | * | * | 199.245.180.0 | 6000-6100 | Permette accesso a X11 da altri host |
Analizziamo l'ICMP redirect, questo messaggio e`
inviato dai routers agli altri dispositivi per informarli di nuove
vie per l'instradamento dei pacchetti.
Se a questo tipo di messaggio è permesso filtrare
all'interno del nostro network, un host esterno può falsificare
l'ICMP e causare la distruzione delle tabelle di instradamento.
Per questa ragione è opportuno negare l'accesso
a ICMP Redirect provenienti da un Network esterno.
Un altro messaggio ICMP a cui negare l'accesso è
ICMP echo-service, usato in risposta al comando PING, poiché
attraverso il comando PING fatto da un host esterno verso un host
appartenente alla rete da proteggere si può effettuare
una mappatura di quest'ultima.