Bir Web Uygulaması Güvenlik Tarayıcısı için Ücret Ödenmeli Mi?
Ücretsiz ve ticari web güvenlik tarayıcıları arasındaki farklılıkları öğrenmek, doğru bilinen yanlışların farkına varmak için bu yazımızı okumalısınız. Bu yazıda, web güvenliği ve sızma testi konularında kullanıcılara belirgin bir zaman ve efor tasarrufu sağlayan ticari yazılımlar ile hususi amaçlar için üretilmiş ücretsiz yazılımlar arasında performans, fiyat ve zaman tasarrufu gibi belli kıstaslar açısından bir değerlendirme yapılmıştır.
Ticari ve Ticari Olmayan (Ücretsiz) Yazılım İkilemi
Bugünün ticaret dünyasında hiçbir şey ücretsiz olmaya elverişli değildir. En azından çoğumuz böyle düşünürüz. Pentest yapan bir web uygulaması güvenlik tarayıcısı için internette yapılan 10 dakikalık aramayla 50’den fazla ticari olmayan yani diğer bir deyişle ücretsiz olan web güvenlik tarayıcısı yazılımı buldum. Bazıları SQL Injection ya da Cross Site Scripting gibi belli açıklar üzerine yoğunlaşmışken bazılarıysa tamamen şişirilmiş güvenlik yazılımları gibi görünüyordu.
Peki, bunca ücretsiz web güvenlik tarayıcısı mevcutken ben neden bu yazılımlara ücret ödeyeyim? Ticari bir web güvenlik tarayıcısı, talep ettiği fiyatı nasıl hak eder?
Hem ticari hem de ticari olmayan web güvenlik tarayıcılarının hepsinin avantajları ve dezavantajları mevcut. Bu blog yazısında, bu tarzda bir yazılıma sahip olmanız durumunda hangi açıdan değerlendirme yapmanız gerektiğine bakacağız.
Web Uygulaması Güvenlik Taramasını Otomatikleştirme
Ticari olan web uygulaması güvenlik tarayıcıları, yerleşik crawler’lara ve tarayıcılara sahipler. Bu nedenle bir web uygulaması üzerinde zafiyet taraması yapmak çok basit bir işlemdir. Ticari olmayan yazılımların çoğu ise böyle crawler’lar veya tarayıcılara sahip değil. Bunların çoğu, web uygulamalarındaki açıkları tespit edebilmek için birçok manuel müdahaleyi gerektirir. Örneğin, web uygulamasına manuel olarak göz atmak (browsing) isterseniz çoğu yazılımda trafiği yakalamak için bir proxy sunucusu yapılandırması yapmanız gerekir. Dahası, kaydedilmiş oturumu analiz etmek için bir dizi güvenlik script’ini tetikletmeye ihtiyaç duyarsınız.
Elbette ticari bir web güvenlik tarayıcısının web uygulamasındaki tüm alanları crawl edeceğinin ve tüm saldırı yüzeylerini tespit edeceğinin garantisi yok. Buna rağmen bir web uygulamasını otomatik olarak crawl ettirmek, aynı işlemi elle yapmaktan çok daha verimlidir. Bir penetration tester’ın web uygulamasındaki tüm alanlara ve tüm inputlara ulaşıp bunları kaydedeceğinin garantisi var mıdır? Ayrıca modern ERP (Enterprise Resource Planning)’ler gibi büyük web uygulamalarını manuel olarak crawl etmek bazen imkansız olabilmektedir.
Otomatikleştirme hakkında daha fazla detay: web uygulaması zafiyeti bulmayı otomatikleştirme konusunda daha ayrıntılı bir okuma yapmak isterseniz, web uygulama zafiyetlerini otomatik olarak tespit etmenin yararlarını açıklayan Web Güvenlik Testleri Neden Otomatikleştirilmeye İhtiyaç Duyar? başlıklı yazımıza göz atabilirsiniz.
Kullanım Kolaylığı ve Dokümantasyon
Bir önceki bölümde de açıklandığı üzere ticari olmayan bazı web güvenlik tarayıcıları, web uygulamalarındaki zafiyetlerin tespiti için birkaç prosedürü takip etmenizi zorunlu kılar. Ki bu, buz dağının sadece görünen yüzü. Bu yazılımların bazılarının ön koşulları vardır. Bazılarıysa çok özel şartlarda çalışır. Yani söz konusu yazılımları yüklerken bile birtakım zorluklarla karşılaşabilirsiniz. Onlarca ayar yapmanız ya da komut satırında çalıştırma zahmetine katlanmanız gerekebilir.
Tüm bunların aksine, ticari bir web güvenlik tarayıcısı, grafiksel kullanıcı arayüzü sunarak geniş bir web uygulama yelpazesini otomatik bir biçimde crawl etmenize ve taramanıza olanak sağlar. Tek yapmanız gereken kullanıcı dostu bir pencereyi açıp, bazı ufak ayarları yapmak. Sonrasında taramayı dakikalar içinde başlatmak için hazırsınız. Çoğu prosedür otomatik olarak gerçekleştirilse de ticari yazılımlar, ihtiyaç duyduğunuz anda üzerinde oynama yapabileceğiniz birçok ayar sunmaktadır. Şayet bunları yapmayı bilmiyorsanız, onun da kolayı var: Kullanma kılavuzuna bakabilirsiniz. :)
Kesintisiz Gelişme ve İlerleme - En Yeni Güvenlik Kontrolleriyle Tarama Yapma
Kaç kere, başlattığınız bir projeyi zaman bulamadığınız için ertelemek zorunda kaldınız? Aynı durum, ticari olmayan proje ve web güvenlik tarayıcıları için de geçerli. Buna benzer tarayıcılar genellikle, yetenekli pentester’ların hobi amacıyla ya da kendi şahsi işlerini hızlandırmak için ürettikleri yazılımlardır. Böyle projeler bir zaman sonra tamamlanır ve bazıları gerçekten popüler programlar haline gelir. Çoğu nadiren güncellenir veya devam ettirilir.
Ticari web güvenlik tarayıcıları ise çok farklı bir yolu takip eder. Başarılı işletmeler ve güvenlik şirketleri tarafından ekonomik amaçlı üretilir ve geliştirilirler. Bu tarz projelerde büyük meblağlar harcanır. Yazılım şirketleri kaliteli geliştiriciler istihdam eder ve ar-ge departmanlarına büyük yatırımlar yaparlar. Bu düzeydeki finansal istikrar, en güncel web uygulama zafiyetlerini tespit edebilen son teknoloji yöntemleri kullanarak bir ürün geliştirmenin, garanti altına alınması anlamına gelir. İşletme kârda olduğu sürece ortaya konulan ürünün sürdürülebilirliği ve gelişmişliği devam eder.
Birçok ticari web güvenlik tarayıcısının en azından ayda bir kez güncellendiği gerçeğine karşın ticari amaçlarla üretilmeyen diğer yazılımlar ise yıllık güncellemeler bile yapmamaktadır.
Web Uygulamalarını Crawl Etme ve Tarama Becerisi
Modern web uygulamaları, içinde PHP, .NET, ASP, ColdFusion, Ruby, Java ve daha fazlasının da bulunduğu geniş bir framework yelpazesi kullanılarak geliştirilirler. Bu framework'lerin yanı sıra anti-CSRF gibi birkaç güvenlik mekanizmasını ve çeşitli doğrulama (authentication) modellerini de kullanırlar. Ek olarak, çevrim içi işletmeler için hayati bir öneme sahip olan arama motoru dostu URL’ler ve özel 404 hata sayfaları gibi SEO özellikleri de ihtiyaç duyulan mekanizmalar arasında yer alır.
Yukarıda zikredilen framework’lerin ve konfigürasyonların tamamını desteklemek, ticari veya ticari olmayan yazılımlar açısından imkansız bir durum iken bazı ezber bozan yazılımlar, geliştirme platformlarının çoğunu desteklemektedir. Örneğin Netsparker, yerleşik CSRF koruması olan web uygulamalarının otomatik olarak taranmasını sağlayan anti-CSRF token’lara sahiptir. Diğer bazı yazılımlar da otomatik bir şekilde URL Rewrite kurallarını tespit edip senaryoya ayak uydurur. Neticede daha az false positive rapor edilir ya da hiç edilmez. [1]
Crawling ve framework desteği açısından bakılacak olursa ticari amaçla üretilmeyen web güvenlik tarayıcıları daha farklı bir çalışma şekline sahiptir. Belirli web uygulaması özellikleri ve framework’ler için özel bir destek sunmazlarken, manuel müdahaleler gerektirdiği için web uygulamasındaki bazı alanları crawl edip tabiri caizse, “çocuk oyuncağı” olan güvenlik açıklarını tespit edebilirler.
En Güncel Web Uygulama Zafiyeti Kontrolleri
Ticari olmayan web güvenlik tarayıcılarının çoğu birçok eksikliği bünyesinde barındırır. Sınırlı zaman ve kaynaklar, geliştirme sürecini sekteye uğratır. Bu yüzden söz konusu yazılımların çoğu, sadece bir ya da birkaç zafiyeti tespit eder.
Ticari amaçla üretilen web güvenlik tarayıcıları ise önemli derecede bir finans desteğine sahip olduklarından dolayı birçok web uygulama zafiyetini tespit edebilmektedir. Güvenlik tarayıcısı geliştiren güvenlik şirketlerinin çoğu, en güncel web zafiyetlerini tanımlamak ve en yeni güvenlik trendlerini takip etmek için ayırdıkları önemli bütçelere sahiplerdir. Hatta bazıları, zafiyet tespit oranını uygun ivmede tutabilmek için suistimale açık veya güvenli web uygulamalarına karşı sürekli zafiyet testleri yapan mühendislerin istihdam edildiği, kendi test departmanlarına sahiptir. Tatbik edilen bu tarz uygulamaların sonuçları ayrıca geliştiricilerin uygulamalarında bulunan açıklara dair tavsiye niteliği de taşımaktadır. Hacker’lar Bir Adım Önde mi? Web Uygulama Zafiyetlerine Dair Bir Analiz başlıklı yazıda, böyle testlerin sonucunda elde edilen istatistiklere yer verilmiştir.
Profesyonel Yazılım Desteği
Bir problemle karşılaştığınızda destek veren birinin olmaması ne kadar moral bozucu bir şey, değil mi? Bundan önce çok defa ticari olmayan yazılımları bizzat kullandım. Fakat bir dizi engebeyle karşılaşınca bu yazılımları kullanmayı bıraktım. Bir problemle karşılaştığımda destek son derece azdı ve hatta bazen hiç yoktu. İşlerin kötüleştiği bir vakitte sizinle aynı sorunu yaşayıp da aylar önce forum mesajı ya da yorum yazan birinin hiçbir cevap almamış olduğunu görürseniz ne hissedersiniz?
Müşteriye ait bir sitede sızma testi yaptığım sırada bir problemle karşı karşıya kalmışsam mümkün olduğunca kısa sürede bu sorunu çözmek isterim. Tabi bunu yapamaz ve nihai çözüm buluncaya kadar müşteriden ek süre istersem bu, hiç de profesyonelliğe sığmaz. Ya bir çözüm bulunamazsa ne olur? Bir web uygulama güvenlik tarayıcısı, işletmeye bağlı olan bir yazılım türüdür. Ticari olmayan bir e-posta istemcisi indirmek isteseniz, istediğiniz zaman değiştirebilir veya birkaç gün boyunca o olmadan da yaşayabilirsiniz. Fakat web güvenlik tarayıcılarında durum farklıdır. Bu yazılımlar, sürekli değişen ve daima saldırıya açık olan işletmenin web uygulamalarını güvende tutmak için kısıtlı bir zamana sahip ve yüklü bir ödeme almış olan pentester’lar tarafından kullanılırlar.
Bu yüzden profesyonel destek ve teknik dokümantasyon önemli bir zorunluluktur. Ben olsaydım, ticari olmayan bir yazılım kullansam dahi sağlanan destek için seve seve ödeme yapardım. Destek, birçok durumda hayat kurtarıcı olabiliyor.
Geliştirme Sistemleri ile Entegrasyon ve Profesyonel Raporlama
Bir web uygulaması güvenlik tarayıcısının faaliyet alanı, açıkları tespit etmektir. Bunun dışında kalan raporlama veya diğer sistemlerle entegrasyon gibi özellikler bu faaliyet kapsamında değildir. Bir önceki cümle her ne kadar doğru olsa da müşterilerle ya da bir takımın parçası olarak çalışıyorsanız raporların oluşturulması ve taramaların diğer bazı sistemler tarafından otomatik olarak tetiklenebilmesi gerekir. Genelde tarayıcılar yazılım geliştirme yaşam döngüsüne entegre edilirler. Bizim gibi teknik personellerin çoğu bundan hoşlanmasa da raporlama ve entegrasyon, bir web güvenlik tarayıcısını tam bir güvenlik çözümüne dönüştüren hayati öneme sahip özelliklerdir. Bir güvenlik tarayıcısının sahip olduğu daha fazla uyum ve entegrasyon özellikleri, sızma testi yapan takımlar ve büyük çapta geliştirme süreçleriyle entegre olması açısından önemli fırsatlar teşkil eder.
İşletmeler, piyasanın ihtiyaçlarını hızlıca kavrayıp daha fazlasını satmak için; oluşan fırsatlara sıkı sıkıya tutunurlar. Yakın zamanda web güvenlik tarayıcılarının çoğu kendi raporlama sistemlerini oluşturdular ve tarama sonuçlarını XML formatında dışarıya aktarmayı mümkün hale getirdiler. Böylelikle bu dosyaları çözümleyip bug takip sistemlerine (bug tracking system) eklediler. Bazı yazılımlar, ek olarak, web güvenlik duvarlarıyla veya diğer savunma sistemleriyle entegre olabilir hale geldi.
Ticari olmayan web güvenlik tarayıcılarıysa bu konuda da başarısız oldular. Tekrar söylemek gerekirse bu başarısızlık, geliştiricilerin hatası olduğu anlamına gelmez. Buradaki sıkıntı, sınırlı kaynaklar veya kendi yazılımlarını entegre etmek istedikleri büyük çaplı yazılımlardan destek alamamalarından kaynaklanıyor.
Varılan Sonuç
Yazıda da gördüğümüz üzere ticari web güvenlik tarayıcılarıyla ticari amaçla üretilmeyenleri karşılaştırmak mümkün olmadığı gibi adil de değil. Tıpkı bir yarış arabasının yarış pistinde standart bir arabaya meydan okuması gibi. Bu demek değildir ki ticari olmayan web uygulaması güvenlik tarayıcıları ticari olanlara göre kalitesizdir. Asıl kastedilen bu yazılımların belli bir amaca uygun olarak üretildiği ve bu yüzden karşılaştırmanın saçma olacağıdır.
Sızma testi işlemine ayrı ekipler tahsis eden büyük firmalar ya da büyük web uygulama geliştirme şirketleri, kendi SDLC’lerine (Systems Development Life Cycle) entegre olabilen, işin bitmesi için personellerine yardım edebilen, profesyonel raporlar oluşturabilen ve işle uğraşan kişi sayısını düşürüp tekrar eden sıkıcı süreçleri otomatize etmek için kullanılabilen web güvenlik çözümü gibi bir kolaylıktan yararlanmak isterler. İşletmeler, personellerine bir yazılımın nasıl kullanılacağına dair verilecek eğitime para yatırmak veya sadece yazılımı kullanması için bir çalışan istihdam etmek istemezler.
Diğer yandan, web uygulama güvenliği konusunda daha fazla şeyi öğrenmek için gönüllüyseniz ve yeni bilgiler deneyimlemek istiyorsanız veya küçük projeler üzerinde çalışmayı arzu ederseniz, ticari olmayan web güvenlik tarayıcıları sizin için muhtemelen daha iyi bir seçenek olacaktır.
[1] False Positives hakkında daha fazla bilgi edinmek ve web uygulama güvenliği taramalarına olan etkilerini öğrenmek için Web Uygulama Güvenliğinde False Positive Sorunu ve Bunları Alt Etmenin Yolları başlıklı yazımızı okuyabilirsiniz.