İçindekiler Tablosu
Giriş
Kişisel bilgisayarlar ve sunucularda kullanılan işletim sistemleri bugünkü halini almadan önce DOS gibi tek kullanıcılıydı. Tek kullanıcılı olduğundan dolayı tüm yönetimsel işlevler tek kullanıcı hesabı altında bulunurdu. Artan ihtiyaçlar ve paralelinde teknolojinin gelişmesiyle birlikte, işletim sistemlerinde de tek kullanıcılı sistemlerden çok kullanıcılı sistemlere doğru bir gelişim süreci izledik. Geliştirdiğimiz çok kullanıcılı modern işletim sistemlerinde, sistemi yöneten bir kullanıcı ve sıradan kullanıcılar mevcuttu.
Yönetici hesabı dosya işlemleri de dahil olmak üzere, tüm yönetimsel işlemleri gerçekleştirebilirken, kullanıcı hesabı ise kısıtlı yetkilere sahip olmuştur. Yani kullanıcı hesabının ele geçirilmesi bile bir şey ifade etmiyor artık. Kötü niyetli kullanıcılar için, sisteme erişim sağladıktan sonra sistemde istenildiği gibi hareket etmek için, normal kullanıcı yetkilerinin yönetici yetkilerine dönüştürülmesi bir ihtiyaç halini almıştır. Sisteme sızarak yetkisiz kullanıcı profiline yönetsel yetkilerin kazandırılması ve sömürme işlevine “Exploiting” denir. Yetki yükseltme işlemlerinin kullanıldığı uygulamalara ise “Exploit” denir.
Exploiti Türkçeye “Sömürme” veya “Yararlanma” olarak çevirebiliriz.
Exploit bir kötücül yazılım değildir, daha çok bir metottur. Siber suçlular tarafından hazırlanan bir program veya bir kod parçacığıdır. Siber suçlular bu program veya kod parçacığını hedef sistemde var olan bir açıklığı kullanarak sisteme iletir ve sisteme sızmaya çalışırlar. Sisteme sızdıktan sonra sistemde hedeflenen amaçları gerçekleştirmek için yetki yükselterek, kullanıcı profilinden yönetici profiline geçerler. Bu işleme Exploiting denir.
Bir Exploit Nasıl Çalışır?
Güvenlik açıklarının çoğunluğu bir yazılım veya sistem mimarisi hatasının sonucudur. Yanlış tasarım veya eksik kodlama gibi hatalar sonucunda sistemde çeşitli açıklıklar meydana gelir. Kötü niyetli kullanıcılar veya siber suçlular, hedefledikleri sistemde var olan açıklıkları bulurlar. Daha sonra bulunan açıklıklardan hedef sisteme, kendi hazırladıkları bir program veya kod parçacığını ileterek sisteme ulaşmaya çalışırlar. Sisteme ulaştıktan sonra sistemde istedikleri gibi hareket etmek için, kullanıcı profilinden yönetici profiline geçmeye çalışırlar. Bunu da yine sistemde var olan açıklıkları kullanarak gerçekleştirirler.
Exploit, sisteme sızmak ve sistemde yetki yükselterek sistemi ele geçirmek için kullanılan tüm programlar ve kod parçacıklarıdır.
Açıklık Noktaları
a)Donanım
Donanım, çeşitli derecelerde, ister bir kişisel bilgisayar için karmaşık işletim sistemi olsun, ister bir uç cihaz için daha basit bir işletim sistemi olsun, bir işletim sistemi üzerinde çalışmalıdır. İşletim sistemindeki güvenlik açıklıkları, belleği bozabilecek veya cihazın donmasına neden olabilecek bir exploit için giriş noktaları haline gelir.
b)Yazılım
Yazılım geliştirmenin normal bir sonucu olan yazılım hataları, yama yapılmazsa veya düzeltilmezse kötüye kullanıma açık güvenlik açıkları haline gelebilir. Yaygın exploit metotlarından bazıları arasında bellek güvenliği ihlalleri, giriş doğrulama hataları yer alır. Ayrıca yan kanal saldırıları ve privilege confusion (ayrıcalık karışıklığı) hataları yer alır.
Şekil 1 : SQL Injection Saldırı Görseli
c)Ağ
Bir ağın bileşenlerinin her biri güvenlik açığı olasılığı sunar. Bunlar donanım, yazılım veya güvenlik duvarı yapılandırmaları da olabilir. Açıklardan yararlanmanın bir parçası olabilecek bazı saldırı örnekleri. Alanın ele geçirilmesi, DoS ve dağıtılmış hizmet reddi (DDoS) saldırıları ve kötü amaçlı yazılım olabilir.
d)Personel
Siber suçlular personelleri de exploit edebilirler. Siber suçlular, sosyal mühendislik saldırıları, hedef odaklı kimlik avı ve bal tuzağı yoluyla cihazlarını ve kimlik bilgilerini hedef alabilirler. Eğitim ve erişim kontrolü bu güvenlik açığını azaltmak için çok önemlidir.
e)Fiziksel Site
Siber suçlular Exploitingi, fiziksel güvenliğin veya yetersiz erişim kontrolünün mevcut olması durumunda site üzerinde gerçekleştirebilirler. Bir hırsızın içeri girip hırsızlık yapması gibi, bir siber suçlu da (fiziksel veya uzaktan) içeri girebilir. Ve tüm ağı tehlikeye atacak bir istismar gerçekleştirebilir. En yaygın web tabanlı güvenlik açıklıklarından bazıları arasında SQL enjeksiyon (injection) saldırıları, siteler arası komut dosyası oluşturma, (cross-site scripting) ve siteler arası istek sahteciliği yer alır (cross-site request forgery). Ayrıca bozuk kimlik doğrulama kodunu (broken authentication code) kötüye kullanmak veya güvenlik yanlış yapılandırmaları da (security misconfigurations) yer alabilir.
Şekil 2 : XSS Saldırı Görseli
Exploit Türleri
a)Zero-Day (Bilinmeyen) Exploitler
Bu, daha önce bilinmeyen bir exploit veya güvenlik açıklarından dolayı bilinmeyen bir exploit fırsatıdır. Siber güvenlik uzmanlarının bir sistemde veya uygulamada tespit ettikleri bir açığa, çok kısa bir süreçte yazdıkları exploitlere Zero-Day exploit denir. Zero-Day exploitler henüz ilgili sistemde, uygulamada yama çıkarılmadan yayınlandığı için tehlikeli olabilmektedirler. Zero-Day exploitleri tahmin etmek çok önemlidir. Böylece güvenlik açığını veya tehdidi azaltmaya yönelik yamalar veya başka stratejiler geliştirebiliriz.
b)Bilinen Exploitler
Bilinen exploitler siber güvenlik uzmanlarının tespit ettiği ve belgeledikleridir. Yamaları ve diğer düzeltmeleri yayınlayabiliriz. Ancak siber suçlular aynı zamanda belgeleri ele geçirip bir istismar tasarlayabilirler. Ana risk faktörü, kuruluşların genellikle bir güvenlik açığını ortadan kaldıracak kadar hızlı bir şekilde yamayı uygulamamalarıdır. Veya bir sorunu onarmamalarıdır.
Erişim Şekline Göre Exploitler
a)Local Exploitler
Genellikle sisteme (local olarak) normal kullanıcı yetkileriyle bağlanan kullanıcılar yetkilerini yükseltmek isteyebilirler. Bunu kullanıcıların yetkilerini yükseltmek amacıyla, sistemde bulunan açıkları sömürmek için kullandıkları exploitler olarak tanımlayabiliriz.
b)Remote Exploitler
Remote Exploitlerde, siber suçlular, harici bir bilgisayarda, intranet veya başka bir ağ aracılığıyla çalıştırırlar. Ve sisteme önceden erişim gerekmeden bir güvenlik açığından yararlanırlar. Amacı, verilere erişmek veya verileri çalmak. Ya da tek bir bilgisayara veya tüm sisteme veya ağa kötü amaçlı yazılım yüklemektir. Sisteme (Herhangi özel bir yetki olmaksızın) uzaktan bağlanan kullanıcıların, uygulama üzerindeki açıkları sömürmek için kullandıkları exploitlerdir.
Exploit Kit
Exploit kitleri, kullanıcının web’de gezinirken bilgisayarında belirlenen güvenlik açıklarından sessizce ve otomatik olarak yararlanmaya çalışır. Siber suçlular tarayıcı açıklarından yararlanmaları genellikle kullanırlar. Ancak bunlar aynı zamanda Adobe Reader gibi yaygın yazılımları veya işletim sisteminin kendisini hedef alan açıkları da içerebilir. Bu exploit kitlerin amacı, kullanıcıların farkında olmadan zararlı yazılımları bulaştırarak kişisel verileri çalmaktır. Veya fidye istemek ve bilgisayarı bir botnet’e dahil etmek gibi kötü niyetli faaliyetlerde bulunmaktır.
Kitlerin çoğu PHP’de yazılmıştır. Çoğunlukla otomatiktirler. Ve uzaktan erişim araçlarının .(Remote Access Tools (RAT)). veya toplu kötü amaçlı yazılımların siber suçlular tarafından dağıtımı için tercih edilen yöntem haline gelmişlerdir. Çoğu zaman amaç, cihazların kontrolünü basit ve otomatik bir şekilde ele geçirmektir. Saldırının başarılı olması için bir exploit kiti içerisinde bir dizi olay gerçekleşir. Bir açılış sayfasına yönlendirmeyle başlar. Ardından istismarın yürütülmesi ve son olarak yükün teslim edilmesiyle ana bilgisayarın kontrolünün ele geçirilmesi gelir. Exploit kitlerini, siber güvenlik uzmanları, sistemin güvenliğini değerlendirmek için sızma testlerinde de kullanabilirler. Exploit kitleri genellikle karaborsada hem bağımsız kitler hem de hizmet olarak satılmaktadır.
Şekil 3 : Exploit Kit Görseli
Umarım faydalı olmuştur. Daha fazla bilgi için aşağıdaki sayfaları ziyaret edebilirsiniz;
https://www.cisco.com/c/en/us/products/security/advanced-malware-protection/what-is-exploit.html
Büşra Zümra Karaozan
HacktorX YazarıFırat Üniversitesi Teknoloji Fakültesi Yazılım Mühendisliği /Siber Güvenlik