Merhaba
Penetrasyon testlerinden maksimum seviyede verim alınabilmesi, testi gerçekleştirecek pentesterın yeteneklerinden daha fazlasını gerektirmektedir. Özellikle penetrasyon testi hizmeti alan kurumların, test süreci öncesi yapması gereken çalışmalar sızma testlerinin kendisinden daha önemlidir. Bu bağlamda şimdiye kadar gördüğüm yanlışlar ve yapılmasının zorunlu olduğunu düşündüğüm noktalar üzerine bir yazı hazırlamış bulunmaktayım.
Sızma Testi Hizmeti Öncesi Yapılması Gereken Hazırlıklar
1 – Kapsama Sadık Kalınması
Hizmet alımı sürecinde belirlenen kapsamın, test süreciyle ilgilenen çalışan tarafından algılanması son derece önemlidir. Bir çok sızma testi hizmetinde, test süresinde güvenlik açıklıkları taranan sistemler/uygulamalar ile başta belirlenen kapsam uyum göstermemektedir. Bu durum, sızma testi kalitesini etkilemekte ve testi gerçekleştiren beyaz şapkalı hacker’ın konsantrasyonuna negatif yönde etki etmektedir.
2 – Penetrasyon Testi Süreçlerinin Savaşa Dönüşmesi
Penetrasyon testi yaptıran firmanın, test ile ilgilenen çalışanı ile testi gerçekleştiren çalışan arasında ki soğuk savaşın hiç kimseye yararı olmadığı bir gerçektir. Penetrasyon testinin yapılacağı zaman firewall kurallarının değiştirilmesi veya testi gerçekleştiren insanın başında bekleyip “Bu neden ? Bu nasıl ? Bu komut nedir ?” gibi soruların yöneltilmesi, sızma testi kalitesini baltalayan en önemli etmenlerden bir tanesi olmaktadır.
Odak noktası “Güvenlik açıklıklarının tespit edilmesi ve kapatılması!” amacından şaşıp, sızma testi sürecinde yukarı belirtlen durumların yaşanması, güvenlik testi sonuçlarına güvenilememesi ile sonuçlanmaktadır.
3 – Uygulamalar için SVN/GIT kullanılması ve Test Sunucularının Hazırlanması
Güvenlik testi gerçekleştirilecek uygulamaların, test için deploy edilen versiyon bilgilerinin sızma testi ekibi ile paylaşılması önemlidir. Bu durumun ortaya çıkması, uygulamanın güvenlik testine tabi tutulan demo ortamı ile kurumun kendi çalışanlarının gerçekleştirdiği uygulama kalitesi ve kontrol testlerinin aynı ortamda yapılmasıdır. Bunun yanında yazılım ekibide fix’leri veya yeni modülleri aynı ortama deploy ediyorsa, sızma testi uzmanı için durum içinden çıkılmaz bir hal almaktadır. Bu nedenle güvenlik testleri süresinde ilgili uygulama üzerinde ki tüm çalışmaların durdurulması ve test edilen versiyonun not alınması gerekmektedir. Malesef şimdiye kadar SVN/GIT vb yapı ile yazılım takibinin ,versiyonlandırmasının yapıldığı bir güvenlik testi süreci pek yaşayamadık.
Bir sızma testi sürecinde yaşadığım acı tecrübelerden bir tanesi olarak bu madde en çok dikkat edilmesi gerekenler arasındadır. Yaşanan olayı özetlemek gerekirse; internet bankacılığı uygulaması testi gerçekleştirirken, farklı kullanıcıların birbirlerine ait olan hesaplar üzerinden ödeme yapılabilmesini kontrol etmekteydim. A kullanıcısı ile, B kullanıcısına ait bir hesap bilgisi ile ödeme gerçekleştirmeye çalıştım. İşlem başarısız gözükmekteydi. Daha sonra doğrulama testlerinde fark ettim ki, bu işlemi gerçekleştirirken seçtiğim B kullanıcısına ait hesap, kurum çalışanlarının yaptığı test sırasında silinmişti. Bu nedenlede işlem başarısız gözükmekte, güvenlik açığının olmadığı düşünülmüştü. Bu yüzden raporda son derece kritik olan bir zafiyet bildirilememişti.
4 – Uygulama Yapısı ve Test Hesapları
Güvenlik açığı tespiti çalışmalarında, test edilen uygulamanın testi gerçekleştiren uzmana anlatılması önemlidir. Aksi takdirde test ettiği uygulamaya hakim olamayan güvenlik araştırmacısı bir çok güvenlik açığını tespit edemeyecektir. Bu nedenle ilgili uygulamayı geliştiren ekibin lideri ile sızma testi ekip liderinin toplantı gerçekleştirmesi ve karşılıklık bilgi alışverişinin yapılması gerekmektedir.
Bir diğer acı tecrübem ise test hesapları nedeniyle yaşandı. Uygulama testlerinin gerçekleştirilmesi için 2 adet tamamiyle farklı yetkilere sahip birbiri ile alakası olmayan hesap talebinde bulunduk. Kullanıcı hesapları elimizde ulaştı ve güvenlik açığı tespiti çalışmasına başladık. Bulduğumuz kritik açıklardan bir tanesi, A kullanıcısı ile B kullanıcısına ait olan faturaları görüntüleyebilmekti. Sızma testi sonrası yaptığım toplantıda fark edildi ki, bu durum ilgili 2 hesap için normal bir davranışmış. A ve B kullanıcıları aynı firmaya ait çalışanları temsil etmekteymiş ve yetkilendirmeler ile A kullanıcısı B kullanıcısının faturalarını görüntüleme hakkına sahipmiş.
Sızma testi uzmanlarının bu gibi durumları tespit edebilmesi son derece zordur. Test hesaplarının yukarıda belirtilen yapıda olması, kurumun sızma testi öncesi hazırlıklarının yetersizliğinden ve hesapları temin eden kurum çalışanının bilgi eksikliğinden kaynaklanmaktadır.