Invicti Hawk, SSRF ve Out-of-Band Zafiyetlerini Nasıl Tespit Eder?
Bu yazıda Netsparker web uygulaması güvenlik tarayıcısının, Invicti Hawk zafiyet test alt yapısını kullanarak, SSRF, blind, asenkron ve second order web uygulama zafiyetlerini nasıl tespit ettiğini anlattık.
Invicti Hawk, Netsparker tarafından geliştirilen DNS out-of-band zafiyet tespiti altyapısıdır. Netsparker web uygulaması güvenlik tarayıcısı tarafından yapılan SSRF ataklarının sonucunda, atak başarılı olduğunda out-of-band olarak bilinen bir adrese DNS istekleri yapılır. Invicti Hawk, bu istekleri izleyerek Netsparker uygulamasına sunar. Böylelikle, Netsparker, (Blind XSS, OOB SQLi, ... ) SSRF zafiyetlerinin tespitini out-of-band olarak Invicti Hawk yardımı ile yapmış olur.
Neden Invicti Hawk?
Yaygın olan SQL Injection türleri, Cross Site Scripting ve benzer zafiyetler oldukça kolay tespit edilebilmektedir. Tarayıcı, hedef web uygulamasına istek gönderir ve yanıt aldığında hedefin zafiyet barındırıp barındırmadığını belirlemek için gelen yanıtı analiz eder.
Örneğin tipik bir SQL Injection açığı, yanıttaki bir hata mesajı veya içerik değişikliklerine ya da sayfanın yüklenmesi için geçen zamana bakılarak tespit edilebilir. Ancak tüm zafiyetler bu kadar basit tespit edilemez.
Örneğin, web uygulamasına gönderilen istek başka bir asenkron kod bloğu tarafından kuyruğa alınır ve işlenirse, girdiyi işleyen kod SQL Injection'a açık olsa bile gösterilen yanıtta herhangi bir hata mesajı, içerik farklılıkları veya yükleme zamanındaki farklılıklar olmayacaktır.
Böyle zafiyetleri tespit etmek için tarayıcı, kodu farklı bir iletişim kanalı vasıtasıyla geri bildirimde bulunmaya zorlar. Dolayısıyla bu durum, adına neden out-of-band dendiğini açıklamaktadır. Invicti Hawk, bu sinyalleri alacak farklı iletişim kanalı ve bu tür zafiyetleri doğrulamak için iletişim kuracak ara sunucudur.
Invicti Hawk Hangi Zafiyetleri Tespit Edebilir?
Yukarıdaki yöntem sadece SQL Injection için değil out-of-band tespitinden faydalanan veya sadece bu yöntemle tespit edilebilen çeşitli zafiyetler için de geçerlidir. Invicti Hawk altyapısı, Netsparker web uygulaması güvenlik tarayıcısının aşağıdaki güvenlik açıklarını bulmasını sağlar:
- Out-of-Band SQL Injection
- Out-of-Band Remote File Inclusion
- Out-of-Band Code Injection
- Out-of-Band Code Evaluation
- XML External Entity (XXE) Injection
- Server-side Request Forgery (SSRF)
- Blind Cross-site Scripting
Invicti Hawk Nasıl Çalışır?
- Web güvenlik taraması sırasında Netsparker web güvenlik tarayıcısı bir hash üretir ve onu saldırı payload’ı içerisinde kullanır. Örneğin aşağıdaki isteği hedef web uygulamasına gönderir:
https://example.com/fetch?id=13&url=rc0shnxclpkdrp9oy-nibgsbz7u5ibyjddtzp0rezw4.r87.me/r/ - Hedef uygulama zafiyet barındırıyorsa, DNS sunucumuzla iletişim kurarak URL’i çözümlemeye çalışır.
- DNS sunucusu isteği aldıktan sonra onu hash’ler ve isteğin türü ile birlikte veri tabanına gönderir. Örneğin:
d057a29eb9d43456054ff79b421c36a1d0678768bb7b01adae2f8b025add6df8, DNS
- Taramadan sonra Netsparker tarayıcısı, hash’lenmiş kayıtlar için veri tabanı sunucusunu kontrol eden Invicti Hawk sunucusunu sorgular.
- Tarayıcı hash’lenmiş veriyi aldığında, DNS sunucusunda kullanılan local veriye aynı hash’leme algoritmasını uygular.
Tarayıcının hash’i ile DNS sunucusunun hash’i eşleşirse bunun anlamı, hedef web uygulaması zafiyet barındırmakta ve Netsparker web uygulaması güvenlik tarayıcısı bu zafiyeti doğrulamaktadır.
Hassas Veri ve Güvenlik
Sunucularımız, yukarıdaki yaklaşımı kullanarak zafiyetlerle veya hedef web uygulamasıyla ilgili herhangi bir hassas bilgiyi kaydetmezken aynı zamanda Netsparker web uygulaması güvenlik tarayıcısı, zafiyeti tam olarak doğrulayabilmektedir.