WAF (Web Application Firewall) Nedir ?

T4SLA

Üye
13 Ocak 2021
218
105

WAF (Web Application Firewall) Nedir ?


Web Uygulama Guvenlik duvarı –devamında WAF (Web Application Firewall) olarak bahsedilecektir- olarak adlandırılan sistemler karmaşıklaşan web trafiği üzerinde detaylı inceleme yaparak anormal trafiği engellemeye yarayan teknoloji olarak karşımıza çıkıyor.

Kullanılan uygulamaları tekrar basitleştiremeyeceğimize göre bunlar için önlem almakta fayda var. Web Uygulama Guvenlik duvarı –devamında WAF (Web Application Firewall) olarak bahsedilecektir- olarak adlandırılan sistemler karmaşıklaşan web trafiği üzerinde detaylı inceleme yaparak anormal trafiği engellemeye yarayan teknoloji olarak karşımıza çıkıyor. Kısacası HTTP/HTTPS/SOAP/XML-RPC/Web Servisleri üzerinde detaylı paket incelemesi yaparak zararlı istekleri bloklamak için kullanılan bir araç diyebiliriz.

1*VfjMEppC1o4JTIvfW4Q26g.jpeg

WAF sistemlerinin kullanımı bazı güvenlik standartları tarafından da tavsiye edilmekte.Bunların başında duruma göre WAF kullanımını zorunlu tutan PCI Veri Güvenliği standartı geliyor.

WAF kullanımı PCI DSS göre zorunlu tutuluyor. Ya da kod analizi, kaynak kod incelemesi uzun vadede daha efektif bir çözüm sunsa da kısa vadede WAF çözümü daha uygun gözüküyor. Diğer yandan kaynak kod incelemesi sadece incelenen koddaki açıklıkları bulur ve düzeltilmesi için çözümler sunarken WAF ile bu açıklıklar kapatılır.

WAF için temel kavramlar/ Güvenlik Modelleri:


Positive security model(Beyaz liste modeli): İzin verilen belirli işlemler hariç her şeyin engellenmesi yaklaşımı. Sadece izin verilen objelerin belirlenmesi ve geri kalanların engellenmesini öngörür. Bu modeli kullanan ürünlerde sistemi tam devreye almadan positive modeli disable etmekte fayda var, yoksa model doğası gereği izin verilmeyen tüm her şeyi engelleyecektir.

Negative security model (Kara liste modeli): Yasaklanmış belirli işlemler hariç her şeye izin verilmesidir. Sadece yasaklanan objelerin belirlenmesi ve bunların dışındakilere izin verilmesini öngörür ve nadir durumlarda kullanılan bir yaklaşımdır.

learning-based firewall: Gelen ve giden istekleri inceleyerek web sayfalarının haritasını çıkarmaya çalışır. Burada web adminlerin katkısı WAF cihazına yönlendirilir ve öğrendikleri onaylanır ya da reddedilir. Bu işlem sonrasında artık web sayfasına yapılacak yeni tip ataklar kolaylıkla önlenecektir ya da sizin haberiniz dışında çalıştırılan web siteleri ortaya çıkacaktır. Basit bir örnek verecek olursak, öğrenme sonrası http://www.example.com/~user/ dizini yasaklandıysa sonradan bu dizin altından okunmaya çalışılacak, bash history dosyası herhangi bir incelemeye uğramadan engellenecektir ya da aynı sunucu üzerinde sizin haberiniz olmadan çalıştırılan www.xyz.com web sitesi farkedilerek engellenecektir. Learning-based özelliği olmayan ürünlerde WAF arkasında koruma altına alınmak istenen tüm siteler tanımlanması gerekir.

Yerleşim senaryoları:

WAF için temelde dört yerleşim senaryosu vardır. Bunlar teknik olarak inline bridge,Offline(passive), integrated ve reverse proxy olarak adlandırılabilir. Yerleşim modeline göre ürün tercihi yapılmalıdır.

Bridge Yerleşim Modeli:

Bu yöntemde WAF cihazının web sunucuların önüne bridge modda yerleştirilerek trafiği üzerinden geçirmesi ve incelemesi sağlanır… Bu yöntemin kullanılması durumunda ağ cihazlarında, web sunucularda ya da dns sunucularda herhangi bir değişiklik yapılması gerekmez. Network tabanlı IPS benzeri bulunduğu konum üzerinden geçen tüm trafiği inline olarak alır,inceler ve duruma göre bloklama yapar.


waf01.jpg

Waf Bridge


Tek dezavantajı sistemde yaşanacak bir arıza sonrası web trafiğinin kesilmesi olasılığıdır. Bu da ilgili cihazın fail-open(cihazda yaşanacak bir problem sonrası trafiğin akmaya devam etmesi) özellikde olması ile aşılabilir.

Offline(passive) Yerleşim Modeli


Bu yerleşim modelinde WAF Intrusion Detection System benzeri çalışır. WAF cihazı web sunucuların olduğu switch mirrorlarak ya da hub aracılığı ile bağlanır ve pasif olarak web sunuculara giden trafiğin bir kopyasını alır. Alınan kopya trafik üzerinde detaylı paket analizi yapılarak zararlı istekler için cevap üretilir, bu cevaplar TCP RST paketleridir.

waf02.jpg

Waf Offline Mode

Burada aktif yanıt IDS sistemlerindekine benzer sorun ortaya çıkar. Saldırganın gönderdiği isteğin cevabı WAF tarafından gönderilecek TCP RST 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. Bu modelin kullanımında iyi karar verilmelidir ve TCP RST paketlerinin cevap paketlerinden önce hedefe ulaşması için yerleşimi iyice düşünülmelidir. Bununla birlikte canlı trafiği üzerinden geçirmediği için sistem ek bir yük getirmez, sistem için “point of failure” konumunda olmaz ve Web sunucu, DNS sunucu üzerinde ek ayar gerektirmez.

Bütünleşik Yerleşim Modeli

Bu model türü en basit WAF yerleşimidir ve tamamen çalışan işletim sistemine, web sunucusuna bağlıdır. Mesela Microsoft IIS için kullanabileceğiniz xyz ürününü Linux üzerinde ya da Windows üzerinde Apache için kullanamazsınız, benzer şekilde Apache için Kullanılan modsecurity yazılımını IIS için kullanamazsınız. Bütünleşik WAF yazılımları yerine göre avantajlı olabilmektedir. Özellikle koruyacağınız sistemlerin sayısı fazla değilse bu tip bir yazılım tercih edilebilir.

Reverse Proxy Yerleşim Modeli

Reverse Proxy yerleşim modeli bildiğimiz Proxy mantığı ile çalışır. Web sayfasına ulaşmaya çalışan tüm istemciler web sunucu yerine reverse Proxy modundaki WAF sistemine ulaşır, WAF isteği aldıktan ve gerekli incelemelerden geçirdikten sonra arkadaki web sunucuya iletir veya doğrudan isteği bloklar.

Bu model, diğerlerine göre ortamda en fazla değişiklik gerektiren modeldir. Sağlıklı çalışacak bir yapı için dns, web sunucu ve network ayarlarında değişiklik gerektirir. WAF tarafından korunmaya alınacak tüm web sayfalarının A kayıtları WAF cihazına ulaşacak şekilde değiştirilmelidir ki dns üzerinde yapılacak değişikliklerin aktif olma süresini en az 12 saat düşünürsek bu zaman dilimi içerisinde web sayfasına ulaşımda problemler yaşanabilir.

Ek olarak 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ı (latency) daha yüksektir. Gecikme oranı caching, l7 compression vs gibi ek özellikler kullanılarak düşürülebilir. Bununla birlikte tüm paketler WAF üzerinden onaylı geçtiğinden dolayı http istek ve cevapları üzerinde daha sıkı kontroller yapma imkânı sağlar.

Web application firewall öncelikle uygulamaların düzgün çalıştığının kontrolleri tamamlandıktan sonra öğrenme modunda devreye açılır.

Böylece uygulamanın içeriğinde yer alan dosya,dizin yapısı,parametre yapısı,uygulamanın diline göre parametrelerde kullanılacak metakarakterlerin belirlenmesi,uygulamaya yapılan isteklere göre ortalama geçerli http oturum isteği sayısı,cookie lerin belirlenmesi,layer 7 DOS ataklarının izlenmesi,uygulamayı web üzerinden tarayan scraper ların tesbit edilmesi,ssl içeriklerin de waf üzerinde sonlandırılarak içerisinden gelen atakların monitor edilerek waf ın öğrenmesinin sağlanması kısaca OWASP Top 10 da yer alan bir uygulamaya yapılan atak trendlerinin engellenmesi için öğrenme faaliyetinin gerçekleştirilmesi süreci olacaktır.

waf03.png


İkinci aşamada her bir uygulama için öğrenilen verilerin doğruluğu kontrol edilecektir , yani atak olarak nitelendirilen bir olay false-positive ise bu durumda gerçek bir trafik engellenecektir bu gibi yanlışlıkların düzeltilerek uygulamanın blok moduna çekilmesi sağlanacaktır.

NOT: Pek çok kişinin kafasını karıştıran şu soruya açıklık getirelim,”Yeni nesil güvenlik duvarları da uygulama katmanında çalışıyor bu durumda neden WAF yani web uygulama güvenlik duvarına itiyaç duyuyoruz?”


Bu soruya örnekler ile açıklık getirelim;
Kod:
<?php require_once '../header.php': ?>

<html>

Hello

<?php

     echo $_GET["name"]:

?>

<?php require_once '../footer.php': ?>

Yukarıdaki örnekte ufak bir kod parçası görüyoruz , burada ismi yazılan kişiye HELLO denilecek fakat isim girilecek parametre de input_valdiation yapılmadığı için buraya xss yani cross site scripting atak denemesi yapılabilir,bu sayede saldırgan gerçek kişinin cookie lerini kendi web sunucusuna yönlendirerek oturumunu çalabilir.

http://10.128.10.97/xss/example1.php?name=<script>alert(‘xss’);</script>

yukarıdaki linkte yer alan <script> payload unu tanıyarak engelelyebilir , fakat

payload lar değiştikçe normalizasyon yapamayan veya karakter decoding işlemi yapamayan yeni nesil güvenlik duvarları atlatılabilir,ayrıca kodda yapılan düzenlemeler de çözüm olmayacaktır , örneğin yukarıdaki açığı kapatmak için yapılan günelleme ;
Kod:
<?php requirence_once '../header.php'; ?>

Hello

<?php

    $name = $_GET["name"];

    $name = preg_replace("/<script>/","", $name);

    $name = preg_replace("/<\/sicript>/","", $name);

    echo $name;

    ?>

    <?php require_once '../footer.php'; ?>

Yazılımcılar güvenlik gözüyle bakmadıkları için kodun güvenliği için birden fazla güncelleme geçmeleri gerekir ki bu da onların asıl işi olan uygulamanın düzgün çalışması ksımından uzaklatıracaktır bu yüzden WAF lar koddan kaynaklı ve imza tabanlı sistemlerden kaynaklı güenlik zaafiyetlerini kapatıcı rol üstlenmektedir.Örnek payload lar aşağıdadır ;
Kod:
<sCript>alert(1)</sCript>



<scr<script>ipt>alert(1)</scr</script>ipt>



<div onmousemove=”alert(1)” src=”xxxx”>



<img src=’zzzz’ onerror=’alert(1)’ />


iUBacd.gif

OKUDUĞUNUZ İÇİN TEŞEKKÜR EDERİM :)





 

T4SLA

Üye
13 Ocak 2021
218
105
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.