WAF

 

WEB Application Firewall

(Web Uygulama Güvenlik Duvarı)

 


 

 

WAF Nedir

Web Application Firewall (Web uygulama güvenlik duvarı), WAF her geçen gün karmaşıklaşan sistemlerde, web trafiği üzerinden gelen anormallikleri tespit ederek belirlenen kurallar çerçevesinde gelen taleplerden saldırgan amaçlı talebi engellemek üzere kurulmuş bir teknolojidir. Web uygulamalarımızı saldırgan ziyaretçilerin korumak için web sitesi sunucularına gelen ve giden trafiği izler anormal bir trafik paketini filtreler. WAF, işletmelerin gizli ve hassas bilgilerini güvende tutulmasına yardımcı olan bir araçtır. WAF OSI katmanın 7.katmanında çalışır. HTTP, HTTPS, SOAP, XML, RPC gibi protokoller üzerinde detaylı paket analizi yaparak zararlı istekleri bloklar. Geleneksel güvenlik duvarları sunucular arasında bir güvenlik geçidi olarak hizmet verirken, WAF ise web uygulamasına ait içeriği filtreleyebilir. WAF, web uygulamalarındaki zafiyetleri tarayabilir. Zafiyet tespit ettiğinde, potansiyel bilgisayar korsanlarının onları bulmasını otomatik olarak engeller ve sorunu hemen düzeltmeye odaklanır.

Genel çalışma mantığı olarak WAF, web uygulamaları ile kullanıcılar arasında durur böylelikle kullanıcı web uygulamasına istekte bulunur web uygulamasına ulaşmadan istek WAF, HTPP paketini analiz eder bir risk algılandığında trafiği keser ve kullanıcının tüm isteklerini ret eder.  WAF, web uygulaması ile internet arasındaki kötü amaçlı trafiği engelleyerek, filtreleyerek web uygulamalarını korur ve aynı zamanda web uygulamasındaki verilerin dışarı çıkmasını da engeller.

 

Verizon Veri İhlali soruşturmaları Raporunda bildiği üzere, özellikle web uygulaması saldırılarının ihlalleri en çok görünen nedeni olarak görülmesinden sonra web uygulaması güvenliği kritik bir bileşeni haline gelmiştir bundan dolayı WAF kullanımına talep artmıştır.

 

WAF Kullanımı Alanları

web uygulaması kullanan bütün kurum kuruluşlar kullanabilir. Örnek olarak e-ticaret siteleri, Hastane randevu sistemleri, Üniversiteler …

 

 

WAF Koruyor Olabildiği Ataklar;

·        Siteler arası komut dosyası çalıştırma saldırıları (XSS attacks)

·        Kötü amaçlı yazılım saldırıları (Malware attacks)

·        SQL enjeksiyon saldırıları (sqli)

·        DDOS koruması

·        veri ihlallerini önlemek için web uygulamalarını korur

·        Kötü amaçlı internet trafiğinden korur.

·        Command İnjection

·        Local File İncluding

·        Buffer Overflow

·        Brute-Force Attack

·        Cookie-Session Posioning

·        Session Hijacking

·        Senstive Ingormation Leaks

·        Sever Misconfiguration

·        Wall-known latfrom Vulnerabilities

·        Form-Hidden Field Maniğulation

·        Parameter Tamper

·        Remote File İncluding

·        File Upload

 

 

 

WAF örnekleri

Donanım olarak

·        Monitorapp AIWAF

·        Barracuda Networks WAF

·        Citrix Netscaler Uygulama Güvenlik Duvarı

·        F5 Big-IP Uygulama Güvenlik Yöneticisi

·        Penta Security WAPPLES

·        Imperva SecureSphere

·        Fortinet FortiWeb

·        Positive Technologies, PT Uygulama Güvenlik Duvarı

·        Ergon Informatik AG, Airlock WAF

Bulut olarak

·        AIONCLOUD

·        Akamai Technologies Kona

·        AWS WAF

·        Bekchy

·        Cloudbric

·        Cloudflare

·        F5 Silverline

·        Imperva Incapsula

·        Verizon Defend

 Açık Kaynak

·        ModSecurity

·        Naxsi

·        Aqtronix

 

 

 

Nasıl Çalışır


Genel çalışma mantığı olarak WAF, web uygulamaları ile kullanıcılar arasında durur böylelikle kullanıcı web uygulamasına istekte bulunur web uygulamasına ulaşmadan istek WAF HTPP iletişimini analiz eder bir risk algılandığında trafiği keser ve kullanıcının tüm isteklerini ret eder. Güvenliği sağlamak için WAF’lar tüm http isteklerini yakalar ve inceler. Sahte trafik, zararlı botlar ve malwareler engellemek için tasarlanmış captcha testleri ile basitçe engellenir veya test edilir. WAF; Açık Web Uygulaması Güvenlik Projesi olan OWASP tarafından listelenen en önemli web uygulama zafiyetlerini ele alması gereken özelleştirilmiş politikalar üzerine inşa edilmiş güvenlik prosedürlerine dayanmaktadır buna imza tabanlıda denilmektedir. 

Temel Çalışma mantığına bakacak olursak;

         Gelen http paketlerinin bileşenlerine ayırır (Parsing)

         Verinin normalleştirilmesi (decoding)

         Filtreleme kurallarının işletilmesi (regex)

         Gelen trafiğin zararlı ya da zararsız olduğuna karar verilmesi

 

WAF’ın Analiz Etmek İçin Kullandığı Güvenlik Modelleri


Beyaz Liste Modeli (Positive Security Model): WAF varsayılan olarak tüm istekleri ret eder yalnızca izin verilen istekleri güvenilir olduğunu döndüren güvenlik modelidir. Güvenli olduğunu bildiği IP adreslerinin bir listesini sağlar ve bu liste doğrultusunda işlem yapar.

Kara Liste Modeli (Negative Security Model): Varsayılan isteklerin geçmesine izin verir, önceden belirlenmiş güvenlik açıklarından faydalanan saldırı imzalarını engeller. Yasaklanmış ağ paketleri dışında her şeye izin verir.

Karma Liste Modeli (Mixed Security Model): Kara liste ve Beyaz liste beraber kullanıldığı güvenlik modelidir.

Learing-Based Firewall: Gelen ve giden istekleri inceleyerek web sayfalarının haritasını çıkarmaya çalışır. Daha önceden gerçekleştirilen saldırılardan yeni tip saldırıları tahmin etmeye çalışır böylelikle yeni tip saldırılarda koruma sağlar.

 

 

 

WAF Yerleşim Planları

WAF; inline bridge, offline (passive). integrated ve reverse Proxy olmak üzere 4 yere yerleştirebiliriz. WAF aracımızı yerleştireceğimiz yere göre seçmeliyiz aksi takdirde efektif bir verim sağlamayacaktır.

Inline (Bridge) Yerleşim Modeli:

Bu modelde WAF aracı web sunucuların önüne bridge modda yerleştirilerek trafiği üzerinden geçirmesi ve incelenmesi sağlanır. Network tabanlı IPS benzeri bulunduğu konum üzerinden geçen tüm trafiği inline alır, inceler ve duruma göre bloklama yapar.

Sistemde yaşanacak bir arıza sonrasında web trafiğinin kesilmesi durumu olabilmektedir. Bu problemin çözümü için cihazda yaşanacak bir problem sonrası trafiğin akmaya devam etmesi (fail-open) özelliğinin aktif olması gerekmektedir.

Offline (passive) Yerleşim Modeli:

WAF aracı web sunucuların olduğu switch üzerinden akan trafiği kopyalayarak web sunucusuna giden trafiğin kopyasını alır. Alınan kopya trafik üzerinde detaylı paket analizi yapılarak zararlı istekler için cevap üretir bu cevaplar genel olarak TCP/RST paketleridir. Burada şöyle bir sorun oluşmaktadır saldırganın gönderdiği isteğin cevabı WAF tarafından gönderilecek TCP/RST paketlerinin cevap paketlerinden önce ulaşabilir ya da saldırgan http kullanarak geriye yönelik udp bağlantısı açmaya çalıştığında WAF cihazı işlevsiz kalabilir.

Bütünleşik Yerleşim Modeli:

WAF; işletim sistemine, web sunucusuna yerleştirilmiştir. Bundan dolayı x bir ürün Linux işletim sistemlerinde çalışırken Windows sistemlerde çalışmaz. Bu model WAF yerine göre avantajlar sağlamaktadır.

Reverse Proxy Yerleşim Modeli:

Proxy mantığıyla çalışmaktadır. Web sayfasına ulaşmaya çalışan tüm istemciler web sunucu yerine reverse Proxy modun daki WAF sistemine ulaşır. WAF istediği alır gerekli incelemelerden geçirildikten sonra arkadaki web sunucuya iletir veya istek zararlı ise bloklanır.

Web sunucuya gelen her istek ve dönen her cevap WAF sistemi üzerinden geçeceği için yine diğer yerleşim yöntemlerine oranla gecikme oranı daha yüksektir. Yazlım ürünü olan WAF, genellikle cihazlardan daha kolay bir yükseltme yolu sağlar. 

 

 

WAF Dahil Edilirken Dikkat Edilmesi Gereken Hususlar

WAF güvenlik uygulamasını bulut, donanım veya yazılımsal olarak seçim yapabiliriz. Yazılım olarak WAF daha ucuz ve daha kullanışlıdır. Donanım veya yazılım seçeneklerini değerlendirirken ölçeklenebilirliği ve performans dikkate almak gerekir. Bazı cihazlar, saatte kaç işlem yapabilecekleri konusunda sınırlı olabilir. 

WAF seçmek için;

·        Güvenlik politikası hedeflerinize ve yasal gereksinimlere göre ne yapması  
 gerekir ?

·         Hangi ek hizmetleri yanında sunuyor ?

·        Mevcut networkünüze uyumu var mı ?

·        Mevcut hizmetleri nasıl etkiliyor ?

·        Özel protokolleri destekliyor mu ?

·        Uygulama protokollerini korur mu ?

·        Destek politikaları neler ?

·        WAF ürünü otomatik güncellemeleri yapıyor mu ?

·        Dinamik imzaları uygulayabiliyor mu ?

·        Maliyeti ne kadar ?

sorularını sormamızda fayda var.

Tabi sorulara cevap vermeden önce; güvenlik politikamızı güncellememiz eğer güncel ise bir göz gezdirmemiz gereklidir. Güvenlik politikamız ne kadar iyi olursa verilerimizin güvenliği o kadar yükselir. Her web uygulaması benzersiz olduğundan, güvenli yaşam döngüsü geliştirme programınızın tehdit modellemesi sırasında belirlenen potansiyel tehditlere karşı koruma sağlamak için güvenliğimize özel olarak uyarlanması gerekir.

Güvenlik yaşam döngüsünü test edin; güvenli hale getir, izle, test et ve geliştir. Networkümüze herhangi bir cihaz bağlanmadan önce, ağ alt yapısını kontrol etmekte fayda var. WAF ürünü kurulduktan sonra saldırı taktiklerini uygulayarak ne kadar başarılı olduğunu görün

 

 

WAF’ta Olması Gereken Özellikler

WEB Uygulaması Güvenlik Duvarı, kuruluşun güvenliğini tehdit edebilecek karmaşık saldırılara karşı ilk savunma hattıdır. En etkili ve verimli çözümler olarak;

·        Giriş koruması– kapsamlı uygulama profili oluşturma, kabul edilebilir kullanıcı girdisini algılar.

·        http doğrulaması– http güvenlik kusurlarını tespit eder ve saldırıları engellemek için özel doğrulama kuralları belirler.

·        Veri sızıntısı önleme– erken uyarı veri sızıntısı algılama sistemi, savunmasız güvenlik yapılandırmalarını algılar ve özel verileri tanımlar, filtreler ve korur.

·        Otomatik saldırı engelleme– Otomasyon araçları, ağınızı kötü niyetli trafikten korumak için proaktif önlemler alır.

·        Trafik akışlarına yaşanabilecek yoğunluğu önleyebilir.

·        Basit ilke yönetimi için merkezi, ölçeklenebilir bir güvenlik sağlar.

 

WAF Test Süreci

Etkili bir WAF süreci oluşturulması için test aşamasının yapılması gerekmektedir. En doğru WAF testi, uygulama üzerindeki mantıksal saldırılara karşı etkinliği ölçer. WAF test çerçevesi;

1-     Uygulamanın önünde WAF olmadan test edin.

2-     Varsayılan yapılandırmada WAF saldırıların ne kadar engellemekte olduğunu test edin.

3-     Saldırı engelleyemeceğini belirlemek için WAF’ı yapılandırın.

4-     WAF onları engelleyecek şekilde yapılandırıldıktan sonra saldırıların başaralı bir şekilde engellenmediğini test edin.

Bu WAF test süreci, WAF’ın uygulamaya fayda sağlayıp sağlamadığını belirler ayrıca WAF’ın belirli saldırılara karşı koruma sağlayacak şekilde yapılandırmasında da olanak tanır. WAF’ın mantıksal saldırılara karşı ne kadar etkili olduğunu belirler.

 

 

 

 

Geleneksel Firewall Ve WAF Arasındaki Fark

Firewall sistemler arasındaki bilgi akışını filtrelerken, WAF’lar belirli bir web uygulaması için trafiği filtreler. Firewall ve WAF birlikte çalışabilirler.

Geleneksel güvenlik yöntemleri arasında ağ güvenlik duvarları, saldırı tespit sistemleri (IDS) ve izinsiz giriş önleme sistemleri (IPS) bulunur bu sistemler OSI katmanı L3 ve L4 trafiğini filtreleme yeteneğine sahiptir. http sunucusundan istenen web sayfalarını gönderen ve alan bağlantı noktasının açık veya kapalı olması durumu OSI L7 L6 katmanında çalışır bu nedenle WAF bu L6 ve L7 tarafından gelebilecek saldırıların savunmasında ön plana çıkmaktadır.

 

 

WAF için Virtual Patching Kavramı

Vitual Patching (Sanal Yamalama), güvenlik açığı bulunan kodu değiştirmeden, yazılımdaki belirli bir güvenlik açığını azaltan yamalama işlemidir.
IPS (Intrusion Prevention Syytem) yani saldırı önleme sistemlerinde ilk olarak kullanılmıştır artık son zamanlarda WAF’lar tarafından da kullanılmaktadır.

Vitual Patching, kötü amaçlı trafiğin zafiyetli uygulamaya ulaşmasını önlemek için güvenlik denetimi kaymanını kullanarak işlemleri analiz eder.

Avantajları;

·        Tüm sunuculara yama yüklemeye gerek yoktur bir kaçına uygulandığında yeterlidir bundan dolayıda ölçeklenebilir çözüm sunar.

·        Oluşturulması gereken yama oluşana kadar riskleri azaltır.

·        Acil yama gerektiği zaman hem maddiyattan  hem de zamandan tasarruf ettirir.

 

 

Açık Kaynaklı WAF  (Modsecurity)

 

Açık kaynaklı WAF’lar, kuruluşlara özelleştirilmiş güvenlik politikaları dağıtma, karmaşık saldırıları izlemek ve önlemek için özel güvenlik panoları geliştirme ve BT güvenlik ekiplerinin şirket içi waf’larla devreye alması için daha fazla esnek zaman alabilecek rutin güvenlik görevlerini otomatikleştirme konusunda daha fazla esneklik sağlar. Açık Kaynaklı Web uygulaması güvenlik duvarları WAF’ın korumaya almış olduğu tüm saldırı çeşitlerinden korur ancak tam özellikleri sağlayabilmesi için yapılandırılması gerekmektedir buda zaman kaybına ve karmaşıklığa sebep olmaktadır.

Açık Kaynak Kodlu ücretsiz olarak kullanabileceğimiz ModSecurity örnek verebiliriz.

ModSecurity, web uygulamaları için geliştirilmiş web servislerinde gömülü bir şekilde çalışan web uygulama güvenlik duvarıdır. Bunun anlamı kurulu olan web sunucusuna istediğimiz zaman ilave edilebilir ve devre dışı bırakabiliriz. ModSecurity’nin bu kullanım şekli ile daha önce var olan networkümüzde herhangi bir değişiklik yapmamıza gerek kalmaz. Web sunucumuzla bir bağlantısı olmadığından taşınabilirliği kolaydır. Temel çalışma mantığı http trafiğini dinleyip analiz eder. Web uygulamaları için saldırı tespit etme ve engelleme görevi görür.

 

MoSecurity Nasıl Çalışır

Linux ve Windows işletim sistemlerinde desteklenir ve bir web sunucusu (Apache, IIS) modül olarak çalışır. ModSecurity web sunucusuna gelen tüm istekleri ve bu isteklere gönderilen yanıtları kontrol eder. Kontrol başarılı olursa, içeriği almak için http isteğini web sitesine yönlendirir kontrol eğer başarısız olursa ModSecurity’de belirlenen kurallar dahilinde yanıt oluşturulur.

Avantajları;

·        Apache log kaydı tutmaz ModSecurity HTTP trafiği üzerinde her türlü veriyi kayıt altına tutar

·        Gerçek zamanlı veri analizi yapar.

·        Saldırı tespit ve öenleme için anında müdahaleler yapmamıza yarayan kurallar yazabiliriz.

·        ModSecurity kural motoru (SecRuleEngin) çok esnek kurallar yazmamızı sağlar. HTTP işlem dataları üzerinde bize özel programlama dili sunar

 

 

ModSecurity Saldırılara karşı anında tepki verir bunu 3 farklı yolla gerçekleştirilebilir;

1-     Negative Security Model (Negatif Güvenlik Modeli):
Anormal olan istekleri, sıra dışı hareketleri ve genel web uygulama ataklını izler. ip adresi, oturum, kullanıcı hesabı gibi detaya bakıp bunların sonucuna göre kuralların işlenmesi sağlanır.

2-     Positive Security Model (Pozitif Security Model):
Bu modelde sadece geçerli tanımlanan istekler kabul edilir ve bu istekler dışındakiler tümüyle reddedilir.

3-     Know Weaknesses and Vulnerabilities (Bilinen Zayıflıklar Ve Açıklar):
ModSecurity Kural yazılması sayesinde, dışarıdan gelen saldırılara karşı yamalar yapmamızı sağlar Bu yamalar sunucunun kendi açıklarından ziyade üçüncü parti yazılımlardan kaynaklanan açıklardır. Bu yazılımdan kaynaklanan zafiyetler kapatılana kadar ModSecurity ile yama oluşturuluabilir.

  

 

WAF Keşfi

 

WAF olduğunu anlamanın çeşitli yolları vardır bunlardan ilki waf00f aracını kullanmak, başla bir yöntem olarak birden fazla istek art arda atıldığı zaman bağlantı kesiliyorsa burada güvenlik duvarı olduğu anlaşılabilir, nmap script taramasında WAF olduğunun tespiti yapılabilir.

 

wafw00f kullanarak;

terminal açılarak

sudo wafw00f hedef_url_adresi

wafwoof tarama gerçekleştirir tamanın çıktısına göre WAF varsa bulduğunu markasını söyler eğer WAF bulamaz ise bulamadığını söyler.

 

 

 

nmap kullanılarak tespit edilmesi

 

nmap –script parametresine “ http-waf-detect” eklenerek tespit edileblir.

kullanılan komut;

nmap -p80 –script http-waf-detect <host>

kullanılan komutun çıktısı şu şekilde olmaktadır.

PORT   STATE SERVICE
80/tcp open  http
|_http-waf-detect: IDS/IPS/WAF detected

 

 

 

 

WAF Atlatma Çalışmaları

 

         WAF’lar gelen istedğin IP adresini Header’lara bakarak anlayabilir. WAF kontrol etmeyeceği IP adresleri bulunmaktadır bunlara örnek olarak Cache sunucusu ip adresi (forwarded-for), Proxy Sunucusu ip Adresi (remote-IP), Local Host ip adresleri (originating-ip), Yerel Ağ ip adresleri (remote-addr), karmaşık string ifadeleri (remote-ip) yani bu ip adreslerinden gelen istekleri analiz etmezler eğer saldırgan bu ip adreslerinden geliyomuş gibi yaparsa WAF filtrelemesini atlatabilir.

         WAF gelen istekleri analiz ettiği zaman güvenlik modelindeki listelere bakar eğer listede eksik değerler var ise bu değerler kullanılarak WAF atlatılabilir;
Örneğin;
<script>alert(123)<script>  -> ASCII karakterli olarak filtreleyebilir fakat
<sCripT>AleRt(123)</scRIpt>    -> bu yöntemle atlatılabilir

         Çeşitli encode yöntemleri kullanılarak WAF anlaması engellenebilir encode işlemi olarak base64 url encoding kullanılabilir.
Örneğin sqli zafiyetinde en çok kullanılan ‘ işareti ASCII karakter olarak engellenmiş olabilir lakin farklı enconding yöntemleri kullanılarak WAF’ın anlaması engellenbilir.
Ascii –  

URL Encode – %27
Double URL Encode – %2527
UTF-8 (2 byte) – %c0%a7  
UTF-8 (JAVA) – uc0a7  
HTML Entity – &apos;
HTML Entity Number – &#27;
Decimal – &#39
Unicode URL Encoding – %u0027
Base64 – Jw==

 

 

 

         Aynı işlevi gören farklı fonksiyonlar kullanılabilir yani <script>alert(“xss”>)</script> javascript farklı olarak <img/src=”xss.png”alt=”xss”> yazılarak WAF güvenlik modelinde olmayan bir fonksiyon kullanılarak zafiyeti sömürebiliriz
<script>alert(“xss”>)</script>  benzer fonksiyonlar;
<img/src=”xss.png”alt=”xss”>
 
<object data=”javascript:alert(1)”>uyg.asp?id=<object>< param name=”src” value=”javascript:alert(1)”></param></object>
 
<isindex type=image src=1 onerror=alert(1)>

<isindex action=javascript:alert(1) type=image>

<img src=x:alert(alt) onerror=eval(src) alt=0>

<meta style=”xss:expression(open(alert(1)))” />

 

         Benzer mantıksal operatörler kullanılarak WAF sitemi atlatılabilir yani AND operatörü yerine && kullanılabilir.

 

         Yorum karakterleri eklenerek WAF anlamlandırmasını zorlaştırılır böylelikle WAF güvenlik modeli bypass edilebilir.  /**//*/

 

         Bellek taşması yöntemi kullanılarak WAF bypass edilebilir.

 

         XML fonksiyonlarının sql tarfından desteklenir bundan dolayı WAF XML fonksiyonlarını kendi içerisinde anlamlandıramadığı için WAF bypass edebilir.
SELECTUpdateXML(‘<scriptx=_></script>’,’/script/@x’,’src=//0x.lv’);

 

         WAF’ların kurulumu yapılırken SSL için gerekli ayarlamalar genellikle göz ardı edilir. SSL ile ilgili ayarların yapılmadığı bir WAF sisteminde SSL trafiği kullanılarak yapıla saldırı engellenemez böylelikle WAF bypass edilebilir.

 

         WAF’ın çalışmasını engelleyecek kadar XML, SOAP, regular expression istekleri yollanır ve WAF görevini yapamaz hale gelebilir.

 









Kaynaklar

 

https://tr.wikipedia.org/wiki/Web_uygulamas%C4%B1_g%C3%BCvenlik_duvar%C4%B1

https://docs.microsoft.com/tr-tr/azure/app-service/environment/app-service-app-service-environment-web-application-firewall

https://www2.slideshare.net/bgasecurity/web-application-firewall-tercih-rehberi?ref=https://www.bgasecurity.com/

https://nmap.org/nsedoc/scripts/http-waf-detect.html

https://www.cozumpark.com/web-application-firewall-barracuda-waf-urunu-temelleri-ve-waas-hizmeti/

https://avinetworks.com/what-is-a-web-application-firewall/

https://enterprise.verizon.com/resources/reports/dbir/

https://owasp.org/www-community/Virtual_Patching_Best_Practices

https://www2.slideshare.net/su13ym4n/hacktrick14-suleyman-ozarslan-waf-atlatma-yntemleri

https://github.com/EnableSecurity/wafw00f