LIONFIN

WAF Nedir? Web Uygulama Güvenlik Duvarı Nasıl Korur?

Web uygulama güvenlik duvarı SQL enjeksiyonu ve XSS gibi saldırıları HTTP isteğinin içine bakarak durdurur. Ağ güvenlik duvarı ve DDoS korumasından farkı, sunucu, CDN ve eklenti tabanlı kurulum seçenekleri ve yanlış pozitiflerin kural numarasıyla ayıklanması.

YYönetici 6 dk okuma 1 görüntülenme
WAF Nedir? Web Uygulama Güvenlik Duvarı Nasıl Korur?

WAF nedir diye soranlara kısa yanıt: WAF (Web Application Firewall, web uygulama güvenlik duvarı), web sitenize gelen HTTP ve HTTPS isteklerinin içeriğini inceleyip SQL enjeksiyonu, siteler arası betik çalıştırma (XSS) gibi uygulama saldırılarını sunucudaki koda ulaşmadan durduran bir filtredir. Port ve IP adresine bakan klasik güvenlik duvarından farklı olarak isteğin adresine, parametrelerine, başlıklarına ve gövdesine bakar.

Müşteri verisi işleyen, ödeme alan ya da üye girişi olan bir sitede WAF, yama yayımlanana kadar geçen süreyi kapatan ikinci savunma hattıdır. Kurumsal sitelerin barındığı kurumsal hosting ortamlarında bu katmanın nasıl kurulduğunu ve hangi durumlarda yetmediğini bilmek, hem güvenliği hem de yanlışlıkla engellenen müşteri işlemlerini yönetmenizi kolaylaştırır.

Kısa cevap

WAF nedir? Web Application Firewall, yani web uygulama güvenlik duvarı; HTTP/HTTPS isteklerini uygulama katmanında (OSI 7) inceleyip SQL enjeksiyonu, XSS, dizin gezinme, uzaktan komut çalıştırma ve kaba kuvvet giriş denemeleri gibi saldırıları kurallarla engelleyen bir güvenlik katmanıdır. Sunucuda (ModSecurity ve OWASP Core Rule Set), CDN kenarında ya da uygulama eklentisi olarak çalışabilir. Açıklı kodu düzeltmez; yama yapılana kadar saldırıyı keser ve yanlış pozitifleri ayıklamak için düzenli ayar ister.

WAF nedir, bir isteği nasıl inceler?

WAF, ziyaretçi ile web uygulaması arasında duran ve her isteği bir kural setiyle karşılaştıran ters vekil (reverse proxy) ya da sunucu modülüdür. HTTPS trafiğini inceleyebilmesi için şifrenin WAF’ta çözülmesi gerekir; bu yüzden sertifikayı ya kendisi taşır ya da web sunucusunun içinde çalışır.

Bir istek geldiğinde WAF şu parçalara bakar:

  • İstek satırı ve adres: /../../etc/passwd gibi dizin gezinme kalıpları, bilinen yönetim yolları.
  • Parametreler ve gövde: Form alanlarında UNION SELECT ya da <script> gibi saldırı imzaları.
  • Başlıklar: Bozuk User-Agent, tarama araçlarına özgü imzalar, protokol ihlalleri.
  • Davranış: Aynı adresten dakikada yüzlerce giriş denemesi gibi hız sınırı aşımları.

Kural setleri iki yaklaşımla çalışır: bilinen kötü kalıpları engelleyen negatif model ve yalnızca tanımlı isteklere izin veren pozitif model. Hazır kural setlerinin çoğu negatif modeldir; pozitif model daha sıkı ama bakımı daha zahmetlidir.

WAF hangi saldırıları engeller?

WAF, web uygulamalarına yönelik en yaygın saldırı sınıflarını hedefler; bunların çoğu OWASP Top 10 listesindeki enjeksiyon ve erişim kontrolü başlıklarıyla örtüşür.

  • SQL enjeksiyonu (SQLi): Form ya da adres parametresine sorgu parçası ekleyerek veritabanını okuma veya değiştirme girişimi.
  • Siteler arası betik çalıştırma (XSS): Sayfaya zararlı JavaScript yerleştirip diğer ziyaretçilerin oturumunu çalma.
  • Yerel ve uzak dosya dahil etme (LFI/RFI) ile dizin gezinme: Sunucudaki yapılandırma dosyalarını okumaya ya da dışarıdan kod çağırmaya çalışan istekler.
  • Uzaktan komut çalıştırma (RCE): Parametre üzerinden işletim sistemi komutu enjekte etme denemeleri.
  • Kaba kuvvet ve kimlik bilgisi doldurma: Giriş sayfasına çok sayıda deneme; hız sınırlama kurallarıyla yavaşlatılır.
  • Zararlı bot ve tarayıcılar: Açık arayan otomatik tarama araçları.

WAF’ın değerli bir işlevi de “sanal yama”dır: bir eklentide açık duyurulduğunda, güncelleme kurulana kadar o açığı hedefleyen istekleri tek bir kuralla durdurabilirsiniz. Bu bir erteleme aracıdır, güncellemenin yerini tutmaz.

Ağ güvenlik duvarı, WAF ve DDoS koruması arasındaki fark nedir?

Üçü farklı katmanlarda farklı soruları yanıtlar: ağ güvenlik duvarı “bu bağlantıya izin var mı?”, WAF “bu isteğin içeriği zararlı mı?”, DDoS koruması ise “bu trafik hacmi hizmeti boğuyor mu?” diye sorar.

ÖlçütAğ güvenlik duvarıWAFDDoS koruması
KatmanAğ ve taşıma (L3/L4)Uygulama (L7)Ağırlıkla L3/L4, bazı çözümlerde L7
Baktığı şeyIP adresi, port, protokolAdres, parametre, başlık, istek gövdesiPaket hızı, bant genişliği, bağlantı sayısı
DurdurduğuKapalı portlara erişim, yasaklı IP’lerSQLi, XSS, LFI, kaba kuvvetHacimsel taşkın saldırıları
DurduramadığıAçık 443 portundan gelen zararlı istekAltyapıyı dolduran hacimsel saldırıTek ve meşru görünen zararlı istek

Bu katmanlar birbirinin yerine geçmez. LIONFIN veri merkezimizde ağ kenarında çalışan RouteFence Firewall, trafiği sunucunuza ulaşmadan ağ düzeyinde süzen katmandır ve 7/24 NOC ile SOC izlemesiyle birlikte altyapıyı korur; uygulamanızın form alanlarını inceleyen bir WAF değildir. Hacimsel saldırıların nasıl işlediği DDoS saldırısı nedir yazısında anlatılır.

WAF nereye kurulur: sunucu, CDN ya da eklenti?

WAF üç yerde çalışabilir; seçim, trafiğinizin nereden geçtiğine ve kural setini kimin yöneteceğine bağlıdır.

Sunucu tabanlı: ModSecurity ve OWASP CRS

ModSecurity, Apache, Nginx ve IIS için açık kaynak bir WAF motorudur; kural seti olarak çoğunlukla OWASP Core Rule Set (CRS) kullanılır. cPanel sunucularında Security → ModSecurity ekranından alan adı bazında açılıp kapatılır; Plesk’te Tools & Settings → Web Application Firewall (ModSecurity) altındadır. Plesk tarafındaki ayarlar Plesk güvenlik ayarları rehberinde adım adım anlatılır.

CDN ya da kenar (edge) WAF

DNS’i bir CDN sağlayıcısına yönlendirdiğinizde istekler önce onun kenar sunucularında incelenir ve saldırı trafiği sunucunuza ulaşmadan kesilir. Ancak gerçek sunucu IP’niz biliniyorsa ve sunucu yalnızca CDN adreslerinden gelen trafiği kabul edecek şekilde kısıtlanmadıysa saldırgan WAF’ı atlayıp doğrudan sunucuya gidebilir. Ayrıntılar Cloudflare nedir yazısında.

Uygulama eklentisi

WordPress güvenlik eklentileri uygulamanın içinde çalışır ve kullanıcı oturumunu tanıdığı için bağlama duyarlı kurallar uygulayabilir. Dezavantajı, isteğin PHP’ye kadar ulaşması ve sunucu kaynağı tüketmesidir. En sağlam düzen, sunucu ya da kenar WAF’ını temel alıp eklentiyi tamamlayıcı olarak kullanmaktır.

Yanlış pozitifler nasıl ayıklanır?

Yanlış pozitif, WAF’ın meşru bir isteği saldırı sanıp engellemesidir; kod örneği içeren bir blog yazısını kaydetmek ya da HTML editörlü bir yönetim formunu göndermek tipik örneklerdir. Çözüm WAF’ı kapatmak değil, tetiklenen kuralı bulup yalnızca o adres ve parametre için istisna tanımlamaktır.

  1. Önce izleme modunda başlayın: Yeni kurulumda SecRuleEngine DetectionOnly ile birkaç gün yalnızca kayıt tutun, sonra On konumuna geçin.
  2. Kural numarasını bulun: Engellenen isteğin denetim kaydında (audit log) [id "942100"] gibi bir kural numarası yazar. CRS’te 941 ile başlayan numaralar XSS, 942 ile başlayanlar SQL enjeksiyonu kurallarıdır.
  3. Dar bir istisna yazın: Kuralı sunucunun tamamında kapatmak yerine yalnızca ilgili adres ve parametre için devre dışı bırakın.
  4. Hassasiyeti bilinçli seçin: CRS’in paranoia level ayarı 1’den 4’e yükseldikçe koruma sıkılaşır, yanlış pozitif de artar; çoğu site için 1 ya da 2 yeterlidir.
SecRule REQUEST_URI "@beginsWith /wp-admin/post.php" \
    "id:1000101,phase:1,pass,nolog,ctl:ruleRemoveTargetById=942100;ARGS:content"

Bu örnek, 942100 numaralı kuralı yalnızca yazı kaydetme adresindeki content alanı için devre dışı bırakır; diğer tüm alanlar korunmaya devam eder. Paylaşımlı hostingde istisnayı kendiniz yazamıyorsanız engellenen adresi, saati ve kural numarasını destek talebine ekleyin.

Dikkat: Bir form engellendi diye ModSecurity’yi tüm alan adı için kapatmayın; istisnayı tek kurala ve tek parametreye daraltın.

WAF neyi yapamaz?

WAF, açıklı kodu güvenli hâle getirmez; yalnızca bilinen kalıplara uyan saldırıları süzer. İş mantığı hataları (ör. başka bir kullanıcının sipariş numarasını yazarak faturasını görmek), sızmış parolalarla yapılan normal görünümlü girişler ve meşru görünen dosya yüklemeleri WAF’tan geçebilir.

Bu yüzden WAF katmanlı bir planın yalnızca bir parçasıdır: güncel çekirdek ve eklentiler, yönetim panellerinde iki adımlı doğrulama, en az yetki ilkesi, düzenli yedek ve kayıt izleme olmadan tek başına koruma vaat etmez. Eksiksiz bir liste için web sitesi güvenliği kontrol listesine bakın. Sunucuyu tamamen kendiniz yönetiyorsanız ModSecurity ile birlikte işletim sistemi tarafındaki sıkılaştırmayı da VPS sunucu kurulumunuzun ilk gününde yapın.

Sık Sorulan Sorular

ModSecurity siteyi yavaşlatır mı?

Her istek kural setinden geçtiği için küçük bir işlemci yükü ekler; tipik bir sitede ziyaretçinin fark edeceği düzeyde değildir. Yük, açık kural sayısı, paranoia seviyesi ve büyük istek gövdelerinin incelenmesiyle artar. Statik dosyaları önbellekten ya da CDN’den sunmak ve gereksiz kural gruplarını kapatmak etkiyi daha da azaltır.

Cloudflare kullanıyorsam sunucuda ayrıca WAF gerekir mi?

Kenar WAF’ı çoğu saldırıyı sunucuya ulaşmadan keser, ancak sunucunuzun gerçek IP adresi biliniyorsa saldırgan onu doğrudan hedefleyebilir. Sunucu güvenlik duvarında yalnızca CDN adreslerinden gelen web trafiğine izin vermek ya da sunucuda da ModSecurity çalıştırmak bu açığı kapatır. Kritik sitelerde iki katmanı birlikte kullanmak yaygın bir uygulamadır.

WAF varsa eklenti ve çekirdek güncellemelerini erteleyebilir miyim?

Hayır. WAF yalnızca tanınan saldırı kalıplarını engeller; yeni ya da farklı biçimde paketlenmiş bir istismar kurallardan geçebilir. Sanal yama, güncellemeyi test edip kurana kadar geçen birkaç günü güvenli hâle getirmek içindir. Açığı kalıcı olarak kapatan tek yol yazılımı güncellemek ya da kullanılmayan eklentiyi kaldırmaktır.

WAF form gönderimimi engelliyor, ne yapmalıyım?

Önce engellemenin saatini, adresini ve sunucunun döndürdüğü hata kodunu (çoğunlukla 403) not edin. Sunucu sizdeyse ModSecurity denetim kaydında bu isteğe ait kural numarasını bulup yalnızca o adres ve alan için istisna tanımlayın. Paylaşımlı hostingdeyseniz bu bilgileri destek talebine ekleyin; WAF’ı tamamen kapatmak yerine dar bir istisna istemek daha güvenlidir.

Ağ güvenlik duvarı olan bir sunucuda WAF gereksiz mi?

Gereksiz değildir, çünkü ikisi farklı işler yapar. Ağ güvenlik duvarı web sitesine erişim için 80 ve 443 portlarını açık tutmak zorundadır; SQL enjeksiyonu ya da XSS içeren istekler bu açık portlardan normal trafik gibi geçer. Bu isteklerin içeriğini yalnızca uygulama katmanında çalışan WAF inceleyebilir.

  • #web application firewall
  • #web uygulama güvenlik duvarı
  • #modsecurity
  • #owasp crs
  • #owasp top 10
  • #sql injection koruması
  • #xss koruması
  • #yanlış pozitif
X LinkedIn WhatsApp