İçeriğe atla
0 XP 0
← Blog
Savunma

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

WAF (Web Application Firewall, web uygulama güvenlik duvarı), bir web uygulamasına gelen HTTP isteklerini kurallara göre inceleyen ve saldırı kalıbı taşıyanları engelleyen güvenlik katmanıdır. Genellikle uygulamanın önünde ters vekil olarak çalışır. Ağ güvenlik duvarından farkı, adres ve porta değil isteğin içeriğine bakmasıdır.

Yazan: AltaySec AkademiSon güncelleme: 6 dk okuma

WAF nedir sorusunun kısa cevabı: web sitenin önünde durup gelen her isteği okuyan, SQL injection ya da XSS gibi saldırı kalıbı taşıyanları geri çeviren filtredir. Ağ güvenlik duvarı kapıdan kimin girdiğine bakar, WAF ise elindeki pakete. Kod düzeltilene kadar zaman kazandırır ama koddaki açığı kapatmaz. Bu yazıda nasıl çalıştığını, nasıl ayarlandığını ve sınırlarını göreceksin.

WAF nedir ve nasıl çalışır?

OWASP'ın tanımıyla WAF, HTTP uygulamaları için bir uygulama güvenlik duvarıdır. HTTP konuşmasına bir kural seti uygular. Kurallar genellikle XSS ve SQL injection gibi yaygın saldırıları kapsar. Vekil sunucular istemciyi korurken WAF sunucuyu korur.

Bir istek WAF'tan geçerken şu adımlar işler:

  1. Kullanıcı siteye bağlanır. Bağlantı aslında WAF'ta sonlanır.
  2. WAF isteğin adresini, parametrelerini, başlıklarını, çerezlerini ve gövdesini okur.
  3. Her parçayı kurallarla karşılaştırır.
  4. Karar verir: geçir, engelle ya da yalnız kaydet. Bazı ürünler ayrıca bot sınaması gösterir.
  5. Geçen istek arkadaki uygulama sunucusuna iletilir.

WAF üç biçimde karşına çıkar. Bulut WAF, içerik dağıtım ağının bir parçası olarak çalışır. Sunucu modülü, nginx ya da Apache gibi web sunucusunun içine eklenir. Donanım ya da sanal cihaz ise kurum ağında uygulamaların önüne konur.

Kural yaklaşımı da ikiye ayrılır. Negatif model bilinen kötü kalıpları arar ve geri kalan her şeyi geçirir. Pozitif model ise yalnız tanımlı, beklenen istekleri kabul eder. Negatif modelin kurulumu kolaydır, pozitif model daha sıkıdır ama uygulamaya özel emek ister.

WAF ile ağ güvenlik duvarı arasındaki fark nedir?

İkisi de "güvenlik duvarı" adını taşır ama farklı katmanlarda farklı soruları yanıtlar:

ÖzellikAğ güvenlik duvarıWAF
Çalıştığı katmanAğ ve taşıma katmanı (IP, port)Uygulama katmanı (HTTP)
Baktığı şeyKaynak ve hedef adres, port, bağlantı durumuURL, parametre, başlık, çerez, istek gövdesi
Örnek kural"Dışarıdan 3389 portuna gelen bağlantıyı reddet""Parametrede SQL sözdizimi varsa isteği engelle"
Durdurduğu tipik tehditİzinsiz port erişimi, port taramasıSQL injection, XSS, dizin taraması, kötü botlar
HTTPS içeriğini görür müHayırŞifre WAF'ta çözülüyorsa evet

Bu yüzden biri diğerinin yerini tutmaz. Ağ güvenlik duvarının kurallarını ve türlerini firewall nedir yazısında okuyabilirsin.

DDoS tarafında da iş bölümü vardır. WAF, uygulama katmanındaki istek selini oran sınırı ve bot tespitiyle hafifletebilir. Bağlantı hattını dolduran hacimsel saldırılar ise ağ düzeyinde, çoğu zaman servis sağlayıcıda karşılanır. Ayrıntılar DDoS saldırısı ve korunma yazısında.

OWASP Core Rule Set ve ModSecurity nasıl çalışır?

Açık kaynak dünyasında en yaygın ikili ModSecurity ve OWASP CRS'tir. ModSecurity, 2002'de başlayan açık kaynak WAF motorudur. Proje Şubat 2024'te Trustwave'den OWASP'a devredildi. CRS ise bu motorun yaygın olarak kullandığı genel amaçlı kural setidir.

CRS, varsayılan olarak "anomali puanlama" ile çalışır. Kural eşleşince istek hemen engellenmez. Eşleşen her kural isteğin puanını artırır. Tüm kurallar çalıştıktan sonra toplam puan eşikle karşılaştırılır. CRS belgesine göre kritik bir eşleşme varsayılan olarak 5 puan ekler. Varsayılan eşik istekler için 5, yanıtlar için 4'tür.

İkinci ayar "paranoya seviyesi"dir. Ne kadar agresif olacağını belirler:

SeviyeNe yaparYanlış pozitif
PL 1Neredeyse hiç yanlış alarm üretmeyen temel kurallarÇok az
PL 2Daha fazla saldırıyı yakalayan ek kurallarArtar
PL 3Özel saldırılar için ek kurallarBelirgin biçimde artar
PL 4Neredeyse her saldırıyı yakalayan çok sıkı kurallarÇok fazla, haftalarca ayar ister

Yeni bir kurulum genellikle PL 1 ile başlar. Seviye yükseltmek, yanlış pozitifleri ayıklayacak zamanın olduğunda yapılır.

WAF hangi saldırılara karşı işe yarar?

WAF'ın en güçlü olduğu yer, bilinen kalıpları olan saldırılardır. Her satırda kalıcı çözümün yine uygulamada olduğuna dikkat et:

SaldırıWAF'ın katkısıKalıcı çözüm
SQL injectionBilinen sorgu kalıplarını engellerParametreli sorgu
XSSBetik içeren girdileri engellerBağlama göre çıktı kodlama
Yol geçişi../ gibi kalıpları yakalarDosya yolunu doğrulama
Otomatik taramaTarayıcı imzalarını ve 404 selini fark ederGereksiz uçları kapatma
Kaba kuvvetİstek hızını sınırlarHesap bazlı sınır ve MFA
Yeni yayımlanan açıkGeçici kural, yani sanal yamaYazılımı güncelleme

SQL injection'ın kod tarafındaki kökünü SQL injection nedir yazısında anlattık. Oran sınırı ise ayrı bir konu, rate limiting nedir yazısında ele aldık.

WAF neyi durduramaz?

WAF'ın göremediği en büyük alan iş mantığıdır. Bir kullanıcının başkasının siparişini numarayı değiştirerek açması, WAF'a göre tamamen sıradan bir istektir. Yetkilendirme hatalarının API'lerdeki karşılığını OWASP API Top 10 yazısında bulabilirsin.

Diğer sınırlar:

  • Atlatma: Saldırganlar girdiyi farklı kodlayarak ya da bölerek kuralları atlatmaya çalışır. Güncellenmeyen kural seti yanlış bir güven duygusu verir.
  • Doğrudan sunucu erişimi: Uygulama sunucusunun gerçek adresi bulunursa WAF tümüyle atlanır. Sunucunun yalnız WAF'tan gelen trafiği kabul etmesini sağla.
  • Görmediği trafik: Şifresi WAF'ta çözülmeyen bağlantılar ve WAF'ın önünden geçmeyen iç servisler korumasızdır.

WAF seçerken ve kurarken nelere bakmalısın?

Ürün adından önce ihtiyacını netleştir. Tek bir site için yönetilen bulut WAF, birden çok uygulamayı kendi sunucularında barındıran bir ekip için sunucu modülü daha uygun olabilir. Hangisini seçersen seç, şu soruları sor:

  • Kural seti nasıl güncelleniyor? Yeni bir açık yayımlandığında sanal yama ne kadar sürede geliyor?
  • Yalnız kayıt modu var mı? Kuralları engellemeden önce izleyebilmen gerekir.
  • İstisnalar ne kadar dar yazılabiliyor? Tek bir uç nokta ve tek bir parametre için istisna tanımlayabilmelisin.
  • Kayıtlar dışarı aktarılabiliyor mu? WAF kayıtları merkezi izleme sistemine akmalı.
  • Kaynak sunucu kilitlenebiliyor mu? Uygulama sunucusu yalnız WAF'ın adreslerinden gelen trafiği kabul etmeli.
  • Uyarıya kim bakacak? Kimsenin okumadığı alarm, hiç olmayan alarmdan farksızdır.

Kurulumdan sonra ilk iş, sitenin normal trafiğini birkaç gün kayıt modunda izlemektir.

Yanlış pozitifler nasıl yönetilir?

Yanlış pozitif, meşru bir isteğin saldırı sanılıp engellenmesidir. Kötü yönetilirse ekip WAF'ı kapatır ve koruma tümden kaybolur. Güvenli geçiş şu sırayla yapılır:

  1. Yalnız kayıt moduyla başla. ModSecurity'de bu SecRuleEngine DetectionOnly ayarıdır. Kurallar çalışır ama hiçbir istek engellenmez.
  2. Kayıtları incele. Hangi kuralın hangi uç noktada, hangi parametrede tetiklendiğini çıkar.
  3. Dar istisna yaz. Kuralı tümden kapatma. Yalnız o uç nokta ve o parametre için istisna tanımla. CRS belgesi, kural dosyalarını doğrudan düzenlemeyi açıkça önermez.
  4. Eşiği kalıcı olarak yükseltme. CRS'e göre eşiği varsayılanın üstüne çıkarmak saldırıların önemli bir kısmının geçmesine yol açar. Ayar döneminde geçici olarak yükseltip sonra geri indir.
  5. Engelleme moduna geç ve izlemeyi sürdür. Her yeni özellik yayınında kayıtlara yeniden bak.

WAF kayıtları form alanlarına yazılan değerleri de içerebilir. Bu kayıtlar kişisel veri taşır, bu yüzden erişimi kısıtla ve gereğinden uzun saklama. Bir WAF günlüğünde aynı isteği yüzlerce kez tekrarlayan adresi bulup oran sınırına aldığın senaryoyu saha görevlerinde deneyebilirsin.

Kaynaklar

Sık sorulan sorular

WAF kurarsam SQL injection ve XSS riski biter mi?

Bitmez. WAF bilinen saldırı kalıplarını yakalar ve riski azaltır, ama koddaki açığı kapatmaz. Saldırganlar girdiyi farklı kodlayarak kuralları atlatmaya çalışır ve bazen başarır. Kalıcı çözüm kodda kalır: SQL injection için parametreli sorgu, XSS için bağlama göre çıktı kodlama. WAF bu düzeltmenin yerine değil, yanına konan bir katmandır.

WAF ile IPS arasındaki fark nedir?

IPS, ağ trafiğindeki birçok protokolü imzalarla izler ve şüpheli paketleri durdurur. WAF ise yalnız HTTP ve HTTPS trafiğine odaklanır. İsteğin adresini, başlıklarını, çerezlerini ve gövdesini uygulamanın diliyle okur. HTTPS trafiğini incelemek için şifreyi çözdüğü noktada durur. Bu yüzden web saldırılarında WAF daha ayrıntılı karar verir.

WAF yanlışlıkla gerçek kullanıcıyı engeller mi?

Engelleyebilir. Buna yanlış pozitif denir. Özel karakter içeren bir form, kod paylaşılan bir yorum alanı ya da uzun bir arama kurala takılabilir. Bunu önlemek için WAF'ı önce yalnız kayıt tutan modda çalıştır, kayıtları incele, takılan meşru istekler için dar istisnalar yaz. Engelleme moduna ancak bu ayardan sonra geç.

Küçük bir site için WAF gerekli mi?

Çoğu küçük site için barındırma ya da içerik dağıtım hizmetinin sunduğu yönetilen WAF yeterli bir başlangıçtır. Yine de öncelik sıran şöyle olmalı: güncel yazılım ve eklentiler, güçlü yönetici parolası ve çok faktörlü doğrulama, düzenli yedek. Bunlar yerindeyse WAF, yeni çıkan açıklara karşı zaman kazandıran değerli bir ek katman olur.

WAF HTTPS trafiğini görebilir mi?

Görebilmesi için TLS bağlantısının WAF üzerinde sonlanması gerekir. Bulut WAF'larda bu, sitenin sertifikasının sağlayıcıda kullanılmasıyla olur. Sunucuya kurulan WAF modülleri ise şifre çözüldükten sonra, web sunucusunun içinde çalışır. Şifreli trafiği çözmeden yalnız ileten bir cihaz, isteğin içeriğini okuyamaz ve web saldırılarını ayırt edemez.

  • WAF
  • web uygulama güvenlik duvarı
  • ModSecurity
  • OWASP CRS
  • web güvenliği

İlgili yazılar

Okuduğunu uygula.
Yollarda ders ders ilerle, alıştırmalarla pekiştir.
Başla