Podignite razinu aplikativne sigurnosti za NGINX instance s F5 Essential App Protect uslugom

Moderne aplikacije zahtijevaju modernu aplikativnu sigurnost. To je razlog za sve veću popularnost modernih web-aplikativnih vatrozida (WAF).

NGINX ponedjeljak, 21. rujna 2020. u 00:00

Sa sve ubrzanijim rastom razvoja temeljenog na modernim razvojnim frameworkovima, rastom popularnosti mikroservisnih arhitektura i sigurnosnim okolinama koje se stalno mijenjaju, aplikativna sigurnost postaje sve veći izazov za razvojne timove.

F5 Essential App Protectcloud usluga koja je lansirana ranije ove godine, kao i NGINX App Protect dodatak, osiguravaju WAF funkcionalnosti za NGINX i NGINX Plus instance, fokusirajući se na aplikativnu zaštitu, temeljenu na signaturama, uz posebnu pozornost posvećenu integraciji s DevOps i CI/CD procesima. No njihova realizacija, konfiguracija i implementacija usmjereni su na različite potrebe unutar samih organizacija:

  • NGINX App Protect – dodatak je za NGINX Plus i implementira se kao jednostavni softverski dodatak unutar vaše aplikativne infrastrukture kako bi osigurao naprednu zaštitu i sigurnost za vaše aplikacije
  • F5 Essential App Protect – koristi se kao usluga temeljena na cloudu te se omogućuje u vama odgovarajućoj cloud regiji, kako bi se osigurala zaštita od mnogobrojnih vektora napada kao potpuno pretkonfigurirana usluga prema sistemu ključ-u-ruke.

U osnovi, NGINX App Protect dodatak je NGINX Plus instanci u vašoj aplikativnoj infrastrukturi, a Essential App Protect je cloud usluga koju postavljate između korisnika i vaše aplikativne infrastrukture. Sama aplikacija definira koji joj pristup više odgovara, no generalno je pravilo da aplikacije temeljene na API-ju i Kuberneteesu, koje zahtijevaju visoke performanse, uživaju pogodnosti korištenja NGINX App Protect funkcionalnosti, koja se izvršava lokalno u vašem data centru. Nezahtjevne ili manje korištene aplikacije koriste pogodnosti i jednostavnost integracije s uslugom F5 Essential App Protect.

U ovom članku želimo vam pokazati kako se usluga F5 Essential App Protect može postaviti na brz i jednostavan način, kao rješenje za aplikativnu sigurnost za timove koji koriste instance NGINX ili NGINX Plus. Evo nekih karakteristika koje F5 Essential App Protect čine najboljim izborom:

  1. Out-of-the-gate zaštita od zlonamjernih IP adresa i poznatih negativaca, koristeći inteligentan sustav, temeljen na statistici i vjerojatnostima za detektiranje i uklanjanje zlonamjernog prometa.
  2. Podrška za hibridne i multicloud implementacije kroz više aplikativnih serverskih platformi s jednoznačnom konfiguracijom, mogućom bilo kroz UI, API ili Ansible playbookove.
  3. “Čišćenje” prometa, skrivanje servisa i servisnih endpointova od negativaca, smanjenje ukupne količine prometa te ugrađena DDoS mitigacija.
  4. Značajna agilnost, temeljena na SaaS modelu konzumiranja, te fleksibilne cjenovne opcije, bilo kroz AWS Marketplace, ili F5 Cloud Services portal.
  5. Analitika i vizualizacija aplikativnih sigurnosnih performansi u stvarnom vremenu.

 

Postavljanje usluge F5 Essential App Protect

Za primjer, u našem slučaju koristit ćemo F5 Essential App Protect kako bismo zaštitili web-aplikaciju koja se izvršava na instanci NGINX Plus, bez potrebe da se mijenja sami kôd aplikacije, i uz nekoliko minimalnih prilagodbi postojeće NGINX konfiguracije.

Inicijaliziranje instance F5 Essential App Protect

Nakon što se pretplatite na uslugu F5 Essential App Protect kroz AWS Marketplace ili kroz portal F5 Cloud Services, potrebno je kreirati instancu Essential App Protect izvođenjem sljedećih koraka[1]:

  1. Unošenje pojedinosti o aplikaciji (FQDN i ime aplikacije).
  2. Potvrditi URL vaše aplikacije i regiju (Essential App Protect automatski će pronaći sve instance aplikacije i predložiti najbliže AWS regije za inicijalizaciju servisa).
  3. Podesiti SSL/TLS postavke (dodati certifikat i podesiti HTTP na HTTPS preusmjeravanje, ako je potrebno).
  4. Podesiti način rada (blokiranje prijetnji ili samo nadzor) te postaviti parametre zaštite (različite načine i metode zaštite koje su automatski postavljene, a koje se naknadno može podešavati).
  5. Promijeniti DNS postavke vaše aplikacije s CNAME parametrima, koje će usluga F5 Essential App Protect specificirati (kako bi se promet preusmjerio na novouspostavljenu instancu).

Čim se DNS promjene primijene i propagiraju, instanca Essential App Protect počinje štititi vašu aplikaciju, a svi sigurnosni događaji prikazuju se na nadzornoj ploči Essential App Protecta:

Svaki od individualnih događaja ili agregiranih statistika moguće je dalje analizirati kako bi se došlo do detalja napada ili resursa koji su mu bili izloženi:

Prilagodba NGINX konfiguracije

Kako bismo osigurali da samo promet koji je validiran i procesiran od usluge Essential App Protect, može doći do vaše aplikacije, potrebno je prilagoditi instancu NGINX ili NGINX Plus. To radimo kreirajući listu dozvoljenih IP adresa (temeljenu na IP adresama koje Essential App Protect koristi u svakoj od regija u kojoj je inicijaliziran), s tih adresa prihvatit ćemo dolazni promet, dok ćemo ostale adrese blokirati. Koristeći najbolje prakse, također ćemo verificirati stvarnu IP adresu klijenta, omogućiti TLSv1.2, te omogućiti održavanje konekcija između instanci Essential App Protect i instanci NGINX.

Napomena: Kako bismo verificirali i dobili stvarnu IP adresu klijenata, Real IP modul mora biti omogućen na instanci NGINX. Na instanci NGINX Plus to je preddefinirano, i nije potrebno dodatno podešavanje, dok je za NGINX Open Source potrebno modul ugraditi u izvršnu datoteku korištenjem parametra –with-http_realip_module, uz naredbu configure.

U nastavku se nalazi primjer postavki iz NGINX konfiguracijske datoteke

server {

listen 443 ssl;
server_name www.example.com

# Allow traffic from eu-central-l region
allow 3.126.252.37;
allow 3.127.90.102;
allow 52.58.211.135;
# Allow traffic from other regions, as listed in the documentation
#...
# Deny all other traffic
deny all;

# Extract real source IP address from XFF header
set_real_ip_from 3.126.252.37;
set_real_ip_from 3.127.90.102;
set_real_ip_from 52.58.211.135;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

# Enable TLSv1.2 only (if using TLS encryption); TLSv1.2 is EAP's default
ssl_protocols TLSv1.2;
ssl_certificate /etc/nginx/certs/example.com.crt;
ssl_certificate_key /etc/nginx/certs/example.com.key;

location / {

# Enable keepalive connection from EAP to NGINX
proxy_http_version 1.1;
proxy_set_header Connection "";
set $sample_app 192.168.100.2:443;
proxy_pass https://$sample_app;

}

}

Podešavanje vatrozida

Ako u vašoj infrastrukturi koristite vatrozid ili više njih kako biste filtrirali promet prema različitim dijelovima vaše aplikativne infrastrukture, potrebno ih je podesiti da dozvole promet s instanci F5 Essential App Protect u regijama relevantnima za vašu aplikaciju.

Zaključak

F5 Essential App Protect najbolje je rješenje za timove koji žele biti agilni, već koriste instance NGINX kako bi osigurali performanse, skalabilnost ili raspoloživosti aplikativnih servisa, a žele jednostavno, pay-as-you-go cloud rješenje za zaštitu svojih aplikacija. Više od 20 godina iskustva i ekspertize koje F5 ima u segmentu aplikativne sigurnosti, zapakirali smo u DevOps-ready uslugu, kojom osiguravamo vašim razvojnim timovima alat kojim mogu adresirati sigurnosne prijetnje s kojima se aplikacije suočavaju, a sve bez potrebe za dodatnim i specijaliziranim znanjem, koje se izrazito teško stječe.

[1] Koraci su opisani na https://clouddocs.f5.com/cloud-services/latest/f5-cloud-services-Essential.App.Protect-WorkWith.html

Autori: n.garkusha@f5.comd.novak@f5.com