"Bilgi sistemlerine yönelik saldırı yöntem ve araçları hızla yayılıyor, farklı motivasyonlara sahip çok sayıda kişi tarafından öğreniliyor. Böyle bir dünyada sırf heyecan olsun diye hedef alınmanız olası. Hele bir de bireysel müşteriye hizmet veren ve marka bilinirliği yüksek olan bir kurumsanız bu ihtimal çok daha artıyor." diyen BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri Şirket Ortağı Fatih Emiral, şirketlerin neden bu hizmeti alması gerektiğini ise web sitesinde yayınladığı yazısında örneklerle açıklıyor.
Google gibi arama motorları bildiğiniz gibi internete açık web sunucularını sürekli olarak tarayarak arama veritabanları oluştururlar. Google ve diğer arama motorlarının bu özelliği nedeniyle hacker'lar tarafından kullanılması Johnny Long isimli bir Hristiyan din adamının 2003 yılında meşhur DEFCON konferansında yaptığı sunumla başladı (en azından ünlü oldu) diyebiliriz. Johnny Long bazı arama anahtar kelimeleri ve arama cümleleri ile ilginç içerikleri tespit edebildiğini farketmişti. Bu tarihten itibaren çok çok az teknik bilgiye sahip olan kullanıcılar bile internette paylaşılan bu arama cümlelerini kullanarak internette hassas bilgilere ve sistemlere (örneğin kamera görüntülerine) erişebilir oldular.
Yaptığımız bir incelemede sunucu web shell dediğimiz bir dosya yüklenerek ele geçirilmişti. Sunucuya uzaktan erişme ve saldırgana istediği komutu işletme imkanı veren bu dosyanın sunucu üzerine kopyalanma tarihindeki iz kayıtlarına (sistem log'larına) baktığımızda bu işlemin biraz öncesinde web sunucusu üzerinde bulunan bir dosyaya erişildiğini gördük. Bu dosya kurumun çalıştığı ajans firma tarafından sunucuya yüklenmiş ücretsiz bir içerik yönetim uygulamasının parçasıydı. Ancak maalesef bu uygulama herhangi bir kullanıcı doğrulama yapmıyordu ve internetteki herhangi bir kişi bu uygulamayı kullanarak sunucuya bir dosya yükleyebilir (ve tabi mevcut dosyalar üzerinde istediği değişikliği yapabilir) ve sistemi ele geçirebilirdi. İlginç olan bu dosyanın yerinin nasıl tespit edilebildiğiydi. Çünkü mevcut sunucu dosyalarından herhangi birisi tarafından işaret edilmiyordu.
Ancak log kaydını incelediğimizde bu dosyaya bir google araması sonucu ulaşıldığını anladık (biraz daha teknik olarak ifade etmek gerekirse saldırgan bu sayfaya Google'dan yönlendirilmişti). İlgili log kaydını kullanarak Google'a eriştiğimizde arama için kullanılan arama cümlesini ve saldırıya uğrayan web sunucusunun hangi sayfada olduğunu gördük. Saldırıya uğrayan web sunucusu'nun linki Google'daki 5. arama sayfasında geçiyordu. Yani saldırgan bu şirketi hedeflemiş olamazdı, zaten arama cümlesinde şirketin adı da geçmiyordu. Fiziksel hayatta bu durumu serseri kurşuna benzetebiliriz sanırım.
Herhangi bir şirket öylesine hedef alınabiliyorsa dikkat çeken firma ve kurumların halini siz düşünün. Telefonlarımız bizi bu olaylar karşısında duyarsız hale getirecek kadar çok çalıyor, siber saldırı tehdidi artık çok daha sık ortaya çıkıyor.
Sektörel olarak sıkı düzenlenen finans, telekom, enerji gibi sektörler siber tehditlerden doğrudan etkilendiği için düzenlemeler gereği pentest (sızma testi) yapmak veya yaptırmak zorunda. Düzenlemeler bu alandaki talebin en önemli destekleyicisi olsa da artık siber olayların sıklığı kurumları pentest (sızma testi) hizmetlerini doğal ihtiyaçlarından birisi olarak görüyor.
Pentest (Sızma Testi) 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 Sseç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 gibi davranışlar şü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 söz konusu olabilmektedir.
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.