İçeriğe atla
Makale

WAF Nedir? Web Uygulama Güvenlik Duvarı Nasıl Çalışır?

WAF, web uygulamasına gelen istekleri inceleyip saldırıyı uygulamaya ulaşmadan durdurur. Firewall'dan farkını, kural ayarını ve PCI DSS şartını anlattık.

Oğuzhan Gerçek··6 dk okuma
WAF Nedir? Web Uygulama Güvenlik Duvarı Nasıl Çalışır?

Kısa cevap: WAF (Web Application Firewall, web uygulama güvenlik duvarı), bir web uygulamasının önüne konan, gelen HTTP isteklerini inceleyip saldırı taşıyanları uygulamaya ulaşmadan durduran güvenlik katmanıdır. Ağ firewall'u bağlantının nereden gelip hangi porta gittiğine bakar; WAF ise isteğin içini, yani adresi, parametreleri, başlıkları ve form verisini okur. SQL injection ve XSS gibi saldırıları yakalar, bot trafiğini ve istek hızını sınırlar. Koddaki açığı kapatmaz, ama kalıcı düzeltme gelene kadar istismarını zorlaştırır.

WAF nedir?

Cloudflare'in tanımıyla WAF, web uygulaması ile internet arasındaki HTTP trafiğini filtreleyip izleyerek uygulamayı korur ve OSI modelinin 7. katmanında, yani uygulama katmanında çalışır. ABD Ulusal Standartlar ve Teknoloji Enstitüsünün (NIST) güvenlik duvarı rehberi SP 800-41 de WAF'ı, web sunucularına yönelik istismarları yakalayan özel bir uygulama firewall'u olarak anlatıyor.

WAF bir reverse proxy gibi çalışır: istemci uygulamaya değil WAF'a bağlanır, WAF isteği inceler ve yalnızca temiz bulduğunu arkadaki sunucuya iletir. Reverse proxy'yi proxy yazımızda anlattık; terimin kısa tanımı da sözlüğümüzde var.

WAF ile ağ firewall'u arasındaki fark

Klasik ağ firewall'u paketin başlığına bakar. NIST'in aynı rehberine göre en temel tür olan paket filtresi, kararını kaynak ve hedef IP adresine, protokole, port numarasına ve paketin geçtiği arayüze göre verir. Bir web sitesine gelen trafik ise HTTPS'in varsayılan portu olan 443'ten (RFC 9110), meşru bir bağlantıyla gelir; firewall onu geçirmek zorundadır.

Saldırı bu izinli bağlantının içinde taşınır: form alanına yazılmış bir SQL ifadesi, URL parametresine eklenmiş bir script. WAF, HTTP isteğini ayrıştırdığı için bunu görür. HTTPS'te adres, başlıklar ve istek gövdesi şifreli olduğundan WAF'ın bunları okuyabilmesi, TLS'in WAF'ta ya da önündeki katmanda sonlandırılmasına bağlı.

İkisi birbirinin yerine geçmez: güvenlik duvarı kimin kiminle konuşabileceğini belirler, WAF izin verilen web trafiğinin ne taşıdığına bakar.

WAF nasıl çalışır?

WAF birkaç yöntemi birlikte kullanır:

  • İmza ve kural (negatif model): Bilinen saldırı desenlerini arar; Cloudflare bunu blocklist, yani negatif güvenlik modeli diye adlandırıyor.
  • İzin listesi (pozitif model): Yalnızca önceden tanımlanmış biçime uyan isteği geçirir; daha sıkıdır, ama beklenen her isteğin tarif edilmesini gerektirir.
  • Anomali puanı: OWASP Core Rule Set (CRS) gibi kural setlerinde tek bir eşleşme isteği hemen engellemez; eşleşen her kural puanı artırır. CRS'te kritik bir kural puana 5 ekliyor, gelen istekler için önerilen eşik de 5.
  • Bot yönetimi ve hız sınırlama (rate limiting): Kısa sürede çok istek gönderen kaynakları yavaşlatır ya da durdurur; credential stuffing ve içerik kazıma (scraping) gibi otomasyon trafiğini ayırır.

Ağ bağlantısını dolduran hacimsel DDoS saldırıları ise WAF'a gelmeden, ağın kenarında karşılanmalı; bu katmanı ağ koruması hizmetimizde ele alıyoruz.

WAF ve OWASP Top 10

OWASP Top 10, web uygulamalarındaki en kritik güvenlik risklerini sıralayan ve OWASP'ın kendi ifadesiyle standart bir farkındalık belgesi; güncel sürümü OWASP Top 10:2025. İlk sırada A01:2025 Broken Access Control var. SQL injection ve XSS'i kapsayan Injection ise 2021'deki üçüncü sıradan beşinciye (A05:2025) indi.

Ama her risk HTTP isteğinde bir desen olarak görünmez. Bir kullanıcının başka bir müşterinin kaydını açması (A01), bir tasarım hatası (A06:2025 Insecure Design) ya da üçüncü taraf bir bileşendeki açık (A03:2025 Software Supply Chain Failures), WAF'ın gözünde sıradan bir istek olabilir. OWASP'ın injection için başlıca önerisi de kodda: veriyi komut ve sorgulardan ayrı tutmak.

WAF'ın bu boşluktaki işi sanal yama (virtual patching). OWASP sanal yamayı, bilinen bir açığın istismar girişimlerini zayıf kodu değiştirmeden tespit edip engelleyen bir politika katmanı olarak tanımlıyor: açığı kaldırmaz, kalıcı düzeltme hazırlanırken zaman kazandırır. Açığın kendisini bulmanın yolu kod incelemesi ve sızma testi.

WAF dağıtım modelleri

Cloudflare, WAF'ları kurulduğu yere göre üçe ayırıyor:

  • Bulut ya da CDN tabanlı: Trafik çoğu zaman bir DNS değişikliğiyle sağlayıcının ağına yönlendirilir; başlangıç maliyeti düşüktür. Karşılığında sorumluluğun bir kısmı üçüncü tarafa geçer, TLS de sağlayıcının noktasında açılır.
  • Ağ tabanlı (appliance): Uygulamanın önüne konan, çoğunlukla donanım tabanlı cihaz. Gecikmeyi düşük tutar; Cloudflare'e göre en pahalı seçenek.
  • Sunucu üstünde modül (host-based): OWASP'ın standart açık kaynak WAF motoru dediği ModSecurity, Apache HTTP Server, Microsoft IIS ve Nginx üzerinde çalışıyor. Ucuzdur, ama sunucunun kaynağını tüketir.

Bulut platformlarında WAF, trafiğin zaten geçtiği bileşene eklenir: AWS WAF CloudFront dağıtımlarını, API Gateway REST API'lerini ve Application Load Balancer'ları koruyabiliyor. Load balancer'ın bu zincirdeki yerini load balancer yazımızda anlattık.

False positive ve kural ayarı

WAF'ı işletmenin zor tarafı, meşru isteği engellememek: false positive. Yönetim panelinden HTML içerik kaydeden bir editör ya da destek formuna SQL sorgusu yapıştıran bir kullanıcı, kurallara saldırgan gibi görünebilir.

CRS bu dengeyi paranoia level ile kuruyor. Dört seviye var; seviye yükseldikçe saldırganın fark edilmeden geçmesi zorlaşıyor, yanlış alarm ise artıyor. Yanlış alarmlar, bir kuralı yalnızca ilgili parametre ya da adres için kapatan istisnalarla (rule exclusion) ayıklanır.

Sıralama da önemli: kurallar önce yalnızca kayıt tutan izleme modunda çalışır. AWS, kuralları önce test sisteminde, sonra gerçek trafikte count modunda denemeyi, ardından etkinleştirmeyi öneriyor. Uygulamaya yeni bir alan ya da API eklendiğinde kurallar da gözden geçirilmeli; aceleyle yazılmış geniş bir istisna korumayı deler.

PCI DSS 6.4.2: WAF ne zaman zorunlu?

PCI DSS v4.0 ile gelen 6.4.2 gereksinimi, internete açık web uygulamaları için web tabanlı saldırıları sürekli tespit edip önleyen otomatik bir teknik çözüm istiyor. PCI SSC'nin metnine göre bu çözüm uygulamanın önüne kurulmalı, etkin ve güncel çalışmalı, denetim kaydı (audit log) üretmeli ve saldırıyı ya engellemeli ya da hemen incelenen bir uyarı vermeli.

Gereksinim 31 Mart 2025'e kadar tavsiye (best practice) niteliğindeydi, bu tarihten sonra zorunlu hâle geldi. Önceki 6.4.1, uygulamayı güvenlik değerlendirmesinden geçirmek ile otomatik çözüm kurmak arasında seçim bırakıyordu; PCI SSC'ye göre bu tarihten sonra raporlarda uygulanamaz (N/A) sayılıyor. Güncel sürüm Haziran 2024'te yayımlanan v4.0.1; bu revizyon gereksinim eklemedi ya da çıkarmadı.

Metin ürün adı vermiyor; tarif ettiği çözüm bir WAF'ın işleviyle örtüşüyor. Hangi uygulamaların kapsama girdiği, kart verisinin işlendiği sistemlerin (CDE) sınırlarına bağlı. WAF kayıtlarının nasıl izlendiğini SIEM ve SOC yazımızda, uyum tarafını PCI-DSS uyumluluğu hizmetimizde ele alıyoruz.

Sık sorulan sorular

WAF ne demek? Web Application Firewall, yani web uygulama güvenlik duvarı demek: web uygulamasına gelen HTTP isteklerini inceleyip saldırı taşıyanları engelleyen güvenlik katmanı.

WAF ne işe yarar? SQL injection ve XSS gibi uygulama katmanı saldırılarını uygulamaya ulaşmadan durdurur, bot trafiğini ve aşırı istek hızını sınırlar.

WAF ile firewall arasındaki fark nedir? Ağ firewall'u IP adresine, porta ve protokole bakarak bağlantıya izin verir ya da engeller. WAF, izin verilen web trafiğinin içine bakar ve isteğin içeriğindeki saldırıyı yakalar.

WAF koddaki açığı kapatır mı? Hayır. Bilinen saldırı desenlerini engeller, ama açık kodda durmaya devam eder; kalıcı çözüm kodun düzeltilmesidir.

PCI DSS WAF'ı zorunlu kılıyor mu? PCI DSS'in 6.4.2 gereksinimi, internete açık web uygulamalarının önünde web tabanlı saldırıları tespit edip önleyen otomatik bir çözüm istiyor; bu şart 31 Mart 2025'ten beri zorunlu.

Kaynaklar