Kako zaštititi sajt sa WAF-om

Šta je WAF (Web Application Firewall)
Web Application Firewall (WAF) je bezbednosni sistem koji filtrira, monitoriše i blokira maliciozni HTTP saobraćaj ka vašoj web aplikaciji. Za razliku od klasičnog mrežnog firewall-a koji radi na nivou IP adresa i portova, WAF razume HTTP protokol i može da analizira sadržaj zahteva - URL parametre, POST podatke, kolačiće, HTTP header-e i telo zahteva. Ovo mu omogućava da prepozna i blokira napade koji bi prošli kroz klasičan firewall.
Zamislite WAF kao obezbeđenje na ulazu u restoran koje proverava svakog gosta. Klasičan firewall proverava samo da li gost ima pozivnicu (pravi IP i port). WAF proverava da li gost nosi oružje, lažna dokumenta ili ima zle namere - analizira ponašanje, ne samo identitet. U svetu gde se dešava oko 2.800 sajber napada dnevno, WAF je kritičan sloj zaštite za svaki web sajt.
Kako WAF funkcioniše
WAF se postavlja između korisnika i web servera i analizira svaki HTTP zahtev pre nego što stigne do vaše aplikacije. Odluke se donose na osnovu unapred definisanih pravila i algoritama.
Modeli detekcije
WAF koristi dva glavna modela za detekciju napada. Negative security model (blacklisting) blokira zahteve koji sadrže poznate maliciozne obrasce - SQL injection stringove, XSS payload-e, path traversal sekvence i slično. Ovo je najčešći pristup jer je lakši za implementaciju ali ne može da detektuje nove, nepoznate napade (zero-day). Positive security model (whitelisting) definiše šta je dozvoljeno i blokira sve ostalo. Ovaj model je bezbedniji ali zahteva detaljnu konfiguraciju za svaku aplikaciju jer morate definisati svaki legitimni parametar, URL i format podataka.
Od čega WAF štiti
WAF štiti od najčešćih web napada definisanih u OWASP Top 10 listi: SQL Injection (ubacivanje SQL koda kroz forme i URL parametre da se pristupi ili izmeni baza podataka), Cross-Site Scripting - XSS (ubacivanje malicioznog JavaScript koda koji se izvršava u browser-u drugih korisnika), Cross-Site Request Forgery - CSRF (prisiljavanje autentifikovanog korisnika da izvrši neželjenu akciju), Local/Remote File Inclusion (učitavanje malicioznih fajlova kroz PHP include mehanizam), Path Traversal (pristup fajlovima van web root-a koristeći ../ sekvence), Command Injection (izvršavanje sistemskih komandi kroz web aplikaciju) i brute force napadi na login forme.
Akcije koje WAF može preduzeti
Kada WAF detektuje sumnjivi zahtev, može preduzeti različite akcije: blokirati zahtev i vratiti 403 Forbidden grešku, dozvoliti zahtev ali logovati ga za kasniju analizu (monitoring mod), izazvati CAPTCHA proveru da utvrdi da li je korisnik čovek ili bot, rate limit-ovati zahteve sa određene IP adrese ili privremeno blokirati IP adresu koja šalje mnogo malicioznih zahteva. Moderni WAF sistemi kombinuju ove akcije na osnovu severity nivoa pretnje.
Tipovi WAF-a
WAF rešenja se razlikuju po mestu implementacije i arhitekturi.
Cloud-based WAF
Cloud WAF se implementira promenom DNS zapisa - saobraćaj se usmerava kroz cloud provajdera koji filtrira maliciozne zahteve pre nego što stignu do vašeg servera. Primeri: Cloudflare WAF, Sucuri, AWS WAF, Akamai. Prednosti su jednostavna implementacija (ne zahteva promene na serveru), skalabilnost (cloud infrastruktura apsorbuje DDoS napade), automatska ažuriranja pravila i CDN benefiti (brže učitavanje sajta). Mane su zavisnost od treće strane, potencijalni latency (dodatni hop) i mesečni troškovi.
Host-based WAF
Host-based WAF se instalira direktno na web server kao modul ili aplikacija. Najpoznatiji primer je ModSecurity koji se integriše sa Apache, Nginx i LiteSpeed web serverima. Prednosti su potpuna kontrola nad konfiguracijom, nema dodatnog mrežnog hop-a, pristup detaljnim log-ovima na serveru i nema mesečnog troška za cloud servis. Mane su da zahteva tehničko znanje za konfiguraciju i održavanje, troši resurse servera za analizu zahteva i ažuriranje pravila je vaša odgovornost.
Hybrid pristup
Najbolja zaštita je kombinacija cloud i host-based WAF-a. Cloud WAF (Cloudflare) filtrira volumetrijske napade i poznate pretnje pre nego što stignu do servera, dok host-based WAF (ModSecurity) pruža duboku inspekciju zahteva koji prođu kroz cloud sloj. Ova defense-in-depth strategija obezbeđuje da čak i ako jedan sloj propusti napad, drugi sloj ga uhvati.
Cloudflare WAF - konfiguracija
Cloudflare je najpopularniji cloud WAF za male i srednje sajtove zbog besplatnog plana koji uključuje osnovnu zaštitu i pristupačnih plaćenih planova sa naprednim WAF funkcionalnostima.
Osnovno podešavanje
Da biste koristili Cloudflare WAF, potrebno je da kreirate Cloudflare nalog, dodate vaš domen i promenite nameserver-e na Cloudflare-ove. Nakon propagacije DNS-a (obično 24-48 sati), sav saobraćaj ka vašem sajtu prolazi kroz Cloudflare mrežu. Besplatan plan nudi DDoS zaštitu, besplatan sertifikat za enkripciju, CDN i osnovnu bot zaštitu. WAF pravila su dostupna od Pro plana ($20/mesec).
Managed Rules
Cloudflare Managed Rules su unapred konfigurisana pravila koja štite od poznatih ranjivosti. Cloudflare Managed Ruleset pokriva OWASP Top 10 napade, Cloudflare WordPress Ruleset je specifično dizajniran za WordPress ranjivosti, i Cloudflare Leaked Credentials Detection proverava da li korisnici koriste kompromitovane lozinke. Ova pravila se automatski ažuriraju kada se otkriju nove pretnje.
Custom Rules
Pored managed pravila, možete kreirati custom WAF pravila za specifične potrebe vašeg sajta. Na primer: blokirajte pristup wp-admin stranici za sve osim vaše IP adrese, ograničite pristup xmlrpc.php, blokirajte zahteve iz određenih zemalja, zahtevajte CAPTCHA za login stranicu ili blokirajte korisničke agente poznatih botova i skenera. Custom pravila se kreiraju kroz Cloudflare dashboard koristeći vizuelni editor ili Wire Format expression syntax.
Rate Limiting
Cloudflare Rate Limiting omogućava ograničavanje broja zahteva po IP adresi u određenom vremenskom periodu. Ovo je efikasna zaštita od brute force napada i API abuse-a. Na primer: ograničite login stranicu na 5 zahteva po minutu po IP adresi, ograničite API endpoint-e na 100 zahteva po minutu. Zahtevi koji premaše limit mogu biti blokirani, izazvati CAPTCHA ili biti redirectovani na error stranicu.
ModSecurity - konfiguracija
ModSecurity je open-source WAF engine koji radi kao modul na Apache, Nginx i LiteSpeed serverima. To je najzastupljeniji host-based WAF u hosting industriji.
Instalacija i osnovno podešavanje
Na cPanel serverima, ModSecurity se instalira kroz WHM (Web Host Manager) jednim klikom. Na Linux serverima bez cPanel-a, instalira se iz paketa (apt install libapache2-mod-security2 na Ubuntu/Debian). Nakon instalacije, ModSecurity radi u Detection Only modu - logguje sumnjive zahteve ali ih ne blokira. Ovo je preporučeno za početak da biste identifikovali false positive-e pre prebacivanja u enforcing mod.
OWASP Core Rule Set (CRS)
ModSecurity sam po sebi ne sadrži pravila - potreban mu je rule set. OWASP Core Rule Set (CRS) je najkorišćeniji skup pravila koji pokriva OWASP Top 10 ranjivosti. CRS koristi anomaly scoring sistem gde svaki sumnjivi element zahteva dodaje poene, a zahtev se blokira tek kada ukupan skor premaši prag (podrazumevano 5). Ovo smanjuje false positive-e jer jedan sumnjivi element nije dovoljan za blokadu - mora da postoji više indikatora malicioznog ponašanja.
Fine-tuning pravila
ModSecurity pravila često generišu false positive-e - blokiraju legitimne zahteve. Najčešći primeri su: WordPress editor koji šalje HTML/CSS kod (izgleda kao XSS), Firewall plugini čije kontrolne panel forme sadrže bezbednosne termine, i kontakt forme sa specifičnim sadržajem. Za rešavanje false positive-a, možete: isključiti specifično pravilo za određeni URL ili direktorijum, povisiti anomaly scoring prag, ili dodati whitelist pravilo za poznate safe zahteve. Pregledajte ModSecurity audit log da identifikujete koja pravila generišu false positive-e.
ModSecurity na LiteSpeed-u
LiteSpeed Web Server ima ugrađenu podršku za ModSecurity pravila bez potrebe za eksternim modulom. LiteSpeed procesira ModSecurity pravila brže od Apache-a jer koristi optimizovani engine koji je dizajniran za LiteSpeed-ovu event-driven arhitekturu. Konfiguracija je identična kao na Apache-u - ista pravila, iste direktive, ali bolje performanse.
WAF za WordPress - specifična pravila
WordPress sajtovi su najčešća meta napada i zahtevaju specifična WAF pravila pored generičkih.
Zaštita admin oblasti
Ograničite pristup /wp-admin/ i /wp-login.php na poznate IP adrese ili zahtevajte dodatnu autentifikaciju. Blokirajte pristup osetljivim fajlovima: wp-config.php, xmlrpc.php, wp-cron.php (dozvolite samo server-side pristup). Sprečite enumeraciju korisnika blokiranjem zahteva sa ?author= parametrom koji otkriva korisnička imena.
Zaštita od plugin ranjivosti
WordPress plugini su najčešći vektor napada. WAF pravila treba da blokiraju: direktan pristup PHP fajlovima u wp-content/plugins/ direktorijumu (osim za AJAX handler-e), upload malicioznih fajl tipova (.php, .phtml, .pht maskiran kao slika), i eksploataciju poznatih ranjivosti u popularnim pluginima (Cloudflare i ModSecurity CRS imaju specifična pravila za WordPress plugin ranjivosti).
Bot zaštita
Veliki procenat saobraćaja na WordPress sajtovima dolazi od botova - dobrih (Google bot, Bing bot) i loših (skeneri ranjivosti, content scraper-i, brute force botovi). WAF treba da: dozvoli poznate dobre botove na osnovu user-agent-a i IP opsega, blokira ili rate limit-uje poznate loše botove, izazove CAPTCHA za sumnjive botove i limitira crawl rate za sve botove da ne opterećuju server.
Monitoring i održavanje WAF-a
WAF nije "set and forget" rešenje. Zahteva redovan monitoring i prilagođavanje.
Analiza logova
Redovno pregledajte WAF logove da identifikujete: false positive-e koji blokiraju legitimne korisnike (i prilagodite pravila), obrasce napada koji mogu ukazivati na ciljani napad, IP adrese ili opsege koji generišu mnogo malicioznih zahteva, i nove tipove napada koji možda nisu pokriveni postojećim pravilima. Cloudflare nudi vizuelni dashboard za analizu, dok ModSecurity koristi tekstualne log fajlove koje možete analizirati alatima poput GoAccess ili ELK stack-a.
Ažuriranje pravila
Nove ranjivosti se otkrivaju svakodnevno i WAF pravila moraju biti ažurirana da bi ih pokrila. Cloud WAF rešenja (Cloudflare) automatski ažuriraju pravila. Za ModSecurity sa OWASP CRS, ažurirajte rule set bar jednom mesečno. Pratite bezbednosne biltene za WordPress, plugine i teme koje koristite i dodajte specifična pravila za novootkrivene ranjivosti pre nego što zakrpa bude dostupna (virtual patching).
Česte greške pri korišćenju WAF-a
- Previše agresivna pravila: WAF koji blokira legitimne korisnike je gori od WAF-a koji ne postoji jer tera posetioce i klijente sa sajta. Počnite u monitoring modu i postepeno pooštravljajte pravila.
- Oslanjanje samo na WAF: WAF je jedan sloj zaštite, ne zamena za ažuriran softver, jake lozinke, bezbednosnu konfiguraciju i backup-e. Defense-in-depth strategija je jedini ispravan pristup.
- Ignorisanje logova: WAF logovi su zlato - pokazuju vam tačno ko pokušava šta na vašem sajtu. Ignorisanje logova znači da propuštate važne signale o pretnjama.
- Zastarela pravila: WAF sa pravilima starim godinu dana je kao antivirus sa zastarelom bazom - ne prepoznaje nove pretnje.
- Nema testiranja nakon promena: Svaka promena WAF pravila mora biti testirana da se potvrdi da ne blokira legitimne funkcionalnosti sajta.
Zaključak
WAF je esencijalan sloj zaštite za svaki web sajt, posebno za sajtove napravljene na WordPress-u koji su najčešća meta napada. Kombinacija cloud WAF-a (Cloudflare) za zaštitu od volumetrijskih napada i DDoS-a sa host-based WAF-om (ModSecurity) za duboku inspekciju zahteva pruža sveobuhvatnu zaštitu. Počnite sa monitoring modom, pratite logove, prilagodite pravila za vaš sajt i redovno ažurirajte rule set-ove. Na BeoHosting-u, svi hosting paketi dolaze sa unapred konfiguriranim ModSecurity WAF-om sa OWASP Core Rule Set-om, optimizovanim za WordPress, uz preporuku da koristite Cloudflare besplatni plan za dodatni sloj zaštite i CDN benefite.
BeoHosting Tim
10+ godina iskustva — Stručnjaci za web hosting i infrastrukturu
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Poslednje ažurirano: