Meccanismi di firewalling

Un firewall è un insieme di componenti logiche e fisiche il cui scopo principale è separare una rete privata da Internet e stabilire a quali servizi interni si possa accedere dall’esterno e a quali servizi esterni si possa accedere dall’interno. La separazione si ottiene facendo in modo che la comunicazione con il mondo esterno avvenga solo attraverso la mediazione di una o poche macchine della rete privata che costituiscono il firewall. Il firewall fa da tramite per le richieste di servizio provenienti dalla rete interna verso Internet e viceversa. Le macchine che non comunicano direttamente con l’esterno costituiscono la rete interna. La migliore separazione si ottiene collocando quanto più possibile sul firewall i servizi da offrire al mondo esterno.
Tuttavia ciò non è possibile quando si è vincolati a offrire all’esterno dei servizi che richiedono l’accesso a macchine appartenenti alla rete interna. In questo caso il firewall si limita a fare da tramite e a selezionare le richieste di accesso dall'esterno ed eventualmente a fornire meccanismi di autenticazione. Le macchine collegate direttamente con Internet, cioè quelle che forniscono servizi all’esterno e fanno da tramite con la rete interna, sono quelle sulle quali è necessario concentrare maggiori attenzioni nella gestione della sicurezza e vengono denominate bastion host.
Di seguito, nelle architetture firewall descritte, si farà riferimento, per semplicità, ad un unico bastion host anche se è sempre possibile pensare ad un numero variabile di macchine di questo tipo. Questa descrizione generale non deve essere considerata rigidamente, sono infatti possibili variazioni che dipendono dai requisiti di sicurezza e dai vincoli dettati dalle esigenze di disponibilità dei servizi da parte dell'organizzazione che deve fornirli. Tali vincoli possono riflettersi nella necessità di offrire collegamenti diretti anche con macchine appartenenti alla rete interna anche se questo comporta una minore separazione dal mondo esterno e conseguentemente maggiori vulnerabilità per la rete privata.
Quanto più è netta la separazione tra rete interna e mondo esterno realizzata dal firewall, tanto più è possibile concentrare la gestione della sicurezza sulle macchine che costituiscono il firewall stesso. Una rigorosa separazione, infatti, consente di preoccuparsi meno dei problemi di sicurezza delle macchine appartenenti alla rete interna realizzando così l’obbiettivo della centralizzazione della gestione della sicurezza di una rete privata su poche macchine connesse ad Internet.
Adesso passeremo in rassegna tre dei più comuni meccanismi di firewalling:

Architettura dei firewall
...

Un firewall può essere realizzato fisicamente in diversi modi a seconda dell'architettura utilizzata.

Bastion host
...

Il bastion host (host di bastione) è un sistema identificato da un amministratore di firewall come un punto critico per la sicurezza della rete. Tipicamente il bastion host serve come piattaforma per un Application-Level Gateway. Caratteristiche comuni di un bastion host sono le seguenti:

  • La piattaforma hardware del bastion host esegue una versione sicura del suo sistema operativo, rendendolo un sistema più forte.
  • Solo i servizi che l'amministratore di rete considera essenziali sono installati sul bastion host. Queste potrebbero includere applicazioni per DNS, FTP, HTTP e SMTP.
  • Il bastion host potrebbe richiedere autenticazioni aggiuntive prima che ad un utente sia consentito l'accesso ai servizi proxy. In aggiunta, ciascun servizio proxy potrebbe richiedere la propria autenticazione prima di consentire l'accesso all'utente.
  • Ogni proxy è configurato per supportare solo un sottoinsieme dell'insieme di comandi applicativi standard.
  • Ogni proxy è configurato per consentire l'accesso solo a specifici host. Questo vuol dire che l'insieme limitato di comandi/funzioni potrebbe essere applicato solo ad un sotto insieme di sistemi sulla rete protetta.
  • Ogni proxy mantiene informazioni dettagliate sul traffico attraverso file di log.
  • Ogni modulo proxy è un pacchetto software molto piccolo, specificatamente progettato per la sicurezza della rete. Grazie alla sua semplicità, diventa più facile verificare se i moduli contengono falle di sicurezza. Per esempio, un tipica applicazione per mail UNIX potrebbe avere oltre 20 mila linee di codice, mentre un mail proxy potrebbe contenere meno di 1000 righe.
  • Ogni proxy è indipendente dagli altri sul bastion host. Se c'è un problema con uno dei proxy, o in futuro uno di essi diventa vulnerabile, deve essere possibile disinstallarlo senza affliggere il funzionamento degli altri proxy. Al contrario, se è necessario un nuovo proxy, l'installazione di un nuovo proxy non deve interferire con le installazione già presenti.
  • Un proxy generalmente non esegue alcun accesso al disco se non per leggere il suo file di configurazione iniziale. Pertanto, le porzioni del file system contenenti codice eseguibile possono essere rese di sola lettura. Ciò rende difficile per un intruso installare file pericolosi sull'host bastion.
  • Ogni proxy è eseguito come utente non privilegiato in una directory privata e sicura sul bastion host.

Analizziamo alcune architetture di firewalling.