04 Mayıs 2020

Web Application Pentest (Web Uygulama Sızma Testi) Nedir?

Web Application Pentestin Özellikleri
Web Application Pentest'e Özgü Özellikler
Web Application Pentest'i genel network pentest çalışmalarının bir parçası olarak görülebilir. Ancak network pentest çalışmalarında genellikle web uygulamalarına yetkili kullanıcı hesapları ile erişilerek inceleme yapılmaz. Yani eğer uygulamanın login sayfasında veya kolaylıkla tespit edilebilecek ve erişim kontrolü yapılmayan kaynaklarında bir açıklık yoksa network pentest'lerinde web uygulamaları için daha ileriye gidilmez, daha doğrusu gidilemez.

Ancak web uygulamalarına yönelik gerçekleşebilecek riskler sadece anonim erişim sağlayan kullanıcılardan kaynaklanmayacaktır. Bu nedenle web application pentest'lerinde her kullanıcı profilinden en az 2'şer tane test kullanıcısı ile uygulama analiz edilmelidir.

Web application pentest'in network pentest'ten bir diğer önemli farkı ise kullanılan uygulama ve altyapı teknolojilerinin bilinen açıklık türlerinin ötesinde uygulama mantığına yönelik testlerin de gerçekleştirilmesidir.

Yine web application pentest'lerinin doğası gereği bilinen tüm web uygulama açıklık türlerinin teste tabi olan uygulamanın tüm kullanım durumları için tek tek incelenmesi ve denenmesi gerekmektedir.

Sayılan nedenlerle genel bir network pentest çalışmasında 20-30 web uygulaması birkaç günde gözden geçirilebilirken, tek bir web application pentest 4-5 gün sürebilmektedir.

WEB APPLICATION PENTEST METODOLOJİSİ


Web Application Pentest Metodolojisi
Web Application Pentest Metodolojisi

Web Application Pentest'in ilk aşaması uygulama fonksiyonalitesinin anlaşılması ve uygulama mimarisi hakkında bilgi toplamaktan oluşuyor. Bu aşamadan sonra yapılacak olan farklı alanlardaki güvenlik testleri bu aşamada elde edilen bilgilere dayanmak durumunda. Bu nedenle web application pentest uzmanının burada harcayacağı zaman çok önemli. Ayrıca bu zamanın kaliteli harcanması lazım, yani pentest uzmanının web uygulama güvenliği hakkındaki uzmanlığının yüksek olması lazım ki henüz analiz aşamasında ana hatları ile bundan sonraki test noktalarını belirleyebilsin. Yoksa yapılacak olan analiz beklenen faydayı sağlamayacaktır.

Bundan sonraki aşamalar bir kontrol listesi olarak görülmelidir. Yani testin tamamlanmasına yakın bir zamanda tüm testlerin gerçekleştirildiğinden emin olmak üzere bu listeye bir göz atılmalıdır. Hangi testin hangi sıra ile veya hangi derinlikte uygulanacağı ilk aşamada edinilen bilgilere bağlıdır.

ERİŞİM YÖNETİMİ

Erişim yönetimi ve erişim kontrolleri en kritik uygulama güvenlik alanlarından birisidir. Bu yüzden mutlaka uygulamanın sahip olduğu erişim yönetim mekanizması anlaşılmalıdır. Bu değerlendirmeden sonra diğer kullanıcıların varlıklarına yönelik yatay erişim ihlalleri, yüksek haklara sahip kullanıcıların varlıklarına yönelik dikey erişim ihlalleri, anonim olarak uygulama kaynaklarına erişim imkanları denetlenmelidir. Ayrıca uygulamanın sahip olduğu erişim kontrol, parola ve güçlü kullanıcı tanılama politikaları değerlendirilmelidir.

Web uygulamalarına veya web servislerine erişimlerde oturum yönetimi önemli bir kontrol alanıdır. Uygulamanın oturum kurma ve sonlandırma süreçleri ile birlikte oturum yönetim parametrelerinin güvenli olup olmadıkları değerlendirilmelidir.

GİRDİ KONTROLLERİ

Herhangi bir sistemi veya uygulamayı hackleyebilmek için o sistem veya uygulama ile etkileşime geçebilmek ön şarttır. Dolayısıyla hedeflenen sistemin girdi noktalarının tespiti ve bunlara bazı verileri göndererek uygulamanın davranışına müdahale edilip edilemeyeceği son derece önemlidir. Her uygulama teknolojisinin kendine has girdi işleme zafiyetleri bulunmaktadır. Web application pentest'lerinde de tespit edilen tüm girdi noktaları için web teknolojilerine özel tüm manipülasyon girdi türleri denenmelidir. Güvenlik terminolojisinde bu testlere fuzzing testleri adı verilir.

UYGULAMA MANTIĞI

Web application pentest projelerinde insan katılımının mecburi olduğu başlıca alan uygulama mantık hatalarının tespitidir. Bu testleri yapabilmek için uygulamanın kullanım amacı ve fonksiyonalitesinin anlaşılması, daha sonra da test edilecek suistimal senaryolarının geliştirilmesi gerekir. Tabi burada pentest uzmanının önemli bir avantajı uygulamanın önyüzündeki kısıtlar ve kontrollerden bağımsız olabilecek teknik bilgiye sahip olmasıdır. Bu bilgi sayesinde fonksiyonel testler sırasında tespit edilememiş, ancak gerek iş kayıplarına gerekse sistem güvenliğine zarar verebilecek açıklıkları tespit edebilir.

ALTYAPI VE DİĞER TESTLER

Her uygulama üzerinde çalıştığı platformun güvenliğine dayanmak durumundadır. Bu nedenle network pentest projelerinin de kapsamında olan sistem ve sunucu açıklıklarının değerlendirilmesi application pentest'lerinin de kapsamında olmalıdır. Eğer test edilen uygulama henüz canlı ortama alınmamışsa, canlı ortama geçiş sonrasında altyapı testi tamamlanmalıdır.

Bu başlıkların dışında uygulamanın kullanım amaçlarına, kullanılan teknolojilere veya uygulama ile bağlantılı diğer operasyonlara bağlı olarak ek test ihtiyaçları ortaya çıkabilir. Pentest uzmanının bu konuları da gözden kaçırmaması ve olası saldırı vektörleri hakkında gerekli testleri gerçekleştirmesi gerekir.

BTRisk pentest hizmetleri ile ilgili daha fazla bilgi almak ve BTRisk'e ulaşmak için aşağıdaki sayfaları ziyaret edebilirsiniz:
https://www.btrisk.com/hizmetler/pentest-sizma-testi-hizmeti/
https://www.btrisk.com/iletisim/