En kısa tanımıyla pentest (sızma testi) test kapsamındaki sistem veya sistemleri
ele geçirmeye yönelik test aktiviteleridir. Pentest “penetration test“ ifadesinin
kısaltılmış halidir. Türkçe karşılığı olarak “sızma testi” kullanılır.
Testi gerçekleştiren kişiler belirli saldırgan profillerini simüle ederler. Tehdit
olarak anonim, yani sistemlere herhangi bir yetkili erişim hakkı bulunmayan bir
profil genellikle tüm pentestlerde kullanılır. Bazı durumlarda sistemlere kullanıcı
olarak erişen müşteri ve/veya sistem yönetim haklarına sahip olmayan personel profilleri
de testlerde kullanılır.
Pentest aktiviteleri bir ağ erişimi ile başlar, ancak pentest süreçleri içinde sistemlere
adım atıldıkça sistemler üzerindeki saldırı aktiviteleri ile devam edebilir. Bazı
durumlarda sistemlere düşük haklara sahip bir kullanıcının hakları ile erişim sağlanabilir.
Bu durumda pentestçi (pentester) bu erişim sayesinde edindiği bilgileri veya sağladığı
erişim sayesinde kullanabileceği bir lokal açıklığı (yani sadece sisteme erişildiğinde
kullanılabilecek bir açıklığı) kullanarak haklarını yükseltmeyi hedefler. Çünkü
hedef her zaman sistemin tam olarak (yani yönetici hakları ile) ele geçirilmesidir.
Teknik olarak pentest projelerinin sistem veya sistemlerin ele geçirildiğinde sonlanması
gerekir. Bu durumda pentesti yaptıran taraf başka ciddi açıklıklar bulunup bulunmadığından
emin olamayabilir. Bu nedenle genellikle pentest projelerinde belli bir kapsamdaki
sistemlerin açıklık denetimlerinin de (vulnerability assessment) yapılmasını içerir.
Bu iki hedef çoğu durumda çelişebilir, çünkü pentest projesi belli bir alana odaklanmayı
ve pekçok durumda ek araştırmayı gerektirir. Projenin zaman kısıtı ve açıklık denetiminin
de tüketeceği zaman nedeniyle pentest faaliyetleri olabileceği kadar ilerletilemeyebilir.
Penetration test aktiviteleri ele geçirilen sistemlere saldırı amaçlı araçların
yüklenmesini, sistemlere karşı sistem bütünlüğünü bozabilecek ve hatta sistemlerde
hizmet kesintine yol açabilecek müdahalelerin yapılmasını içerir. Bu durum sistem
bütünlüğü ve hizmet sürekliliği açısından risk doğurur. Bu risk kaçınılmazdır, ancak
test zamanlaması, sistem yöneticileri ile koordinasyon, kimi durumlarda test öncesinde
yedek alınması ve testi yapan kişilerin yetkinlik düzeylerinin yüksek olması gibi
faktörlerle risk azaltılmaya çalışılmalıdır. Varolduğundan şüphelenilen açıklıkların
sömürülmesinin (exploit edilmesinin) riskli olduğu durumlarda mutlaka kurum yönetiminin
onayı alınmalıdır.
Pentest Nasıl Yapılır
Pentest’in ilk adımı bilgi toplama safhasıdır. Hedeflenen ağ hakkında iki ana tür
bilgi toplama yöntemi mevcuttur. Bunlardan birincisisi özellikle hedeflenen ağın
internete açık olduğu durumlarda çevrim dışı (offline) yöntemdir. Çevrim dışı yöntemde
kurumun IP aralıkları ve alan adı kayıtları ilgili bağımsız veritabanlarından sorgulanır,
arama motorlarının hedeflenen ağa ilişkin indekslediği bilgiler sorgulanır. Sosyal
mühendislik testleri gerçekleştirilecekse bu amaca yönelik bilgiler de sosyal ağ
uygulamalarından ve yine arama motorlarından faydalanılarak toplanır. Tam olarak
çevrim dışı olmasa da kuruma ilişkin isim kayıtlarının sorgulanması (yani DNS sorguları)
aracılığıyla bilgi toplama işlemi de bu yöntemin parçası olarak sayılabilir.
İkinci yöntem çevrim içi (online) bilgi toplama yöntemidir. Bu yöntemde hedeflene
ağ üzerindeki sistemler ile iletişim kurulmaya başlanır, dolayısıyla farkedilmeye
başlanırsınız. Çevrim içi yapılan sorgular ile canlı sistemler ve bu sistemler üzerinde
çalışan servisler daha da netleştirilir.
Bilgi toplama adımından sonra servis ve kullanıcı inceleme (enumeration) adımı başlar.
Bu adımda çalışan servislerin arkasındaki teknolojiler, bu teknolojilerin üreticileri
ve versiyonları tespit edilir. Ayrıca öntanımlı veya tespit edilebilen servis kullanıcıları
da bu adımda belirlenir.
Tespit edilen servisler ile ilgili yayınlanmış açıklıklar açıklık veritabanlarından
araştırılır. Web teknolojilerinde ise genellikle özel fonksiyonlar ve servisler
ile karşılaşılacağından manuel olarak web teknolojilerine özel açıklıkların incelenmesinde
fayda bulunmaktadır.
Servis ve kullanıcı inceleme adımından sonra bilinen veya test sırasında tespit
edilen açıklıklar için yayınlanmış olan örnek sömürü kodları (exploit code) ve pentest
şirketinin kendi geliştirdiği kodlar değerlendirilir. Daha önce de belirtildiği
gibi sömürü kodları sistemin bütünlüğünü bozabileceği için gerekli onay süreci işletilerek
denenmelidir.
Tespit edilen ön tanımlı kullanıcılar için öntanımlı parolalar denenir, öntanımlı
ve diğer kullanıcılar için parola kırma saldırısı pentest proje planı dikkate alınarak
planlanabilir ve gerçekleştirilebilir. Bu testlerde parola politikaları da dikkate
alınmalıdır. Aksi takdirde hesapların kilitlenmesi operasyonel kesinti ile sonuçlanabilir.
Hedef sistemlere adım atılabildiği durumlarda bir sonraki aşama sistemin tamamen
ele geçirilmesi olacaktır. Bu amaçla sisteme eriştikten sonra elde edilen bilgiler
değerlendirilir ve sistem üzerinde sömürülebilecek lokal açıklıklar yine açıklık
veritabanlarından araştırılır. Bu ek adımlar ile sistem tam olarak ve sistem yöneticisi
hakları ile ele geçirilmeye çalışılır.
Sistemlerin ele geçirildiği durumlarda proje planına bağlı olarak ele geçirilen
noktalardan diğer sistemlere daha avantajlı saldırılar yapma imkanları değerlendirilebilir.
Son olarak raporlama aşamasında tespit edilen açıklıklar ve bunların giderilme yöntemleri
raporlanır. Raporun katma değerinin artırılması amacıyla mimari ve süreçsel açılardan
alınması gereken önlemler ve izlenmesi gereken stratejiler de belirtilebilir. Çünkü
tespit edilen açıklıklar genellikle bu eksikliklerin semptomları olacaktır.
Pentest Şirketi Seçimi
Pentest faaliyeti bir denetim faaliyeti olup teknik olarak derin bir alandır. Bu
nedenle teknik yetkinlik son derece önemlidir. Bu konuda kurum hakkında çeşitli
kanallardan bilgi edinilebilir, ancak en değerli bilgi şirketle doğrudan çalışmış
diğer kurumlardan veya şirketin denenmesi usulüyle elde edilebilir.
İkinci, ancak en az birinci faktör kadar önemli olan bir diğer faktör bağımsızlıktır.
Pentest sürecinde çalıştığınız şirketin eriştiği ve elde ettiği bilgiler son derece
hassastır. Bu nedenle teknik yetkinlik kadar bu şirketin bağımsızlığı da çok titiz
biçimde sorgulanmalıdır. Şirketlerin açık veya gizli biçimde çeşitli taraflarla
olan bağlantıları hafife alınmamalı, pentest sırasında elde edilecek bilgilerin
kurum aleyhine kullanılma ihtimalleri ciddi biçimde değerlendirilmelidir.
Bağımsızlıkla da ilgili olan üçüncü faktör ise iş ahlakıdır. Pentest hizmeti aldığınız
bir firmanın belli bir süre sonra sizinle ilgili siber istihbarat bilgisi elde ettiklerini
söyleyerek size yaklaşmaları ve kritik bir açıklığı size bildirmeleri şüphe ile
karşılanmalıdır. Bu tür bir bulgu pentest sırasında elde edilmiş ancak sizinle paylaşılmamış
olabilir. Pentest sırasında elde edilen bilgilerin farkında olarak veya olmayarak
farklı müşterilerde pazarlama aracı olarak kullanılması da maalesef görülebilmektedir.
Pentest Faaliyetlerinin Periyodu
Her denetim aktivitesinde olduğu gibi pentest (sızma testi) hizmeti de bir risk
değerlendirmesi sonucunda planlanmalıdır. Risk değerlendirmesinde ilgili sistemlerin
kurum açısından kritikliği, sisteme erişen kullanıcı ve bağlı ağların güvenilirlik
düzeyleri dikkate alınmalıdır. Çok kritik sistemler için herhangi bir değişiklik
olmasa dahi açıklıkların sürekli olarak keşfedildiği dikkate alınarak periyodik
pentest yaptırılmalıdır.