VoIP and Hacking | Consulenza Documentazione

Navigazione sicura con un proxy antivirus

by admin on May.16, 2009, under Linux, Networking, Sicurezza, Tools

Buona parte delle insidie alla sicurezza dei cittadini di Internet interessa la navigazione web, e deriva da contenuto malizioso che gli incauti o sfortunati visitatori, molto spesso inconsapevolmente, scaricano sul loro computer.
Una soluzione a questo problema, particolarmente indicata in ambito aziendale, dove non è ragionevole attendersi un comportamento particolarmente prudente da parte della totalità degli utenti, viene offerta dall’abbinamento tra un proxy HTTP ed un virus scanner.
In ambito opensource e su piattaforma unix-like (quindi Linux) tale soluzione è implementabile grazie all’accoppiamento tra il conosciutissimo Squid ed un secondo proxy, che realizza propriamente la funzionalità di virus scanner.
HAVP (HTTP AntiVirus proxy) è difatti un proxy dotato di un filtro anti-virus.
Il proxy Havp antivirus può funzionare sia con squid che autonomamente, e secondo diverse modalità, ad esempio parent e transparent proxy.
Qui viene impostato come parent proxy di squid.
Tutto il traffico viene esaminato. Il motivo dipende proprio dalla possibilità che codice malizioso si annidi pressoché in qualsiasi tipo di file, ad es. HTML (JavaScript) oppure Jpeg.
Havp memorizza i dati ottenuti da un server in un file temporaneo ed applica un lock alla fine del file. Un secondo processo inizia a scansionare i dati scritti. Contemporaneamente essi vengono inviati al client (nel nostro caso il proxy Squid). Non proprio tutti; una certa quantità, peraltro definibile, viene trattenuta e rilasciata al client solamente quando la scansione sia sta completata.
In realtà la scansione antivirus non è nativa, ma viene attuata grazie all’interfacciamento, questo si nativo, con le librerie del noto Clamav. In tal caso l’antivirus dovrà essere stato precedentemente installato.
Come accennato in precedenza, la presenza di Squid non è strettamente necessaria, ma si rivela quantomai opportuna come gestore di una cache dalla quale i clients veri e propri potranno velocemente ottenere i contenuti che hanno passato l’esame.

Supponendo che sia Clamav che Squid siano già installati, si può scegliere se installare Havp come package precompilato, oppure compilandolo da sorgente, cosa che offre il vantaggio della disponibilità dell’ultima versione del software, la 0.90 (il package per Ubuntu è fermo alla 0.89).

# cd /opt
# wget http://www.server-side.de/download/havp-0.90.tar.gz
# tar zxf havp-0.90.tar.gz
# cd havp-0.90
# ./configure
# make
# make install

Per la memorizzazione dei files temporanei vi è la necessità di un filesystem montato con l’opzione “mandatory lock”.
Un simile filesystem, per motivi prestazionali, può essere ottenuto tramite ramdisks, oppure, come qui, tramite un loopback filesystem, ovvero un filesystem creato all’interno di un file regolare e montato attraverso un loopback device:

# dd if=/dev/zero of=/var/havpfs bs=1024 count=30720
# losetup /dev/loop0 /var/havpfs
# mkfs.ext3 -m 1 -v /dev/loop0
# mkdir /var/havp
# mount -t ext3 /dev/loop0 /var/havp -o mand

In squid.conf va definito il ricorso ad un cache peer di tipo parent che si trovi in ascolto sulla porta 8080, ovvero Hvap.

cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all.

In tal modo qualsiasi richiesta fatta da un client passa per la catena dei proxy (prima Squid e poi Hpav) ed ogni contenuto ottenuto in risposta attraverso la catena inversa (prima Hpav, dove viene effettuato il rilevamento virus tramite le funzioni della libreria Clamav, e poi Squid, che le restituisce al client e le memorizza, in vista di analoghe richieste future.

Ovviamente, Squid può essere impostato come proxy esplicito, agendo nelle impostazioni delle preferenze del browser utilizzato, oppure essere impostato come transparent proxy, opzione preferibile in ambito aziendale, dato che una sua maliziosa deselezione comporterebbe la conseguente inattivazione della scansione antivirus. L’obiettivo è facilmente ottenibile con una regola del tipo:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , , , , ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...