Proteggere le applicazioni Web con il WAF gratuito SafeLine

Breve guida al funzionamento di SafeLine, un WAF ospitabile sui propri server sotto forma di container Docker che aiuta a proteggere le applicazioni Web da tutti gli attacchi più comuni.

Un Web Application Firewall (WAF) è un sistema di sicurezza che protegge le applicazioni Web filtrando, monitorando e bloccando il traffico HTTP e HTTPS. Il suo scopo principale è prevenire attacchi che sfruttano vulnerabilità note, come SQL injection, Cross-Site Scripting (XSS) e altre forme di iniezione di codice malevolo. Il WAF si occupa quindi di proteggere le applicazioni Web fungendo da barriera protettiva tra gli utenti remoti e il server Web.

In un altro articolo abbiamo visto quante vulnerabilità di sicurezza esistono e come gran parte di esse possa affliggere le applicazioni Web che tutti noi utilizziamo ogni giorno.

Sgombriamo subito il campo da ogni possibile equivoco: sono gli sviluppatori delle applicazioni Web che devono verificarne continuamente la sicurezza. Problemi come quelli citati (SQL injection, XSS e così via) derivano da errori commessi durante la fase di sviluppo che devono essere rilevati e corretti prima di mettere in produzione una qualunque applicazione.

Nel caso di applicazioni Web sviluppate da terze parti, gli amministratori devono essere solerti nell’applicazione delle patch di sicurezza: in mancanza degli aggiornamenti, vulnerabilità note potrebbero infatti essere sfruttate dagli aggressori remoti per sottrarre dati, iniettare codice malevolo, defacciare il sito Web, attivare reindirizzamenti indesiderati e causare danni.

Come funziona un WAF per la protezione delle applicazioni Web

Un WAF è posizionato tra il client (l’utente o l’attaccante) e il server dell’applicazione Web. Funziona come un reverse proxy, ricevendo tutte le richieste HTTP/HTTPS destinate al server web e analizzandole prima di inoltrarle al server.

Le regole predefinite implementate a livello di WAF sono progettate per identificare pattern di attacco noti, come nel caso degli attacchi SQL injection e XSS.

Quando il WAF rileva una richiesta sospetta, contenente potenziali minacce, può bloccarla, rispondere con un codice di errore HTTP o reindirizzare l’utente a una pagina contenente un CAPTCHA. In questo modo si può evitare che il traffico dannoso raggiunga il server dell’applicazione.

Il traffico Web è continuamente monitorato; inoltre, i tentativi di attacco sono registrati, così da fornire all’amministratore un resoconto dettaglio sulle eventuali aggressioni neutralizzate e su quelle ancora in corso.

Cloudflare mette a disposizione un WAF gratuito, accessibile anche dagli utenti del servizio possessori di un account free. SafeLine, tuttavia, mette a disposizione una serie di strumenti aggiuntivi.

SafeLine: la soluzione self-hosted per la protezione delle applicazioni Web

Tra le soluzioni open source per proteggere le applicazioni Web, spicca SafeLine. Pubblicato su GitHub, si tratta di un WAF self-hosted. Ciò significa che gli utenti non devono appoggiarsi a un servizio disponibile sul cloud ma possono installare e configurare SafeLine su un proprio server. Senza quindi trasferire alcun dato a soggetti terzi.

SafeLine WAF

SafeLine è un WAF che agisce come reverse proxy, posizionandosi tra il server dell’applicazione Web e la rete Internet. Questo ruolo di intermediario consente a SafeLine di ispezionare e filtrare il traffico HTTP/HTTPS in arrivo prima che raggiunga il server Web. Il software si focalizza sulla protezione del server da richieste potenzialmente dannose.

Con riferimento all’articolo citato nell’introduzione, SafeLine è in grado di riconoscere, gestire e neutralizzare un’ampia gamma di minacce basate sul Web: SQL injection, XSS, iniezione di codice, iniezione di comandi a livello di sistema operativo, iniezioni CRLF, XXE, SSRF e tecniche di directory traversal.

Il WAF include meccanismi per rilevare e mitigare l’abuso di bot, assicurando che l’attività degli utenti legittimi non sia interrotta (aspetto utilissimo, ad esempio, per bloccare sul nascere eventuali attacchi DoS). A questo proposito, SafeLine integra un sistema che controlla il traffico in ingresso proveniente dai singoli indirizzi IP: in caso di troppe richieste consecutive, il WAF attiva un blocco in tempo reale.

SafeLine prevede anche la possibilità di crittografare dinamicamente il codice HTML e JavaScript erogato dal server Web in modo tale da renderne più complessa la manomissione e il reverse engineering.

Efficacia e prestazioni

Le prestazioni di SafeLine sono state valutate con particolare attenzione, mettendole a confronto con altre soluzioni WAF disponibili sul mercato. I risultati conseguiti da SafeLine, dimostrano l’efficacia di una soluzione open source self-hosted come quella presentata.

Ad oggi si contano circa 180.000 installazioni di SafeLine in tutto il mondo, che proteggono qualcosa come 1.000.000 di siti Web. È quindi un WAF assolutamente adeguato per essere utilizzato in produzione. Basti pensare che l’applicazione gestisce globalmente circa 30 miliardi di richieste HTTP ogni giorno.

Metrica ModSecurity, Level 1 CloudFlare, Free SafeLine, Balance SafeLine, Strict
Campioni 33.669 33.669 33.669 33.669
Rilevamento 69,74% 10,70% 71,65% 76,17%
Falsi positivi 17,58% 0,07% 0,07% 0,22%
Precisione 82,20% 98,40% 99,45% 99,38%
I dati in tabella sono forniti dallo sviluppatore.

Come installare SafeLine

Uno dei principali vantaggi di SafeLine è che il software è distribuito sotto forma di container Docker. Non è quindi necessario destinare un’unica macchina a SafeLine: configurando adeguatamente Docker, è possibile far sì che uno stesso server sia utilizzato sia per erogare le funzionalità WAF sia per svolgere altre attività.

Le istruzioni per l’installazione di SafeLine sono contenute in questa pagina. Tuttavia, è necessario disporre di un sistema basato su Linux, con Docker e Docker Compose già installati.

Per avviare l’installazione automatica di SafeLine, è sufficiente eseguire il seguente comando (richiede privilegi di root):

bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/setup.sh)"

Dopo l’esecuzione del comando, l’installazione sarà portata a termine nel giro di pochi minuti. Completato questo passaggio, sarà possibile accedere direttamente all’interfaccia Web di SafeLine. A tal proposito, basta digitare nella barra degli indirizzi l’indirizzo IP del server seguito dall’indicazione del numero di porta :9443.

Proteggere un’applicazione Web con il WAF: ecco come fare

Nella sezione Site, Website dell’interfaccia di amministrazione di SafeLine si può fare clic su Add site, pulsante posto nell’angolo superiore destro. A questo punto, per attivare la protezione, si devono inserire le informazioni del sito per il quale il WAF deve rivestire il ruolo di intermediario.

WAF protezione applicazioni Web

In particolare, in corrispondenza di Domain va indicato il nome di dominio del sito da proteggere mentre in corrispondenza di Port va specificato 80 o 443 (ricordarsi di attivare l’opzione SSL per le pagine HTTPS).

Nel campo Upstream va indicato l’indirizzo reale del sito Web da proteggere: sarà verso questo server che SafeLine inoltrerà il traffico HTTP/HTTPS legittimo, depurato di qualunque richiesta dannosa o potenzialmente malevola.

Dopo aver impostato correttamente il WAF, è necessario intervenire sui record DNS e attivare la risoluzione del nome di dominio con l’indirizzo IP pubblico del server di SafeLine.

Gli sviluppatori di SafeLine forniscono anche qualche esempio di attacco che può essere utilizzato per verificare il comportamento del WAF e le segnalazioni che compariranno nella dashboard Web.

Credit immagine in apertura: iStock.com – gorodenkoff

Ti consigliamo anche

Link copiato negli appunti