Web uygulaması güvenlik duvarı

Açıklama

Bir web uygulamaları güvenlik duvarı, özel olarak web uygulamalarına uygulanan özel bir uygulama güvenlik duvarı çeşididir. Web uygulamalarının önüne yerleştirilir ve kötücül herhangi bir şeyi tespit edecek ve engelleyecek şekilde çift yönlü web tabanlı (HTTP) trafiği analiz eder. OWASP, WAF için şu genel teknik tanımı sağlamaktadır: “teknik açısından uygulamanın kendisine dayanmaksızın web uygulaması düzeyinde bir güvenlik çözümü". 6.6. gereksinim için PCI DSS Bilgi Eki'ne göre, WAF "bir web uygulaması ve son kullanıcı istemci arasında yerleştirilmiş bir güvenlik politikası uygulayıcısı. Bu fonksiyonalite, yazılım veya donanım üzerinden yani bir uygulama cihazı ile veya yaygın bir işletim sistemi üzerinde çalışan sıradan bir sunucu ile uygulanabilir. Tek başına bir cihaz olabileceği gibi diğer ağ bileşenleriyle de entegre edilebilmektedir." şeklinde tanımlanmaktadır. Diğer bir deyişle, WAF, web uygulamalarındaki açıklıkların harici tehditler tarafından istismar edilmesini engelleyen sanal veya fiziksel uygulama olabilmektedir. Bu açıklıklar, uygulamanın kendisi eski olduğu için veya tasarım olarak yetersiz bir şekilde kodlandığı için olabilmektedir. WAF, bu sorunları özel kural setlerinin ve politikaların yapılandırılmasıyla çözmektedir.
Daha önceden bilinmeyen açıklıklar, sızma testleri veya açıklık taramaları sayesinde tespit edilebilmektedir. Web uygulama güvenlik tarayıcısı olarak da bilinen, bir web uygulamaları zafiyet tarama aracı, SAMATE NIST 500-269'da şu şekilde tanımlanmıştır: "web uygulamalarını olası güvenlik zafiyetleri için inceleyen otomatize bir program. Web uygulamalarına özgü açıklıklar için aramaya ilave olarak, araçlar yazılım kodlama hatalarına da bakabilmektedir.” Açıklıkların giderilmesi genellikle çözüm aşaması olarak anılmaktadır. Kod düzeltmeleri uygulama üzerinde yapılabilmektedir, ancak  genelde daha hızlı bir çözüm gerekmektedir. Bu tür durumlarda, geçici ama hızlı bir çözüm sağlamak için özgün bir web uygulama açıklığına özel bir politikanın uygulanması gerekebilmektedir.
WAF'lar nihai bir güvenlik çözümü değildir, ancak bütünsel bir savunma stratejisi sağlamak için, ağ güvenlik duvarları ve saldırı tespit sistemleri gibi diğer ağ seviyesinde güvenlik çözümleri ile beraber kullanılması için tasarlanmıştır.
WAF'lar genellikle, SANS Institute tarafından belirtildiği gibi pozitif güvenlik modeli, negatif güvenlik modeli ya da bu ikisinin bir birleşimini kullanmaktadır.  WAF'lar siteler arası betik çalıştırma ve SQL enjeksiyonu gibi saldırıları engellemek için kural tabanlı mantık, ayrıştırma ve imzaların bir kombinasyonunu kullanmaktadır. OWASP, ilk on web uygulaması güvenlik zafiyetlerinin bir listesini oluşturmaktadır. Tüm ticari WAF teklifleri, en azından bu on zafiyeti kapsar. Ayrıca ticari olmayan seçenekler de bulunmaktadır. Daha önce belirtildiği gibi, ModSecurity olarak isimlendirilen açık kaynak kodlu WAF motoru bu seçeneklerden birisidir. Tek başına bir WAF motoru yeterli koruma sağlayamaz, bu yüzden Trustware'ye ait Spiderlabs ile birlikte OWASP, ModSecurity WAF motoru ile kullanılması için GitHub aracılığıyla temel bir kural seti oluşturmuştur ve devam ettirmektedir.

Kullanım seçenekleri

Çalışma modları için verilen isimler değişse de, WAF'lar temelde üç farklı şekilde kullanılmaktadır. NSS Labs'a göre, kullanım seçenekleri şeffaf köprü, şeffaf ters vekil sunucu ve ters vekil sunucudur. 'Şeffaf' HTTP trafiğinin doğrudan web uygulamasına gönderildiğini ifade etmektedir, bu yüzden WAF istemci ile sunucu arasında şeffaftır. Bu durum, WAF'ın ters vekil sunucu olarak çalıştığı ve istemci trafiğinin doğrudan WAF'a gönderildiği ters vekil sunucu kullanıma aykırıdır. WAF sonrasında filtrelenmiş trafiği ayrı bir şekilde web uygulamalarına göndermektedir. Bu IP maskeleme gibi ilave faydalar sağlayabilir, ancak performans gecikmesi gibi dezavantajlar da getirebilmektedir.

Ticari satıcılar

Pek çok ticari WAF ürünü aynı özelliklere sahiptir, ancak aralarındaki en büyük farklılıklar kullanıcı arayüzleri, kullanım ve kurulum seçenekleri veya belirli bir ortam içerisindeki gereksinimleri olmaktadır.