Kayıt Ol

Giriş

Şifremi Kaybettim

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Giriş

Kayıt Ol

RootKit – Sunucudaki Gizli Tehlike!

Bu yazımızda sunucu güvenliği için kritik önem taşıyan bir konuyu; RootKit’i detaylıca ele alıyor olacağız ki ciddi sorunlara neden olan başlıca konulardan birisidir. Ve bu makalede değineceğimiz başlıca sorular şunlardır:

 

RootKit Nedir?

Rootkit’in Tehlike Boyutu Nedir?

Rootkit Nasıl Çalışır?

Rootkit Nasıl Bulaşır ?

Rootkit Nasıl Tespit Edilir?

Rootkit Nasıl Kaldırılır?

Önlem İçin Ne Yapmalıdır?

 

Yeni başlayanlar için yol gösterici bir makale olması ümidi ile..

 

RootKit nedir?

Özet hali ile RootKit, sunucunuzda sizin izniniz ve haberiniz olmaksızın, sunucunuzun aktif olduğu sürece 3. bir kişinin ya da programın, server ‘ı yönetici seviyesinde istediği gibi kullanabilmesine olanak sağlayan bir programdır. Amacı, bir bilgisayar sistemine uzaktan, tam yetkili ve sürekliliği olan bir erişim sağlamaktır. RootKit, yazım teriminden de anlaşılacağı üzere iki kelimeden oluşmaktadır; root ve kit. Root, yönetici anlamı taşırken, kit ise aracı uygulayan yazılım bileşenlerini belirtir.

İlk olarak 1990 ‘larda Sun ve Linux  işletim sistemleri için üretildiği görülmüştür.  Tabî günümüzde, neredeyse tüm işletim sistemleri için mevcuttur.

 

RootKit’in Tehlike Boyutu Nedir?

Tam anlamıyla gizli bir tehlikedir! (“İçimizdeki Şeytan” desek nasıl olur acaba? 🙂 Sabahattin Ali’nin kitabı geldi aklıma, ruhu şad olsun.) Yönetici erişim haklarına sahip olabildiği için, şifre çalma, paket izleme, kaynak tüketme, bir kişi ya da kuruma saldırı yapma gibi aklınıza gelebilecek her şeyi yapabilir hatta deyim yerindeyse sunucu üzerinde istediği gibi at koşturabilir!

Bir defa kurulduktan sonra, saldırıyı gizlemek ve ayrıcalıklı erişimi korumak mümkün olur!

 

RootKit Nasıl Çalışır?

Rootkit, (genellikle) saldırgan birisinin ya da saldırgan bir yazılımın hedef/kurban bilgisayar sistemini uzaktan komuta edip, kontrol altına almasına izin verme mantığında çalışır.

Temel anlamda, kernel (çekirdek), library (kütüphane) ve application (uygulama) seviyelerinde işletim sistemi ayırt etmeksizin çalışabilen bu programın temel çalışma prensibinde iki yol vardır. Birinicisi, otomatik (to-do-list mantığında) ya da ikinci seçenek olarak, manuel çalışabilirler. En can alıcı özelliği; izlerini gizleyebilmeleridir. Burası çok önemli! Yalnızca kendisini değil, attığı her adımı da gizleyebilir. Çalışma mantığını Truva Atı’na benzetebiliriz. BackDoor (arka kapı) sayesinde istekleri zaman erişilebilirdirler.

 

Az önce 3 seviyede (Kernel, Library ve Application) çalıştığını söylemiştik. Şimdi kısaca bunlara da bir değinelim:

 

RootKit Türleri Nelerdir?

  1. Kernel Level Rootkit (İşletim sistemi seviyesi):
    En tehlikeli türdür, işletim sisteminin çekirdeğine yerleştiği için tespit edilmesi en zor olanıdır. Örneğin, kendisini bir sürücü dosyası içerisinde gizler ve sürücü güncellense bile varlığını sürdürür. İşletim sistemini durdurabilir veya alt üst edebilirler yani bu durumda ne yazık ki işletim sistemine artık güvenemezsiniz..
  2. Library Level Rootkit (Kütüphane seviyesi):
    RootKit’in, sistem kütüphane dosyalarının içerisinde gizlendiği türdür. Belirli sistemleri ve API çağrılarını engelleyebilir ve/veya kendi kodlarıyla değiştirebilir.
  3. User – Application Level Rootkit (Uygulama seviyesi):
    Uygulama dosyalarına ya da kullanıcı kullanım alanlarına eklenerek sisteme bulaştırılır.  Kernel’e erişemezler. Tehlike boyutu diğerlerine göre daha basit olanlardan birisidir, rootkit scanner ‘lar ile tespit edilebilir.

 

Aslında rootkit türlerini daha detaylı ele alacak olursak;

 

  1. Kernel RootKit, yukarda bahsetmiştik, bir görsel ile zenginleştirelim:

    Kernel Rootkit - Ring

    Kernel Rootkit | Ring sıralaması görseldeki gibi kabul ettiğimizde, en içteki yani Kernel Rootkit, en tehlikeli tür oluyor.

  2. Hardware – Firmware RootKit, ağ kartları, sabit sürücüler veya bilgisayarın BIOS’u gibi belirli cihazların aygıt yazılımını değiştirir. BIOS çağrıldığında ya da sunucu önyükleme anında etkinleşir. Tespit edilmesi güçtür.

    Hardware - Firmware RootKit

    Hardware – Firmware RootKit | görsel: articles.forensicfocus.com

  3. Hypervisor- Virtualized RootKit, hem firmware hem de hardware rootkit altında bulunabilir. Bunun nedeni ise, hypervisor, donanım üzerinde çalışan sanal bir ortamdır ama temel olarak bir ürün yazılımıdır. Saldırgan, sistemin gerçek çekirdeği altında, sistem donanımındaki sanal makine üretici yazılımı üzerinde bir hypervisor rootkit’i çalıştırır. Intel VT veya AMD-V (donanım tarafından desteklenen sanallaştırma teknolojileri / Blue Pill) gibi donanım özelliklerini kullanarak üretilmişlerdir. (Sunucunun önyükleme sıralamasını değiştirirler, Ring -1 ‘de yer alırlar.) Bu rootkit’ler, (kurban) işletim sistemini bir sanal makine olarak çalıştırır. Bu nedenle işletim sisteminin yaptığı tüm donanım çağrılarını da engelleyebilir. Az evvel bahsettiğimiz bu yapısından dolayı çok sıkıntılıdır ki maalesef, userland ya da kernelland anti-rootkit araçları tarafından tespit edilemez..Yeri gelmişken, “Donanıma ilk yaklaşan kazanır.” demişler, bunu da paylaşalım.. 🙂

    Hypervisor - Virtualized RootKit Yapısı

    Hypervisor – Virtualized RootKit Yapısı | görsel: rootkitanalytics.com

  4. Library RootKit, yukarda bahsedilmişti.
  5. Boot Loader Rootkit – BootKit, mevcut boot loader ‘ı saldırganın loader ‘ı ile değiştirir ya da onun istediği gibi düzenler ve böylece MBR (Master Boot Record), VBR (Volume Boot Record) ya da diğer boot sektörlerini etkiler ve böylece işletim sisteminin önyüklemesinden de önce devreye girer. Standart araçlar tarafından tespit edilmesi oldukça zor olanlardandır çünkü, bileşenleri standart dosya sistemlerinin dışında bulunur. Güvenlik için çok ciddi bir tehdit oluştururlar. Deyim yerinde ise, “Beterin beteri vardır. diyeceğimiz türdür.

    Boot Loader Rootkit - BootKit

    Boot Loader Rootkit – BootKit | görsel: articles.forensicfocus.com

  6. Memory RootKit, kendisini bellekte (RAM) saklayan türdür dolayısı ile sistemi yeniden başlattığınızda geçerliliğini kaybedecektir.
  7. User – Application RootKit, yukarda bahsetmiştik, bir görsel ekleyerek bu türü de zenginleştirelim.
    User Rootkit

    User Rootkit | görsel: rootkitanalytics.com

     

    Ring Terminolojisinin daha anlaşılabilir olması için bkz:

    Ring Terminolojisi

    Ring Terminolojisi | görsel: rootkitanalytics.com

 

Bu konuyla ilgili (haddim olmayarak) “kullanıcı ~ kernel” çalışma yapısını özetleyecek olursam, kabaca sıralama şöyle olacaktır:

En temelde:

USER MOD -> KERNEL MOD ve -> HARDWARE ‘dır.

Biraz detayda ise:

USER PROCESS -> SYSTEM LIB -> SYSTEM CALL TABLE -> KERNEL ve -> HARDWARE ‘dır.

Rootkit Nasıl Bulaşır?

Rootkit, iki şekilde sisteme bulaşır / bulaştırılır; birincisi, bir saldırganın sisteme doğrudan saldırması (bir güvenlik açığından yararlanarak, örn: hak yükseltme) yoluyla ve ikincisi ise, şifre kırma, sosyal mühendislik gibi yöntemlerle root şifresini elde etme yoluyla bulaştırılmasıdır.

Bu tarz sorunlara neden olan zararlı yazılımları bazen kullanıcı kendi eliyle de yükleyebilir. Örneğin, warez tema, eklenti ve benzeri paket yüklemeleri sayesinde kullanıcılar tarafından sunucuya yüklenen bu yazılımlar, kötü niyetli yazarları / kullanıcıları tarafından uzaktan çalıştırılarak sisteme bulaştırılırlar ve bir rootkit’e dönüştürülebilirler. Diğer bir durumda ise, yukarda bahsettiğimiz üzere saldırgan hedef sunucudaki herhangi bir web sitesi / uygulaması üzerindeki ya da server uygulamalarındaki zaafiyetten yararlanarak ya da yönetici şifresini ele geçirerek sunucuya entegre eder, Rootkit’i.

 

Rootkit Nasıl Tespit Edilir?

Rootkit ‘in manuel tespit edilmesi oldukça fazla zaman / emek ve bilgi birikimi gerektirir. İşte bu noktada bazı otomatize araçlar imdadımıza yeşiyor. Bunlar; RkHunter (Rookit Hunter) ve chkrootkit (endişelenmenize gerek yok çünkü bu yazılımlar açık kaynak yani ücretsiz! 🙂 )

Bunlar iyi hoş ama yeterli mi? Bu araçlar tarafından iyi işler başarıldığı aşikar! Lakin neticede ben bir Rootkit oluşturacak olsam bu popüler araçlara da yakalanmaması için hareket ederim yani demem o ki, üzgünüm ama daha fırından yeni çıkmış rootkitler için işe yaramayabilir.

Öte yandan söz konusu rootkit ise kesin bir çözümden söz etmek oldukça güçtür. Yani, bu araçlarla tarama yaptınız ve sonuç pozitif çıktı diye “sistemde rootkit yok”, diyemezsiniz. En iyisi hiç bulaşmaması için elimizden geleni yapmaktır. <!- Hasta olup, tedavi arayacağınıza hiç yakalanmamaya gayret göstermek daha kârlıdır. –>

 

 

Rootkit Nasıl Kaldırılır ?

Sistemi yeniden kurmadan bir RootKit ‘i kaldırmak için aklınıza gelen çözümler, virüs programları ile sistemi tam bir taramadan geçirmek ve/veya sistemi geri yüklemek olabilir ama maalesef bunlar işe yaramayacaktır.

Rootkit Nasıl Tespit Edilir?” sorusunun yanıtını verirken bahsettiğimiz iki araç vardı; RkHunter ve chkRootkit  bu araçlar sayesinde tespit ettikten sonra bu kit’lerden kurtulmak mümkün. Bu çözüm işe yaramaz ise üzgünüm ama geriye kalıcı bir tek çözüm kalıyor ki o da tahmin ettiğiniz üzere sistemi yeniden kurmak.

RootKit Hunter – RkHunter Kurulumu

Anlatım Linux CentOS işletim sistemi için yapılmıştır.

  • # yum install epel-release
    Yum ile EPEL Repository ‘i kuralım
  • # yum -y install rkhunter
    RkHunter kurulumunu yapalım
  • # rkhunter –update
    RkHunter Veritabanını güncelleyelim
  • # rkhunter –propupd
    Sistem özelliklerini güncelleyelim
  • # nano -w /etc/cron.daily/rkhunter.sh
    Nano editörü ile etc/cron.daily altına bir shell script dosyası oluşturalım ve içerisine ekleyelim:
  • #!/bin/sh
    (
    /usr/local/bin/rkhunter –versioncheck
    /usr/local/bin/rkhunter –update
    /usr/local/bin/rkhunter –cronjob –report-warnings-only
    ) | /bin/mail -s ‘X Server RkHunter Taraması’ [email protected]
  • # chmod 755 /etc/cron.daily/rkhunter.sh
    Shell dosyasının izinlerini ayarlayalım.

Şimdi gelelim konfigürasyon işlemlerine.

RkHunter Konfigürasyonu:

  • Rkhunter config dosya yolu: /etc/rkhunter.conf
    Örneğin, RkHunter ‘ın herhangi bir uyarısında mail almak isterseniz bu dosyadaki#MAIL-ON-WARNING=me@mydomain root@mydomainsatırını bulun ve düzenleyerek aktifleştirin.
  • ScriptWhiteList parametresi ile dilerseniz, güvenli olduğunu düşündüğünüz scriptleri girerek bunları es geçmesini söyleyebilirsiniz. Bkz:#SCRIPTWHITELIST=/usr/bin/whatis
  • # rkhunter –versioncheck
    RkHunter versiyon kontrolü
  • # rkhunter –update
    RkHunter güncellemesi
  • #rkhunter –propupd
    Geçerli değerlerin kontrol edilmesi

RkHunter Manuel Tarama:

  • # rkhunter -c
    Bu komut part part tarama yapacak ve sonuçları size sunarak devam etmesi için sizin tetiklemenizi bekleyecektir. ([Press <ENTER> to continue] gibi)
  • Tetikleme gerekmeksizin direkt tüm taramaları yapmasını isterseniz de aşağıdaki komutu kullanabilirsiniz:
    # rkhunter -c -sk
RkHunter Manuel Tarama

RkHunter Manuel Tarama

 

  • Örnek bir RkHunter tarama sonucu:

    RkHunter Tarama Sonucu

    RkHunter Tarama Sonucu

  • # rkhunter –help
    Komutu ile daha fazlasına ulaşabilirsiniz.Proje dosyasına ise aşağıdaki bağlantıyı kullanarak ulaşabilirsiniz.
    http://rkhunter.sourceforge.net/

 

ChkRootkit Kurulumu

  • # yum install chkrootkit
    Yum ile kurulumu yapalım
  • # chkrootkit
    Taramamızı yapalım

    ChkRootkit ile Rootkit Tarama

    ChkRootkit ile Rootkit Taraması

  • Biraz karışık görünüyor değil mi ? Sorun yok, grep komutu ile aradığımız şeye bir bakalım:
    # chkrootkit | grep INFECTEDEvet, işte böyle! Şimdi daha temiz oldu.
  • Sonuç,
    Checking `bindshell’… INFECTED (PORTS: 465)şeklinde olabilir yalnızca bununla karşılaştıysanız korkmayın, endişelenecek bir şey yok, bunu bir yanlışlık olarak düşünün.
  • Otomatik tarama için;
  • # vi /etc/cron.daily/chkrootkit.sh
    oluşturun ve ekleyin:
  • #!/bin/sh
    (
    cd /usr/sbin/chkrootkit/
    ./chkrootkit | /bin/mail -s “X Server ChkRootkit Taraması” [email protected]
    )
  • /usr/sbin/chkrootkit/ yolu varsayılan kurulum yoludur, #which ckhroot komutu ile teyit edebilirsiniz.
  • # chmod 755 /etc/cron.daily/chkrootkit.sh
    izin ayarlarını yapalım ve hepsi bu kadar!
  • Daha fazlası için:
    # chkrootkit -h

 

ChkRootkit proje sayfası: http://www.chkrootkit.org/

 

Önlem İçin Ne Yapmalıdır?

  • İşletim sistemi ve üzerinde yüklü uygulamalar da dahil olmak üzere tüm sistemi daima güncel tutulmalı,
  • Warez ve türevi yazılımlardan kesinlikle kaçınılmalı,
  • Yönetici şifresini yeterince güçlü bir şifre olarak kullanmalı, belirli bir periyod aralığında bu şifreyi yenilemeli ve
  • Tespit etmek için kullanılan araçları otomatik olarak belirli zaman aralığında (cron-job) sistem üzerinde çalıştırmalı.

 

Yorum yaparak siz de bu makaleye katkıda bulunabilirsiniz.

Güvende kalın!

 

Kaynaklar:

forensicfocus.com

rootkitanalytics.com

wikipedia.org

Hakkında Şahin SOLMAZ


Beni Takip Et

Cevap bırakın