Protezione della sicurezza di Web Application Firewall per applicazioni HTTP e HTTPS

PUBBLICATO DA Zevenet | 10 settembre, 2019

Descrizione

Il seguente articolo descrive un caso d'uso reale per un ISP o un provider di hosting, in cui il proxy inverso di Load Balancer HTTP / S è il principale punto di accesso a tutti i servizi Web pubblici, questa configurazione mostra quanto sia facile configurare un WAF avanzato e potente insieme di regole al fine di proteggere le applicazioni Web basate su indirizzi IP di origine nella lista nera, dove ciascuno VirtualHost gestisce la propria lista nera in modo tale da impedire a un IP pubblico di connettersi a un dominio web come www.company1.com ma autorizzato a connettersi a www.company2.com.

Concentreremo l'articolo in due sezioni, nella sezione principale la configurazione del profilo HTTPS funzionerà come proxy inverso con un elenco di servizi diversi e la seconda sezione spiegherà come configurare un Firewall dell'applicazione Web insieme di regole che gestirà una lista nera diversa per servizio HTTP / S.

Ambiente

Il diagramma seguente descrive gli interni WAF Zevenet. Come mostrato, il primo livello è il modulo WAF il cui obiettivo è garantire in una fase iniziale che solo le richieste sicure possano passare al modulo di bilanciamento del carico e quindi inoltrare la richiesta ai back-end.

Innanzitutto, l'HTTP ospite l'intestazione viene valutata e l'IP client viene verificato nella lista nera già configurata. Se la ospite intestazione e indirizzo IP del client corrispondono, quindi la connessione viene interrotta e a 403 Proibita La risposta HTTP viene inviata al client, ma nel caso in cui l'IP client e richiesto ospite l'intestazione non corrisponde quindi il traffico viene identificato come non dannoso e trasmesso al modulo di bilanciamento del carico, dove la destinazione viene scelta in base alla richiesta HTTP ospite intestazione e infine inoltrato al server back-end disponibile.

Qui puoi trovare uno schema degli interni del Web Application Firewall per l'esempio dato.

zevenet IPDS WAF

Configurazione del servizio virtuale HTTP

Configurane uno dedicato Indirizzo IP virtuale, nel nostro esempio 192.168.100.58, navigando verso Rete> Interfacce virtuali> Crea interfaccia virtuale come mostrato di seguito:

Zevenet Crea VIP

Adesso andiamo a configurare il servizio di bilanciamento del carico HTTP, vai a LSLB> Fattorie e quindi fare clic sul pulsante Crea fattoria e inserisci i dettagli del servizio virtuale come mostrato di seguito:

Zevenet Crea Hosting HTTP Farm

Quindi premere Creare.

Ora fai clic sulla scheda superiore Servizi e crea tanti servizi quanti diversi siti web gestisci fai clic sul pulsante Nuovo servizio, nel nostro caso, creeremo due diversi servizi, uno per cui gestire il servizio www.mycompany1.com e un altro per www.mycompany2.com.

Zevenet Create Service HTTP

Una volta creato il servizio, aggiungere il Host virtuale filtro e backend come è mostrato nell'immagine qui sotto.

Zevenet HTTP Services Configuration

Nel caso in cui tu abbia diversi siti web, devi solo aggiungere altri servizi per definire un servizio dedicato per gestire ogni web dallo stesso indirizzo IP.

Ora la configurazione del bilanciamento del carico è stata eseguita, consente di configurare il modulo Firewall applicazione Web IPDS.

Configurazione liste nere

Creeremo una lista nera per servizio Web al fine di inserire in ciascuna lista nera gli indirizzi IP desiderati per bloccare l'accesso. Nel nostro esempio, creeremo due diverse liste nere con il nome blacklistmycompany1 e blacklistmycompany2, uno per servizio rispettivamente.

Zevenet IPDS Blacklist1

Questa lista nera verrà salvata nel percorso /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

Abbiamo incluso gli indirizzi IP 2 a scopo di test, ti preghiamo di considerare di aggiungere tutti gli IP necessari. Inoltre, già esistente Liste nere nello IPDS il modulo può essere utilizzato.

Zevenet Crea la lista nera IPDS2

Questa seconda lista nera verrà salvata nel percorso /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

Tieni presente che in questa lista nera abbiamo incluso l'indirizzo IP 192.168.1.191, questo IP verrà utilizzato solo a scopo di test, da dove eseguiremo richieste HTTP.

Configurazione del set di regole di Web Application Firewall

Lo scopo di questa configurazione è mantenere liste nere IP diverse per sito Web, al fine di evitare di mantenere la stessa lista nera per l'intero punto di accesso della farm.

Configureremo a set di regole, che è un gruppo di regole, con nome HostingBlacklisting. Questa serie di regole sarà composta da due semplici regole (ID regola 1000 e ID regola 1001 nel nostro esempio), ogni regola è definita come una corrispondenza e un'azione, in cui se la condizione corrisponde allora l'azione viene eseguita. Nel nostro esempio, useremo la stessa azione in entrambe le regole, se la condizione corrisponde a Rifiuta azione viene eseguito con a Accesso 403 negato risposta.

Una volta collegato al sito web IPDS> WAF, quindi fare clic su Crea set di regole WAF e impostare un nome descrittivo per le regole, nel nostro esempio HostingBlacklisting.

Configura il campo Fase predefinita a Richieste intestazioni vengono ricevute. Questo campo indica che il modulo WAF analizzerà le intestazioni delle richieste in arrivo dal client.

Zevenet IPDS Crea set di regole WAF

Quindi vai alla scheda Regole e crea il primo Regola di tipo Azioni come mostrato di seguito.

Zevenet IPDS Crea set di regole WAF

Ora viene creata la prima regola del set di regole, consente di creare le condizioni per abbinare l'IP client nella blacklist per ogni ospite intestazione. Vai a Condizioni e creare una condizione in base a REMOTE_ADDR variabile come mostrato di seguito.

Partita Blacklist IPD Zevenet

Quindi creare un'altra condizione per il Host virtuale abbinare secondo il SERVER_NAME variabile come segue:

Zevenet IPDS SERVER_NAME match

A questo punto, il primo sito Web ospitato www.mycompany1.com gestisce un indirizzo IP della lista nera dell'applicazione Web dalla lista nera già configurata, cui si fa riferimento Blacklistmycompany1.txt.

Creiamo un'altra regola per il secondo sito web www.mycompany2.com e ripetere la stessa configurazione della precedente configurazione della regola ma in questo caso, è necessario modificare SERVER_NAME a mycompany2.com e fare riferimento a quanto segue blacklist2.txt.

Vedi l'intera configurazione del set di regole WAF composto:

Zevenet IPDS WAF Intero set di regole config

Infine, aggiungi questo set di regole alla farm già creata, vai alla scheda Farms e spostare la fattoria Hosting, nel nostro esempio, al Aziende abilitate sezione come mostrato di seguito.

Zevenet IPDS WAF - Cessione dell'azienda agricola

Ora avvia il set di regole WAF per la farm, fai clic sull'azione play nella parte in alto a sinistra di questa finestra e il sistema inizierà a filtrare il traffico HTTP per la Farm Hosting.

Test del set di regole del firewall dell'applicazione Web

L'IP client 192.168.1.191 richiederà il sito Web http://www.mycompany1.com e http://www.mycompany2.com e, secondo la nostra configurazione, il sistema WAF consentirà la connessione al primo servizio con lo stesso nome ma la connessione verrà negata a mycompany2.com perché questo IP è stato incluso nella lista nera con il nome Blacklistmycompany2.

Dall'indirizzo IP 192.168.1.191 al VIP che richiede il sito Web www.mycompany1.com tramite il bilanciamento del carico:

root@192.168.1.191:# curl -H "Host: www.mycompany1.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany1.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.10.3
< Date: Tue, 10 Sep 2019 15:36:22 GMT
< Content-Type: text/html
< Content-Length: 11383
< Last-Modified: Thu, 13 Dec 2018 11:01:49 GMT
< Connection: keep-alive
< ETag: "5c123c1d-2c77"
< Accept-Ranges: bytes
< 

Dall'indirizzo IP 192.168.1.191 al VIP che richiede il sito Web www.mycompany2.com tramite il bilanciamento del carico:

root@192.168.1.191:# curl -H "Host: www.mycompany2.com" http://192.168.100.58 -v
* Rebuilt URL to: http://192.168.100.58/
*   Trying 192.168.100.58...
* TCP_NODELAY set
* Connected to 192.168.100.58 (192.168.100.58) port 80 (#0)
> GET / HTTP/1.1
> Host: www.mycompany2.com
> User-Agent: curl/7.52.1
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 403 Request forbidden
< Content-Type: text/html
< Content-Length: 17
< Expires: now
< Pragma: no-cache
< Cache-control: no-cache,no-store
< 
* Curl_http_done: called premature == 0
* Closing connection 0
replied forbiddenp

Una volta che il Vietato viene generata una risposta, il modulo WAF notifica il rifiuto nel file Syslog del bilanciamento del carico.

root@zva6000:# tail -f /var/log/syslog
Sep 10 15:38:44 zva6000 pound: Hosting, ModSecurity: Warning. Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6000 pound: Hosting, [WAF,service mycompany2, backend 192.168.100.22:80,] (7f6cfac3c700) [client 192.168.1.191] ModSecurity: Access denied with code 403 (phase 1). Matched "Operator `StrMatch' with parameter `mycompany2.com' against variable `SERVER_NAME' (Value: `www.mycompany2.com' ) [file "/usr/local/zevenet/config/ipds/waf/sets/HostingBlacklisting.conf"] [line "17"] [id "1001"] [rev ""] [msg "Custom Match 2"] [data ""] [severity "0"] [ver ""] [maturity "0"] [accuracy "0"] [hostname "192.168.100.58"] [uri "/"] [unique_id "156812992458.770641"] [ref "v0,13v21,18"]
Sep 10 15:38:44 zva6ktpl1 pound: Hosting, service mycompany2, backend 192.168.100.25:80, (7f6cfac3c700) WAF denied a request from 192.168.1.191

Ora puoi creare i tuoi set di regole firewall personalizzati per proteggere le tue applicazioni web usando le tecniche di ispezione dei pacchetti deep HTTP / S.

Articoli correlati

https://www.zevenet.com/knowledge-base/enterprise-edition/enterprise-edition-v6-0-administration-guide/v6-0-ipds-waf-update/

Condividere su:

Documentazione sotto i termini della GNU Free Documentation License.

questo articolo è stato utile?

Articoli Correlati