İçeriğe geç

WAF nedir? Web uygulama güvenlik duvarı nasıl çalışır

Yazar: Yayın: Güncelleme: 5 dk okuma

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:

  1. Çö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 %27 ile ' karakterini gizleyemesin diye yapılır.
  2. Değerlendirme. Normalleştirilmiş girdiyi kural ve imzalarla karşılaştırır, gerekiyorsa bir risk skoru üretir.
  3. 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:

KonumNasıl çalışırArtısıEksisi
Ters proxy olarak bulut ya da servisDNS trafiği WAF'a yönlendirirKurulumu hızlıdır, origin'den yük alırProxy bir bağımlılık olur
Sunucu içinde modülnginx ya da Apache modülü olarak çalışırEk ağ sıçraması yokSunucunuzun CPU'sunu kullanır
Uygulama içinde kütüphaneKod içinden çağrılırUygulama bağlamını bilirHer 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 id parametresi 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:

  1. WAF'ı önce izleme (monitor) kipinde açın: istekleri değerlendirir ve kaydeder, engellemez.
  2. Bir ila iki hafta olay kaydını inceleyin. Hangi kural hangi meşru isteği yakalıyor?
  3. Meşru isteklere özel istisna ya da kural düzeltmesi yazın.
  4. 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’i yakından inceleyin

Paketleri ve fiyatları inceleyin; hesaplar ekibimiz tarafından açılır, iletişim formundan hesap talebi gönderebilirsiniz.