Pentest (Sızma Testi) Hizmetleri

Pentest Nedir

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.