EN
EN

Web Uygulamaları Penetrasyon Testleri

27 Temmuz 2018


Web Uygulamaları Penetrasyon Testleri

Bankacılık ve e-ticaret gibi kullanıcıların hassas bilgilerini işleyen web uygulamalarının güvenlik testlerinin yapılması şirketlerin iç ve dış kaynaklarının korunması için önem arz etmektedir. Kurumların internet uygulamalarındaki zafiyetler ve açıklıklar saldırganların iç ağlara sızması için ortam sunmaktadır. Web sunucu uygulamalarının karmaşık bir yapıya sahip olması ve veri tabanı uygulamalarının kod enjeksiyon saldırılarına potansiyel olarak açık olmasının yanı sıra güvenlik göz önünde bulundurularak yazılmayan kodlar kurumu çeşitli saldırılara maruz bırakabilmektedir. Özellikle kullanıcıdan girdi alan ve arka planda kod çalıştırıp veri tabanıyla etkileşime geçen uygulamalar web ataklarını kolaylaştırmaktadır. Hem çok çeşitli konfigürasyonlara ve servislere sahip olmaları hem de kullanıcı izinlerinin çeşitliliği web uygulamalarının atak vektörünü zenginleştirmektedir. Web güvenlik zafiyetlerinin oluşmasında ağ katmanından çok uygulama katmanındaki ve HTTP protokolündeki bileşenler etkili olmaktadır.

Web penetrasyon testleri; konfigürasyon, sunucu programları ve kod kaynaklı zafiyetleri ortaya çıkarmanın yanı sıra aynı zamanda gelebilecek bir saldırıya karşı sistemin ne kadar güvende olduğu, saldırının nasıl bir etki bırakacağı ve kurumun veri güvenliği politikalarına uyumluluk seviyesi gibi ölçümleri de yapabilmektedir. Penetrasyon testlerinin düzenli aralıklarla yapılması kurumun web uygulamalarının daha güvenli hale getirilmesi ve saldırıya uğramadan önce gerekli önlemlerin alınması için önem taşımaktadır.

Kurumun web penetrasyon testini kaçınılmaz hale getiren etmenler:

- Kurumun içinde olduğu sektörün zorunlu kıldığı uyumluluklar
- Ağ altyapısında ve web uygulamalarında güncellemeler, modifikasyonlar, güvenlik yamaları ve yeni eklentiler ile meydana gelen değişikliklerin risk oluşturması
- Politika değişiklikleri
- Lokasyon değişimi ya da yeni bir fiziksel alan ekleme

Penetrasyon Testi Metodolojisi

Penetrasyon testini bir standarda kavuşturmak için 2010 yılında oluşturulan Penetration Testing Execution Standard (PTES) standardında sızma testleri 7 ana aşama olarak belirlenmiştir:

- Anlaşma öncesi  etkileşim (Pre-engagement Interactions): Testte kullanılacak yöntem ve araçların açıklanması; kapsam, testin ne kadar sürede tamamlanacağı, nelerin test edileceği ve kapsamda belirtilmeyen şeyler için ek desteğin verilmesi
- Bilgi toplama (Intelligence Gathering): Testi yapılacak kurumun hakkında stratejik bir atak planı oluşturmak adına kurumun girdi noktaları hakkında bilgi toplanması
- Tehdit Modelleme (Threat Modeling): Bu aşamada varlıkların tanımlanıp kategorizasyonu ile tehditler ve tehdit topluluklarının tanımlanıp kategorizaston işlemlerinin yardımıyla kurumun varlıklarını ve bunun karşısında saldırganları merkeze alan bir tehdit modellemesi oluşturulması
- Zafiyet Analizi (Vulnerability Analysis): Saldırganların istismar etmesine neden olacak sistem ve uygulama zafiyetlerini ortaya çıkarmak
- İstismar (Exploitation): Güvenlik kısıtlamalarını atlatarak sisteme ve kaynaklara erişim sağlayarak kurumun ana giriş noktasını bulmak ve yüksek değerli varlıkları saptamak
- İstismar sonrası (Post Exploitation): Ele geçirilen makinenin barındırdığı bilgilerin değerinin belirlenmesi ve makinenin ağdaki diğer hedeflerde kullanılması için kontrolünün sürdürülmesi
- Raporlama (Reporting): Raporda testle ilgili tüm teknik detaylara ve test yapılması için üzerinde anlaşılan varlıklar ve bileşenlere yer verilmesi gerekmektedir. Kapsam, bilgiler, saldırı tekniği, kullanılan yöntemler, etki ve risk derecesi ile iyileştirme önerilerini içermelidir.

Web Uygulama Penetrasyon testlerinde analizi yapılan saldırılar:

- Siteler Arası Betik Çalıştırma (Cross Site Scripting-XSS)
- SQL enjeksiyon (SQL Injection)
- Kırık Kimlik Doğrulama ve Oturum Yönetimi (Broken Authentication and Session Management)
- Dosya Yükleme Zafiyeti (File Upload Vulnerability)
- Sunucularda Önbellek Zehirleme Zafiyeti (Caching Servers Attacks)
- Güvenlik Yanlış Yapılandırması (Security Misconfigurations)
- Siteler Arası İstek Sahteciliği (Cross Site Request Forgery)
- Parola Kırma (Password Cracking)

 

Bir kurumun internete açık ağ altyapısında bulunan açıklıkları ve zafiyetleri ortaya çıkarmak için uygulanan bu test kurumda lokal olarak gerçekleştirilebileceği gibi uzaktan da gerçekleştirilebilir.

Sızma testinde incelenecek olan ağ bileşenleri:

- Güvenlik duvarı(Firewall) yapılandırma testi
- Durum Bilgisi Olan Paketin Denetimi (Stateful Analysis testing)
- Güvenlik duvarı atlatma testi
- Saldırı engelleme sistemlerini atlatma testi
- DNS testi:

- Bölge Transferi(Zone transfer) testi
- Anahtarlama(switching) ve yönlendirici(routing) inceleme