Linux Sistemlerde Zararlı Yazılım Analizi – Temel Seviye Statik Analiz

Temel seviye statik analizde zararlı çalıştırılmadan yapısı hakkında bilgi toplama, genel olarak barındırdığı özelliklerle ilgili öngörüler edinme ve daha önceden tanımlanmış bir zararlı olup olmadığını kontrol etme adımları gerçekleştirilir. Linux türevi sistemlerin güzelliklerinden biri olan araç çeşitliliği zararlı yazılım analizinde de seçenekleri arttırmaktadır. Bu sayede örneklerde kullanılan araçlara birçok alternatif bulunabilir.


“file”    komutu ile şüpheli dosyanın hangi sistem mimarisi ve kernel versiyonu için derlendiği, link işleminin nasıl gerçekleştirildiği öğrenilir. Bu sayede dinamik analiz için uygun sistem hazırlanabilir.

file elknot
elknot: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped

Daha sonra objdump aracı ile şüpheli elf dosyası hakkında faydalı bir çok detay öğrenilebilir. Bunların başında sembol tablosu gelir. Sembol tablosu genel olarak çalıştırılabilir dosyanın yerden bağımsızlığı (relocatability) için kullanılan bilgileri içerse de başlangıç olarak kullanılan fonksiyonlara odaklanılabilir. Bu sayede şüpheli dosyanın aktiviteleri hakkında “ağ bağlantısı kuruyor, dosya sistemine erişiyor” gibi öngörülerde bulunulabilir.

objdump -t elknot | more

elknot:     file format elf32-i386

SYMBOL TABLE:
080480d4 l    d  .note.ABI-tag    00000000 .note.ABI-tag
….
080787ca  w    F .text    0000003a _ZN7CIHNs5r6Udjf34ES_
080aa034  w    F .text    0000003a longjmp
08082130  w    F .text    00000089 _ZNSt12_Vector_baseI8CSubTaskSaIS0_EEC2EjRKS1_
0809eb68 g     F .text    00000091 __cxa_free_exception
08082092  w    F .text    0000001a _ZNSt6vectorIP23CThreadNormalAtkExcutorSaIS1_EEC1ERKS2_
0804b2b8  w    F .text    00000017 _ZNSt12_Vector_baseIcSaIcEE12_Vector_implD1Ev
0809c0ba  w    F .text    000000eb _ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE
08048b16 g     F .text    0000001a _ZN9CAttackIe4StopEv
080fc6b0  w    F .text    00000057 __recvmsg
0809b640  w    F .text    000002e6 _ZNSsC2ERKSsjj
080dd4d0  w    F .text    00000041 stpcpy
080ad134 g     F .text    000000a4 putchar
0808e75e g     F .text    00000005 _ZN12CThreadMutexD1Ev

Şüpheli dosyada statik analize karşı herhangi bir önlem (packing, compression, encryption) bulunmadığı durumlarda dosyanın içerdiği stringler görüntülenerek birçok ilginç bilgi toplanabilir.

strings elknot > elkstrings.txt

11CAttackBase
13CPacketAttack
10CAttackUdp
10CAttackSyn
11CAttackIcmp
10CAttackDns
10CAttackAmp
10CAttackPrx
15CAttackCompress
10CTcpAttack
9CAttackCc
10CAttackTns
9CAttackIe


/etc/resolv.conf
nameserver
8.8.8.8
8.8.4.4

8CSubTask
9CCpuLimit
5CTask
7CConfig
13CInitResponse
11CBillStatus
15CCommonResponse
11CUpdateBill
12CUpdateGates
8CLoopCmd
9CShellCmd

15CFakeDetectInfo
18CFakeDetectPayload

Örnek çıktıda görüldüğü üzere zararlı botnetlerde görülen DDoS saldırı komutları olarak yorumlanabilecek stringler içermektedir. Bunun yanısıra sistemin DNS ayarlarını içeren dosyanın tam yolu (resolv.conf) ve Google’ın DNS sunucu IP adresleri de çıktıda görülebilir. UpdateBill, UpdateGates ve ShellCmd fonksiyonlarının da detaylı analizi hakkettiği söylenebilir.

Bunlara ek olarak şüpheli dosyanın hash değeri Virustotal’de aratılarak daha önceden tanınmış bir zararlı olup olmadığı öğrenilebilir.

sha256sum elknot
1ec71d8e8e5042f43fad734f4cc5b86390a596366efc316d720882a2fe7cbad5  elknot