WAF nedir?
WAF (Web Application Firewall, web uygulama güvenlik duvarı), bir web uygulamasına giden HTTP isteklerini inceleyen ve kurallara uymayanları engelleyen bir güvenlik katmanıdır. Ağ güvenlik duvarı "bu IP bu porta bağlanabilir mi" sorusuna bakar. WAF ise isteğin içini okur: URL, sorgu parametreleri, başlıklar ve gövde.
Bu fark önemlidir. SQL injection saldırısı izinli bir porta (443) ve geçerli bir TCP bağlantısıyla gelir. Ağ güvenlik duvarı bunu normal trafik sayar. Saldırı yalnızca HTTP içeriğinde görünür; bu yüzden uygulama katmanında bir filtreye ihtiyaç duyarsınız.
WAF nasıl çalışır?
Bir WAF her istek için üç adım izler:
- Çözümleme. İsteği ayrıştırır, URL kodlamasını ve benzeri dönüşümleri açar. Bu adıma normalizasyon denir; saldırgan
%27ile'karakterini gizleyemesin diye yapılır. - Değerlendirme. Normalleştirilmiş girdiyi kural ve imzalarla karşılaştırır, gerekiyorsa bir risk skoru üretir.
- Karar. İsteği geçirir, engeller, kaydeder ya da bir doğrulama sorar.
Örnek bir SQL injection girişimi şöyle görünür:
GET /urunler?id=1' OR '1'='1 HTTP/1.1
Host: example.com
Uygulama id değerini sorguya doğrudan yapıştırırsa, koşul her zaman doğru olur ve tüm satırlar döner. WAF ' OR '1'='1 kalıbını tanır ve isteği uygulamaya iletmez.
Bir XSS denemesi de benzer şekilde parametre içinde gelir:
GET /ara?q=<script>alert(document.cookie)</script> HTTP/1.1
Host: example.com
Uygulama q değerini çıktıya kaçışsız yazarsa, tarayıcı betiği çalıştırır. WAF <script> etiketini ve çerez erişimini yakalar.
WAF nerede durur?
Üç tipik konum vardır:
| Konum | Nasıl çalışır | Artısı | Eksisi |
|---|---|---|---|
| Ters proxy olarak bulut ya da servis | DNS trafiği WAF'a yönlendirir | Kurulumu hızlıdır, origin'den yük alır | Proxy bir bağımlılık olur |
| Sunucu içinde modül | nginx ya da Apache modülü olarak çalışır | Ek ağ sıçraması yok | Sunucunuzun CPU'sunu kullanır |
| Uygulama içinde kütüphane | Kod içinden çağrılır | Uygulama bağlamını bilir | Her uygulamaya ayrı entegrasyon gerekir |
Ters proxy modelinin ayrıntıları için ters proxy nedir rehberine bakın.
OWASP Top 10 ile ilişkisi
OWASP Top 10, web uygulamalarındaki en yaygın risk kategorilerini listeler. Kırık erişim denetimi, enjeksiyon, kriptografik hatalar ve güvenli olmayan tasarım bu listede yer alır. Çoğu WAF kural setini bu kategorilere göre düzenler.
Bir noktayı atlamayın: WAF Top 10'u tek başına çözmez. Kırık erişim denetimi gibi mantık hataları genelde geçerli bir istek gibi görünür. WAF "bu kullanıcı bu kaydı görmeli mi" sorusunu bilemez; bunu uygulamanızın kodu çözer. Açık kaynaklı OWASP Core Rule Set, bu alanda yaygın kullanılan bir kural kümesi örneğidir.
İmza tabanlı ve davranış tabanlı tespit
İmza tabanlı tespit bilinen saldırı kalıplarını (genelde düzenli ifadeler) arar. Hızlıdır, kararı açıklanabilir ve hangi kuralın tetiklendiği görülür. Zayıf yanı, yeni ya da kaçınılmış (obfuscated) bir kalıbı kaçırabilmesidir.
Davranış ya da anomali tabanlı tespit normal trafiğin bir profilini çıkarır ve sapmayı işaretler: bir IP'nin dakikada yüzlerce farklı yola istek atması gibi. Bilinmeyen saldırıyı yakalama şansı yüksektir, ama yanlış alarm ihtimali de artar ve profili öğrenmek zaman alır.
Pratikte iyi bir kurulum ikisini birleştirir: gövdedeki saldırı kalıpları için imza, istek hızı ve istemci davranışı için anomali sinyalleri.
Negatif ve pozitif güvenlik modeli
- Negatif model (kara liste): Bilinen kötüyü engeller, geri kalanını geçirir. Kurması kolaydır; bu yüzden çoğu WAF varsayılan olarak bunu kullanır.
- Pozitif model (beyaz liste): Yalnızca bilinen iyiyi geçirir. Örneğin
idparametresi yalnızca rakam olabilir. Çok güçlüdür, ama her uç nokta için kural yazıp bakımını yapmayı gerektirir.
Pozitif modeli en azından kritik uç noktalarda (giriş, ödeme, yönetim) uygulayın. API'ler için şemaya dayalı doğrulama bunun doğal biçimidir; ayrıntı için API güvenliği: rate limit ve WAF rehberine bakın.
Yanlış pozitifler ve izleme kipiyle ayarlama
Yanlış pozitif, meşru isteğin engellenmesidir. Bir CMS yönetim paneli gövdede HTML gönderir; WAF bunu XSS sanabilir. Bir geliştirme blogu SQL örneği yayımlar; imza buna takılır.
Güvenli yol şudur:
- WAF'ı önce izleme (monitor) kipinde açın: istekleri değerlendirir ve kaydeder, engellemez.
- Bir ila iki hafta olay kaydını inceleyin. Hangi kural hangi meşru isteği yakalıyor?
- Meşru isteklere özel istisna ya da kural düzeltmesi yazın.
- Engelleme kipine geçin ve ilk günlerde kaydı yakından izleyin.
Bir WAF'ın yanlış pozitif oranını satıcının söylemesine güvenmeyin; kendi trafiğinizde ölçün. Satıcıya ne ölçtüğünü sorun. Sorulacak diğer soruları WAF seçerken sorulacak 10 soru listesinde topladık.
WAF'ın sınırları
- Güvenli kodun yerini almaz. WAF bir yama değildir. Parametreli sorgu, çıktı kaçışı ve erişim denetimi uygulamada kalır.
- Mantık hatalarını göremez. Geçerli görünen ama yetkisiz bir istek WAF'tan geçer.
- Kaçınma yolları vardır. Her imza motoru, kodlama ve parçalama numaralarıyla zorlanır. Normalizasyon bunu azaltır, sıfırlamaz.
- Origin'i doğrudan açıkta bırakırsanız işe yaramaz. Saldırgan origin IP'sini bulursa WAF'ı atlar. Bunu origin IP gizleme ve Origin Lock rehberinde anlattık.
- Gizli veri sızmasına karşı sınırlıdır. Kaynak hata mesajlarını maskelemek (CWE-209) yardımcı olur ama uygulamanın kendi hatasını düzeltmez.
Nexren Shield bunu nasıl ele alır
Yalnızca doğrulanmış olgular:
- WAF, 600'den fazla imza kuralıyla çalışır; kurallar SQLi, XSS, RCE, LFI ve SSRF ailelerini kapsar; bunlar OWASP Top 10 kategorileriyle örtüşen saldırı aileleridir.
- Motor regex ve girdi normalizasyonuna dayanır. Girdiyi sözdizimi ağacına ayırmaz.
- Yanlış pozitif oranını ölçmedik. Bu yüzden yeni bir siteyi önce Monitor modunda açmanızı öneririz.
- Koruma modları: Off, Monitor (tespit eder ve kaydeder, engellemez), Balanced ve Under Attack.
- Başlık, yol, sorgu, IP ve yönteme göre özel kurallar yazabilirsiniz.
- Kaynak hata mesajları maskelenir (CWE-209).
- Meşru isteklerin gövdesi analiz için saklanmaz; güvenlik olayı kayıtları kural eşleşmeleri için tutulur.
Ürüne genel bakış için Nexren Shield nedir rehberini okuyun; paketler için fiyatlandırma sayfası var.
Ne zaman WAF eklemeli?
Uygulamanız internete açıksa ve kod tabanınızı her gün gözden geçiremiyorsanız WAF mantıklı bir ek katmandır. Eski bir CMS'i, yamalanması geciken bir eklentiyi ya da kaynağına dokunamadığınız üçüncü taraf bir uygulamayı korurken özellikle işe yarar: WAF, yama gelene kadar bilinen sömürü kalıplarını uygulamadan uzak tutar.
Ama sırayı bozmayın. Önce parametreli sorguları, çıktı kaçışını ve yetkilendirmeyi doğru kurun. WAF'ı bu temelin üstüne, ikinci savunma hattı olarak koyun.
Kaynaklar
İlgili ürün sayfaları:Teknoloji
Sık sorulan sorular
WAF ile ağ güvenlik duvarı arasındaki fark nedir?
Ağ güvenlik duvarı IP, port ve protokole bakar. WAF HTTP isteğinin içini okur: yol, parametre, başlık ve gövde.
WAF HTTPS trafiğini nasıl inceler?
WAF, TLS'i kendi üzerinde sonlandırır, isteği çözüp inceler ve origin'e iletir. Bu yüzden TLS'i çözebilen bir konumda durması gerekir.
WAF kurduktan sonra güncelleme yapmam gerekir mi?
Yazılımınızdaki açıkları yine yamamalısınız. WAF yama gelene kadar bilinen sömürü kalıplarını yavaşlatır, ama açığı kapatmaz.
Yanlış pozitif ne demek?
Meşru bir isteğin saldırı sanılıp engellenmesidir. Örneğin bir blog yorumunda yazılan SQL örneği imzaya takılabilir.
Her WAF yapay zekâ ile mi çalışır?
Hayır. Birçok WAF imza ve kural tabanlıdır. Bir ürünün 'akıllı' dediği şeyin ne olduğunu, hangi girdiyle nasıl karar verdiğini sormak gerekir.
İlgili rehberler
Nexren Shield nedir? Ters proxy tabanlı web güvenlik servisi
Nexren Shield, web uygulamalarınızın önüne oturan bir ters proxy güvenlik servisidir.
API Güvenliği: Rate Limit ve WAF Neyi Çözer, Neyi Çözmez?
API güvenliği iki ayrı iş içerir: dışarıdan gelen kötü trafiği süzmek ve uygulamanın yetki mantığını doğru kurmak.
WAF Seçerken Sorulacak 10 Soru: Alıcı Rehberi
WAF, DDoS ve bot koruması satın alırken pazarlama sayfası yerine on soruya bakın: TLS anahtarını kim tutar, kapasite nasıl kanıtlanır, yanlış pozitif ne olur, veri nerede durur, origin nasıl korunur, çıkış nasıl yapılır.
Ters proxy nedir? Reverse proxy mantığı, TLS ve güvenlik
Ters proxy, istemcilerin bağlandığı ve istekleri arkadaki sunucuya ileten ara katmandır.