Web Application Firewall Atlatma Mantığı

Merhaba arkadaşlar,

Bu makalemizde güncel sistemlere giriş yapmak için system içerisindeki güvenlik ürünlerini hangi teknikler uygulayarak by-pass edileceğini örnekler ile anlatmaya çalışacağım.Tabi bu makaleden sonar bütün sistemleri by-pass edebileceğini sakın düşünmeyin.Çünkü her güvenlik ürünü farklı mimariye sahip olduğundan dolayı sadece eğer güvenlik açıklarınızın olduğunu düşünüyorsanız hangi mantık çerçevesinde hareket edeceğinizin bir felsefi yaklaşımından bahsettiğimi söyleyebilirim.Bu kısımda araç sistemlerin by-pass edilmesinden öte bir güvenlik sisteminin çalışma mantığı ve zafiyetlerini nasıl tararız sorusunun cevabı olucak.

Bu makale serisinde Güvenlik ürünleri ile alakalı mimarilerin zafiyet analiz süreci ile alakalı olarak 3 ana parçaya ayırmış bulunmaktayım.Bunları sizinle paylaşmam gerekir ise;

*Web Application Firewall (WAF) Çalışma Mantığı ve Atlatma Teknikleri

*Intrusion Prevention System (IPS) Çalışma Mantığı ve Atlatma Teknikleri

*Güvenlik Duvarı (Firewall) Çalışma Mantığı ve Atlatma Teknikleri

Makalemizin ilk girişini WAF sistemleri ile yapıyorum.Waf nedir ne değildir bunu örnekler ile açıklamak gerekir ise;Bir web siteniz olduğunu düşünün.Bunu normal public bir yayına açtığınızda 1 saat içerisinde dünya üzerinden kimliği belirli/belirsiz bir çok sorguya maruz kalacağını Wireshark ile izlediğinizde görebilirsiniz.Tabi bunların bir çoğu zararsız olmakla beraber bazılarıda kötü niyetli connection istekleri olabilir.İşte WAF bu noktada size bir nevi gelen bağlantı güvenliğine göre istekleri iyi kötü şekilde ayıran bir yapının ismidir. Waf OSI nin 7. Katmanı olan uygulama katmanında görev alır ve adından da anlaşılabileceği gibi web uygulamalarını olası saldırılara karşı korumayı amaçlar.WAF sistemleri genel itibari ile gelen ve giden istek/yanıtlara göre inceleme yaptıklarından ötürü Deep Packet Inspection Firewall olarak da adlandırılırlar.

Örnek bir Waff şeması resimde görüldüğü gibi internet üzerinden gelen isteklerin nerelere uğradığını bu kısımda görebilirsiniz.

Waf sistemlerini öncelikle anlamamız önemli.Neticede bu sistemi atlamak için çalışma mantığını anlamak lazım.Esasında bazı Waf cihazları imza odaklı filtreleme yapar iken bazıları ise uygulamaya gelen kötü niyetli anormal durumları tespit etmek için geliştirilmiştir.Waf sistemleri salt donanımsal veya yazılımsal değildir.Her iki türüde mevcut durumda birlikte entegre şekilde çalışıcak şekilde tasarlanmışlardır.Waflar yaptıkları filtrelemenin yanında aynı zamanda tanımlanan kurallara göre kayıt tutarlar. Waf sistemleri hem katif modda çalışanı vardır hemde pasif modda çalışan mimarisi vardır.Bunların çalışma mantığından bahsetmek gerekir ise Aktif olan Waf sistemi hem gelen kötü niyetli istekleri bloklar ve bu isteği yapan sistemi kayıt altına alır.Pasif modda bulunan waf sistemi ise bloklama yapmaz sadece gelen istekleri kayıt altına alarak bir nevi kötü niyetli istekleri loglar.

Peki ortamda bir Waf mevcut ise bu hangi mantık ile çalışmalarını sürdürür.Normalde 3 tip çalışan Waf konfigürasyonu bulunmaktadır.White List (Beyaz Liste).Bunun özelliği izin verilen hizmet ve uygulamalar dışında herhangi bir isteği Kabul etmemesidir.Bu bir noktada iyi bir noktada dezavantajdır.Çünkü kesin ayrım yapılamayan isteklerde bu modda çalışan Waf direk engellediğinden ve Beyaz Liste içerisinde olmayan zararsız bağlantılarıda engelleyeceğinden tavsiye edilmemektedir.İkinci tür olan BlackList temeli olan Waf sisteminde bu listedekiler haricinde gelen zararlı bağlantıları engellemez.Kendi listesinde olmayan her bağlantıya açıktır.Bu da tavsiye edilmez çünkü gri alanı olmadığından ötürü bulanık mantık işleyişine ters bir durumdur.En son olarak Karma modu kullanan Waf tipi ise hem Baclk hem White list üzerinden şekillenen bir güvenlik felsefesine sahiptir.Kurumlar için en fazla tercih edilen moddur diyebiliriz.

Waf organizasyonunda daha önce tanımını yaptığımız gibi Web Server ile son kullanıcı arasındaki bağlantı trafiğini inceleyen bir güvenlik katmanı olduğundan bahsetmiştik.Tabi sistemlerin nasıl topolojileri mevcut ise güvenlik ürünlerinden biri olan Waf üzerinde de bazı topoloji varyasyonları vardır.

Bunlardan bahsetmek gerekir ise;

*Çalışmakta olan bir Web Sunucusu üzerinde.

*Çalışmakta olan bir Web Sunucusunun bağlı olduğu ağda.

*Çalışmakta olan Web Sunucusu ile son kullanıcı arasında bulunan Cloud tarzi ara birimlerde.

Cloud WAF(Bulut Tabanlı): Bu yapıdan bahsetmek gerekir ise web uygulaması içerisinde  güvenlik duvarı (WAF), bir güvenlik duvarı politikasını karşılamayan servis çağrılarını, girişleri ve çıkışları, yani bir HTTP görüşmesine yönelik kuralları belirten bir uygulamayı veya hizmeti kullanarak çalışarak güvenliği sağlar. WAF’lar uygulama kaynak kodunun değiştirilmesini gerektirmez.Bir saldırıyı engelleme kuralları, WAF’lerin sahip olması gereken web sitelerini koruma rolüne bağlı olarak özelleştirilebilir. Bu, standart bir ağ güvenlik duvarından daha güçlü, düzenli bir izinsiz giriş algılama sistemi olan, gelişen bir bilgi güvenliği teknolojisi olarak kabul edilmektedir.

Bu nedenle bulut tabanlı WAF’ler, WAF’lerin tüm avantajlarından yararlanır ve sonuçları geliştiren ve algılama oranlarını hızlandıran hizmetin tüm kiracıları arasında bu tehdit algılama bilgilerini paylaşır. Esasında bu bir havuz içerisinde toplanarak tehtit algıları her daim güncel tutulmaktadır.Cloud ortamında gelen saldırıların hepsi taker taker imza altına alınarak Cloud WAF sistemlerine anlık iletilir.Bu şekilde en güncel imzalar tutularak gelen zararlı istekleri daha hızlı bir şekilde izole eder.Bu noktada sisteme özel donanım değişikliği ve ayar yapılmasına gerek yoktur ve web sitelerini özel kurallar uygulayarak ve korumanın agresifliğine karar vererek web sitelerini tehditlerden başarıyla koruyabilirler.

Port Mirroring ile Pasif Kayıt izleme modundaki Waf şeması örneği

Port Mirroring Waf:Bu sistemde ise Waf cihazı intranet içerisine konumlandırılır ve tek bir swich üzerine bağlı tutulurlar.Normal standart Waf mimarisindeki gibi uygulama ile kullanıcı arasında bulunmazlar.Herhangi bir engelleme olmadığından ötürüde gelen kötü niyetli bağlantı direk Web sunucusuna erişebilmektedir.Bu noktada izleme yöntemi ile gelen istekleri incelemenin dışında geriye cevap dönmesi için sunucu tarafında ekstra konfigürasyon işlemlerinin yapılması gerekmektedir.

Server Waf:Genelde tercih edilmeyen bir waf topolojisidir.Bununla beraber Web sunucusuna herhangi bir atak durumunda servisi by-pass edebilmesi olasılıkları mevcuttur. Sunucu ile kullanıcı arasına kurulacak CDN (Content Delivery Network) veya dağıtılmış sunucular için her sunucuya özel waf konumlandırmak gerekeceğinden maliyeti diğerleri oranla oldukça külfetlidir.

Hedef Olarak Belirlenen Uygulama Kümesindeki Waf Sistemini Algılama

Bir web servisinin wafın arkasında olduğunu algılamanın birden çok yolu vardır. Ben bu yollardan bazılarını sizinle paylaşacağım.

*Bir uygulama sunucusunda önünde veya içerisinde yada bulut sisteminde bu güvenlik ürününün olup olmadığını anlamak için direk uygulama kanalına saldırarak (response time) gibi gelen cevapların ne kadar zaman içerisinde geldiği gibi bir çok saldırı yöntemi ile tespit edilebilmektedir.

*Bunun dışında internet üzerinden tarayıcılar vasıtası ile gezinir iken bazen iyi konfigüre edilmemiş Waf sistemleri ziyaret edilen uygulamalara cookie (çerez) bırakabilmektedir.

*Waf’lar korudukları uygulamalara gelen istekleri genelde kötü niyetli sorgulamalara karşı bazı cevaplar döndürmektedirler.Bunların bir çoğu  farklı ve bilindik hata’lar olabilmektedir.Misal siz bir web sitesine www.google.com diyelim bunu tarayıcıya yazdığınız zaman ve “/<script><”alert”></script>” yazdığınızda gelen cevap 404 hatası gibi hatalar döndürüyorsa bu da ortamda bir Waf olduğunu ve size izin vermediğini görebilirsiniz.

*Bir Waf sorgusu yaptığınızda eğer konfigüre edilmiş bir Waf ile karşılaştı iseniz yüksek ihtimal döndürdüğü cevap kodsal değil uyarı türünde olucaktır.

*Bazen bir waf tespitinde force komutlar uygulayarak açık şekilde uygulama güvenliğini zorlayabilirsiniz.Bu tabi istenilen bir husus değil çünkü Waf sizin yaptığınız force isteği direk açık şekilde geldiğinizden ötürü  algıladığından bağlantıyı direk kopararak da erişimi direk kesebilmektedir.

Kullandığınız tarayıcılara ziyaret ettiğiniz web sayfasında/servisinde waf olup olmadığını anlamak için küçük eklentiler…

Wafları algılamak için bu kuralları tek tek deneyebilirsiniz evet ama tahmin edeceğiniz gibi bunu otomatize yapan araçlar da mevcuttur.

NMAP NSE Script Kullanımı

*Nmap network keşif çalışmaları ile beraber bazı scriptler de kullanarak zafiyet testleri olanağı sunmaktadır.Bir web sunucusunun, IPS (Saldırı Önleme Sistemi), IDS (Saldırı Tespit Sistemi) veya WAF (Web Uygulaması Güvenlik Duvarı) tarafından korunup korunmadığını, web sunucusuna çeşitli parametreler deneyerek gelen yanıt kodundaki  değişiklikleri algılayarak belirlemeye çalışmaktadır.

Shodan ile Waf Tespiti

* Shodan yapısı itibari ile internet üzerinden yayın yapan cihazlar için bir arama motorudur. kötü amaçlı yazılımlar için kontrol sunucuları bulmak için genelde Sızma uzmanları ve Hacker’lar için dark google kütüphanesidir diyebiliriz.Shodan’ın en iyi özelliği bulmak istediğiniz açıklıkları arama motoruna filtreleyerek bulmanızı sağlayan bir yapıya sahiptir (tabi ücretli sürümünde).Shodan, doğrudan İnternet’e bağlı tüm cihazlar hakkında bilgi toplar ve bunları paylaşır.Aşağıda gördüğünüz üzere Waf isteği karşısında cevap dönen sunucuları bulabilmek için arama motoruna Waf yazarak ta kendi bölgenizdeki dışarıya açık waf sistemlerini tespit edebilirsiniz.Tabi ücretli sürümle beraber J

Whatwaf ve Wafw00 ile Waf Tespiti

WhatWaf programının hedefi Uygulama servislerinin önünde gelişmiş bir güvenlik duvarı algılama aracıdır. WhatWaf, bir web uygulamasında bir güvenlik duvarını tespit ederek ve belirtilen hedefte belirtilen güvenlik duvarı için bir baypas (veya iki) tespit etmeye çalışarak çalışır.

En Önemli Soru Waf Nasıl Atlatılır ?

Sanırım bütün hacker ve lamer dünyasında merak edilen sorulardan bir tanesi Waf nasıl atlatılmakta.Giriş bölümünde ortamdaki bir Waf’ın nasıl tespit edileceğini anlattık.Şimdi hedefimizin ne olduğunu bildiğimize göre sıra geldi o cihazı nasıl geçeceğimiz sorusuna esasında bunun için belirli methot’ları sizinle paylaşmak istiyorum.

Waf atlatma tekniklerini anlatırken bir çok detaya gireceğiz.Benim burda asıl amacım içeriden test mantığından ziyade dışarıdan gelen tehlikelerin yetkisiz bir şekilde wafı atlatmasıdır.Yukarıda program örneklerinden bir tanesini anlatacağım.Bir tane örnek üzerinden bir Waf sisteminin nasıl atlatıldığını hep birlikte göreceğiz.Böylelikle diğer sistemlerin çalışma mimarisi ve 3 aşağı 5 yukarı bu uygumala firewall larının davranış zafiyetlerinden yararlanma kültürünü edinmiş olacağımızı umuyorum.

Not:Bu atlatma testinde hedef site ve ip bilgileri paylaşılmamaktadır.Amacım Waf atlatma şekillerini göstererek mantığını anlamanız.Bu uygulamayı dilerseniz farklı uygulamalar ile bütünleşik olarak çalıştırabilir ve testler yapabilirsiniz.

1.Adım (Hedef sistem tespiti)

Waf tespitini öncelikle hangi sistemleri hedef alacağımızı belirliyoruz.Eğer bir pentest yapıyor iseniz kurum ile alakalı olarak bilgi toplayabilirsiniz.

Bunun için GOOGLE HACKING DATABASE kısmındanveya Shodan.io gibi pasif araçlardan kurumun sitesi ve id sini aratarak ilgili uygulama sunucusunun dışarıya verdiği sayfalarda bir açıklık varmı kontrol ediyoruz.

İlgili id’lere sahip olan sistemlerin uygulama katmanlarında herhangi bir Waf koruması varmı bunun kontrolünü yapmamız gerekiyor.Bunun için Waf00f programını açıyoruz ve  hedef teşkil ettiğini düşündüğümüz Web sitesi üzerinde herhangi bir Waf uygulaması varmı bakıyoruz.

Hedef site’nin üzerinde herhangi bir uygulama olup olmadığını çıkan sonuçtan görebiliriz.Bu site’nin ön kısmında yer alan Waf F5 BigIP Web Application Firewall uygulaması.Karşılaştığımız sistemde Waf ürününü tespit ettikten sonra diğer adım ile devam ediyoruz.

2.Adım (Açık arama)

Bu kısımda waf tarafını atlatma testlerinde kullanacağımız Tamper sorguları mevcut durumda.Genelde Firewall ürünleri C++ ile yazıldığından ötürü C++ dili ile komut döngülerini kullanarak Black list içerisinde olmayan sorgu türlerini yazabiliriz.

3.Adım (Tespit edilen açığı test etme)

Bulunan açığı test etmek için WhahWaf programı üzerinden sorgu komutlarını çalıştıyoruz.WhatWaf programı kendi içerisinde çeşitli sql sorguları kullanarak ilgili hedef url üzerinde atlatma testlerini gerçekleştiriyor.

4.Adım(Test edilen açıklık üzerinden suistimal etme)

Suistimal edilicek olan Web servisinin url kısmına yukarıdaki raporda çıkan ek sorguları eklediğimizde eğer bize Waf tarafından uyarı verilmiyor ise ve bu eklediğimiz script’e ragmen sayfaya hala erişim sağlıyor iseniz Tebrikler Waff’I bypass etmişsiniz demektir.

Bu makalemizinde sonuna geldik.Bu konuda temel olarak Waf sisteminin çalışma mantığı nasıl işlediği hangi dilleri kullandığı ve zafiyetlerinin nasıl istismar edileceğini temel olarak öğrenmiş olduk.Diğer makalelerde görüşmek üzere hoşçakalın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

error: Content is protected !!