link

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 şekilde kendi sistemlerimizde gerekli tedbirleri daha bilinçli olarak alarak sistemimizi daha iyi koruyabiliriz diye düşünüyorum. Bu nedenle konunun bundan sonraki kısmına planlı olarak yapılan bir saldırının aşamalarını göstermek istiyorum. Genelde pratik olarak yapılan saldırılarda (daha çok aceleci olan script kiddie’ler tarafından yapılan saldırılardır bunlar) burada anlatılan aşamaların çoğu atlanabilmektedir.
 
Hack-Anatomisi_emresupcin
 
Öncelikle saldırı yapılacak hedef sistemde herhangi bir firewall olmadığını var sayıyoruz. (Tabi artık günümüzde firewall network için vazgeçilmez bir araç haline gelmiştir ve gün geçtikçe Internet’e bir şekilde firewall kullanmadan bağlanan bir sistem bulmak imkansızlaşmaktadır.)  Burada anlatılacak olan teknikler cracking için genel bir yöntemdir. Yani her türlü sisteme saldırmak için kullanılabilir ancak 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ş, saldırı yapılacak hedef sistemin kendisiyle doğrudan bir iletişime gerek duymaz! Yani cracker ilk olarak karşıdaki sistemin network tipini ve hedef makineler hakkında bilgi edindikten sonra, hedef sistemde uraştığı kişiyi tanımak için onunla ilgili bilgi toplamaya çalışacaktır. Söz konusu kişi tabiki sistemin yöneticiliğini yapan root erişimine sahip yöneticidir.
 
Cracker sistem hakkında bilgi toplamak için aşağıdaki teknikleri kullanacaktır:
 
a-) Ağda bulunan tüm sistemlerle ilgili bilgi toplamak için host sorgusu çalıştıracaktır. host komutu domain adı sunucularını (DNS servers) sorgulayarak ağ hakkındaki bulunabilecek tüm bilgileri toplar. Domain adı sunucusu o domainle ilgili bir çok bilgi tutarlar, asıl amacı alan adlarını IP numaralarına dönüştürmektir ancak aynı zamanda o sistemin donanım ve üzerinde çalışan işletim sistemi gibi bilgileri de saklarlar. nslookup komutu bir DNS sunucusunu sorgulamak için kullanılan komuttur. host komutu da nslookup komutuna benzer ama daha açıklayıcı ve ayrıntılı bilgi verir. Bu nedenle host komutu en tehlikeli on komut listesinde yer alır!
 
b-) Standart WHOIS sorgusu. Bu sorguyla cracker o sistemin teknik sorumlusunun bilgilerini almak için kullanır. Bu kişinin e-posta adresi fazla önemli gibi görünmese de bu adres sistem hakkında çok önemli bilgiler toplamak için kullanılabilir.
 
c-) Usenet ve Web sayfalarında aram yapmak. Cracker sisteme saldırmadan ö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 yada teknik sorumluların e-posta adreslerini kullanarak bu kişilerim Usenet yada güvenlikle ilgili mail listelerinde görünüp görünmediklerini araştırır.
 
Cracker’ın ilk olarak sistem yöneticisi yada sorumlusunun e-posta adresini araması ve bu kişinin bu adresi Internet’te araması biraz anlaşılmaz gelebilir.  Ancak sistem yöneticisi sistemin günlük olarak yönetimini yapmaktadır ve sistemde çıkabilecek sorunlarla ilgili olarak Usenet haber gruplarına ve güvenlikle ilgili mail listelerine başvurmuş olabilir. Dolayısıyla cracker buralardan sistem yöneticisinin kendi sistemiyle ilgili olarak vermiş olabileceği her türlü bilgiyi toplamaya çalışmaktadır.
 
2. İşletim Sisteminin Belirlenmesi

Cracker sistem yöneticisi ve ağ hakkında gerekli bilgileri topladıktan sonra saldıracağı ağda bulunan sistemlerde kullanılan işletim sistemlerini ve sürümlerini belirlemek için bir önceki kısımda anlatılan tekniklerin dışında çeşitli teknikleri deneyebilir.
 
Günümüzde artık ağlar daha fazla heterojen bir yapıya sahiptir. Aynı ağda çok değişik donanım ve işletim sistemleri kullanılabilmektedir. Ancak bu güvenlik yönünden çok daha fazla açık olmasına neden olacaktır. Ne kadar çok 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 tüm ağ’ın güvenliğini tehlike altına atması kaçınılmazdır.
 
Cracker işletim sistemlerini belirlemek için ftp, telnet gibi servisleri deneyebileceği gibi hemen hemen kesin çözüm verecek olan bir araç ta kulanabilir. Bu araçlardan biri nmap aracıdır. nmap aslında bir port tarayıcısıdır. Ancak nmap aynı zamanda 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 bilinen açıkları Internet’te aramaya başlayacaktır.
 
Burada dikkat edilmesi gereken nokta bir açıklıkla ilgili olarak ilk uyarıyı okuduktan sonra, CERT veya DDN uyarılarında, bu açıklamada o uyarıyı tanımlayacak ismini bulmak gerekir. Bu genellikle uyarının başında verilmektedir. Örnek olarak daha önce değindiğimiz AIX rlogin hatasının adı, “AIX’s froot hole” şeklindedir. Bunu yapmanın nedeni, bu tür uyarılarda genellikle 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 ismi Internet’teki diğer mail listelerinde, BUGTRAQ, Firewall ..gibi. arayacaktır. Buralarda genellikle o açıkla ilgili olarak test ve exploit script’leri verilmektedir. Bu scriptler otomatik olarak bir sistemde o açığın olup olmadığını test eden ve varsa ondan yararlanmaya çalışan programlardır. Bu programlar genellikle bir shell yada C programı şeklinde yayınlanmaktadırlar. Bu programları, gerekli değişiklikleri yaparak cracker kendi sisteminde derleyip çalıştırabilir.
 
Bu noktaya kadar cracker aşağıdaki adımların hepsini yada belli bir kısmı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 tarafından topoloji, yönetim, politika yada sistem yönetimiyle ilgili Internet’te yaptığı herhangi bir tartışma
 
4. Test Saldırısı Yapılması

Bu adımda cracker saldıracağı sistemle ilgili olarak bazı noktaları açığa kavuşturmak için kendi sistemlerinde deneme saldırısı yapmayı deneyecektir. Bu adım, saldırıyı gerçekten yapmayı düşünen cracker’lar tarafından yapılmaktadır. Çünkü bu adımda biraz para harcamak gerekebilir!  Bu noktada cracker karşı taraftaki makinenin bir benzerini elde etmeye çalışır. Örnek olarak karşı sistemde Solaris 2.4 varsa cracker benzer bir sistemi kurmalıdır. Bunu yaparken cracker’ın iki tane temel amacı vardır:
 
-Saldırılar saldırı yapan tarafından nasıl görünüyor,
-Saldırılar kurban tarafından nasıl görünüyor,
-Saldırgan saldırıda bulunduğu makinedeki log’ları inceleyerek karşı tarafta saldırı ile ilgili nelerin olup bittiğini anlar. Bu şekilde cracker karşı sistemde saldırdan kalan izleri bilir. Her ssitemin kendine göre değişik logging işlemleri vardır ve cracker en azından bu log işlemlerini bilmesi gerekmektedir. Hangi log dosyalarının saldırı hakkında log tutacağını bilmesi gerekmektedir.
 
Cracker’ın bunu yapmasının nedeni ele geçirdiği sistemden çıkarken tüm geride bıraktığı izleri silmek istemesidir. Sistemdeki log dosyalarını bildiği için bu dosyalara giderek kendisiyle ilgili tüm bilgileri silebilir. (Aslında Internet bu işlemleri değişik sistemler için otomatik olarak yapan script’ler de vardır. Ancak bu scriptler genellikle tam olmadığından yada karşı sistemin konfigürasyonu standart dışı olduğunda doğru olarak çalışmamaktadırlar. Bu scriptlere güvenen cracker’lar çoğu zaman logları temizleyememektedirler )
 
Not: Bu test saldırısı başka bir amaç için de kullanılır. Karşı sistemde hiç bir açık bulamayan bir cracker bu yöntemi deneyerek o sistemde bilinmeyen bir açık ta bulabilir. Bu anlattığım olay geçen yıl Temmuz ayında yapılan eWeek tarafından düzenlenen birinci Openhack hacker yarışmasında bilinen hiç bir güvenlik açığı olmamasına rağmen sisteme sızmayı başaran ve ödülü alan cracker’ın kullandığı yöntemdir.
 
Cracker tüm sistemi taradıktan sonra sistemde sadece 80 numaralı yani HTTP portunun açık olduğunu buluyor ve başka bir saldıracak nokta olmadığı için WWW üzerinden saldırıda bulunmayı deniyor. Tabi öncelikle karşı sistemde çalışan uygulamaları tespit 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 benzer bir makine üzerinde çalışması gerekmektedir. Cracker bir arkadaşında bu uygulamanın olduğunu buluyor ve kendisine bir account vermesini isteyerek test makinesi üzerinde MiniVend uygulamasının dosyalarını incelemeye başlıyor ve kullanılan bir perl cgi programında “open” komutunun güvensiz bir şekilde kullanıldığını buluyor.
 
Daha önceki kısımda anlattığım gibi perl içinden sistem çağrılarında sisteme geçirilen komut içinde metakarakter’lerin olup olmadığı test edilmelidir. MiniVend script’inde pipe ‘|’ karakteri kontrol edilmediği için sisteme bu karakter kullanılarak istenilen bir komut çalıştırılabilmektedir.
 
5. Kullanılacak Araçlar

Cracker bir sonraki adımda kullanacağı araçları belirleyip toplayacaktır. Bu araçlar genellikle 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çinde en ünlü ve kapsamlı olanı nmap aracıdır. Bu araca daha önce değinmiştik. İşletim sistemi hakkı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 durumda birden fazla uygun tarayıcı kullanmak gerekmektedir. Bu tür araçları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 yönünden çeşitli araçlar tarafından taranması artık günümüzde o kadar yaygın hale gelmişki sistem yöneticilerinin dikkatini bile çekmemektedir, yada çekse bile bu konuda fazla bir işlem yapmamaktadırlar.
 
6. Saldırı Staratejisinin Belirlenmesi

Cracker planlı bir saldırıyı bir neden olmadan yapmayacaktır. Benzer bir şekilde saldırı yapacağı bir sisteme de belli bir planı olmadan saldırmayacaktır. Cracker’ın saldırı stratejisi yapmak istediği işe göre değişir.
 
Ancak bazı noktalar açıktır. Örnek olarak cracker topladığı tüm bilgilerden saldıracağı ağın bazı bölümlerinin router, switch, birdge yada diğer 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 yada spoofing teknikleri router yada switch üzerinden 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 aşama artık günümüzde çok kolay hale gelmiştir.  Eski tarayıcılar sadece bulduğu açıkları listelemekte ancak bunlarla ilgili fazla bilgi vermemektedirler. Ancak artık çoğu tarayıcı, SAINT, twwwscan, CIS… buldukları açıklarla ilgili olarak açıklayıcı bilgi ve o açıkla ilgili Internet adreslerini de vermektedirler. Hatta SATAN, SAINT gibi tarayıcılar açıklarla ilgili veri tabanları da tutmaktadırlar sadece bunların incelenmesi bile cracker için çok önemli bilgiler sağlayabilir.
 
Bu noktada cracker daha önce açıkları toplamak için baş vurduğu sitelere giderek , BUGTRAQ gibi, bulduğu açıklarla ilgili olarak daha ayrıntılı bir araştırma yapabilir.
 
Not: Burada şunu da belirtmek gerekir bir gecede mükemmel bir sistem yöneticisi yada mükemmel bir cracker olmanın yolu yoktur. Saldırıların tabiatını tam olarak 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. Örnek olarak çok ünlü bir cracker olan Kevin Mitnick ve yine çok ünlü bir hacker olan Weitse Venema, yaptıkları iyi yada kötü işleri, çok ç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 gibi tarayıcılar uzak bir sistemi crack etmek için bir işe yaramayacaklardır.  İyi planlanmış güçlü bir saldırı yarım bilgisi olan bir cracker’ın yapacağı iş değildir. Sistemin derinliklerini iyi bilen ve kendisini TCP/IP konusunda çok eğitmiş bir kişinin işi olabilir…
 
8. Sonuç

Burada anlattığım teknikler kararlı bir cracker’ın sonuca 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 şekilde kendi sistemlerimize onlardan önce 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 durum oluşturmamış oluruz.
 
Son olarak sistem yöneticileri için sistemlerini koruma yolunda kolay gelsin derken, diğer 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 yasal önlemler dalgasının bir gün bize de geleceğini hatırlatmak isterim.

Yazar
Yazar
Bilgisayar Programcısı, Web Tasarımcı, Üniversite Öğrencisi...
Twitter Facebook Google Linkedin Flickr YouTube

Önceki Yazı:Bilgisayar ve Sağlık!

Sonraki Yazı:Microsoft Phone’da (Lumia) E-Posta Kurulumu Nasıl Yapılır?

YORUMLAR
SİZ DE CEVAP YAZABİLİRSİNİZ
Bu yazı hakkında görüşünüzü belirtin.

ES Web Tasarım Web Tasarım Blog Teması Emre Supçin Bu tema ES Web Tasarım tarafından düzenlenmiştir. Hiçbir şekilde kopyalanamaz.