Citrix NetScaler WAF Lab Ortamı:WebGoat

NetScaler için kurmuş olduğumuz Lab ortamında çalışmaya devam ediyoruz.Bu yazıda NetScaler’ın yeteneklerinden biri olan Web Applicaton Firewall özelliği ile çalışacağız.Bu özelliği WebGoat aracılığı ile test edeceğiz.

WebGoat OWASP tarafından geliştirilmiş içerisinde yüzlerce zafiyet bulunan bir web uygulamasıdır.Linux, Windows ve MacOS gibi ortamlarda çalışabilmektedir.Bu yazı serisi için kurmuş olduğumuz lab ortamında iki adet Windows Server 2016 bulunmakta ve üzerlerinde IIS 10 çalışmaktadır.Her iki WebServer’a da WebGoat zafiyet uygulamasını kuracağım.

1>Web Server1 ve WebServer2’ye WebGoat Kurulumu

WebGoat’ın kullandığım versiyonunu buradan indirebilirsiniz.

  • WebGoat’ı indirdikten sonra, WebServer1 Makinemde C:/ dizinine çıkarıyorum.
  • WebGoat/WebGoat-5.4/tomcat/conf/server_80.xml dosyasının içerisinde 127.0.0.1 yazan yeri WebGoat’ı kurduğum WebServer’ın IP adresiyle değiştiriyorum.

Aynı İşlemleri WebServer2 içinde gerçekleştiriyorum.

  • İndirmiş olduğunuz WebGoat klasörü içindeki webgoat.bat dosyasını çalıştırıyoruz.
  • Ve görmüş olduğunuz gibi WebGoat ayaklandı.Yukarı işlemleri her iki WebServer içinde yapmayı unutmayın.

2>NetScaler Server, Service, Virtual Server Oluşturma

Bu konu hakkında ki detayları daha önceki yazılarım vermiş olduğum için yüzeysel olarak geçiyorum.

  • WebServer1 ve WebServer2’yi ekliyoruz.
  • WebServer1 ve WebServer2 için WebGoat1 ve WebGoat2 adında iki adet service oluşturuyoruz.
  • WebGoat1 ve WebGoat2 için WebGoatVIP adında Virtual Server’ımızı oluşturuyoruz ve server2ları bind ediyoruz.
  • Method olarak Round Robin seçiyoruz ve Persistence’ı CookieInsert yapıyoruz Time-out içinse 0’ı seçiyor ve Done diyoruz.

3>WebGoat Erişim

WebGoat kurulu iki adet webserver’ımızı load balance ettirdik.WebGoat’a ulaşmak için adres çubuğuna 192.168.126.152/WebGoat/attack yazarak erişim sağlayabilirsiniz.Karşınıza ilk olarak giriş ekranı gelecektir.

username: guest

password: guest

bilgilerini girerek giriş yapabilirsiniz.

4>NetScaler İmzaları İndirme/Güncelleme

NetScaler Application Firewall, Snort gibi çeşitli güvenlik sağlayıcılarından güvenlik imzalarını kullanabilir.Bu imzalar politikalara eklenir.

NetScaler üzerindeki imzaları güncellemek veya en yenisi indirmek için;

  • Security>Application Firewall>Signatures>Default Signatures’ı seçin ve üst bardan Update Verison’a tıklayın.
  • Yine aynı menü üzerinden Add butonuna tıklayarak yeni imza ekleyeceğiz.Default Signatures seçili iken add butonuna tıklayın.
  • Name: UygulamaGuvenlikImzalari
  • İmzaları burada engelleyebilir veya yeniden aktif edebilirsiniz inceledikten sonra OK butonuna tıklıyoruz.

5>Uygulama Güvenlik Duvarı Profili

Güvenlik duvarı için bir Profil oluşturmamız gerekiyor.Bunun için;

Security>Application Firewall>Profiles>Add adımlarını takip edebilirsiniz.

  • Name: UygulamaProfil
  • Profile Type: Web 2.0 Application >OK

Yeni oluşturduğumuz profil için bazı ayarlamalar yapmamız gerekiyor.

  • Oluşturmuş olduğumuz profile tıklayın ve Sağ panelde bulunan Advanced Settings’in altında Security Check kısmına tıklayın.Karşınıza aşağıdaki gibi bir alan çıkacaktır.Resimdeki gibi konfigüre edebilirsiniz.Genelde ilk etapta learn mod açılır ve cihazın gelecek olan saldırı tiplerini öğrenmesini sağlanır ve daha sonrasın gelen linkler incelenerek izin verilir veya bloklanmaya devam edilir.
  • Mesela kredi kartı konusu hassas bir konudur bu yüzden tüm kredi kartları için koruma durumlarını açalım.Yukarıda ki resimde bulunan alanda Credit Card’ı seçin ve yukarı da yer alan Action Settings alanını açın.Karşınıza aşağıdaki gibi bir alan çıkacaktır.
  • Tüm kredi kartlarını seçiyor ve x-out alanını işaretliyorum.

6>Profile İmzayı Ekleme

İlk etapta imzaları güncelledik ve kendi imzamızı oluşturduk ardından profilimizi oluşturduk.Şimdi ise bu profile oluşturmuş olduğumuz imzayı eklemeliyiz.Bunun için;

Profil’i Seçtikten son Edit’e tıklıyoruz.Advanced Setting panelinden Profile Settingse giriyoruz. Bound Signatures alanından oluşturmuş olduğumuz imzayı seçiyoruz.

7>Policies Oluşturma

Şimdi sıra Policies’de NetScaler’ın genel yapısı itibariyle önce ki yazılarımdan hatırlarsınız her zaman aciton oluştur policy oluştur virtual server’a bind et şeklinde ilerliyorduk.Policies oluşturmak için;

Security>Application Firewall>Policies>Firewall>Add adımlarını takip edebilirsiniz.

  • Name: UygulamaGuvenlikPolicy
  • Profile: UygulamaProfili
  • Expression: HTTP.REQ.IS_VALID >Create

Oluşturmuş olduğumuz Policy’i bind etmemiz gerekiyor.

  • Bunun için Policy Manager’ı seçin.
  • Bind Point: Default Global (Politikayı tüm sanal sunucular için çalıştırır.)
  • Policy kısmında oluşturmuş olduğumuz Policy’i seçerek Bind Butonuna tıklayın.
  • Sağ tarafta Active tikini yeşil gördüğümüze göre test aşamasına geçebiliriz.

Test>WebGoat Üzerinde

WebGoat’a erişim sağlayın.Ancak yeni bir tarayıcıdan bağlanmanız yararınıza olacaktır.Çünkü normal şartlarda insanlar WAF özelliğini kapatıp açmazlar.Ardından restart this lesson’a tıklayın.

  • İlgili payloadı girerek denemek yaptığımda direk Tomcat sayfasına yönlendiriliyoruz.Bunun sebebi NetScaler WAF açıksa bizi tomcat sayfasına yönlendirerek engeller.
  • WAF özelliği devre dışı bırakarak tekrar deniyorum.Görmüş olduğunuz gibi alerti verdirdik.
  • Birde SQL Injection denemesi yapıyoruz.Ve başarılı bir şekilde verileri listeledik.Dikkatiniz çekti mi? Kredi kartı numaraları gösteriliyor. WebGoat Üzerindeki kredi kartı numaraları sahtedir.Biz x-out ile bunları gizlemiştik.

Yeniden NetScaler’a dönün ve WAF özelliğini aktif edin.WebGoat’ı kapatıp yeniden açın.

  • Yukarıda denemiş olduğumuz sql injection’ı yeniden deniyoruz.Ve yeniden Tomcat sayfasına yönlendiriliyoruz.

NetScaler üzerinden loglarımızı bir kontrol edelim.Bunun için;

  • System>Auditing>Syslog messages alanına tıklıyoruz.
  • Sağda bulunan Filter By alanının altında Module Kısmında AppFW’yi seçin ve Apply’e tıklayın.
  • Aşağıdaki resimde NetScaler’ın yaptığı engellemeleri görebilirsiniz.

NetScaler’ı biraz daha kurcalayalım.Oluşturmuş olduğunuz profile yeniden gelin ve HTLM SQL Injection kısmındaki block tikini kaldırın.

HTML SQL Injection seçiliyle Action Settings’e tıklayın.Ve Transform SQL special characters tikini işaretleyin.

WebGoat üzerinden yeniden SQL Injection deneyin.

Ve NetScaler sizin tek tırnak olarak yazdığınız payloadı çift tırnağa dönüştürerek bir engelleme gerçekleştirdi.

NetScaler Loglarını kontrol edelim.Görmüş olduğunuz gibi transform işlemi sayesinde Sql Injection için kullanılan o karakterler değiştirilmiştir.

NetScaler ürünü ile Waf aktif ettik ve biraz kuracaladık.Umarım faydalı bir yazı olmuştur.

Bir sonraki yazıda görüşmek üzere…



Leave a Reply

Your email address will not be published.

*
*
*