Webapplicatie Firewall-beveiligingsbescherming voor HTTP- en HTTPS-applicaties

GEPOST DOOR Zevenet | 10 september 2019

Overzicht

Het volgende artikel beschrijft een echte use case voor een ISP of hostingprovider, waarbij de reverse proxy van HTTP / S Load Balancer het belangrijkste toegangspunt tot alle openbare webservices is. Deze configuratie laat zien hoe eenvoudig het is om een ​​geavanceerde en krachtige WAF te configureren regelset om webapplicaties te beveiligen op basis van IP-adressen op de zwarte lijst, waar elk VirtualHost beheert zijn eigen zwarte lijst op zo'n manier dat het verboden is om één Public IP te verbinden met een webdomein zoals www.company1.com maar mag verbinding maken met www.company2.com.

We zullen het artikel in twee secties concentreren, in het hoofdgedeelte werkt de HTTPS-profielconfiguratie als een omgekeerde proxy met een lijst met verschillende services en in het tweede gedeelte wordt uitgelegd hoe u een Webapplicatie Firewall regelset die een andere zwarte lijst per HTTP / S-service beheert.

Leefomgeving

Het volgende diagram beschrijft de WAF-internals van Zevenet. Zoals te zien is, is de eerste laag de WAF-module, waarvan het doel is om in een vroeg stadium te waarborgen dat alleen veilige aanvragen worden doorgelaten naar de load balancing-module en vervolgens het verzoek doorsturen naar de backends.

Ten eerste de HTTP gastheer koptekst wordt geëvalueerd en de client-IP wordt gecontroleerd in de reeds geconfigureerde zwarte lijst. Als de gastheer koptekst en het IP-adres van de client komt overeen, dan wordt de verbinding verbroken en een 403 Verboden HTTP-reactie wordt verzonden naar de client, maar in het geval dat de client IP en gevraagd gastheer header komt niet overeen, dan wordt het verkeer geïdentificeerd als niet schadelijk en doorgegeven aan de load balancer-module, waar de bestemming wordt gekozen op basis van het HTTP-verzoek gastheer koptekst en uiteindelijk doorgestuurd naar de beschikbare backend-server.

Hier vindt u een schema van de internals van Web Application Firewall voor het gegeven voorbeeld.

zevenet IPDS WAF

HTTP virtuele service configuratie

Configureer een toegewezen Virtueel IP-adresin ons voorbeeld 192.168.100.58, door te bladeren naar Netwerk> Virtuele interfaces> Virtuele interface maken zoals hieronder aangegeven:

Zevenet VIP maken

Laten we nu de HTTP-load balancing-service gaan configureren, ga naar LSLB> Boerderijen en klik vervolgens op de knop Maak een boerderij en voer de details van de virtuele service in zoals hieronder weergegeven:

Zevenet Hosting Hosting HTTP Farm

Druk vervolgens op creëren.

Klik nu op het bovenste tabblad Diensten en creëer zoveel services als verschillende websites die u beheert klik op de knop Nieuwe service, in ons geval zullen we twee verschillende services maken, één om de service voor te beheren www.mycompany1.com en nog een voor www.mycompany2.com.

Zevenet Create Service HTTP

Nadat de service is gemaakt, voegt u de toe Virtuele host filter en de backends zoals weergegeven in de onderstaande afbeelding.

Zevenet HTTP Services-configuratie

Als u meerdere websites hebt, hoeft u alleen maar meer services toe te voegen om één specifieke service te definiëren om elk web vanaf hetzelfde IP-adres te beheren.

Nu de configuratie van de taakverdeling is voltooid, kunt u de IPDS Web Application Firewall-module configureren.

Blacklists-configuratie

We gaan één zwarte lijst per webservice maken om in elke zwarte lijst de gewenste IP-adressen in te voeren om de toegang te blokkeren. In ons voorbeeld maken we twee verschillende zwarte lijsten met de naam blacklistmycompany1 en blacklistmycompany2, één per service respectievelijk.

Zevenet IPDS Blacklist1

Deze zwarte lijst wordt opgeslagen in het pad /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany1.txt.

We hebben 2 IP-adressen opgenomen voor testdoeleinden, overweeg zoveel IP's toe te voegen als nodig. Ook de reeds bestaande Zwarte lijsten functie in het IPDS module kan worden gebruikt.

Zevenet Maak IPDS Blacklist2

Deze tweede zwarte lijst wordt opgeslagen in het pad /usr/local/zevenet/config/ipds/blacklists/lists/Blacklistmycompany2.txt.

Houd er rekening mee dat we in deze zwarte lijst het IP-adres hebben opgenomen 192.168.1.191, wordt dit IP-adres alleen gebruikt voor testdoeleinden, vanwaar we HTTP-aanvragen uitvoeren.

Configuratie van de Web Application Firewall-regelset

Het doel van deze configuratie is om verschillende IP-blacklists per website bij te houden, om te voorkomen dat dezelfde blacklist voor het hele boerderijtoegangspunt wordt bewaard.

We gaan een configureren regelset, wat een groep regels is, met naam HostingBlacklisting. Deze regelset wordt samengesteld uit twee eenvoudige regels (regel ID 1000 en regel ID 1001 in ons voorbeeld), elke regel wordt gedefinieerd als een overeenkomst en een actie, waarbij de actie wordt uitgevoerd als de voorwaarde overeenkomt. In ons voorbeeld gebruiken we dezelfde actie in beide regels, als de voorwaarde overeenkomt met a Actie weigeren wordt uitgevoerd met een 403 toegang geweigerd reactie.

Ga naar IPDS> WAF, klik dan op Maak WAF-regelset en stel in ons voorbeeld een beschrijvende naam van een regelset in HostingBlacklisting.

Configureer het veld Standaard fase naar Verzoek headers zijn ontvangen. Dit veld betekent dat de WAF-module de binnenkomende verzoekkoppen van de client analyseert.

Zevenet IPDS Maak WAF-regelset

Ga dan naar het tabblad Reglement en maak de eerste Regel Van type Actie zoals het hieronder wordt getoond.

Zevenet IPDS Maak WAF-regelset

Nu wordt de eerste regel van de regelset gemaakt, laten we de voorwaarden maken om overeen te komen met het client-IP in de zwarte lijst voor elke gastheer header. Ga naar Algemene voorwaarden en maak een voorwaarde volgens de REMOTE_ADDR variabele zoals hieronder wordt getoond.

Zevenet IPDS zwarte lijst wedstrijd

Maak vervolgens een andere voorwaarde voor de Virtuele host match volgens de SERVER_NAME variabel als volgt:

Zevenet IPDS SERVER_NAME-wedstrijd

Op dit moment is de eerste gehoste website www.mycompany1.com beheert een IP-adres van de webapplicatie uit de reeds geconfigureerde zwarte lijst, waarnaar wordt verwezen Blacklistmycompany1.txt.

Laten we nog een regel maken voor de tweede website www.mycompany2.com en herhaal dezelfde configuratie als de vorige regelconfiguratie, maar in dit geval moet u de SERVER_NAME naar mycompany2.com en raadpleeg het volgende blacklist2.txt.

Bekijk de volledige configuratie van de samengestelde WAF-regelset:

Zevenet IPDS WAF Volledige regelset config

Voeg ten slotte deze regelset toe aan de al gemaakte farm, ga naar het tabblad Boerderijen en verplaats de boerderij hosting, in ons voorbeeld, naar de Ingeschakelde boerderijen sectie zoals hieronder wordt getoond.

Zevenet IPDS WAF - Bedrijfstoewijzing

Start nu de WAF-regelset voor de boerderij, klik op de actie Spelen in het gedeelte linksboven in dit venster en het systeem begint HTTP-verkeer voor de boerderij te filteren hosting.

De regelset van de Web Application Firewall testen

Het client-IP 192.168.1.191 zal de website aanvragen http://www.mycompany1.com en http://www.mycompany2.com en volgens onze configuratie maakt het WAF-systeem het mogelijk verbinding te maken met de eerste service met dezelfde naam, maar de verbinding wordt geweigerd mycompany2.com omdat dit IP is opgenomen in de zwarte lijst met naam Blacklistmycompany2.

Van IP-adres 192.168.1.191 tot VIP die de website www.mycompany1.com aanvraagt ​​via de load balancer:

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
< 

Van IP-adres 192.168.1.191 tot VIP die de website www.mycompany2.com aanvraagt ​​via de load balancer:

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

Wanneer de verboden antwoord wordt gegenereerd, meldt de WAF-module de weigering in het Syslog-bestand met load balancer.

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

Nu kunt u uw aangepaste firewallregelsets bouwen om uw webapplicaties te beschermen met behulp van HTTP / S deep packet-inspectietechnieken.

Gerelateerde artikelen

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

Delen op:

Documentatie onder de voorwaarden van de GNU-licentie voor vrije documentatie.

Was dit artikel behulpzaam?

Gerelateerde artikelen