Hack Anatomisi Nasıldır?

Hack Anatomisi Nasıldır? Merhaba arkadaşlar, Bu makalemde siz sevgili okurlarıma hack anatomisinden bahsetmek istiyorum. Cracker’ların sisteme saldırıları nasıl yaptığını bilirsek bu biçimde kendi sistemlerimizde lüzumlu tedbirleri daha şuurlu şekilde alarak sistemimizi daha iyi koruyabiliriz diye düşünüyorum. Bu nedenle konunun bundan sonraki tarafına planlı şekilde yapılan bir saldırının aşamalarını göstermek istiyorum. Genelde kolay şekilde yapılan saldırılarda (daha çok fazla aceleci olan script kiddie’ler sebebiyle yapılan saldırılardır bunlar) burada anlatılan aşamaların çoğu atlanabilmektedir.     Öncelikle hücum yapılacak hedef sistemde herhangi bir firewall olmadığını mevcut sayıyoruz. (Tabi bundan sonra bu günlerde firewall network için vazgeçilmez bir araç durumuna gelmiştir ve gün geçtikçe Internet’e bir biçimde firewall kullanılmadan bağlanan bir sistem edinebilmek imkansızlaşmaktadır.)  Burada anlatılacak olan teknikler cracking için genel bir yöntemdir. Yani her muhtelif sisteme saldırmak için kullanılabilir fakat biz UNIX sistemi açısından saldırıları inceleyeceğiz.   Şimdi ilk aşamadan başlayarak bir yetenekli ve kararlı bir cracker’ın bir sisteme nasıl saldıracağını inceleyelim:   1. Bilgi Toplama Cracker’ın yapacağı ilk iş, hücum yapılacak hedef sistemin kendisiyle direk bir iletişime gerek duymaz! Yani cracker ilk şekilde karşıdaki sistemin network tipini ve hedef makineler meselesinde bilgi edindikten sonra, hedef sistemde uraştığı kişiyi tanımak için onunla ilgili bilgi toplamaya çalışacaktır. Söz konusu şahıs tabiki sistemin yöneticiliğini oluşturan root erişimine sahip yöneticidir.   Cracker sistem dalında bilgi toplamak için aşağıdaki teknikleri kullanacaktır:   a-) Ağda bulunan bütün sistemlerle ilgili bilgi toplamak için host sorgusu çalıştıracaktır. host komutu domain ismi sunucularını (DNS servers) sorgulayarak file hakkındaki bulunabilecek bütün ayrıntıları toplar. Domain ismi sunucusu o domainle ilgili bir çok fazla bilgi tutarlar, asıl amacı piyasa adlarını IP numaralarına dönüştürmektir fakat tıpkı sürede o sistemin donanım ve üstünde çalışan işletim sistemi benzeri ayrıntıları de saklarlar. nslookup komutu bir DNS sunucusunu sorgulamak için uygulanan komuttur. host komutu da nslookup komutuna aynı ama daha açıklayıcı ve ayrıntılı bilgi verir. Bu nedenle host komutu en tehlikeli 10 buyruk listesinde yer alır!   b-) Standart WHOIS sorgusu. Bu sorguyla cracker o sistemin teknik sorumlusunun bilgilerini almak için kullanır. Bu insanın e-posta adresi fazla önemli benzeri görünmese de bu adres sistem bölgesinde çok fazla önemli bilgiler toplamak için kullanılabilir.   c-) Usenet ve Web sayfalarında aram yapmak. Cracker sisteme saldırmadan herşeyden önce şimdiye kadar öğrendiği bilgiler doğrultusunda Internet’te o sistemle ilgili daha fazla bilgiye erişmek için aramalar yapacaktır. Yani Cracker eline geçirdiği sistem yöneticilerin ya da teknik sorumluların e-posta adreslerini kullanarak bu kişilerim Usenet ya da güvenlikle ilgili mail listelerinde görünüp görünmediklerini araştırır.   Cracker’ın ilk şekilde sistem yöneticisi veya sorumlusunun e-posta adresini araması ve bu insanın bu adresi Internet’te araması biraz anlaşılmaz gelebilir.  Ancak sistem yöneticisi sistemin gündelik şekilde yönetimini yapmaktadır ve sistemde çıkabilecek sorunlarla ilgili şekilde Usenet haber gruplarına ve güvenlikle ilgili mail listelerine başvurmuş olabilir. Dolayısıyla cracker buralardan sistem yöneticisinin kendi sistemiyle ilgili şekilde vermiş olabildiği her ayrıcalıklı bilgiyi toplamaya çalışmaktadır.   2. İşletim Sisteminin Belirlenmesi Cracker sistem yöneticisi ve file meselesinde lüzumlu ayrıntıları topladıktan sonra saldıracağı ağda bulunan sistemlerde uygulanan işletim sistemlerini ve sürümlerini belirlemek için bir önceki kısımda anlatılan tekniklerin dışında türlü teknikleri deneyebilir.   Günümüzde bundan sonra ağlar daha fazla heterojen bir yapıya sahiptir. Aynı ağda çok fazla ayrıcalıklı donanım ve işletim sistemleri kullanılabilmektedir. Ancak bu güvenlik tarafından çok fazla daha fazla açık olmasına neden olacaktır. Ne kadar aşırı işletim sistemi varsa o kadar da güvenlik açığı olacaktır. Çünkü her sistem kendisine özgü güvenlik açıkları içerebilir ve bu şekildeki bir ağda cracker’ın bir güvenlik açığı bulması ve bütün ağ’ın güvenliğini tehlike altına atması kaçınılmazdır.   Cracker işletim sistemlerini belirlemek için ftp, telnet bu gibi servisleri deneyebileceği bu gibi hemen hemen kesin çözüm verecek olan bir araç ta kulanabilir. Bu araçlardan birisi nmap aracıdır. nmap gerçekte bir port tarayıcısıdır. Ancak nmap tıpkı sürede taranan sistemdeki çalışan işletim sistemini de büyük bir doğruluk oranıyla tahmin edebilmektedir.   3. Açıkların Aranması Cracker saldıracağı sistemlerin listesini çıkardıktan sonra her bir platform için adlandırılan açıkları Internet’te aramaya başlayacaktır.   Burada dikkat edilmesi gereken nokta bir açıklıkla ilgili şekilde ilk uyarıyı okuduktan sonra, CERT ya da DDN uyarılarında, bu açıklamada o uyarıyı tanımlayacak ismini bulabilmek gerekir. Bu ekseriyetle uyarının başında verilmektedir. misal şekilde daha herşeyden önce değindiğimiz AIX rlogin hatasının adı, “AIX’s froot hole” şeklindedir. Bunu yapmanın nedeni, bu tür uyarılarda genel anlamda güvenlik açığı ve onu kapatmanın yolları gösterilir. Ancak bu zayıflığın nasıl test edileceği ve bundan nasıl yararlanılacağı gösterilmez. Bunlar zaten bir cracker’ın asıl aradığı şeylerdir.   İşte açıkların ismini bulan cracker bu adı Internet’teki öbür mail listelerinde, BUGTRAQ, Firewall ..gibi. arayacaktır. Buralarda ekseriyetle o açıkla ilgili şekilde test ve exploit script’leri verilmektedir. Bu scriptler otomatik şekilde bir sistemde o açığın olup olmadığını test eden ve varsa ondan yararlanmaya çalışan programlardır. Bu programlar çoğunlukla bir shell ya da C programı halinde yayınlanmaktadırlar. Bu programları, lüzumlu değişiklikleri yaparak cracker kendi sisteminde derleyip çalıştırabilir.   Bu noktaya kadar cracker aşağıdaki adımların hepsini ya da belirgin bir tarafını belirlemiştir:   -Sistem yöneticisinin kim olduğunu, -Ağdaki makineler ve işlevleri -Kullanılan işletim sistemlerini, -Muhtemel güvenlik açıklarını, -Sistem yöneticisi anlamında topoloji, yönetim, politika veya sistem yönetimiyle ilgili Internet’te yaptığı herhangi bir münakaşa   4. Test Saldırısı Yapılması Bu adımda cracker saldıracağı sistemle ilgili şekilde bazı noktaları açığa kavuşturmak için kendi sistemlerinde tecrübe saldırısı yapmayı deneyecektir. Bu adım, saldırıyı gerçekten yapmayı düşünen cracker’lar sebebiyle yapılmaktadır. Çünkü bu adımda biraz nakit harcamak gerekebilir!  Bu noktada cracker karşı taraftaki makinenin bir benzerini elde etmeye çalışır. misal şekilde karşı sistemde Solaris 2.4 varsa cracker aynı bir sistemi kurmalıdır. Bunu yaparken cracker’ın iki tane temel amacı vardır:   -Saldırılar hücum oluşturan anlamında nasıl görünüyor, -Saldırılar kurban anlamında nasıl görünüyor, -Saldırgan saldırıda olduğu makinedeki log’ları inceleyerek karşı tarafta hücum ile ilgili nelerin olup bittiğini anlar. Bu biçimde cracker karşı sistemde saldırdan kalan izleri bilir. Her ssitemin kendine göre farklı logging işlemleri bulunmaktadır ve cracker en azından bu log işlemlerini bilmesi gerekmektedir. Hangi log dosyalarının hücum dalında log tutacağını bilmesi gerekmektedir.   Cracker’ın bunu yapmasının nedeni ele geçirdiği sistemden çıkarken bütün geride bıraktığı izleri silmek istemesidir. Sistemdeki log dosyalarını bildiği için bu dosyalara giderek kendisiyle ilgili bütün ayrıntıları silebilir. (Aslında Internet bu işlemleri farklı sistemler için otomatik şekilde oluşturan script’ler de vardır. Ancak bu scriptler ekseriyetle tam olmaması sebebiyle ya da karşı sistemin konfigürasyonu standart dışı olduğunda doğru şekilde çalışmamaktadırlar. Bu scriptlere güvenen cracker’lar çoğu süre logları temizleyememektedirler )   Not: Bu test saldırısı öbür bir erek için de kullanılır. Karşı sistemde hiç bir açık bulamayan bir cracker bu yöntemi test ederek o sistemde bilinmeyen bir açık ta bulabilir. Bu anlattığım hadise geçen yıl Temmuz ayında yapılan eWeek anlamında düzenlenen birinci Openhack hacker yarışmasında isimlendirilen hiç bir güvenlik açığı olmamasına karşın sisteme sızmayı başaran ve ödülü sektör cracker’ın kullandığı yöntemdir.   Cracker bütün sistemi taradıktan sonra sistemde yalnızca 80 numaralı yani HTTP portunun açık olduğunu buluyor ve öbür bir saldıracak nokta bulunmadığı için WWW üstünden saldırıda bulunmayı deniyor. Tabi önce karşı sistemde çalışan uygulamaları tetkik ediyor. Sistemde MiniVend adında bir e-Ticaret paketinin çalıştığını görüyor. Tabi cracker’ın bu sistemde olabilecek açıkları bulabilmesi için aynı bir makine üstünde çalışması gerekmektedir. Cracker bir arkadaşında bu uygulamanın olduğunu buluyor ve kendisine bir account vermesini isteyerek test makinesi üstünde MiniVend uygulamasının dosyalarını incelemeye başlıyor ve uygulanan bir perl cgi programında “open” komutunun güvensiz bir biçimde kullanıldığını buluyor.   Daha önceki kısımda anlattığım benzeri perl içinden sistem çağrılarında sisteme geçirilen buyruk içerisinde metakarakter’lerin olup bulunmadığı test edilmelidir. MiniVend script’inde pipe ‘|’ karakteri kontrol edilmediği için sisteme bu ira kullanılarak arzulanan bir buyruk çalıştırılabilmektedir.   5. Kullanılacak Araçlar Cracker bir sonraki adımda kullanacağı araçları belirleyip toplayacaktır. Bu araçlar çoğunlukla tarayıcılardır. Hedef sistemdeki çalışan servislerin belirlemesi gerekmektedir. Bunun için port tarayıcılarından yararlanılmaktadır. Port tarayıcıları içerisinde en Ünlü ve kapsamlı olanı nmap aracıdır. Bu araca daha evvela değinmiştik. İşletim sistemi sahasında edinilen bilgilere ve servislere göre tarayıcıların hangi alanları ve açıkları tarayıp taramadığı incelenmelidir.   Çünkü bazı tarayıcılar bazı servisleri kapsayıp bazılarını kapsamayabilir. Bu halde birden bire fazla uygun tarayıcı kullanımı gerekmektedir. Bu tür vasıtaların nasıl çalıştığını görmek için en iyi yol daha önceden bu araçları bir sistem zerinde denemektir. Sistemlerin açıklar aracılığı ile türlü araçlar sebebi ile taranması bundan sonra çağımızda o kadar sıkça rastlanan bir hale gelmişki sistem yöneticilerinin dikkatini dahi çekmemektedir, ya da çekse dahi bu konu için fazla bir işlem yapmamaktadırlar.   6. Saldırı Staratejisinin Belirlenmesi Cracker planlı bir saldırıyı bir neden olmaksızın yapmayacaktır. Benzer bir biçimde hücum yapacağı bir sisteme de belirgin bir planı olmaksızın saldırmayacaktır. Cracker’ın hücum stratejisi yapmak istediği işe göre değişir.   Ancak bazı noktalar açıktır. misal şekilde cracker topladığı bütün bilgilerden saldıracağı ağın bazı bölümlerinin router, switch, birdge ve ya öbür cihazlarla segmente edildiğini bulursa bu kısımları tarama dışı bırakabilir. Zira segmented bir ağda bir bilgisayarı ele geçirmek cracker için ana sisteme gitmek için işe yaramayacaktır. Çünkü segmente edilmiş bir sistemde sniffer ya da spoofing teknikleri router ve ya switch üstünden geçemezler.   7. İnceleme Aşaması Cracker taramalardan sonra bulduğu sonuçların incelemesine başlayacaktır. Bu işlem cracker’ın bulduğu sonuçlara bağlıdır. Ancak bu evre bundan sonra çağımızda aşırı pratik duruma gelmiştir.  Eski tarayıcılar yalnızca bulduğu açıkları listelemekte fakat bunlarla ilgili fazla bilgi vermemektedirler. Ancak bundan sonra çoğu tarayıcı, SAINT, twwwscan, CIS… buldukları açıklarla ilgili şekilde açıklayıcı bilgi ve o açıkla ilgili Internet adreslerini de vermektedirler. Hatta SATAN, SAINT benzeri tarayıcılar açıklarla ilgili veri tabanları da tutmaktadırlar yalnızca bunların incelenmesi dahi cracker için çok fazla önemli bilgiler sağlayabilir.   Bu noktada cracker daha evvela açıkları toplamak için kafa vurduğu sitelere giderek , BUGTRAQ gibi, bulduğu açıklarla ilgili şekilde daha ayrıntılı bir araştırma yapabilir.   Not: Burada şunu da belirtmek gerekir bir gecede mükemmel bir sistem yöneticisi veya mükemmel bir cracker olmanın yolu yoktur. Saldırıların tabiatını tam şekilde anlamak için güvenlik açıklarının, kaynak kodların, işletim sistemlerinin haftalarca çalışılması gerekir.   Sabır ve tecrübenin yerini hiç bir şey alamaz. misal şekilde çok fazla Ünlü bir cracker olan Kevin Mitnick ve gene çok fazla Ünlü bir hacker olan Weitse Venema, yaptıkları iyi ve ya fena işleri, çok fazla çalışmaya, yaratıcılıklarına ve kararlı ve azimli olmaya borçludurlar. Kıscası konuya hakim olmayan bir sistem yöneticisi için bir Firewall hiç bir işe yaramayacağı gibi, yeni bir cracker için de SATAN bunun gibi tarayıcılar irak bir sistemi crack etmek için bir işe yaramayacaklardır.  İyi planlanmış kuvvetli bir hücum yarım bilgisi olan bir cracker’ın yapacağı meslek değildir. Sistemin derinliklerini iyi bilen ve kendisini TCP/IP ile ilgili aşırı eğitmiş bir insanın işi olabilir…   8. Sonuç Burada anlattığım teknikler kararlı bir cracker’ın neticeye varmak için yapacağı adımları anlatmaktadır. Bunları anlatmamın nedeni Internet ortamında kimlerle karşı karşıya olduğumuzu ve onların neler yapıyor olabileceklerini bilmemiz içindir. Bu biçimde kendi sistemlerimize onlardan evvela kendimiz saldırıalrda bulunarak açıklarımızı kapatabiliriz.   Diğer yandan bir cracker’ın nerelerden nasıl saldırıcağını bilirsek ve atacağımız adımlarda bu noktalara da dikkat ederek açık verecek bir vaziyet oluşturmamış oluruz.   Son şekilde sistem yöneticileri için sistemlerini koruma yolunda pratik gelsin derken, öbür sistemlere saldırmayı düşünen cracker, hacker ve script-kiddie’lere de dikkatli olmalarını tavsiye ediyorum, zira Türkiye’de henüz siber saldırılarla ilgili yaptırımlar olmasa da dünyada başlayan bu hukuki önlemler dalgasının bir gün bize de geleceğini hatırlatmak isterim.


Yapılan Yorumlar
Erdem OFLAZ

Bir mum, diğer mumu tutuşturmakla ışığından bir şey kaybetmez.
 Kategoriler
 Popüler yazılar