Web Uygulama Güvenliği Pentest Nasıl Yapılır? Günümüz bilgi güvenliğinde iki tür yaklaşım vardır. Bunlarda kabul göreni proaktif yaklaşımdır. Pentest yani sızma testleri ve vulnerability assessment yani zayıflık tarama konusu proaktif güvenliğin en önemli bileşenlerinden biridir.
Pentest (sızma testleri) ve vulnerability assessment (zayıflık tarama) birbirine benzeyen fakat farklı kavramlardır. Zayıflık tarama hedef sistemdeki güvenlik açıklıklarının çeşitli yazılımlar kullanarak bulunması ve raporlanması işlemidir.
Pentest çalışmalarında ise amaç sadece güvenlik açıklıklarını belirlemek değil, bu açıklıklar kullanılarak hedef sistemler üzerinde gerçekleştirilebilecek ek işlemlerin (sisteme sızma, veritabanı bilgilerine erişme) belirlenmesidir. BGA Bilgi Güvenliği Web Uygulama sızma testleri ile bu noktada ön plana çıkmaktayız.
Zayıflık tarama daha çok otomatize araçlar kullanılarak gerçekleştirilir ve kısa sürer. Pentest çalışmaları ise zayıflık tarama adımını da kapsayan ileri seviye tecrübe gerektiren bir süreçtir ve zayıflık tarama çalışmalarına göre çok daha uzun sürerek tespit edilen zafiyetler incelenir ve müşterilere özel raporlar sunulur.
BGA “Web Application Security Assessment Framework” hazırlanırken konu hakkındaki uluslararası standartlar incelenmiş ve azami ölçüde faydalanılmıştır. Aşağıda ise bu makalenin hazırlanmasında kaynak olarak kullanılan dokümanların isimleri yer almaktadır.
- OWASP Testing Guide v3
- OSSTM
- ISSAF
- NIST
Gerçekleştirilen testler uluslararası standart ve yönetmeliklere (HIPPA, Sarbanes-Oxley, Payment Card Industry (PCI), ISO 27001) tam uyumludur. İstenildiği takdirde ilgili standart ve yönetmeliğe uygun ek rapor hazırlanabilmektedir. Dilerseniz BGA Bilgi Güvenliği A.Ş. olarak müşterilerimize sunmuş olduğumuz örnek sızma testi sonuç raporumuzu inceleyebilirsiniz.
Sızma Testleri (Pentest) Süreci
Kapsam belirleme aşamasında firmadan test edilecek sistemlere ait detay olmayan bilgiler talep edilir. Firma vereceği bilgilerin hassaslığı konusunda tereddütlere sahipse hızlıca NDA (gizlilik sözleşmesi) imzalanarak bir sonraki adımdan devam edilir. Belirlenen kapsam sonrası çalışmanın ne olacağı belirlenir ve kaç gün süreceği ve fiyat gibi ek detaylar belirlenerek firmaya bildirilir. Gizlilik sözleşmesi, gerçekleştirilecek pentest çalışmasının detaylarının kesinlikle üçüncü parti firma/kişilerle paylaşılmayacağı, pentest sürecinde elde edilen bulguların sistemlerde şifreli saklanacağı ve kesinlikle farklı amaçlarla kullanılmayacağı gibi adımları belirleyen önemli bir dokümandır.
Pentest Hizmeti
Kapsam belirleme ve NDA imzalanması sürecini takiben pentest çalışmaları başlayacaktır. Gerçekleştirilecek olan pentest çalışması BGA’nın cloud sistemlerinden gerçekleştirileceği için tüm yapılan denemelerin loglanması ve gerçek saldırı ile pentest denemelerinin ayırt edilmesi mümkün olmaktadır. İstenildiği takdirde pentest çalışmasını takip eden iki gün içerisinde tüm pentest çalışmalarının detaylarını içeren özel eğitim verilebilmektedir. Aşağıda web application pentest süreçlerinde kullandığımız teknik detaylar yer almaktadır.
Web Pentest Nasıl Yapılır?
Testlerimiz hedef sistemde kullanılan platform ve geliştirme dilinden (PHP, Ajax, JavaScript, JSP, Java, ASP, ASP.NET, Cold Fusion, Perl, Flash ve Ruby) bağımsız olarak gerçekleştirilmektedir. Pentest çalışmalarında daha çok elle yapılan testler ön plana çıkmaktadır. Otomatize araçlar genellikle işlemleri hızlandırmak ve post exploitation olarak adlandırılan sisteme sızma sonrası ek bilgi edinme (Sqli sonrası veritabanı yapısının belirlenmesi ve verilerin indirilmesi gibi) amaçlı kullanılmaktadır. Gerçekleştirilecek testler firmanın isteğine göre iki farklı şekilde olabilmektedir.
- BlackBox Pentest
- WhiteBox Pentest
BlackBox Web Pentest Yöntemi
Test edilecek uygulama ile ilgili tek bilgi uygulamaya ait web sayfasıdır. Bu yöntemde amaç web uygulamasının tamamen dışarıdan üçüncü bir gözle incelenmesi ve açıklıkların belirlenerek ne tip saldırılara açık olduğunun ortaya çıkartılmasıdır.
Whitebox Web Pentest Yöntemi
Bu yöntemde hedef uygulama hakkında olabildiğince detay bilgi alınarak testlere başlanır. Test yaptıracak firmadan alınması gereken en önemli bilgi teste tabi tutulacak web uygulaması test kullanıcı adı ve test şifresi alınır.
Web Sızma Testleri Detayları Uygulama Keşif ve Bilgi Toplama Adımı
İlk olarak uygulamanın keşfi gerçekleştirilmektedir. Bu aşamada amaç hedef web uygulamasına ait doğrudan bulunabilen ve doğrudan link verilmemiş dosya ve dizinlerin çıkarılması, hedef sistemdeki uygulamanın tam olarak tanımlanmasıdır. Adım adım bilgi toplama aşaması aşağıdaki gibidir.
- Hedef uygulamanın çalıştığı TCP portlarının belirlenmesi
- Hedef sistemdeki çalışan diğer web uygulamalarının belirlenmesi
- Hedef web uygulamasının haritasının çıkarılması – OWASP-IG-001
- Farklı arama motorlarında (Google, Shodan etc) hedef sistem hakkında bilgi toplama OWASP-IG-002
- Uygulama girdi noktalarının belirlenmesi – OWASP-IG-003
- Bilinen web yazılımlarına ait imza taraması – OWASP-IG-004
- Hata mesajlarının belirlenmesi ve incelenmesi – OWASP-IG-006
- Hedef web uygulaması, web sunucusu ve web servisi için kullanılan yazılım sürüm bilgilerinin belirlenmesi.
Web Pentest Saldırı Denemeleri
Web Pentest saldırı denemelerinde dokuz farklı kategoride 66 saldırı denemesi gerçekleştirilmektedir.
- SSL/TLS versiyon, algoritma ve sertifika geçerlilik testleri – OWASP-CM-001
- Hedef uygulamada kullanılan yönetim panelinin belirlenmesi – OWASP-CM-00
- Dosya uzantısı yönetimi testleri – OWASP-CM-005
- Yedek, kopya, test veya eski sürümlerden kalma sayfa ve uygulamaların belirlenmesi- OWASP-CM-00
- Sunucu tarafından desteklenen metodların ve XST belirlenmesi – OWASP-CM-008
Kimlik Doğrulama Testleri
- Hassas bilgilerin şifreli/şifresiz kanallardan aktarımı – OWASP-AT-001
- Hedef uygulama üzerinde kullanıcı adı belirleme/doğrulama çalışmaları – OWASP-AT-002
- Hedef uygulama üzerinde tanımlı kullanıcıların belirlenmesi – OWASP-AT-00
- Hedef uygulama üzerinde yetkili kullanıcılara yönelik brute force parola denemeleri – OWASP-AT-00
- Kimlik doğrulama aşamasını atlatma denemeleri – OWASP-AT-005
- Parola hatırlatma ve parola sıfırlama özelliklerinin testleri – OWASP-AT-006
- Browser ön bellek yönetimi ve “Log out” fonksiyonlarının testleri – OWASP-AT-007
- CAPTCHA güvenlik testleri – OWASP-AT-008
Oturum Yönetimi Testleri
- Oturum yönetimi zayıflıkları, oturum yönetimi bypass testleri – OWASP-SM-001
- Detaylı cookie güvenlik testleri – OWASP-SM-002
- Oturum sabitleme (session fixation) testleri – OWASP-SM-003
- Oturum değerleri tahmin saldırıları – OWASP-SM-004
- CSRF(Cross site request forgery) testleri – OWASP-SM-005
Yetkilendirme Testleri
- Dizin atlatma/gezme(Directory Treversal) testleri – OWASP-AZ-001
- Yetkilendirme atlatma, yetkilendirme geçiş testleri – OWASP-AZ-002
- Yetki yükseltimi testleri – OWASP-AZ-003
İş Mantığı Denetim Testleri
- Uygulamanın işleyişinin belirlenmesini takiben uygulamanın işleyişine yönelik teknik olmayan atakların denenmesi.
Veri Doğrulama Testleri
- Yansıtılan XSS testleri – OWASP-DV-001
- Depolanmış XSS testleri – OWASP-DV-002
- DOM tabanlı XSS testleri – OWASP-DV-003
- XSF (Flash XSS) testleri -OWASP-DV-004
- SQL enjeksiyonu testleri – OWASP-DV-005
- LDAP enjeksiyonu testleri – OWASP-DV-006
- XNL testleri – OWASP-DV-008
- Xpath enjeksiyonu testleri – OWASP-DV-010
- Kod enjeksiyonu testleri – OWASP-DV-012
- İşletim sistemi komut enjeksiyonu testleri – OWASP-DV-013
- Bellek taşması (buffer overflow) testleri – OWASP-DV-014
- Http response splitting testleri – OWASP-DV-016
Hizmet Dışı Bırakma Testleri
- SQL wildcard üzerinden DoS testleri – OWASP-DS-001
- Hesap kitleme politikasının testi – OWASP-DS-002
- Buffer overflow DoS testleri – OWASP-DS-003
- Oturum boyutu arttırma DoS testleri – OWASP-DS-008
- http GET Flood DoS testleri
- SYN Flood DDoS testleri
- Uygulama sürümüne özel DoS testleri
Web Servisi Testleri
- Web servisi bilgi toplama çalışmaları – OWASP-WS-001
- WSDL testleri – OWASP-WS-002
- XML yapı testleri – OWASP-WS-003
Ajax Testleri
- Genel ajax testleri
Web Uygulama Güvenlik Sistemlerinin Testleri
- Web uygulama güvenlik duvarı keşif testleri
- Network IPS keşif testleri
- IPS/Web uygulama güvenlik duvarı atlatma testleri
Web Pentest Risk Seviyelendirme
Risk analizi prosedürüne direk katkıda bulunacak bu teknik rapor, risk hesaplamada kullanılan aşağıdaki klasik formülü referans almaktadır.
VARLIK DEĞERİ x (TEHDİT x OLASILIK x ZAFİYET)
Yukarıdaki hesaplamada varlığın değeri çarpanı risk analiz prosedürüne bırakılıp, parantez içindeki ikinci çarpan bu teknik raporda bulunan açıklıkların seviyelendirmelerinde kullanılacaktır. Tehdit, Olasılık ve Zafiyet olguları aşağıda tanımlanmıştır.
- Tehdit, herhangi bir tehdit kaynağının kasıtlı olarak veya kazayla bir açıklığı kullanarak varlıklara zarar verme potansiyelidir.
- Zafiyet, sistem güvenlik prosedürlerinde, tasarımda, uygulamada veya iç kontrollerde bulunan ve bilgi güvenliği ihlal olayına sebep olabilecek zayıflık, hata veya kusurlardır.
- Olasılık, tehdit ve zafiyetlerin mevcut ortamda olabilme ihtimalidir. Olasılık hesaplamasında, Hata! Başvuru kaynağı bulunamadı. bölümünde bahsedilen ve bulunan açıklığın muhtemel gerçeklenme noktasını detaylı olarak açıklayan kısım da kullanılacaktır.
TEHDİT x OLASILIK x ZAFİYET hesaplaması ile, penetrasyon ve denetim çalışmalarında bulunan açıklar seviyelerin okunma kolaylığı açısından beş risk aralığında değerlendirilmişlerdir. Bu şekilde bu değerler, mesela, PCI-DSS güvenlik tarama prosedürleri dokümanında kullanılan beşli seviye risk değerleri ile örtüşmelidir.
Web Application Pentest Çalışmalarında Kullanılan Yazılımlar
BGA Pentest ekibi olarak ticari, açık kaynak kodlu ve kendi geliştirdiğimiz yazılım/araçları kullanıyoruz. Kendi geliştirdiğimiz araçlar daha çok genel amaçlı kullanılan yazılımlarla gerçekleştirilemeyecek kadar özel olan durumlarda tarafımızdan, Python, bash, C#, C ve PHP dilleri kullanılarak geliştirilmektedir.
Kullanılan Ticari Yazılımlar
- Netsparker
- Metasploit Pro
- Acunetix
- IBM AppScan
- Rapid7 Nexpose
Kullanılan Açık Kaynak Kodlu/Ücretsiz Yazılım ve Bileşenler
- Nessus
- TamperData
- Add N Edit Cookies
- WebScarab
- Burp Suite
- OWASP ZAP Proxy
- w3af
- Webscarab
- Nikto
- Dirbuster
- Medusa, Hydra
- sqlmap
- Bactrack 5
- HP SWFScan
- SamuraiWTF (Web Testing Framework)
- Metasploit
Web Pentest Raporlama
Pentest çalışmasının en önemli bileşenlerinden biri raporlama kısmıdır. BGA pentest ekibi olarak raporlama konusuna özel önem veriyoruz ve rapora yazılan tüm bulguların false positive olmamasını sağlamaya özen gösteriyoruz. Raporu sadece teknik değil, yöneticilerin de okuyacağı düşüncesiyle raporun giriş kısmı yönetici özeti olarak kısa ve öz yapılan çalışma ve çalışmanın sonucunu içerecek şekilde hazırlanmaktadır. Raporda ayrıca tüm açıklıklara ait referans bilgileri, varsa sisteme sızma adımlarının detayları ve kullanılan komut/araçlar ve açıklığın kapatılması için yapılması gerekenler raporu okuyanları sıkmayacak ve kafa karıştırmayacak sadelikte yazılmaktadır.
Neden BGA Web Pentest Hizmeti?
BGA Bilgi Güvenliği A.Ş. Pentest hizmetini tercih etmeniz için bazı önemli nedenler.
- Uygulama testlerinde mutlaka dahaönce 5-6 yıllık uygulama geliştirme deneyimine sahip ekip üyeleri bulunmaktadır .
- BGA Security, tek işi penetrasyon testleri gerçekleştirme ve bilgi güvenliği eğitimleri vermek olan bir firmadır.
- En az 10 yıllık deneyime sahip birçok bilgi güvenliği uzmanı barındırmaktadır.
- BGA Pentest ekibi uluslarası geçerliliğe sahip CEH, CISSP, LPT sertifikalarına sahiptir.
- Türkiye ve dünyada yüzün üzerinde kurumsal referansa sahiptir.
Detaylı bilgi ve fiyat teklifi için bilgi@bga.com.tr adresimizden iletişime geçebilir veya Pentest Hizmeti sayfamızdan teklif alabilirsiniz.