Tecnologie di Sicurezza
in Internet
APPLICAZIONI
AA 2009-2010
Ingegneria Informatica e dell’Automazione
Web caches
Il proxy per antonomasia
Per proxy, o proxy server, intendiamo solitamente
un proxy HTTP, ossia un servizio di rete che
accede al web per conto e in vece dei browser
Questo poi è solitamente un HTTP caching proxy,
ovvero memorizza e gestisce una copia locale
degli oggetti web richiamati, fornendoli alle
successive richieste HTTP senza effettuare altri
accessi ai server di origine
Se ben dimensionato:
• Riduce l'occupazione di banda
• Riduce la latenza media di accesso al web
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/2
HTTP proxy
Oltre a HTTP, i caching proxy supportano anche
alcuni dei seguenti protocolli
• HTTPS
• FTP
• LDAP
• WHOIS
• WAIS
• Gopher
•…
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/3
HTTP proxy
Il browser, anziché connettersi direttamente ai
server web di origine, può usare un proxy mediante
• Configurazione manuale
• Configurazione automatica
Quando l'utente richiede una pagina
http://www.sitoweb.com, il browser manda la
richiesta al proxy che, dopo aver (opzionalmente)
verificato i diritti d'accesso dell'utente al sistema e
alla specifica pagina, la richiama e la rimanda in
risposta all'utente
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/4
Configurazione automatica
WPAD
Meccanismo che permette ai client di localizzare il proxy
automaticamente senza interventi manuali sulla
configurazione
In diversi modi il browser è portato a scaricare un file di
configurazione (.pac) da un web server che è a sua volta
localizzato tramite
• DHCP
• SLP
• well-known DNS aliases
• DNS SRV records
• "service: URLs" in DNS TXT records
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/5
HTTP basics
RFC 2616
HTTP REQUEST, HTTP RESPONSE
Static and dynamic content
cgi-bin
Embedded languages
Application servers
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/6
CLIENT REQUEST
In cache?
Fetch algorythm
HTTP REQUEST
TO ORIGIN
no
yes
Expired?
no
yes
HTTP REQUEST
TO ORIGIN
“if_modified_since”
no
Modified?
no
Error?
yes
yes
yes
Cacheable?
yes
no
In cache?
no
STORE IN CACHE
RESPONSE
ERROR
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/7
Fetch algorythm
Un caching proxy, come Squid, cerca nella cache
una copia dell'oggetto (indicizzata con l’MD5 hash
dell'URL)
• Se esiste controlla la scadenza; se l'oggetto è considerato
ancora valido (dipende dalle politiche scelte, che possono
variare a seconda del tipo di oggetto) viene consegnata la copia
• se invece l'oggetto è scaduto viene richiesto al server
originale l'oggetto, inserendo nella request un header IfModified-Since
• se la risposta conferma che l'oggetto è ancora valido perché
non modificato, al client viene restituito l'oggetto in cache
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/8
Fetch algorythm
Se l'oggetto non è in cache, è scaduto o viene
invalidato
• richiama l'oggetto dal server origine
• se questo ritorna un errore HTTP 5xx ed esiste
un oggetto scaduto, restituisce quest'oggetto
• controlla che l'oggetto sia cachable; se sì ne
memorizza una copia locale in cache
• al termine l’oggetto viene consegnato al client
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/9
Oggetti
Cacheable objects
• HTTP:
Deve avere un tag Last-Modified:
Non-cacheable objects
• HTTPS, WAIS
• HTTP:
Nessun tag Last-Modified:
Oggetti autenticati
Cache-Control: private, no-store, no-cache
• URLs con '?' o 'cgi-bin'
• Response a POST methods
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/10
Autenticazione
Squid usa moduli esterni per l'autenticazione
degli utenti
• LDAP
• NCSA
• MSNT
• SMB
• PAM
• getpwam, sasl, winbind
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/11
ACL
Una forma più banale di autenticazione si può ottenere
con ACL sull'indirizzo IP della richiesta, nel caso si
usino indirizzi statici
acl all src 0.0.0.0/0.0.0.0
acl mynetwork src 192.168.1.0/24
http_access allow mynetwork
http_access deny all
Esempio di ACL sulle porte
acl ssl_ports port 443 555 666
acl www_ports port 80 81
acl safe_ports port 1025-65535
http_access deny HTTP !www_ports !safe_ports
http_access deny CONNECT !ssl_ports
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/12
Redirectors
Squid può riscrivere gli URL che gli sono richiesti,
richiamando un processo esterno detto redirector
Serve principalmente per funzioni di URL filtering,
ossia per controllare i siti che gli utenti visitano
Il redirector riceve in input l'URL richiesto, l'IP address
e (se autenticato) lo user richiedente e il metodo HTTP
Risponde una riga vuota se OK, oppure un nuovo URL
SquidGuard
E' un buon esempio di redirector
Filtra su sources (IP, domain, user), time e
destinations (domainlists, urllists, expressionlists)
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/13
Configurazioni base
Porte e indirizzi
# http_port [ip_address:]port
http port 172.20.10.1:8080
Dimensionamenti
cache_dir directory size d1 d2
cache_mem
maximum_object_size
maximum_object_size_in_memory
Processi ausiliari
dns_children n
redirect_children n
Regole di caching
refresh_pattern regex min pct max
quick_abort_{min,max,pct}
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/14
Installazioni
Packet Filter
Il caching proxy installato in una DMZ e
protetto dal packet filter
Application Level Gateway
Il caching proxy è installato nell'AG stesso
Ridondanze
Si possono utilizzare link multipli e/o
gerarchie di cache, per failover e/o
balancing
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/15
Concetti avanzati
• Cache peers, parents, siblings
• Cache digests, Cache hierachies
• ICP, HTCP, CARP
• ICMP RTT performance measurements
• Delay pools
• Transparent proxying
• HTTP accelerator e reverse proxies
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/16
Concetti avanzati
Si possono configurare delay pools, classi di servizio
differenziate che permettono di realizzare traffic
shaping e altre priorità
Per far funzionare un transparent proxy occorre
avere un router (configurato come default gateway)
che redirige tutto il traffico uscente sulla porta 80
alla corrispondente porta del proxy. Al contrario del
proxy normale questa configurazione consente di
non configurare i browser, ma:
• il router può sovraccaricarsi
• sono richieste modifiche al kernel del proxy
• solo HTTP (no HTTPS, FTP, altri protocolli)
• in alcuni casi occorre riscrivere gli URL
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/17
Gerarchie di cache
Il percorso dal browser al server d’origine può
attraversare più di una cache, che funzionano in
modo indipendente o lavorano insieme tramite
protocolli specifici (es. ICP)
A seconda della convenienza e della sua
configurazione, una cache può recuperare il
contenuto direttamente dal server origine oppure
può farlo tramite altre cache, usandole come parent
o come sibling, in funzione per esempio del dominio
di destinazione, del contenuto della gerarchia
(cache digest) o delle prestazioni misurate del
server di origine (ICMP RTT)
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/18
Gerarchie di cache
INTERNET
ISP A
ISP B
Beta
Alpha
Cache A
FW
FW
Cache B
Sito B
Sito A
Cache C
Sito C
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/19
Reverse proxies
Sono proxy, tipicamente cache HTTP, aventi
un insieme prefissato di web server d’origine,
per i quali funzionano come front-end
Il caso più semplice di reverse proxy è l’HTTP
accelerator, in cui le funzionalità di caching
del proxy si usano per sollevare i web server
da una parte del loro carico di lavoro, in
particolare per il contenuto statico
Costituiscono un livello di difesa addizionale,
anche se le motivazioni per la loro
installazione sono molteplici
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/20
Reverse proxies
Frequentemente l’uso dei reverse proxy è
dovuto a diverse esigenze:
• esporre i contenuti di web server usando
nomi alternativi e riscrivendo gli URL ed
eventualmente il contenuto delle response
• realizzare accessi HTTPS a sistemi già
esistenti che non supportano SSL o per cui
non è conveniente configurare SSL
• esporre all’esterno in modo sicuro un web
server installato internamente alla rete locale
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/21
Reverse proxies applicativi
Un altro uso frequente dei reverse proxy è
dovuto a esigenze applicative o
organizzative:
• aggiungere autenticazione e autorizzazioni
applicative gestite a siti web interni fuori
controllo e contenenti informazioni statiche
• integrare nel proprio sistema di
autenticazione e autorizzazioni web ambienti
commerciali incompatibili
Introdurre queste di tecniche di sicurezza
applicativa è possibile solamente in regime
di Identity Management
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/22
Riferimenti
• The Squid Caching Proxy
Chris Wichura
• Squid website
http://www.squid-cache.org
• Squid FAQ
http://www.squid-cache.org/FAQ
• SquidGuard website
http://www.squidguard.org
• HTTP 1.1
RFC 2616
• Internet Draft draft-ietf-wrec-wpad-01.txt
http://www.wrec.org/Drafts/draft-ietf-wrec-wpad-01.txt
• Apache HTTP Server Project
http://httpd.apache.org/
Tecnologie di Sicurezza in Internet: applicazioni – AA 2009-2010 – C30/23
Descargar

Tecnologie di Sicurezza in Internet APPLICAZIONI