Filtro web sui contenuti e controllo parentale tramite proxy trasparente

In questo documento, dopo una breve descrizione riguardante la necessità di filtrare le pagine Web non idonee ai minori, si elencano le possibili soluzioni di controllo parentale e ci si sofferma sull’implementazione di un proxy web trasparente che, oltre al controllo antivirus, utilizzi DansGuardian per analizzare e bloccare le pagine web inadatte in determinati ambienti quali la scuola e la famiglia. Vedremo che tale soluzione può utilizzare hardware di modesta capacità, che sostituisca il router (wireless e non) di accesso a Internet e che pertanto è efficace indipendentemente dalla configurazione delle postazioni di accesso (PC, laptop, palmari) i cui controlli possono essere più facilmente bypassati. Questo documento è suddiviso nei seguenti paragrafi:

  • Introduzione al problema del controllo dei contenuti dei siti web
  • Alcune possibili soluzioni
    • Platform for Internet Content Selection (PICS)
    • Le blacklist di siti proibiti
    • Filtri sui contenuti delle pagine web
  • Dove applicare i web content filter
  • DansGuardian sul router di accesso a Internet
  • Installare DansGuardian su Zeroshell
  • Configurare DansGuardian
  • Bloccare il trasferimento di file di Windows Live Messenger
  • DansGuardian su Access Point Wireless Multi SSID

Introduzione al problema del controllo dei contenuti dei siti web

Gli ipertesti del WWW, con il passare del tempo, diventano una risorsa di informazione e conoscenza sempre più insostituibile. Ne vengono messi in rete, giornalmente, una quantità incredibilmente grande. D’altra parte, i motori di ricerca, grazie alle loro potenti farm distribuite di spider, indicizzano i contenuti ad una velocità impressionante e con algoritmi di catalogazione automatica che ne valutano la qualità e l’attinenza. Nella maggior parte dei casi, tutto ciò avviene senza la supervisione umana. In tal caso, si dice che il motore di ricerca è un crawler (Google), mentre quando la catalogazione finale di un documento è affidata all’uomo, si parla di directory (dmoz). È evidente, che i primi hanno il vantaggio di indicizzare velocemente un numero maggiore di siti, mentre i secondi quello di catalogarne e controllarne con maggiore cura il contenuto.
Questa facilità con cui il Web, con l’ausilio dei motori di ricerca, permette di accedere alle informazioni, ha cambiato il modo in cui nelle famiglie si garantisce l’accesso dei bambini e degli adolescenti all’informazione. Un tempo i genitori erano costretti all’acquisto di voluminose enciclopedie cartacee, il cui costo poteva essere eccessivo e che in pochi anni, divenivano obsolete. Si diffusero poi le enciclopedie in formato elettronico (su CD da caricare sull’Hard Disk del PC), ma anche queste richiedono un costante aggiornamento che, benché facilitato, ha comunque dei costi aggiuntivi.
Al giorno d’oggi invece, il diffondersi di connessioni a banda larga come per esempio l’ADSL, consente alle famiglie di dotarsi facilmente di un punto di accesso a Internet pagando un canone mensile relativamente basso. Il web diventa pertanto un mezzo privilegiato e facilmente accessibile per i ragazzi, in cui cercare informazioni di ogni tipo costantemente aggiornate. Le stesse scuole investono sempre più nella realizzazione di laboratori multimediali con una connessione a Internet, che affianchino le tradizionali biblioteche nella funzione di luogo di ricerca di informazioni.
Purtroppo però, Internet ed in particolare il World Wide Web è anche ricco di siti con contenuti pericolosi e poco adatti ai minori. Si pensi a quelle pagine che trattano di pornografia o che incitano alla violenza e al razzismo. D’altra parte, la legittima curiosità dei ragazzi verso la sessualità, spesso li spinge ad usare i motori di ricerca con delle parole chiave che quasi mai conducono su siti che trattano di sana educazione sessuale. Da qui deriva l’esigenza, sempre più sentita da parte dei genitori e delle organizzazioni scolastiche, di agevolare l’accesso a Internet dei minori quale strumento tecnologico di apprendimento e formazione, ma di proteggerli dalle insidie nascoste applicando opportuni filtri sulle pagine web effetivamente consultabili.
Elenchiamo di seguito alcune possibili soluzioni, soffermandoci poi su quella che vede DansGuardian come filtro http del transparent proxy di Zeroshell.

Alcune possibili soluzioni

Le tecniche di controllo dei contenuti web per i minori ricadono in due categorie. Una molta restrittiva perché censura la totalià del World Wide Web tranne un numero limitato di siti scelti dai genitori. L’altra, opposta, cerca di bloccare solo le pagine contenenti materiale inadatto, lasciando passare il resto. È chiaro che le soluzioni appartenenti alla prima categoria, attuabili con delle whitelist in cui si dichiarano i siti accessibili, offrono maggiori garanzie, ma si dimostrano troppo rigide e necessitano di continui interventi di aggiornamento delle liste di accesso. Possono essere adatte per i bambini della scuola elementare, ma lo sono meno per i ragazzi della scuola media inferiore, che dovrebbero poter sfruttare al meglio i link ipertestuali per navigare da un sito all’altro. Per questo motivo analizziamo solo le soluzioni appartenenti alla seconda categoria, cioè che prevedono il blocco solo degli ipertesti ritenuti non adatti.

Platform for Internet Content Selection (PICS)

Il consorzio W3C ha standardizzato un insieme di metatag da inserire nelle pagine web per classificarne il contenuto. Tale standard prende il nome di PICS (Platform for Internet Content Selection). I browser web o altri strumenti di filtraggio possono essere impostati per accettare o respingere le pagine che contegono determinati valori di tali metatag. Purtroppo però, per essere efficace, questa tecnica richiederebbe che chi immette in Internet pagine web le classifichi usando lo standard PICS. Non sempre ciò è vero (per non dire che non lo è quasi mai). Si intuisce perciò, che questa tecnica non può essere usata da sola, ma va affiancata ad altre per migliorarne l’efficacia.

Le blacklist di siti proibiti

Uno dei metodi utilizzati per impedire che vengano visualizzate delle prederminate pagine web è quello di compilare delle Blacklist. In altre parole, si inseriscono gli URL vietati in una lista che un proxy in maniera centralizzata per un’intera LAN oppure un software locale al personal computer di accesso a Internet si impegnerà a far rispettare. Il punto critico di questo metodo consiste nella capacità di ottenere una blacklist quanto più aggiornata possibile. Purtroppo, il continuo espandersi del web con il conseguente proliferare di siti non adatti ai giovani, rende quest’impresa ardua. È ovvio, che la compilazione e l’aggiornamento delle blacklist, non può per quanto detto essere affrontata da singoli, ma, così come avviene per le signature degli antivirus, esistono delle organizzazioni di persone che svolgono tale lavoro. Nella maggior parte dei casi sarà dunque necessario pagare un canone per ottenere l’aggiornamento della lista dei siti proibiti.

Filtri sui contenuti delle pagine web

Piuttosto che avere una lista statica aggiornabile periodicamente di URL da bloccare è molto più efficace utilizzare dei filtri, che valutino dinamicamente il contenuto delle pagine web, bloccando ciò che ritengono inopportuno. È evidente, che a fronte delle maggiori garanzie che questa soluzione propone, essa risulta più complessa dal punto di vista implementativo. Le tecniche utilizzate nell’analisi del linguaggio delle frasi contenute in un ipertesto http, che sono alla base di questi filtri, sono molto simili a quelle utilizzate dai sistemi antispam ed in analogia a questi si presenta il problema dei falsi positivi, ovvero di siti che contenendo determinate parole vengono classificati ingiustamente come inadatti ai minori. Tipici esempi sono le pagine di educazione sessuale che spesso vengono scambiate per pornografiche. In tal caso, bisognerà ricorrere alle whitelist per sbloccare i falsi positivi.
Un ulteriore vantaggio dei web content filter è che la soglia di intervento è tarabile. In altre parole, ad ogni pagina valutata viene assegnato dinamicamente un punteggio che risulta tanto più alto quanto maggiore è la probabilità che essa abbia un contenuto da bloccare. I genitori potranno regolare il punteggio minimo per il quale debba scattare il blocco. È naturale che si possa personalizzare tale valore in base all’età dei minori a cui il servizio è rivolto.

Dove applicare i web content filter

I filtri che riguardano il protocollo http possono essere applicati essenzialmente in due punti:

  • direttamente sul PC su cui avviene la navigazione in rete;
  • sul router di accesso a Internet tramite proxy trasparente.

Nel primo caso si installa un software di filtraggio che, intercettando le richieste fatte con il web browser, filtra le risposte provenienti dai web server prima che vengano visualizzate. Peraltro, i sistemi operativi più recenti supportano nativamente la navigazione sicura senza l’ausilio di software esterno. Tuttavia, sia che si tratti di applicativi esterni che di supporto nativo, bisogna verificare con cura che i minori non riescano a disattivare la protezione per esempio indovinando la password di amministratore di sistema. E ancora, la diffusione di sistemi Live CD sia Linux che Windows potrebbe permettere ai ragazzi di far partire il PC con un sistema diverso da quello installato, eludendone così i controlli. Il rimedio è quello di agire sul BIOS della macchina ed impostare l’hard disk come prima periferica di boot ed una password per evitare che si possa variare tale sequenza.
La seconda soluzione, cioè quella che prevede la configurazione di un proxy trasparente sul router di accesso a Internet e che sarà descritta in dettaglio nel seguito, presenta l’indubbio vantaggio di essere a tutela dell’intera LAN senza richiedere l’installazione o quantomeno la configurazione di ogni singolo PC o notebook da cui i minori potrebbero avere accesso. Peraltro, disattivare le protezioni su di un router è un’operazione ben più complicata che non su di un PC e che difficilmente passarebbe inosservata.

DansGuardian sul router di accesso a Internet

DansGuardian – true web content filtering for all è un software Open Source che appoggiandosi su di un server proxy (generalmente viene usato Squid) effettua il controllo delle pagine Web. La forza di questo software, rispetto ad altri, è nella sua capacità di interpretare il contenuto dei documenti in base alla presenza di determinate frasi o parole per ogni occorrenza delle quali viene incrementato il punteggio. Quando quest’ultimo raggiunge la soglia minima configurabile la pagina viene bloccata. DansGuardian oltre a questo metodo che è quello privilegiato data la sua efficacia, può filtrare anche in base ai metatag PICS e a delle Blacklist e Whitelist.
Zeroshell integra DansGuardian come pacchetto esterno e lo fa cooperare con il sistema di proxying trasparente HAVP con controllo antivirus da parte di ClamAV. Poiché il proxy di Zeroshell è configurato in modo da lavorare in modalità trasparente, esso intercetta automaticamentele le richieste http senza la necessità di configurare i web browser per utilizzare il proxy. Questo è un enorme vantaggio, poiché la configurazione del proxy su di un browser come Firefox o Explorer sarebbe facilmente disattivabile dai ragazzi con un minimo di conoscenza informatica. D’altra parte, un processo di proxying trasparente necessita di agire su di una macchina da cui transita tutto il traffico diretto e proveniente da Internet. Conviene pertanto, sostituire il proprio router di accesso ad Internet con un pc embedded in grado di far funzionare Zeroshell. Lo scanning delle pagine web sia da parte dell’antivirus ClamAV che di DansGuardian è nel complesso un’attività abbastanza pesante soprattutto in termini di memoria RAM. Si raccomanda, pertanto, di utilizzare un dispositivo o PC con almeno 256MB di RAM. Per esempio un router ALIX 2C2 con processore AMD Geode LX800 e 256MB di RAM è stato testato con risultati soddisfacenti. 

web-content-filter

Interfaccia web del proxy antivirus con DansGuardian 

Installare DansGuardian su Zeroshell

DansGuardian per Zeroshell è distribuito nella forma di update (http://www.zeroshell.net/patch-details#AA00). Per installarlo basta eseguire le seguenti operazioni direttamente dalla console o tramite una sessione SSH:

  cd /Database
  wget http://www.zeroshell.net/listing/AA00-DansGuardian-Web-Content-Filter-2.8.0.6-1.0.beta9.tar.bz2
  tar xvfj AA00-DansGuardian-Web-Content-Filter-2.8.0.6-1.0.beta9.tar.bz2
  cd AA00
  ./install.sh

Alla fine dell’installazione il servizio di proxy viene automaticamente riavviato senza la necessità di effettuare il reboot del sistema. Se DansGuardian risulta installato correttamente, nell’interfaccia web di configurazione del proxy compare il bottone [Content Filer Log] premendo il quale può essere monitorata la sua attività di blocco delle pagine.
Si noti peraltro, che poiché DansGuardian coopera strettamente con il servizio di proxy http, quest’ultimo deve essere configurato e attivato. In particolare bisogna aggiungere le cosiddette HTTP Capturing Rules che definiscono quale traffico http deve essere sottoposto all’azione del transparent proxy. Per maggiori dettagli sulla configurazione del proxy trasparente consultare l’URL http://www.zeroshell.net/proxy-antivirus.

Configurare DansGuardian

Attualmente Zeroshell non dispone di un’interfaccia web per la gestione di DansGuardian. Dalla sezione [HTTP Proxy] dell’interfaccia (vedi figura sopra) è possibile solo consultare i log di DansGuardian e impostare la WhiteList che coincide con quella del servizio proxy. L’uso del whitelisting è molto utile nel caso si verifichino dei falsi positivi. In tal caso, basta aggiungere il sito nella whitelist per evitare che DansGuardian lo blocchi, ma bisogna essere consapevoli che in tal caso il sito sfugge anche al controllo antivirus. È scontato inoltre che attivando e disattivando il servizio proxy con l’apposito flag [Enabled], si attiva e disattiva contemporaneamente DansGuardian.
La configurazione di default con cui il pacchetto DansGuardian viene installato, corrisponde ad un livello di protezione caratterizzato da una soglia di intervento (parametro naughtynesslimit) pari a 100. Se si verificano troppi falsi positivi, si deve aumentare tale valore, mentre in presenza di bambini più piccoli si dovrevve ridurre ridurlo. Per tarare quindi la sensibilità di DansGuardian, bisogna editare il file /etc/dansguardian/dansguardianf1.conf, modificando il parametro naughtynesslimit come mostrato sotto: 

# Naughtyness limit
# This the limit over which the page will be blocked.  Each weighted phrase is given
# a value either positive or negative and the values added up.  Phrases to do with
# good subjects will have negative values, and bad subjects will have positive
# values.  See the weightedphraselist file for examples.
# As a guide:
# 50 is for young children,  100 for old children,  160 for young adults.

naughtynesslimit = 100

Per far ripartire i daemon dansguardian in maniera che si rileggano la configurazione ci sono due metodi: si può disabilitare e poi riabilitare il servizio proxy dall’interfaccia web oppure, eseguire lo script /root/kerbynet.cgi/scripts/dg_start dalla console. L’ultimo metodo è molto più veloce poiché rilancia solo DansGuardian che riparte in pochi secondi a differenza dell’intero sistema di proxy HAVP che, dovendo decomprimere in RAM le signature dei virus, può impiegare anche alcuni minuti.

Bloccare il trasferimento di file di Windows Live Messenger

Il web non è l’unico modo con cui i minori possono venire a contatto con materiale non adatto alla loro età. Uno degli strumenti oggi più utilizzato per comunicare in tempo reale è MSN Messenger evolutosi nel Windows Live Messenger che è, appunto, un software di messaggistica istantanea con funzionalità avanzate come l’integrazione con una webcam e la possibilità di scambio file. L’utilità di questo strumento di chat non può essere messa in discussione. Tuttavia, esiste il pericolo che degli sconosciuti possano entrare in contatto con i ragazzi inviando loro film o immagini con contenuti discutibili. Per evitare ciò, si può bloccare completamente il Live Messenger sul router di accesso a Internet o meno drasticamente bloccare lo scambio di file. Con i router tradizionali, che hanno un firewall che filtra basandosi soltanto sulle porte TCP e UDP, è difficile far ciò poiché il Live Messenger, se non riesce a comunicare sulla porta 1863 TCP automaticamente usa le porte 80 (http) e 443 (https) che, essendo quelle usate dai web server, nessuno bloccherebbe mai. La soluzione è quella di usare i filtri Layer 7 che guardando all’interno dei pacchetti riescono a identificare il traffico Live Messenger indipendentemente dalla porta usata. In figura viene mostrata una regola del firewall di Zeroshell che blocca il trasferimento di file con il Windows Live Messenger (ma si potrebbe bloccare l’intero funzionamento del Messenger) con l’uso degli L7-Filter. 

firewall-messenger

Filtro Firewall per Windows Live Messenger

DansGuardian su Access Point Wireless Multi SSID

Una delle caratteristiche di Zeroshell è quella di poter realizzare un Access Point Wi-Fi con supporto per il Multi SSID. In altre parole, tale access point può distribuire su di uno stesso canale radio più Wireless LAN, ognuna indipendente dall’altra e con il proprio metodo di autenticazione ed eventuale cifratura del traffico (Captive Portal, WPA/WPA2, WEP o Plain-text). Si può pertanto pensare di applicare il servizio proxy e quindi DansGuardian soltanto ad un SSID destinato alla navigazione dei minori, mentre un altro SSID, opportunamente protetto in modo che questi ultimi non vi possano accedere, agli adulti.