28 Mart 2011 Pazartesi

OWASP Top10 Açıklık ve İlgili Araçlar


OWASP'ın 2010 yılı için açıkladığı en önemli 10 güvenlik riski ve bunlar için en faydalı araçlardan birer örnek, bu yazının konusunu oluşturur. Yazı http://resources.infosecinstitute.com/owasp-top-10-tools-and-tactics/ adresinde bulunan makale baz alınarak hazırlanmıştır.
OWASP'ın 2010 yılı analizi ile ilgili detaylar için: http://www.owasp.org/index.php/Top_10_2010-Main

Risk - Araç matrisi:

RISKTOOL
A1: InjectionSQL Inject Me
A2: Cross-Site Scripting (XSS)ZAP
A3: Broken Authentication and Session ManagementHackBar
A4: Insecure Direct Object ReferencesBurp
A5: Cross-Site Request Forgery (CSRF)Tamper Data
A6: Security MisconfigurationWatobo
A7: Insecure Cryptographic StorageN/A
A8: Failure to Restrict URL AccessNikto/Wikto
A9: Insufficient Transport Layer ProtectionCalomel
A10: Unvalidated Redirects and ForwardsWatcher


1. Injection: SQL Inject Me
SQL Inject Me, en yaygın bilinen Firefox plug-in'lerinden biridir. Aktif hale getirildiğinde aşağıdaki ekran görüntüsünde bir sidebar açılır. Bu arayüz değişkendir; browser'da açılan sayfadaki formlara ve girdi alanlarına göre dinamik olarak değişir.

Test tamamlandığında sonuçları ayrı bir Firefox tab'ı olarak açılır.

2. XSS: ZAP
ZAP: Zed Attack Proxy.
Bir OWASP projesidir. Web uygulamalarındaki zafiyetleri bulmak için kolay kullanımlı bir sızma testi aracıdır. Desteği devam eden ve gelecek planları yapılan bir araçtır. 1.2.0 versiyonu, bir kişisel vekil, kaba kuvvet saldırı, port tarama ve spidering gibi kabiliyetleri barındırmaktadır. Genel bir açıklık tarama aracı olmasına karşılık biz bu aracı XSS tarama için özel olarak değerlendiriyoruz.

Orijinal makalenin yazarı, ZED'in spidering kabiliyetini de takdir ettiğini söylüyor.

3. Broken Authentication and Session Management: HackBar
Sözü edilen açıklığın en önemli nedenlerinden biri, zayıf SessionID'dir. Sıkça SSL/TLS kullanmadan transfer edilirler; zayıf depolanmışlardır (kripto kullanmadan); URL rewriting ile ortaya çıkarılabilirler. SessionID'nin kullanıcı parolasının MD5 ya da Sha1 hash kodu olduğu durumlar bile görülmüştür. Saldırgan MITM (Man-In-The-Middle) gerçekleştirebilmişse ya da XSS gibi bir yöntemle kullanıcı SessionID'sini elde edebilmişse, ters çevirmeden replay edildiği konu edilmezse (!), Firefox plug-in'i olan HackBar kullanılabilir.
Yükledikten sonra F9 kısa yoluyla HackBar görüntülenebilir; burada Encryption pull-down menüsünden Sha1 ya da MD5 menüsü, o menü altından da Send To...

XSS ve SQLi testleri yanıs sıra, HackBar, Base64, URL ve Hex encoding-decoding konusunda da çok başarılı bir araç.

4. Insecure Direct Object References: Burp Suite
Doğrudan nesne referansının en kötü sonucunun dizin gezinimi olacağını düşünebiliriz.
Dizin gezinimi testi için Burp'ün ticari versiyonu yanında ücretsiz versiyonu da kullanılabilir.
Test için: WebGoat içindeki Access Control Flaws - ByPass a Path Based Access Control Scheme dersi kullanılabilir. Burp'ün sol penceresinde görünen linke (http://localhost/WebGoat/attack?Screen=17&menu=200) sağ tıklanarak adres Repeater'a gönderilir; Repeater tab'ına gidilir, File parametresindeki BackDoors.html değeri BackDoors.html..\..\..\..\..\..\..\..\windows\windows.ini olarak değiştirilir.


5. CSRF - TamperData
Firefox plug-in'i. Yüklendikten sonra Tools menüsü altından aktif hale getirilebilir. Tamper data ile yapılan, HTTP taleplerini yakalayıp değiştirerek göndermektir; bu özelliği ile CSRF testleri bilinen prosedürleri ile gerçekleştirilir. Webscarab vb kişisel vekiller ile HTTP talepleri yakalayarak CSRF testleri gerçekleştirmeden bir farkı yoktur Tamper Data ile bu testleri gerçekleştirmenin.


6. Security Misconfiguration: Watobo
Watobo, yarı otomatik web uygulama denetimleri yapmak için tasarlanmıştır ve ayrıca hatalı konfigüsaryonları bulma konusunda iyi bir araçtır.
Watobo bir kişisel vekil gibi çalışır. Ruby ile yazıldığından Ruby interpretter kurulmasını gerektirir. Öntanımlı olarak dinlediği port 8081'dir.


8. Failure to Restrict URL Access: Nikto/Wikto
Uygulama, korunmuş bölgelere erişen URL'leri her erişme girişiminde test etmeli; aksi halde saldırgan, Nikto (ya da bunun benzeri bir Windows GUI'si olan Wikto) benzeri araçlarla özellikle sayfa hiyerarşisi iyi bilinen wordpress benzeri uygulamalarda gizli/yetkisiz sayfalara erişebiliecektir.
Nikto, web sunucular üzerinde geniş kapsamlı testler gerçekleştirebilen bir web sunucu tarayıcısıdır. Potansiyel olarak tehlike taşıyan 6400 dosya/CGI, 1000'den fazla sunucu için versiyon güncelliği kontrolü ve 270'den fazla sunucu için var olan versiyona özel zafiyetler, Nikto'nun birçok test kaleminden birkaçıdır.
Nikto, Perl ile yazılmıştır ve çalıştırmak için Perl interpreter gerektirir. Linux bir sistemde şu şekilde çalıştırılabilir: ./nikto.pl -h <hedef host IP ya da URL>.

Nikto taramalarında false positive sonuçlar elde etmek olasıdır, ama çok değerli sonuçlar da elde edilecektir.
Yukarıdaki resmin sonunda erişimin kısıtlanması gerektiği düşünülen bir dizin raporlanmıştır.

9. Insufficient Transport Layer Protection: Calomel Add-on
Yetersiz taşıma katmanı korumasının tarifi kolaydır, SSL kullanılmaması. Calomel, sertifika durumu hakkında çok güzel bilgi veren bir Firefox plug-in'i.

Calomel, SSL bağlantısı güvenliğini derecelendirir; uygulamaya özel buton'un rengi, güvenlik seviyesine göre farklılaşacaktır. Butona basıldığında da şekildeki gibi detaylar dökülecektir.

10. Unvalidated Redirects and Forwards: Watcher
Watcher, Chris Weber'in Fiddler (ücretsiz web debugger) uygulaması için bir add-on (sadece IE için). Pasif bir analiz aracı olarak inanılmaz güzel çalışır. Ayrıca açık yeniden yönlendirmeleri (redirect & forward) yakalar. Fiddler ile birlikte kurulacak Watcherın çalışıp çalışmadığını anlamak, Fiddler üzerinden trafiğin geçtiğini anlamak kadar kolaydır; yani Fiddler üzerinden trafik akıyorsa (kişisel vekil) Watcher da çalışıyor demektir.

URL redirect zafiyetinin ne kadar yaygın olduğunu görmek için google'da şu aramayı yapabiliriz: inurl:”redirect.asp?url=”.

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....