bir saldırı anatomisi
ardakaşlar nette gezerken buldum we sizinle paşlaşmak istedim umarım hoşunuza gider
Bu bölümde bir cracker'ın planlı bir saldırıyı nasıl yaptığını adım adım inceleyeceğiz. Burada anlatılan işlemler bir saldırganın uzaktan bir sisteme nasıl saldırdığını anlatmaktadır.
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.
Ö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.)
Şimdi ilk aşamadan başlayarak bir yetenekli ve kararlı bir cracker'ın bir sisteme nasıl saldıracağını inceleyelim:
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 uğraş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.
DNS sunucusunun bu tür bilgileri Internet'te herkese vermesini engellemek için çeşitli önlemler alınabilir.
c-) Usenet ve Web sayfalarında arama 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.
Sistem yöneticisinin diğer network'larda bulunabilecek account'larını da takip edebilir. Bunu takip etmek için cracker finger ve ruser gibi komutları kullanabilir. Bildiğiniz gibi finger komutu sisteme logon olan kullanıcıları göstermektedir. Ayrıca finger sistemde logon olmayan bir kullanıcının en son nereden login olduğunu da gösterir. İşte yöneticinin en son login olduğu sistemlerdeki adresi de takip edilerek bu kişiyle ilgili diğer bilgilere erişmeyi deneyebilir.
Finger Sorguları : Finger sorguları bir cracker için yukarıda değindiğimiz gibi sistem hakkında çok fazla bilgi verebilir. Sistemde logon olmuş kullanıcı ID'lerini, isimlerini, en son login oldukları yeri, mail bilgileri gibi bir çok bilgi verir.
Cracker'ımız saldırdığı sistemde şüphe uyandırmamak için Internet'te yüzlerce sitede bulunabilecek "finger gateway" lerini kullanacaktır. Bu sunucular bir web sayfasından kullanıcıdan finger sorgusu gönderilecek olan sunucu adresini alır ve o sunucuya finger sorgusunu yollayarak yine sonuçları ekrana getirir. Böylece cracker kendi gerçek IP numarasının saldırdığı sistem loglarında görünmesini engelleyebilir.
Tabi aslında bu gerçek bir gizlilik sağlamaz, hedef sistemdeki sistem yöneticisi çok fazla paranoyaksa bu finger gateway sunucusunun sistem yöneticisi ile temasa geçerek cracker'ın gerçek IP adresini ele geçirebilir.
Bu komut smtp_sunucusu.com sunucusunun 25 numaralı portuna (yani SMTP portuna) telnet bağlantısı sağlar. SMTP mail göndermek için kullanılan bir protokoldür. Ancak telnet yapıldıktan sonra SMTP sunucusunun izin verdiği bir dizi komut kullanılabilir. mail from, rcpt to, data , quit gibi komutlar çalıştırılabilir. Ancak iki tane komut vardırki bunlar sistemdeki kullanıcılar hakkında bilgi vermektedir. Bunlar vrfy ve expn komutlarıdır. Bu komutlar sistemde bulunan bir kullanıcı ID'sini onaylamak için kullanılırlar.
250 Osman Atabey <osman@smtp_sunucusu.com>
Burdan da sistemde böyle bir kullanıcı olmadığı anlaşılır. Bu örnekten de anlaşıldığı gibi cracker'lar sistem hakkında bilgi toplamak için çok değişik yöntemleri denemektedirler.
sendmail'in bu özelliği genellikle sistem yöneticileri tarafından bilinmediği için hiç bir önlem alınmaz.
sendmail'in bazı sürümlerinde bu komutlar çalışmazken bazılarında bu komutlar sorgulanan kullanıcı ismini aynen getirmektedir.
Diğer yandan sendmail konusunda güvenlik yönünden yapılması gereken bir çok ayar vardır bunlar için sendmail'in dökümantasyonunda güvenlik konusuna bakılabilir. (sendmail sistemini ayrıntılı olarak anlatan O'REILLY'den "sendmail" adlı kitap yararlı olabilir.)
Cracker sistem hakkında bilgi toplamak için bilinen tüm yolları deneyebilir. Daha önce de değindiğimiz bu yöntemleri kısaca hatırlatmak için güvenlik dünyasında yazdıkları araçlarla çok ünlü olan Dan Farmer ve Wietse Venema'nın yazdığı bir makaleden (improving security by breaking into it) alıntı vermek istiyorum:
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.
based on nmap
Host www.xxx.xxx (95.40.33.34) appears to be up ... good.
Initiating SYN half-open stealth scan against www.xxx.xxx (95.40.33.34)
Değişik işletim sistemlerini bulan cracker'ın bir sonraki işi artık bu işletim sistemleriyle ilgili bir çalışma yapmaktır. Bunun için tüm işletim sistemlerini ve makine tiplerini gösteren bir liste oluturulmalıdır. Bu liste daha sonra cracker'ın o platformlarla ilgili bilinen tüm güvenlik açıklarını bulmasına yardımcı olacaktır.
(Bu noktada bazı cracker'lar çok aceleci olup hemen karşı sistemlere karşı otomatik güvenlik tarayıcılarını kullanmaktadırlar, SATAN, SAINT, ISS.. gibi ancak ilk etapta bunu yapmak tam olarak doğru değildir. Zira bu tarayıcıların kendi alanlarında tam olarak tüm açıkları taradığını söyleyemeyiz. Zira her gün yeni açıklar çıktığı için bu tarayıcıların bunları da bulmasını bekleyemeyiz. Dolayısıyla cracker'ın platformlarla ilgili tüm açıkları Internet'ten araması akıllıca bir yöntemdir.)
Cracker saldıracağı sistemlerin listesini çıkardıktan sonra her bir platform için bilinen açıkları Internet'te aramaya başlayacaktır. Bunun için ziyaret edilmesi gereken bir çok site mevcuttur.
Bunun için firewall mailing list
CERT adresi, yeah.com
Artık güvenlik dünyasında bir standart haline gelen BUGTRAQ http://www.securityfocus.com/bugtraq
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 Internetteki 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.
-Sistem yöneticisi tarafından topoloji, yönetim, politika yada sistem yönetimiyle ilgili Internet'te yaptığı herhangi bir tartışma
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ı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ırşlar. 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 metakarakterlerin 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.
Örnek olarak standart bir Internet kullanıcısının sadece belli bir süre modemle Internet'e bağlı olduğu süre içerisinde bile makinesine onlarca tarama gelebilir. Bunu normalde anlamak zordur. Ancak saldırı yakalama özelliği olan bir kişisel firewall (ZoneAlarm gibi) kurduğunuz zaman kimlerin makinenize saldırıda bulunduğunu görmek mümkündür. Hatta bazen o kadar çok olmaktadır ki siz Internet'te gezinirken bu saldırıların uyarılarıyla rahatsız olabiliyorsunuz.
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.
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.
İ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...
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ılarda 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.
ABD Kimyasal Saldırı Raporunu Açıkladı Faruk Arslan Dış Haberler 0 08-31-2013 12:25 PM
Savaşçı Tek El Silahları capkin44 Metin2 1 04-30-2011 02:54 PM
Savaşçı Çift El Silahları capkin44 Metin2 1 04-30-2011 02:38 PM
Saldırı Ağaçları Nedir? NeRoN Webmaster Genel Konular Sorunlar 1 04-15-2011 04:33 PM
Hack Anatomisi kAdowOw Network - İnternet 1 04-14-2011 06:19 PM