Beveilig webtoepassings met Azure Web Application Firewall (WAF)

Beveilig webtoepassings met Azure Web Application Firewall (WAF)

14/01/2025

Hierdie tegniese en opvoedkundige artikel het ten doel om sekuriteitsontleders, IT-administrateurs en stelselingenieurs te lei in die implementering en konfigurasie van Azure Web Application Firewall (WAF) om webtoepassings teen algemene aanvalle te beskerm. In 'n digitale landskap waar webtoepassings die toegangspoort tot baie besighede is, het hulle gereelde teikens geword van 'n verskeidenheid kuberaanvalle, soos SQL-inspuiting, cross-site scripting (XSS) en ander OWASP Top 10 kwesbaarhede. Azure WAF bied 'n noodsaaklike laag van beskerming om hierdie risiko's te versag, en verseker databeskikbaarheid, integriteit en vertroulikheid [1].

Inleiding

Webtoepassings is kritieke komponente van die IT-infrastruktuur van feitlik alle organisasies. Hul blootstelling aan die internet maak hulle egter kwesbaar vir aanvalle wat data in die gedrang kan bring, dienste kan onderbreek en die maatskappy se reputasie kan beskadig. 'n Web Application Firewall (WAF) dien as 'n omgekeerde instaanbediener, wat HTTP/HTTPS-verkeer wat die webtoepassing aankom en verlaat, inspekteer, en kwaadwillige versoeke identifiseer en blokkeer voordat hulle die toepassingbediener bereik. Azure WAF, beskikbaar as 'n kenmerk van Azure Application Gateway of Azure Front Door, bied gesentraliseerde en skaalbare beskerming vir jou webtoepassings wat in Azure of selfs in hibriede omgewings gehuisves word [2].

Hierdie praktiese gids sal die fundamentele konsepte van Azure WAF, sy werkswyses (Opsporing en Voorkoming), die konfigurasie van WAF-beleide met bestuurde reëlstelle (OWASP Core Rule Set - CRS) en pasgemaakte reëls dek. Stap-vir-stap instruksies sal verskaf word vir die implementering van WAF met Azure Application Gateway, om die doeltreffendheid daarvan teen algemene aanvalle te toets en die resultate te valideer, asook om beste praktyke en probleemoplossingswenke te bespreek. Die doel is om die leser in staat te stel om Azure WAF outonoom, professioneel en betroubaar op te stel en te bestuur, om hul webtoepassings teen die mees algemene bedreigings te beskerm.

Waarom is Azure WAF noodsaaklik vir webtoepassingsbeskerming?

  • Omvattende beskerming: Verdedig teen algemene webaanvalle, insluitend SQL-inspuiting, cross-site scripting (XSS), lêerinsluiting, botaanvalle en ander OWASP Top 10 kwesbaarhede [3].
  • Bestuurde reëls: Gebruik bestuurde reëlstelle (soos OWASP CRS) wat outomaties deur Microsoft opgedateer word, wat beskerming teen die nuutste bedreigings verseker sonder handmatige ingryping.
  • Gepasmaakte reëls: Laat die skepping van pasgemaakte reëls toe om aan toepassingspesifieke sekuriteitsvereistes te voldoen, spesifieke verkeerspatrone te blokkeer of te beskerm teen kwesbaarhede wat nie deur bestuurde reëls gedek word nie.
  • Buigsame werkingsmodusse: Werk in 'Opsporing'-modus (monitor en teken slegs aanvalle aan) of 'Voorkoming' (blokkeer aanvalle aktief), wat geleidelike beheer van implementering moontlik maak.
  • Inheemse integrasie met Azure: Integreer naatloos met Azure Application Gateway (vir interne toepassings) en Azure Front Door (vir globale toepassings), wat 'n volledige toepassingafleweringsoplossing met ingeboude sekuriteit bied.
  • Skaalbaarheid en hoë beskikbaarheid: Vind voordeel uit die skaalbaarheid en hoë beskikbaarheid van Azure-toepassingafleweringsdienste, om te verseker dat beskerming altyd aktief en werksaam is.
  • Voldoening: Help organisasies om te voldoen aan regulatoriese vereistes en sekuriteitstandaarde wat beskerming van webtoepassings vereis.

Voorvereistes

Om Azure WAF te implementeer, benodig u die volgende items:

  1. Aktiewe Azure-intekening: 'n Azure-intekening om hulpbronne te skep en te bestuur.
  2. Administratiewe toegang: 'n Rekening met die nodige toestemmings om hulpbronne soos Toepassingspoorte, Voordeure en WAF-beleide te skep en te bestuur (bv. Medewerker of Netwerkadministrateur).
  3. Bestaande webtoepassing: 'n Webtoepassing (gehuisves in Azure of elders) wat jy wil beskerm. Vir hierdie gids sal ons 'n eenvoudige webtoepassing aanvaar wat via Application Gateway verkry sal word.
  4. Virtuele netwerk (VNet) en subnette: 'n Virtuele netwerk en subnette wat vir die toepassingspoort en die webtoepassing opgestel is.

Stap vir stap: Implementeer Azure WAF met Application Gateway

Kom ons stel Azure WAF op om 'nwebtoepassing wat Azure Application Gateway gebruik.

1. Skep 'n Azure Application Gateway met WAF

  1. Maak jou blaaier oop en navigeer na die Azure-portaal: https://portal.azure.com.
  2. Meld aan met 'n rekening wat die nodige toestemmings het.
  3. In die boonste soekveld, tik Application Gateway en kies dit uit die resultate.
  4. Klik + Skep.

  5. Basies:

    • Intekening: Kies jou intekening.
    • Hulpbrongroep: Skep 'n nuwe hulpbrongroep (bv. rg-waf-appgw) of kies 'n bestaande een.
    • Toepassingpoortnaam: Gee 'n naam (byvoorbeeld: appgw-waf-01).
    • Streek: Kies die streek.
    • Tier: Kies Standard v2 (WAF is slegs beskikbaar in vlak v2).
    • Aktiveer WAF: Kies Ja.
    • WAF-beleidnaam: Gee die WAF-beleid 'n naam (bv. wafpolicy-appgw-01).
    • WAF-modus: Begin met Opsporing om reëls te monitor en aan te pas voordat jy na Voorkoming beweeg.
  6. Klik Volgende: Frontends.

  7. Voorkante:

    • ** Frontend IP-adres Tipe**: Kies Publiek.
    • Publieke IP-adres: Klik +Voeg nuwe by en gee die publieke IP 'n naam (bv.: pip-appgw-waf).
  8. Klik Volgende: Backends.

  9. Backends:

    • Klik + Voeg backend-poel by.
    • Backend-poelnaam: Gee dit 'n naam (bv. app-backend-pool).
    • Voeg agterplaaspoel by sonder teikens: Kies Nee.
    • Bestemmingstipe: Kies IP-adres of FQDN.
    • IP-adres/FQDN: Voer die IP-adres of FQDN van jou webtoepassing in (byvoorbeeld: 10.0.0.4 vir 'n VM in die VNet, of die FQDN van 'n Toepassingsdiens).
    • Klik op Voeg by.
  10. Klik Volgende: Konfigurasie.

  11. Opstelling:

    • Roeting-instellings: Klik +Voeg roetereël by.
    • Reëlnaam: Gee dit 'n naam (bv: reël-http).
    • Prioriteit: Los die verstek. Luisteraar:
      • Luisteraarnaam: Gee 'n naam (byvoorbeeld: luisteraar-http).
      • ** Frontend IP-adres**: Kies die publieke IP wat geskep is.
      • Protokol: Kies HTTP (om te begin, kan jy later HTTPS byvoeg).
      • Poort: 80. Agterteikens:
      • Teikentipe: Kies Backend Pool.
      • Backend pool: Kies app-backend-pool.
      • ** Agtergrondkonfigurasie**: Klik + Voeg nuwe by.
        • Naam van die agtergrondinstelling: Gee dit 'n naam (bv. http-instelling).
        • Backend protokol: HTTP.
        • Agterpoort: 80 (of jou webtoepassingpoort).
        • Gebruik pasgemaakte sonde: Kies Nee (vir hierdie eenvoudige voorbeeld).
        • Klik op Voeg by.
    • Klik Voeg by in die roetereël.
  12. Klik Volgende: Merkers.

  13. Klik Volgende: Hersien + skep.
  14. Hersien die instellings en klik Skep.

    • Verduideliking: Hierdie proses skep 'n toepassingspoort met 'n geassosieerde WAF. Die WAF sal verkeer in 'Opsporing'-modus begin inspekteer.

2. Konfigurasie van Bestuurde en Pasgemaakte WAF-reëls

Na ontplooiing kan jy die WAF-beleid aanpas.

  1. In die Azure-portaal, navigeer na jou Application Gateway (appgw-waf-01).
  2. In die linkernavigasiepaneel, onder Instellings, kies Web Application Firewall.
  3. Klik op die naam van jou WAF-beleid (wafpolicy-appgw-01).

  4. Beleidmodus: In die Oorsig-afdeling kan jy die Modus van Opsporing na Voorkoming verander wanneer jy vol vertroue is dat jou reëls nie wettige verkeer blokkeer nie.

  5. Bestuurde reëls:

    • Kies Bestuurde reëls in die linker navigasievenster van die WAF-beleid.
    • Maak seker dat die OWASP-verstekreëlstel (bv. OWASP_CRS/3.2) Aktiveer is.
    • Jy kan spesifieke reëls binne die bestuurde stel deaktiveer as dit vals positiewes veroorsaak, maar doen dit met omsigtigheid en slegs na deeglike oorweging.
  6. Gepasmaakte reëls:

    • Kies Gepasmaakte reëls in die linker navigasievenster van die WAF-beleid.
    • Klik op +Voeg pasgemaakte reël by.
    • Reëlnaam: Gee dit 'n naam (byvoorbeeld: BloquearIPMalicioso).
    • Prioriteit: Stel 'n prioriteit (kleiner getalle het hoër prioriteit). Tikreël: 'Pas'. Toestand:
      • Veranderlike tipe: RemoteAddress.
      • Operateur: IPMatch.
      • Waarde: Voer die IP-adres of CIDR-reeks in wat jy wil blokkeer (byvoorbeeld: 192.168.1.10/32).
    • ** Aksie**: Kies Blokkeer.

    • Verduideliking: Pasgemaakte reëls laat jou toe om blokkeringslogika te definieer op grond van spesifieke kriteria soos IP-adresse, HTTP-opskrifte, navraagstringe, ens.

  7. Klik Voeg by en dan Stoor by die WAF-beleid.

3. Monitering van die WAF en hersiening van logs

Monitering is noodsaaklik om WAF-doeltreffendheid te verstaan en beleid aan te pas.

  1. In die Azure-portaal, navigeer na jou Application Gateway (appgw-waf-01).
  2. In die linkernavigasievenster, onder Monitoring, kies Diagnostic Logs.
  3. Klik +Voeg diagnostiese konfigurasie by.
  4. Diagnostiese konfigurasienaam: Gee dit 'n naam (byvoorbeeld: diag-waf).
  5. Logboekkategorieë: Gaan ApplicationGatewayAccessLog en ApplicationGatewayFirewallLog na.
  6. Bestemmingbesonderhede: Kies Stuur na Log Analytics-werkspasie en kies jou werkspasie.
  7. Klik Stoor.

  8. Navigeer na 'n paar minute na jou Log Analytics-werkspasie.

  9. Kies Logs in die linkernavigasiepaneel.
  10. Gebruik KQL (Kusto Query Language) navrae om WAF logs te ontleed:
    • Om alle WAF-geleenthede te sien: kusto AzureDiagnostiek | waar ResourceProvider == "MICROSOFT.NETWORK" | waar Kategorie == "ApplicationGatewayFirewallLog" | projek TimeGenerated, gasheernaam_s, requestUri_s, Message, action_s, policy_s | bestel volgens TimeGenerated desc
    • Om geblokkeerde aanvalle te sien (as WAF in die "Voorkoming"-modus is): kusto AzureDiagnostiek | waar ResourceProvider == "MICROSOFT.NETWORK" | waar Kategorie == "ApplicationGatewayFirewallLog" | waar action_s == "Geblokkeer" | projek TimeGenerated, gasheernaam_s, requestUri_s, Message, ruleId_s | bestel volgens TimeGenerated desc

Bekragtiging en toetsing

Om die WAF te toets is noodsaaklik om te verseker dat dit verwagte aanvalle blokkeer en nie wettige verkeer (vals positiewe) blokkeer nie.

1. Toets algemene aanvalle (SQL-inspuiting, XSS)

  1. Scenario: Probeer om toegang tot jou webtoepassing te verkry deur die Toepassingspoort (met die publieke IP of FQDN) en simuleer 'n SQL-inspuitingaanval op die URL of 'n vormparameter.

    • Voorbeeld URL met SQL-inspuitingspoging (moenie sonder magtiging in produksie loop nie): http://<seu_ip_publico_appgw>/index.php?id=1' OF '1'='1
    • Voorbeeld URL met XSS poging: http://<seu_ip_publico_appgw>/search?query=<script>alert('XSS')</script>
  2. Verwagte aksie (Opsporingsmodus): As die WAF in Opsporing-modus is, moet die versoek toegelaat word, maar die WAF-logboeke in Log Analytics moet die aanval en die reël wat dit opgespoor het, aanteken.

  3. Verwagte aksie (voorkomingsmodus): As die WAF in Voorkoming-modus is, moet die versoek geblokkeer word, en die blaaier moet 'n WAF-foutbladsy vertoon (gewoonlik 'n HTTP 403-verbode fout).

  4. Verifikasie: Gaan die WAF-logboeke in Log Analytics na om te bevestig dat aanvalle opgespoor is (in opsporingsmodus) of geblokkeer (in voorkomingsmodus).

2. Toets pasgemaakte reëls (IP-blokkering)

  1. Scenario: Probeer om toegang tot jou webtoepassing te verkry vanaf die IP-adres wat jy in die IP-blokkeer-pasgemaakte reël opgestel het.
  2. Verwagte aksie: Toegang moet geblokkeer word, en die blaaier moet 'n WAF-foutbladsy vertoon.
  3. Verifikasie: Gaan die WAF-logboeke in Log Analytics na om te bevestig dat die IP deur die pasgemaakte reël geblokkeer is.

Sekuriteitswenke en beste praktyke

  • Begin in Opsporingsmodus: Ontplooi altyd die WAF aanvanklik in Opsporing-modus. Monitor logs noukeurig om vals positiewe te identifiseer en pas reëls aan voordat jy oorskakel na Voorkoming-modus.
  • WAF-instelling: Fynafstelling is van kardinale belang. Deaktiveer spesifieke reëls wat vals positiewes genereer (wettige verkeer blokkeer) of voeg uitsluitingsreëls vir spesifieke parameters by. Vermy die deaktivering van hele reëlstelle.
  • Gepasmaakte reëls: Gebruik pasgemaakte reëls om die spesifieke sekuriteitsvereistes van jou aansoek te hanteero of om nuut ontdekte kwesbaarhede te versag voordat bestuurde reëls opgedateer word.
  • CRS-opdaterings: Hou jou bestuurde reëlstel (OWASP CRS) op datum om beskerming teen die jongste bedreigings te verseker. Azure WAF werk gewoonlik outomaties op, maar kyk na die weergawe.
  • Integrasie met Azure Front Door: Vir globale webtoepassings of dié wat werkverrigtingoptimalisering en gevorderde roetering vereis, oorweeg dit om WAF op Azure Front Door te ontplooi. Dit bied beskerming aan die rand van Microsoft se globale netwerk.
  • Monitering en waarskuwing: Stel waarskuwings in Azure Monitor op vir WAF-sekuriteitsgebeurtenisse, soos geblokkeerde aanvalle of afwykings. Integreer WAF-logs met jou SIEM (bv. Microsoft Sentinel) vir 'n gesentraliseerde aansig.
  • Gereelde sekuriteitstoetsing: Voer gereeld penetrasietoetse en kwesbaarheidskanderings op jou webtoepassings uit om nuwe kwesbaarhede te identifiseer en die doeltreffendheid van die WAF te bekragtig.
  • Beginsel van die minste voorreg: Maak seker dat slegs gemagtigde gebruikers toestemmings het om WAF-beleide op te stel en te bestuur.

Algemene probleemoplossing

  • WAF blokkeer nie verwagte aanvalle nie:
    • Kontroleer dat die WAF in Voorkoming-modus is en nie in Opsporing-modus nie.
    • Maak seker dat die bestuurde reëlstel (OWASP CRS) geaktiveer is.
    • Hersien WAF-logboeke in Log Analytics om te sien of die aanval opgespoor is en watter reël geaktiveer is. Jy sal dalk die CRS-sensitiwiteit moet aanpas of 'n pasgemaakte reël moet byvoeg.
    • Maak seker dat daar geen uitsluitingsreëls of witlyste is wat kwaadwillige verkeer toelaat nie.
  • WAF blokkeer wettige verkeer (Vals Positiewe):
    • Begin deur jou WAF-logboeke in Log Analytics te ontleed om te identifiseer watter reël wettige verkeer blokkeer.
    • Vir die geïdentifiseerde reël kan jy:
      • Deaktiveer spesifieke reël (laaste uitweg).
      • Voeg 'n uitsluitingsreël by vir die spesifieke parameter of kopskrif wat die vals positiewe veroorsaak.
      • Pas afwykingspuntdrempel aan (indien CRS in afwykingspuntmodus gebruik word).
    • Oorweeg om tydelik terug te keer na Opsporing-modus om die reëls aan te pas.
  • ** Toepassing se werkverrigting verswak nadat WAF geaktiveer is**:
    • WAF voeg 'n klein hoeveelheid vertraging by as gevolg van verkeersinspeksie. Maak seker dat die toepassingspoort of voordeur die regte grootte het.
    • Gaan Application Gateway-prestasielogboeke in Azure Monitor na.
  • WAF word nie met die korrekte toepassing geassosieer nie:
    • Verifieer dat die WAF-beleid met die korrekte toepassingspoort of voordeur geassosieer word.
    • Maak seker dat verkeer na jou webtoepassing werklik deur die toepassingspoort/voordeur gaan met WAF geaktiveer.

Gevolgtrekking

Azure Web Application Firewall (WAF) is 'n noodsaaklike verdediging om webtoepassings teen 'n magdom kuberaanvalle te beskerm. Deur 'n laag verkeersinspeksie en filtering by die netwerkrand te verskaf, dien WAF as 'n skild wat beskerm teen bekende kwesbaarhede en nul-dag-bedreigings. Die buigsaamheid van die gebruik van bestuurde en pasgemaakte reëlstelle, tesame met inheemse integrasie met Azure-toepassingafleweringsdienste, maak Azure WAF 'n robuuste en skaalbare oplossing vir enige organisasie. Met noukeurige implementering, fyninstelling van beleide en deurlopende monitering, kan sekuriteitspersoneel verseker dat hul webtoepassings veilig, beskikbaar en voldoen bly, wat die organisasie se algehele sekuriteitsposisie teen die voortdurend ontwikkelende bedreigingslandskap versterk.


Verwysings:

[1] Microsoft Learn. Wat is Azure Web Application Firewall?. Beskikbaar by: https://learn.microsoft.com/pt-br/azure/web-application-firewall/overview [2] Microsoft Learn. Web Application Firewall (WAF) op Azure Application Gateway. Beskikbaar by: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/ag-overview [3] OWASP Stigting. OWASP Top 10. Beskikbaar by: https://owasp.org/www-project-top-ten/ [4] Microsoft Learn. Skep firewall-beleidel Web Application Gateway (WAF) vir Azure Application Gateway. Beskikbaar by: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/create-waf-policy-ag [5] Microsoft Learn. WAF CRS reëls en reëlgroepe. Beskikbaar by: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/application-gateway-waf-collection-rules [6] Microsoft Learn. WAF-monitering en aanteken. Beskikbaar by: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/waf-diagnostics