RootKit Nedir Ve Sistemden Nasıl Temizlenir? - Turkhackteam.org/net - Ethical Hacking & Cyber Security Platform
RootKit Nedir Ve Sistemden Nasıl Temizlenir?
RootKit olarak bilinen yazılımlar ilk olarak UNIX işletim sistemlerinde ortaya çıkmıştır ve orijinal UNIX işletim sistemi dosyaları ile yer değiştirip normal bir kullanıcıya root erişim hakkı vermeyi hedeflemişlerdir. Zamanla bu yazılımlar Windows ortamına çalışabilir olmuştur. Windows NT tabanlı işletim sistemlerinde çalışabilen ilk Rootkit ise 1999 yılında gözlenmiştir. Yine de bu dönemde normal bilgisayar kullanıcısının güvenlik konusunda dikkatini çekememiş, sadece güvenlik uzmanlarının uzaktan izlediği bir yazılım türü olarak kalmıştır. 2005 yılında ise Sony Digital Rights Management (DRM) Rootkit'inin tespit edilmesi Rootkit konusunun önemini gözler önüne sermiştir. İşte bu noktadan sonra rootkit'ler tüm güvenlik çevrelerince önemli ve tehlikeli bir tehtid olarak tanımlanmıştır. Çünkü Sony DRM rootkit zararsız bir rootkit olsa da tüm rootkit yazılımları kötü niyetli kullanıcılar tarafından zararlı hale getirilebilmektedir yani zararsız rootkitler de potansiyel bir tehlike oluşturmaktadır.
Adından da anlaşılabileceği gibi RootKit iki parçadan oluşmaktadır; Root= Unix sistemlerinde herşeyi yapma yetkisine sahip olan kullanıcı ya da kullanıcı yetkisi, Kit = Bu yetki sahibi olabilmek için kullanılan gerekli araç kutusu şeklinde ifade edilebilir.
Bunu yaparken sistem araçları ile yer değiştirmiş olmaları, tanınmalarını engellemekte ve arkaplanda hiçbir kullanıcının ya da tarayıcının fark edemeyeceği biçimde çalışmalarını sağlamaktadır. Bu özellikleri zararlı yazılımları yazan programcılar (hacker) tarafından çok cazip bulunmakta ve ilk başlarda kötü amaçlarla kullanılmayan bu yazılımlardan yanlış kimselerin elinde çok tehlikeli olabilecekleri için günümüzde kötü niyetli yazılımlar olarak bahsedilmektedir.
Rootkit'lerin fark ettirmeden işlemler yapabildiğinden bahsetmiştim. Bunu biraz açmak gerekirse; Rootkit yazılımların bu derece tehlikeli olmalarının en önemli nedeni sadece kendilerini gizleyebilmeleri değil aynı zamanda ne yapmak için programlandılarsa yapacakları işlemlerde kullandıkları araçları, dosyaları, kayıt defteri anahtarları, portları ve hatta sistem dosyalarını da gizleyebilmeleridir.
Rootkit'ler bu kötü özelliklerine rağmen daha önce UNIX örneğinde verdiğim gibi tamamen kötü niyetli yazılımlar olmayabilirler ancak sistemde bir rootkit olması bile bu yazılımların kötü niyetli olarak yeniden düzenlenebilmesinden sağladığı için potansiyel bir tehlike oluşturmaktadır.
Rootkit'lerin kullanılış amaçları aslında diğer kötü niyetli yazılımlardan çok farklı değildir, sisteminize aldığınız bir Rootkit başka birininin (hacker) bilgisayarınıza girmesini ve kendi yasal olmayan amaçları için bilgisayarınızı kullanmasını sağlayabilir. Mesela bir Rootkit yazılımı bilgisayarınıza başka bir kötü niyetli yazılımı (virüs, spyware, keylogger vs
) daha öncede bahsettiğim gibi gizleyebilmektedir.
Rootkitler Nasıl Gizlenir
Rootkit yazılımlarının asıl etkili olmasının nedeni işletim sisteminin zayıflıklarından yararlanmalarıdır. Bu zayıflıkları kullanarak işletim sistemine sızarlar ve bu sayede kendilerini işletim sistemi dosyaları ile değiştirebilirler.
Önceden de belirttiğim gibi rootkit yazılımları çoğu zararlı program tarayıcısından kendisini saklayabilir ve tarama sonuçlarında görünmezler. Tarama yapılırken işletim sisteminin kendileri için, tarama yapan güvenlik yazılımına yanlış bilgiler vermesini sağlarlar ve böylece işletim sistemi herhangi bir rootkit bulundurmadığını tarama yazılımına belirtir. Her ne zaman bir tarayıcı ya da kullanıcı, işletim sisteminden doğrudan bilgi isterse, işletim sisteminden gelen bilginin doğru olduğu kabul edilir. Bu bir kural gibidir. Tarama yapan bir araç işletim sistemine zararlı bir yazılım olup olmadığını sorduğunda ya da tarama yaptığında işletim sisteminde eğer rootkit varsa rootkit geri dönecek olan bu bilgiyi kendi çıkarı için düzenler ve hem kendisini hem de ilişki kurduğu diğer zararlı yazılımları gizleyen, yeniden düzenlenmiş bilgileri tarayıcıya gönderir. Bunu yapabilmesini sağlayan temel güç ise rootkit yazılımının root yani yönetici haklarına sahip olmuş olmasıdır.
Rootkitler sistemden istenen bilgileri değerlendirmek için bir süre bu bilgilerin geri dönüşünü geciktirir bu işleme hooking denmektedir. Bu hooking süresi boyunca rootkit tarayıcı ya da kullanıcı tarafından sistemden istenen bilgileri, kendisini ve ona eşlik eden zararlı yazılımları gizleyecek şekilde değiştirir.
Rootkit ile birlikte işlem gören ya da rootkit sayesinde sistemde gizlenmiş olan yazılımların tespit edilip kaldırılması da çok önemlidir. Çünkü bu yazılımlar sürekli rootkitler ile bir veri alış verişi içindedir. Rootkitden temizlenmiş bir sistemde eğer zararlı bir yazılım kendisini gizleyecek bir rootkit olmadığını fark ederse bu sistemi öncelikle rootkit ile tekrar enfekte etmek için çalışacaktır bunu açtığı backdoorlar ile yapabileceği gibi değişik biçimlerde de yapabilmektedir.
Peki bu gizlenme size nasıl yansır, örneğin görev yöneticisini açtığınızda arkada çalışan bu rootkit ve ilişkili dosyalar çalışsalar da göremezsiniz. Eğer windows ile bu rootkit dosyasının bulunduğu dizine giderseniz ortada bir rootkit olmadığını görürsünüz, kayıt defterinde bir değişiklik var mı diye kontrol ettiğinizde değişiklik bulunsa da göremezsiniz ve eğer rootkit bir port kullanıyorsa, portları kontrol etseniz bile açık değil, kapalı olarak görürsünüz.
Kaç Tür Rootkit Vardır
Temelde iki tür rootkit bulunmaktadır. Bunlar sistemdeki etkilerine, sistemde kalıcı olup olmadıklarına göre iki ana gruba ayrılabilirler.
1-) Kullanıcı Aracılı Rootkitler
a-) Kalıcı Olanlar (Sistem yeniden başlatılsa bile kendisi ve etkisi ortadan kalkmayan)
b-) Kalıcı Olmayanlar (Sistem yeniden başlatıldığında kendisi ve etkisi ortadan kalkan)
2-) Çekirdek (Kernel) Aracılı Rootkitler
a-) Kalıcı Olanlar
b-) Kalıcı Olmayanlar
Bunlardan Kullanıcı Rootkileri, Kernel Rootkitlerinden daha az zararlıdır ve etkileri sadece bulaştıkları kullanıcı hesabı ile sınırlıdır.
Kullanıcı Aracılı Rootkitler
Bunlar zararlı işlemleri yapmak ve işletim sisteminden istekte bulunmak için API (application programming interface) kullanmak durumundadırlar. Bu API istekleri Kernel'e doğrudan ulaşmaz ve DLL (Dynamic Link Libraries) olarak bilinen dosyalara uğramak durumundadır. Bu DLL dosyaları API isteklerini kernel'in anlayabileceği
şekilde düzenler ve istek gerçekleştirilir. Gördüğünüz gibi bu seviyede doğrudan kernele erişim bulunmamakta ve aracı kullanılmaktadır.
Kernel Aracılı Rootkitler
Kernel, işletim sisteminin beyni ve en temel parçası olarak değerlendirilebilir. Tüm yazılımlar bir şekilde kernel ile iletişim halinde olmalıdır ve bu kadar öneme sahip olan bir bölüme rootkit yazılımılarının doğrudan erişimi çok tehlikelidir. Bu alanda bulunan bir rootkit sistemin tüm kontrolünü elinde tutabilir. Ancak Kernel Aracılı Rootkitler kendilerini daha çok sistem hatası vermeleri ile belli edebilirler. Yani sistem kararsız duruma gelir ve çoğu zaman hata vermeye başlar.
Bir rootikin işletim sistemini yeniden başlatmadan kurtulmasının ve bu sayede kalıcı olmasının nedeni şu şeklide açıklanabilir; rootkit sistemde yani sabit diskte bir yerde bulunmakta ve kayıt defterinde otomatik başlatma girişi eklemektedir. Bu sayede kendisini hafızaya atabilmekte ve sistem her yeniden başlatıldığında kontrolü eline alabilmektedir.
Bu tür rootkiler sadece hafızada çalışır durumda bulunurlar ve sistemin yeniden başlatılması ile tekrar hafızaya yerleşmez ya da kayıt defteri girişi eklemezler. Bu durum ev bilgisayarlarında bir sorun yaratmaz gibi görünsede birbirine bağlı ve sürekli çalışmak durumunda olan bir bilgisayar ağında can sıkıcı olabilmektedir.
Rootkit'lere Karşı Kullanılabilecek Yazılımlar
Rootkitler konusunda herhangi bir yazılım kullanmaya geçmeden önce güvenlik açısından atmanız gereken iki adım bulunmaktadır.
1-) Rootkitlerin bilgisayarı enfekte etmek için yönetici haklarına sahip olmaları gerektiğinden sisteminize yönetici olarak girmeyin, yetkileri sınırlandırılmış bir kullanıcı hesabı ile girmeniz bu konuda atabileceğiniz en büyük adımdır.
2-) Rootkitler yönetici hesabı dahil sisteme bir defa girdiklerinde diğer kullanıcı hesaplarınıda etkileyebileceklerinden, özellikle yönetici kullanıcısı başta olmak üzere sistemdeki kullanıcıların çok güçlü şifreler kullanması gerekir. Güçlü şifre nasıl olmalıdır diye bir örnek vereceğim (içerisinde özel semboller, büyük harf, küçük harf, sayı bulundurmalı, bunlar mümkün olduğunca birbirinden farklı olmalı ve en az 6-8 haneli olmalıdır) ancak ayrıntılı bilgilere sitemizden ya da arama motorlarını kullanarak ulaşabilirsiniz.
Belki de neden rootkitler için ayrı bir yazılım kullanmanız gerektiğini sorabilirsiniz. Bunun en büyük nedeni rootkit yazılımlarının şu an bilinen antivirüs ya da antispyware vb.. yazılımlar ile tespit edilememesinden kaynaklanmaktadır. Neden tespit edilemedikleri ise şöyle açıklanabilir; sisteme giren rootkit sizin sistem dosyalarınızla kendini yer değiştirir, bu yer değişikliği sonucu sisteminizde herşeyi yapabilir, olağan güvenlik yazılımları tarafından sistem dosyası olarak algılanır, isterse zararlı bir yazılımı tarama yapan güvenlik yazılımlarınıza zararsız gibi gösterebilir. Bunun yanında bu zararlı yazılımların kullandığı portları, dosyaları ve kayıt defteri anahtarlarını bile gizleyebilir. Aslında işte bu zararlı yazılımları, güvenlik yazılımlarından saklayabilme özellikleri rootkit yazılımlarını bu kadar tehlikeli yapmaktadır. Aslında bu yazılımların tüm varolma nedenide budur, başka zararlı yazılımlar için işleri çok kolaylaştırmış olurlar. Tüm bu anlattıklarıma rağmen rootkitler asla tespit edilemez değildir ve aşağıdaki yazılımlar kullanılarak tespit edilip, sisteminizden kaldırılabilirler.
Rootkit'lerin aslında UNIX kökenli olduğunu söylemiş olsak bile bugün en büyük tehtid altında olan kullanıcılar windows kullanıcılarıdır (bunun en büyük nedeni bu yazılımları hazırlayan kötü niyetli programcıların en popüler olan işletim sistemini seçmeleri ile doğrudan ilgisi vardır.) ve windows bu konuda çok ciddi çalışmalar yapmakta hatta ayrı bir rootkit tespit etme ve kaldırma yazılımı üzerinde çalışmaktadır. Tabi o süreye kadar diğer güvenlik firmaları da bu konuda boş durmamakta ve çeşitli rootkit yazılımları geliştirmektedirler. Aşağıdaki listede rootkit tespit etme ve kaldırma işlemlerinde kullanabileceğiniz bazı yazılımların listesine ulaşabilirsiniz.