5 Mart 2015 Perşembe

Web Uygulama Sızma Testi Araçları

Bu yazı, web uygulama sızma testleri sırasında kullanılan araç çeşitlerini konu almıştır. Bu araçların hangi amaçla kullanıldığı anlatılarak kullanılabilecek bazı araçlar listelenmiştir. Amaç reklam yapmak değil, o konuda tecrübe sahibi olunan araçların paylaşılmasıdır; araç sahipleriyle hiçbir bağlantım yoktur.

Otomatik Açıklık Tarama Araçları

Web uygulama sızma testlerinde kullanılan en önemli araçlardır. Temel işlevleri, kendisine girdi olarak verilen bir web uygulamasının açıklıklarını tespit edip raporlamaktır. Bu amaçla aşağıdaki işlevleri gerçekleştirirler:

  • Uygulama hakkında bilgi toplama. Uygulama sunucu, uygulamanın yazıldığı programlama dili gibi bilgilerin tespitine çalışılır; tam otomatize bir adımdır.
  • Uygulama haritasını çıkarmak (crawling, spidering). Genelde tam otomatize bir adımdır; kimi zaman uygulama kullanıcısının müdahalesine ihtiyaç duyulabilir.
  • Uygulama login ve logout mekanizmalarının belirlenmesi. Login için genellikle kullanıcı adı / parola gibi özel bilgiler gerekir; hangi yolların (linklerin) de logout olmaya neden olduğunun uygulamaya öğretilmesi gerekir. Bu nedenlerle bu adım genelde uygulama kullanıcısının müdahalesine ihtiyaç duyar.
  • Bilinen zafiyetlere göre uygulama zafiyetlerinin tespiti. Otomatize bir adımdır. Bununla birlikte uygulamanın hangi zafiyet türlerine göre taranacağı, saniyede kaç talep (request) gönderileceği, taramanın hangi hassasiyette gerçekleştirileceği gibi ayarlar uygulama kullanıcısı tarafından yapılabilir.

Ticari ya da ücretsiz birçok otomatik tarama aracı mevcuttur. Bunlardan en yaygın kullanılanlarının konu edildiği Temmuz 2014 tarihli bir değerlendirme raporuna (https://www.qualys.com/docs/gartner-magic-quadrant-application-security-testing.pdf) adresinden erişilebilir.Değerlendirmeye göre magic quadrant şu şekilde oluşmuştur:

Değerlendirmeye konu edilen ticari araçlar yanında, açık kaynak kodlu ürünler de mevcuttur. W3AF bunlardan biridir. Ruby ile yazılmış ücretsiz bir araçtır. Ticari ürünlerin olmadığı durumlarda idare edebilecek kadar tarama yapar; ticari ürünler kadar iyi ve etkili değildir. Kendi modüllerinizi yazmanıza izin verir. Yakın zamanda Rapid7 ürünü kendi ürün ailesine katsa da halen açık kaynak bir üründür.

Personal Proxy (Kişisel Vekil Sunucu)

Web uygulama sızma testlerinde kullanılan en önemli araçlardan biri de kişisel vekil sunuculardır. Bu araçlar, istemci ile sunucu arasındaki trafikte araya girerek 7. katman seviyesindeki paketlerin incelenmesine ve yakalanıp değiştirilmesine olanak verir. Gerek manuel açıklık taramaları için, gerekse otomatik tarama araçları tarafından raporlanan zafiyetlerin gerçekten var olup olmadığını incelemek için kullanılır.

PortSwigger tarafından geliştirilmiş Burp Suite aracı, bu amaçla kullanılabilecek ürünlerden biridir. Ücretli olan Pro versiyonu da mevcuttur. Temelde HTTP ve HTTPS trafiğinde araya girme amacıyla kullanılmaktadır. Bunun yanında online kaba kuvvet (brute force) ve sözlük (dictionary) saldırıları, HTTP fuzzing gibi yetenekleri de mevcuttur. Bununla birlikte bir önceki maddede sözü edilen otomatik tarama araçları kadar yetenekli olmasa da zafiyet tarama yeteneği de vardır.

Bir diğer kişisel vekil sunucu da OWASP tarafından geliştirilen ve açık kaynaklı olan ZAP Proxy aracıdır. Bu aracın da zafiyet tarama yeteneği mevcuttur.

Sunucu Tarafı Açıklıkların Taranması

Web uygulama testlerinde birden fazla etkileşim arayüzü bulunmaktadır. Bunlardan biri uygulamanın kendisi ise, bir diğeri de uygulamanın üzerinde barındığı uygulama ve web sunucudur. Bu sunucu sistemlerin güvenliği de en az uygulamanın güvenliği kadar önemlidir.

Sunucu tarafı açıklıkların tespiti için Nessus ve benzeri bir zafiyet tarama aracı kullanılabilir. Ücretli olan Pro versiyonu da mevcuttur. Nessus Pro, sunucu tarafı açıklıkların yanı sıra ön tanımlı (default) değerlerde kalmış kullanıcı adı / parola çiftleri, internete açık şekilde bulunan içerik yönetim sistemi (CMS) arayüzleri, kullanılan SSL versiyonunun denetimi gibi temel düzeydeki web uygulama zafiyetlerini de tespit edebilecek modüllere sahiptir.

Tespit Edilen Zafiyetlerin Sömürülmesi (Exploitation)

Otomatik tarama araçları ya da manüel yollarla tespit edilen açıklıkların yanlış alarm (false positive) olup olmadığının belirlenmesi ve bu açıklıkları kullanarak nereye kadar gidilebileceğinin tespiti de oldukça önemlidir. Sızma testlerini (pentest) zafiyet taramalarından (vulnerability assessment) ayıran en önemli yön de budur.

Genel olarak, diğer tüm sızma testi türlerinde olduğu gibi web uygulama sızma testlerinde de tespit edilen zafiyetlerin sömürülmesi ve sömürü sonrası yapılabileceklerin belirlenmesi için Metasploit aracı kullanılabilir. Ürün ailesi içindeki msfconsole, msfcli, msfvenom ücretsizdir ve komut satırı çalışan ürünlerdir. Ücretli olan Pro versiyonu da mevcuttur ve web arayüzüne sahiptir.

SQL enjeksiyonu, web uygulamaları için en tehlikeli açıklıklardan biridir. Bu nedenle bu açıklıkla neler yapılabileceğinin belirlenmesi ayrıca önemlidir. Bu amaçla SQLMap aracı kullanılabilir. Ücretsizdir, KALI içinde de yer almaktadır. Komut satırı (command line) çalışan bir üründür. Her bir açıklık özel bir durum oluşturduğundan bir sürü parametre içerir; bu nedenle kullanımı oldukça zordur ancak bir o kadar da etkilidir.

Örnek verilebilecek bir diğer SQL enjeksiyonu istismar aracı da Havij’dir. Grafik arayüzü olan bir araçtır, bu nedenle SQLMap’e gönre kullanılışı oldukça basittir. Ticari bir üründür; ücretsiz versiyonu sadece 1-2 VTYS (Veritabanı Yönetim Sistemi) destekler.

Diğer Araçlar

Bunlara ilave olarak özel durumlarda farklı araçlar edinip testlerde kullanılmaya çalışılmaktadır: Web servis testleri olduğu takdirde SOAP UI, “thick client” bir uygulama söz konusu ise HTTP Debugger Pro aracı bu durumlarda kullanılabilecek araçlara örnektir.

Hiç yorum yok:

Yorum Gönder

Web Uygulama Sızma Testleri İçin Kontrol Listeleri - V

Checklist for Web App Pentesting - V 6. Veri Denetimi (Data Validation) Testleri 6.1 Girdi Denetimi Bütün girdiler denetlenmelidir....