Linux’da şüpheli modüllerin memory dump ile incelenmesi

Geçenlerde NetSec eposta listesinde birisi memory dump için araç tavsiyesi istedi. Konuyla ilgili olarak hem Linux hem de Windows‘ta geçerli olan mdd uygulaması bu iş için uygun gözüküyor. Memory dump nedir neden gerekir?  RAM bellekte yüklü ve çalışmakta olan işlemlerin (process) veri ve kod bloklarının rahatça debug edilebilmesi için diske kopyalanması gerekir.  Bellekte çalışmakta olan bu işlem üst katman bir uygulama olabileceği gibi kendini daha iyi gizlemek için kernel mode ya da driver modda çalışan düşük seviyeli bir işlem de olabilir. Bu işlemleri incelemek ve kendini gizlemiş kötü amaçlı yazılımları tespit için RAM’in tamamının dump edilmesi gerekebilir. Ayrıca çalışmakta ve kilitli konumdaki bir Windows’tan parola hash’ini sökmek için de dump kullanılmıştı. Biraz farklı ve ilginç sayılabilecek bu yöntemin ayrıntılarına buradan bakabilirsiniz. Daha çok forensic (adli bilişim suçu analizi) amaçlı bilgilerin verildiği ve mdd ile diğer araçların tanıtıldığı sunumu aşağıdaki bağlantıdan indirebilirsiniz.

[Yükleme bulunamadı.]

Ayrıca sunumda değinilen memory dump araçları ile yapılabilecekler konusuna Tacettin Karadeniz‘in zararlı linux modüllerinin tespiti ve segmentation fault hatası üzerine verdiği örnekler de oldukça yarayışlı. Hiç dokunmadan paylaşıyorum. Ayrıca memory dump konusuyla ilgili bura ve buradaki yazılara da göz atabilirsiniz.

*nix için çeşitli uygulamalar mevcuttur.
Sisteminde çalışan bir uygulamanın oluşturduğu etkiyi görebilmek için kendince fikirler geliştirme şansın var.
Örneğin, sistemine aktif olan bir kernel module ait ifadeleri inceleyebilirsin.
linux-sistem #  lsmod
Module Size Used by
ipv 6238080 10
whymymodule 6528 0 <—???? İlginç bir eklenti
binfmt_aout 6668 0
af_packet 17160 4
tsdev 6208 0
autofs4 17284 1
evdev 7936 0
linux-sistem # dd if=/proc/kcore of=/tmp/kcore            ‘  bellegin bir fotoğrafını çekelim
linux-sistem # strings /tmp/kcore > /tmp/strings.txt     ‘  fotoğraftan kişileri ayıralım
linux-sistem # grep why /tmp/strings.txt                     ‘  why karakterini süzelim
.whymymodule.ko.cmd #EFEBDE
.whymymodule.mod.o.cmd
.whymymodule.o.cmd
user-home-X.X.X.X:~/why$ N
whymymodule
user-home-X.X.X.X:~/why$ lex 4096 Jul 26 18:05 ..
[malex-X.X.X.X:~$ cd why/
./whysh1t /usr/X11R6/lib/libdps.a <—————————–-incelenmesi gereken bir durum
-rw-r–r– 1 root root 8042 Jul 26 18:49 whymymodule.ko
-rwxr-xr-x 1 alex alex 476053 Jul 26 18:04 whyproc
-rwxr-xr-x 1 alex alex 15580 Jul 26 18:05 whysh1t
user-home-X.X.X.X:~/why$
whymymodule.c
whymymodule.mod.c
whymymodule
…Yukarıda örnekte ‘ why ‘ ile baslayan kelime taraması yaptık. İnceleme sonucu bu modül “user-home” isimli kullanıcı adı altında oluşturulduğunu gördük. 

Bu inceleme bir linux sisteme yapılan izinsiz giriş sonucu kernele eklenen bir backdoorun tesbiti ile ilgili idi.
Bir diğer örnekleme yapalım.
Elimizde bir linux uygulaması mevcut ve bu uygulayı analizi etmek istiyoruz.
Uygulama “segment fault” uyarısı veriyor. Neden buyarıyı verdiğini bulmak yada en azından tahmin etmek için “core dump” oluşmasını sağlayarak inceleme yapabiliriz.
debian-sh4# dreamcast-umulator
segment fault
debian-sh4# ulimit -c unlimited
debian-sh4# dreamcast-umulator
segment fault(core dumped)
Sonrasında oluşan “core”  dosyasını inceleyebilirsiniz(misal:  gdb)
İyi Çalışmalar.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.