Zararlı Yazılım Analizi Temelleri

Kod akışları üzerinde MALWARE yazılı uyarı işaretleri

Temel Kavramlar

Bu yazıda zararlı yazılım analizi hakkında bilgiler vereceğim; virüsler, solucanlar vb. terimleri duymuşsunuzdur. Ama bu şeyler ne anlama geliyor? Virüs solucan mıdır? Kötü amaçlı yazılım tam olarak ne yapar? Hadi bunları öğrenelim…

Zararlı Yazılım (Malware)

Zararlı yazılım, zararlı(malicious) ve yazılım(software) kelimelerinin birleşiminden gelir. Hackerlar tarafından sistemlere bulaşmak ve zarar verecek eylemleri gerçekleştirmek için kullanılan bir yazılım parçasıdır. 
Bu tür yazılımlar, veri kaybına veya süreçlerinin kesintiye uğramasına yol açabilir.

Zararlı yazılımın iki ana bileşeni vardır:

  • Yayılma mekanizması: Bir zararlı yazılımın kendisini bir veya daha fazla sisteme nasıl yaydığıdır.
  • Payload: Bir zararlı yazılımın virüs bulaşmış bir cihazda veya sistemde gerçekleştirdiği eylemdir.

Zararlı yazılımları, yayılış biçimine ve işlevine göre sınıflandırabiliriz. Ancak, bir zararlı yazılım bu türlerin pek çoğunun karışımından da oluşabilir. Bu nedenle sınıflandırmayı kesiınleştirmek zor olabilir.

Zararlı Yazılım Belirtileri

Bir sisteme bulaşmış olan kötü amaçlı yazılımın türü ne olursa olsun, dikkat edilmesi gereken bazı yaygın belirtiler vardır. Bunlar:

  • Merkezi işlem birimi (CPU) kullanımında artış, buna bağlı olarak bilgisayarınızın yavaşlaması
  • Bilgisayarınızın sık sık donması veya çökmesi
  • Web tarama hızınızda azalma
  • Ağ bağlantılarınızla ilgili açıklanamayan sorunlar
  • Değiştirilmiş veya silinmiş dosyalar
  • Bilinmeyen dosyaların, programların veya masaüstü simgelerinin varlığı
  • Çalışan bilinmeyen işlemler (process)
  • Kendini kapatan veya yeniden yapılandıran programlar
  • Bilginiz veya onayınız olmadan gönderilen e-postalar.

Yayılma Mekanizmaları

Zararlı yazılımları yayılış biçimine yani propaganda mekanizmasına göre sınıflandırırsak genel olarak 3 türe ayırabiliriz.

Virüs

Virüsler, bir sisteme girmek için bazı giriş yollarına ve özellikle bir kullanıcı eylemine bağlıdır. Örneğin, bir kullanıcı virüs içeren ve sistemi kirleten bir dosya indirebilir veya bir USB cihazını takabilir. Spam mailleriyle veya güvensiz web sitelerinden indirilen dosyalarla virüsler sisteme bulaşabilir.

Virüsler, bir sisteme girmek için bazı giriş yollarına ve özellikle bir kullanıcı eylemine bağlıdır

Bilgisayar Virüsü

Worm (Solucan)

Bir virüsün aksine, bir worm kendisini sistemlere yaymak için herhangi bir kullanıcı eylemine ihtiyaç duymaz. Bunun yerine yararlanabileceği savunmasız sistemleri bularak hasara neden olur. Worm içeri girdikten sonra ağdaki diğer bağlı sistemlere yayılabilir.

Bir virüsün aksine, bir worm kendisini sistemlere yaymak için herhangi bir kullanıcı eylemine ihtiyaç duymaz

Bilgisayar Solucanı

Trojan (Truva Atı)

Trojan, gerçek bir yazılım parçası gibi davranan bir zararlı yazılım türüdür. Bir kullanıcı programı yüklediğinde, beklendiği gibi çalışır. Ancak program arka planda zararlı işlevler gerçekleştirir.

Trojan, gerçek bir yazılım parçası gibi davranan bir zararlı yazılım türüdür

Bilgisayar Truva Atı

Payloadlar

Zararlı yazılımlar sistemlere bulaştığında pek çok zararlı işlev gerçekleştirebilir. Bunlardan kabaca bazıları şulardır:

Ransomware

Bulaştığı sistemleri veya verileri kilitleyen bir programdır. Saldırgan daha sonra dosyaların kilidini çözme karşılığında fidye talep eder. Fidye belirlenen son tarihe kadar ödenmezse, tüm dosyalar silinebilir.

Bulaştığı sistemleri veya verileri kilitleyen bir programdır

Fidye Yazılımı

Spyware

Bir cihaz veya sistem üzerinde casusluk yapan bir program türüdür. Bu tür yazılımlar, kullanıcının bilgisi olmadan bir cihaza klavye tarama yazılımı yükleyebilir, parola ayrıntılarını toplayabilir ve bunları saldırgana iletebilir.

Bir cihaz veya sistem üzerinde casusluk yapan bir program türüdür

Casus Yazılım

Backdoor

Bir siber suçlunun mevcut güvenlik önlemlerini atlamak için bir sistem veya cihazdaki bir güvenlik açığından yararlanmasını sağlayan yani saldırganın hedef sisteme erişimini sağlayan bir yazılımdır.

Bir siber suçlunun mevcut güvenlik önlemlerini atlamak için bir sistem veya cihazdaki bir güvenlik açığından yararlanmasını

Arka Kapı

Botnet

Bir bilgisayarı, sunucuyu veya başka bir cihazı, bazı illegal faaliyetleri gerçekleştirmek için uzaktan kontrol edebilen ve benzer şekilde enfekte edilmiş cihazlardan oluşan bir ağa bağlayan bir yazılımdır. Bu sistemde enfekte olan cihazlara zombi, enfekte olmuş cihazların tamamından oluşan ağa ise botnet denir.

Bir bilgisayarı, sunucuyu veya başka bir cihazı, bazı illegal faaliyetleri gerçekleştirmek için uzaktan kontrol edebilen ve

Botnet Ağı

Zararlı Yazılım Analizi

Zararlı yazılım analizi, bir zararlı yazılımın nasıl çalıştığını, nasıl tanımlanacağını ve nasıl önleneceğini veya ortadan kaldırılacağını anlamak için yapılan analizler bütünüdür.

Zararlı yazılım analizine yönelik iki temel yaklaşım vardır:

  • Statik analiz: zararlı yazılımı çalıştırmadan incelemeyi içerir.
  • Dinamik analiz: zararlı yazılımın çalıştırılmasını içerir.

Bu analizler için geliştirilmiş pek çok araç ve dağıtım vardır. Bunlara sonraki yazılarımızda daha detaylı değineceğiz.

Bu analizler için geliştirilmiş pek çok araç ve dağıtım vardır

Zararlı Yazılım Analizinin Genel Kuralları

Öncelikle ayrıntılara fazla takılmayın. Çoğu zararlı yazılım programı büyük ve karmaşıktır ve muhtemelen her ayrıntıyı anlayamazsınız. Bunun yerine temel özelliklere odaklanın.

İkinci olarak, farklı işler için farklı araçlar ve yaklaşımlar olduğunu unutmayın. Tek bir yaklaşım yok. Her durum farklıdır ve öğreneceğiniz çeşitli araçlar ve teknikler benzer ve bazen örtüşen işlevlere sahip olacaktır. Bir araçta şansınız yoksa, başka birini deneyin. Sıkışırsanız, herhangi bir konuda fazla zaman harcamayın. Kötü amaçlı yazılımı farklı bir açıdan analiz etmeyi deneyin veya farklı bir yaklaşım deneyin.

Son olarak, zararlı yazılım analizinin bir kedi-fare oyunu gibi olduğunu unutmayın. Yeni zararlı yazılım analizi teknikleri geliştirildikçe, zararlı yazılım geliştiricileri, analizi engellemek için yeni tekniklerle yanıt verir. Bir zararlı yazılım analisti olarak başarılı olmak için, bu teknikleri tanımanız, anlamanız ve yenmeniz gerekir.

Zararlı Yazılımların Tespiti

Bir yazılımın zararlı olduğunu doğrulamak için birçok yöntem vardır. Bunlardan bazıları:

  • Antivirüs araçlarını kullanma
  • Yazılımın hash değerlerini kullanma
  • Yazılımın stringlerini, fonksiyonlarını ve headerlarını inceleme

Her teknik farklı bilgiler sağlayabilir ve kullandığınız teknikler hedeflerinize bağlıdır.

Antivirüs Taraması

Muhtemel zararlı yazılımları ilk kez analiz ederken, onu zaten tanımlamış olabilecek bir antivirüs programı aracılığıyla çalıştırmak iyi bir ilk adımdır. Ancak antivirüs yazılımları kesinlikle mükemmel değildir.

Muhtemel zararlı yazılımları ilk kez analiz ederken, onu zaten tanımlamış olabilecek bir antivirüs programı aracılığıyla

Antivirüsler, şüpheli dosyaları belirlemek için bilinen zararlı kodların imzalarından oluşan bir veritabanına ve ayrıca davranışsal ve model eşleştirme analizine (buluşsal yöntemler) güvenirler. Buradaki sorun, zararlı yazılım geliştiricilerin kodlarını kolayca değiştirebilmeleri, böylece programlarının imzasını değişmesi ile virüs tarayıcılarından kaçabilmeleridir. Ayrıca, nadir görülen zararlı yazılımlar, veritabanında bulunmadığından genellikle antivirüsler tarafından algılanmaz. Son olarak danvranışsal yöntemler, genellikle bilinmeyen kötü amaçlı kodları tanımlamada başarılı olsa da, yeni ve benzersiz zararlı yazılımlar tarafından atlatılabilir.

Hash Değerleri

Hashing, zararlı yazılımları benzersiz bir şekilde tanımlamak için kullanılan yaygın bir yöntemdir. Zararlı yazılımı tanımlayan benzersiz bir karma (bir tür parmak izi) üreten bir karma program aracılığıyla benzersiz bir hash değeri elde edilir.

Hashing, zararlı yazılımları benzersiz bir şekilde tanımlamak için kullanılan yaygın bir yöntemdir

Message-Digest Algorithm 5 (MD5) hash fonksiyonu, kötü amaçlı yazılım analizi için en sık kullanılan algoritmadır, ancak Secure Hash Algorithm 1 (SHA-1) de popülerdir.

VirusTotal

VirusTotal, birçok zararlı yazılımdan koruma ürününü bir araya getiren çevrimiçi bir web platformudur. Buraya bir zaralı yazılım örneğini yükleyebilirsiniz. Burayayüklenen örnek birçok antivirüsürünü tarafından taranır ve size bir sonuç raporu döndürür. Bu raporda, örneğin hangi yazılımlar tarafından ne şekilde değerlendirildiği ve tür kategori aile olarak snıflandırmasını görebilirsiniz.

VirusTotal, birçok zararlı yazılımdan koruma ürününü bir araya getiren çevrimiçi bir web platformudur


Sandbox Kurulumu

Zararlı yazılım analizinde kullanacağımız ortam kurulumunu ve sandbox kavramını ele alacağız. Analiz ortamını hazırlarken nelere dikkat etmeliyiz? Hangi araçları kullanacağız? Detaylar bu bölümde...

Sandbox

Zararlı Yazılım Analizinde kullandığımız ortama sandbox ismini veriyoruz. Özellikle dinamik analiz ile inceleme yaparken, zararlı yazılımı izole bir ortamda çalıştırmak zorundayız. Bunun için en kullanışlı yöntem sanal makine(Virutal Machine) kullanmaktır. Tabi bunun için birçok sanallaştırma yazılımı mevcut; VirtualBox, VMWare Workstation ve QEMU/kvm bunlardan birkaçı. Bu yazımızda virutalbox üzerinden ilerleyeceğiz.

Zararlı Yazılım Analizinde kullandığımız ortama sandbox ismini veriyoruz

Bunun dışında bir de sanallaştırılmış ortamda kullanacağımız işletim sistemi ve sürümünü belirlememiz gerekiyor. Zararlı yazlımların çoğunluğu windows işletim sistemi üzerinde çalışacak şekilde geliştirilmiştir. Eğer bu yazılımları çalıştırmak istiyorsak , dinamik olarak analizini yapacaksak, bizim de windows işletim sistemini kullanmamız gerekir. Ancak, eğer zararlı yazılımı statik olarak incelemek istiyorsak bu noktada, bize sunduğu birçok tersine mühendislik aracıyla linux işletim sistemini de kullanabiliriz. Dahası, linux işletim sistemi kullanarak zararlı yazılım analizi yapmak için geliştirilmiş, gerekli araçlar kurulu olarak gelen, bir linux dağıtımı da mevcut. Sans Enstitüsü tarafından geliştirilmiş remnux ismindeki dağıtımı buradan inceleyebilirsiniz.

Biz bu yazımızda emektar windows7 32-bit işletim sistemini kullanacağız. Çünkü zararlı yazılımların büyük çoğunluğu windows7 üzerinde çalışır ve 32-bittir.

VirtualBox Kurulumu

VirtualBox, Oracle tarafından geliştirilmiş genel amaçlı bir sanallaştırma yazılımıdır. https://www.virtualbox.org/ adresinden downloads sekmesinden mevcut işletim sistemi ve sürümünüze uygun olan versiyonu indirebilirsiniz.

VirtualBox, Oracle tarafından geliştirilmiş genel amaçlı bir sanallaştırma yazılımıdır

Kurulum dosyasını indirdikten sonra çalıştırın ve kurulumu tamamlayın.

Windows7 Kurulumu

Windows7 kurulumu için önce 32-bitlik ISO dosyası bulmanız gerekiyor. Microsoft windows7'ye desteği kestiği için kendi sitesinden ISO dosyasını indiremiyoruz. İnternette windows7 iso yazarak diğer sitelerden iso dosyasını bulabilirsiniz. Hangi siteye güveneceğiniz size kalmış.

Sanal Makine Kurulumu

ISO dosyamızı hazır ettikten sonra artık kuruluma başlayabiliriz. Öncellikle virtualbox üzerinde boş bir makine oluşturmamız gerekiyor. Bunun için;

ISO dosyamızı hazır ettikten sonra artık kuruluma başlayabiliriz

1

new butonuna tıklıyoruz açılan pencerede bizden işletim sistemi bilgilerini istiyor.

new butonuna tıklıyoruz açılan pencerede bizden işletim sistemi bilgilerini istiyor

Windows 7 (32-bit)'i seçiyoruz ve makinemize bir isim veriyoruz. Ben SANDBOX ismini verdim. Siz başka bir isim de verebilirsiniz. Ardından Next butonuna tıklıyoruz.

Windows 7 (32-bit)'i seçiyoruz ve makinemize bir isim veriyoruz

Burada makineye vereceğimiz RAM alanını ayarlıyoruz ben 4GB RAM verdim. Makine çalıştığında bilgisayarımın 4GB RAMi bu makineye tahsis edilecek. Siz isterseniz daha fazla da verebilirsiniz sisteminizin durumuna göre. Next butonuna tıklıyoruz.

Burada makineye vereceğimiz RAM alanını ayarlıyoruz ben 4GB RAM verdim

Burada sistem dosyalarının kurulacağı bir sanal harddisk oluşturuyoruz. Default olarak seçili olan kısım bizim işimizi görür. Create butonuna tıklyıoruz.

Burada sistem dosyalarının kurulacağı bir sanal harddisk oluşturuyoruz

Create Virtual Hard Disk menüsü karşımıza çıkacak, VDI, VHDI, VMDK gibi seçenekler karşımıza çıkıyor. Ben VDI'ı tercih ediyorum. Next butonuna basıyoruz.

Create Virtual Hard Disk menüsü karşımıza çıkacak, VDI, VHDI, VMDK gibi seçenekler karşımıza çıkıyor

Gelen menüde, sabit boyut ve dinamik boyut seçenekleri var. Eğer sabit boyut seçerseniz sisteminiz daha stabi olur ancak sisteme ayırdığınız alanı tamamen kaybedersiniz. Dinamik boyutda ise sisteme ayırdığınız alan sanal makine içinde doldukça arttırılır. Yani sanal makineye 100GB alan verseniz bile, sanal makine kendi içinde 20GB'ı kullanılıyorsa 80GB'ı temel işletim sisteminizde boş olarak görünür, kllanılabilir. Ben sandbox makinesi olduğu için sabit boyutu tercih ederim. Fixed Size'ı seçtim. Next butonuyla devam.

Gelen menüde, sabit boyut ve dinamik boyut seçenekleri var

Burada makine için ayıracağınız disk alanını belirliyorsunuz. Minimum 32GB olması gerekiyor. Ben 64GB verdim. Create butonu ile devam edebiliriz. Ve sonunda boş sanal makinemizi oluşturduk

Burada makine için ayıracağınız disk alanını belirliyorsunuz

Start butonu ile makineyi başlatırsanız karşınıza sadece siyah ekran çıkacaktır. Çünkü daha ISO dosyamızı yüklemedik.

Windows ISO Yükleme

Oluşturduğumuz boş sanal makineye Windows ISO'sunu yüklemek için sanal makinenin ayarlarını düzenlememiz lazım.

Oluşturduğumuz boş sanal makineye Windows ISO'sunu yüklemek için sanal makinenin ayarlarını düzenlememiz lazım

Şimdi soldaki menüde SANDBOX makinemiz seçili halde settings butonuna tıklıyoruz. Burada makine için ayarları yapacağız.

Şimdi soldaki menüde SANDBOX makinemiz seçili halde settings butonuna tıklıyoruz

Açılan menüden sanal makinamız ile ilgili pek çok ayarı yapabiliriz. Soldaki menüden storage sekmesine geliyoruz. Burda cd üzerinde + olan simgeye tıklıyoruz. Burdan ISO dosyamızı yükleeceğiz.

Açılan menüden sanal makinamız ile ilgili pek çok ayarı yapabiliriz

Açılan menüden Add butonuna tıklıyoruz ve açılan pencereden Windows7 (32-bit) ISO dosyamızı bilgisayarımızda nereye kaydettiysek bulup seçiyoruz.

Açılan menüden Add butonuna tıklıyoruz ve açılan pencereden Windows7 (32-bit) ISO dosyamızı bilgisayarımızda nereye

Ardından yüklediğimiz ISO'yu seçip choose butonuna basıyoruz. İşlememiz tamamlandı artık makineyi çalıştırabiliriz.

Windows Kurulıumu

Bundan sonrası klasik windows kurulumu. Start butonundan makineyi çalıştırabilirsiniz.

Bundan sonrası klasik windows kurulumu

windows7 kurulum

Windows kurulumu oldukça basittir. Windowsun kurulum arayüzünden kolaylıkla yapabilirsiniz. Makine kurulumu bittikten sonra windows başlatılacaktır.

Windows kurulumu oldukça basittir

Bundan sonraki aşama Zararlı Yazılım Analizi için gerekli olan araçları kurmanızdır. Tabi bunların hepsini bir anda da kurabilirsiniz, peyder pey de kurabilirsiniz.

Makine Klonlama

Şimdi makinemize birşey olursa tekrar kurmak ile uğraşmamak için makineyi konlamayı görelim.

Şimdi makinemize birşey olursa tekrar kurmak ile uğraşmamak için makineyi konlamayı görelim

Bunun için makinemize sağ tıklayıp açılan pencerede clone'a tıklıyoruz.

Bunun için makinemize sağ tıklayıp açılan pencerede clone'a tıklıyoruz

karşımıza böyle bir pencere çıkıyor next butonuna basıp devam edebiliriz.

karşımıza böyle bir pencere çıkıyor next butonuna basıp devam edebiliriz

Burada klon tipini belirlememiz gerekiyor. İki çeşit klon tipimiz var.

Full clone: adından da anlaşılacağı gibi sanal makinenin aynısından bir tane daha oluşturur. Dolaysıyla klonlandığı makineye bir bağımlılığı yoktur.

Linked clone: klonlanan makine ana makineye bağımlıdır. Yani ana makine silinirse bağlantılı klonu da işlevsiz kalır.

Linked clone: klonlanan makine ana makineye bağımlıdır

full cloneu seçip devam edebilirsiniz. Ardından VM klonlanana kadar bekleyiniz ve klonunuz hazır.

Önerilen Araçlar

Zararlı yazılım analizi, çeşitli araçların yardımını gerektirir. Analiz VM'ine yüklenmesi gereken çeşitli araçların listesini inceleyeceğiz ve bu araçların kullanımını sonraki bölümlerde gerektiğinde ve gerektiğinde tanıtacağız. Bu araçlardan birkaçının GUI'si yoktur ve komut satırı istemi aracılığıyla çalıştırılmaları gerekir. Bazıları ise masaüstünden kısayol ile çalıştırılabilir.

QuickHash

QuickHash, hızlı ve güvenilir cross platform bir hashing aracıdır. Zararlı Yazılımın hashini almak için bu programı kullanabilirsiniz. 
Bu linkten indirebilirsiniz: https://quickhash-gui.org

QuickHash: Bu linkten indirebilirsiniz

PEView

PEView popüler bir PE dosya ayrıştırıcısıdır. 
Bu linkten indirebilirsiniz: http://wjradburn.com/software/

PEView: Bu linkten indirebilirsiniz

TrID

Dosya türünün belirlenmesi için kullanılan bir araçtır.
Bu linkten indirebilirsiniz: http://mark0.net/soft-trid-e.html

TrID: Bu linkten indirebilirsiniz

Process Hacker

Process Hacker, çalışan süreçleri bunların iş parçacıklarını, çalışan hizmetleri, yapılan ağ bağlantılarını, disk kullanımını, işlem başına yüklenmiş DLL'leri vb. görüntüleme dahil olmak üzere sistemin çeşitli durumlarını görselleştirmeye yardımcı olur. Ayrıca, uygun şekilde kullanılırsa kötü amaçlı yazılımın analiz edilmesine ve incelenmesine yardımcı olabilecek, süreçle ilgili çeşitli özellikleri de gösterir.
Bu linkten indirebilirsiniz: https://processhacker.sourceforge.io/

Process Hacker: Bu linkten indirebilirsiniz

ProcMon

ProcMon, süreç ve iş parçacığı oluşturma, ağ etkinlikleri, dosya oluşturma ve silme gibi dosyayla ilgili etkinlikler, kayıt defteriyle ilgili etkinlikler vb. dahil olmak üzere sistemde çalışan işlemlerin çeşitli etkinliklerini yakalayan ve görüntüleyen, iyi bilinen bir işlem izleme aracıdır.
Bu linkten indirebilirsiniz:https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

ProcMon: Bu linkten indirebilirsiniz

Autoruns

Kötü amaçlı yazılım, sistem yeniden başlatıldıktan veya kullanıcı yeniden oturum açtıktan sonra devam etmek ve otomatik olarak çalışmak için kalıcılık mekanizmalarını kullanır. Autoruns, kötü amaçlı yazılım tarafından kullanılan kalıcılık mekanizmalarını yakalar ve sistem açılışında veya oturum açma sırasında çalışacak şekilde yapılandırılmış tüm programların bir listesini sağlar.
Bu linkten indirebilirsiniz: https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns

Autoruns: Bu linkten indirebilirsiniz

Regshot

Regshot, registry farkını görüntülemek için Windows registry anlık görüntüsünü almanıza ve ikinci bir anlık görüntüyle karşılaştırmanıza olanak tanıyan bir registry farkı/karşılaştırma aracıdır.
Bu linkten indirebilirsiniz: https://sourceforge.net/projects/regshot/

Regshot: Bu linkten indirebilirsiniz

FakeNet

FakeNet, zararlı yazılımdan giden ağ bağlantılarını yakalayıp loglayan ve simüle edilmiş yanıtlar döndüren, böylece kötü amaçlı yazılıma harici ağ erişimini devre dışı bırakan, Windows için kullanılabilen dinamik bir zararlı yazılım analiz aracıdır. 
Bu linkten indirebilirsiniz: https://sourceforge.net/projects/fakenet/

FakeNet: Bu linkten indirebilirsiniz

BinText

Bintext, dosyalardan ASCII ve Unicode metin dizelerini çıkarabilen bir statik analiz aracıdır.

Bintext, dosyalardan ASCII ve Unicode metin dizelerini çıkarabilen bir statik analiz aracıdır

YARA

YARA, zararlı yazılım araştırmacıları için İsviçre çakısı olarak tanımlanıyor. Zararlı yazılımları tespit etmek ve sınıflandırmak için çok kullanışlıdır.
Bu linkten indirebilirsiniz: https://virustotal.github.io/yara/

YARA: Bu linkten indirebilirsiniz

Wireshark

Wireshark, canlı ağ trafiğini yakalayıp inceleyebilen veya statik paket yakalama (PCAP) dosyalarını analiz edebilen bir grafik paket analiz aracıdır. Wireshark, çeşitli protokollerin kodunu çözmeyi destekler ve herhangi bir ağ trafiğini hızlı bir şekilde incelememize izin veren dahili paket filtreleme özelliği sağlar. 
Bu linkten indirebilirsiniz: http://www.wireshark.org

Wireshark: Bu linkten indirebilirsiniz

GMER

GMER, hem kullanıcı alanı API kancalarını hem de çekirdek modeli SSDT kancalarını tespit etmek için kullanabileceğimiz bir araçtır.
Bu linkten indirebilirsiniz: http://www.gmer.net

GMER: Bu linkten indirebilirsiniz

DriverView

DriverView, sisteminizdeki tüm yüklü sürücüleri görüntülemenize yardımcı olan bir GUI aracıdır ve sisteminizde herhangi bir kötü amaçlı çekirdek modülü/rootkit'in yüklü olup olmadığını kontrol etmek için harika bir araçtır.
Bu linkten indirebilirsiniz: http://www.nirsoft.net/utils/driverview.html

DriverView: Bu linkten indirebilirsiniz

Strings

Sysinternals Strings, dosyalardan tüm stringleri bulmanıza yardımcı olan bir komut satırı aracıdır.
Bu linkten indirebilirsiniz: https://docs.microsoft.com/en-us/sysinternals/downloads/strings

Strings: Bu linkten indirebilirsiniz

Bulk Extractor

Bulk Extractor ağ paketi, dosyaları bellek dökümlerinden yakalayan bir komut satırı aracıdır.
Bu linkten indirebilirisiniz: http://downloads.digitalcorpora.org/downloads/bulk_extractor/

Bulk Extractor: Bu linkten indirebilirisiniz

OllyDbg

OllyDbg, zararlı yazılım tersine mühendisliği için sahip olunması gereken bir araçtır. x86 yürütülebilir dosyalarını pencerelerde çalıştırabilen ve hatalarını ayıklayabilen grafiksel bir x86 hata ayıklayıcıdır.
Bu linkten indirebilirsiniz: http://www.ollydbg.de/version2.html

OllyDbg: Bu linkten indirebilirsiniz


Statik Analiz

Kurduğumuz ortam ile bir zararlı yazılımın statik analizini yapmaya çalışacağız. Statik analiz yöntemlerine ve ilgili araçlara bu bölümde değineceğiz.

Statik Analiz Yöntemleri

Statik analiz, dinamik analiz olarak bilinen, yürütme ve davranışını analiz etmenin aksine, bir zararlı yazılımın yürütülmeden analizidir.

Statik analiz, analiz sürecinde iyi bir ilk adımdır. Bunu kullanarak, bir örneğin zararlı mı yoksa temiz mi olduğunu onu çalıştırmanıza bile gerek kalmadan anlayabilirsiniz. Hatta herhangi bir dinamik analiz yapmanıza gerek kalmadan zararlı yazılımın türünü, ailesini ve amacını bulmaya kadar gidebilirsiniz.

Statik analiz veya dinamik olsun, ilk adım her zaman başkalarının yazılım örneğiniz hakkında herhangi bir düşüncesi veya sonucu olup olmadığını kontrol etmeyi içerir. Çoğu zaman başkaları, örneğinizi veya aynı zararlı yazılım ailesine ait benzer bir örneği zaten analiz etmiş ve analizi hakkında bir blog yazısı yazmıştır. Diğer durumlarda, aynı örnek VirusTotal ve diğer kötü amaçlı yazılım analiz platformlarına girmiş olabilir. Bu konuda internette ararştırma yapabilirsiniz.

Bundan sonraki aşamalarda adım adım analiz tekniklerine değineceğiz.

Hash değeri

Bir zararlı yazılımın hash değeri daha önce kullanılmışsa o zararlı yazılım ile ilgili pek çok bilgi verebilir.

Bir zararlı yazılımın hash değeri daha önce kullanılmışsa o zararlı yazılım ile ilgili pek çok bilgi verebilir

Zararlı yazılım öğrneğimizin hash değerini QuickHash aracı ile elde edebiliriz. Bunun dışında pek çok araçta mevcuttur. Bu değeri googleda aratırsak.

Zararlı yazılım öğrneğimizin hash değerini QuickHash aracı ile elde edebiliriz

Karşımıza bu zararlı yazılım örneği ile ilgili pekçok bilgi çıkıyor. Ayrıca bu hash değerini virustotal üzerinde de aratabilirsiniz.

Dosya Formatını Tespit Etme

Zararlı yazılımlar farklı dosya biçimlerinde gelir: PE dosyaları, .NET dosyaları, Java dosyaları, Komut dosyaları, JavaScript yazılımı vb. Farklı işletim sistemleri için de yazılmış olabilirler: Linux, Windows, macOS veya Android. Belirli bir işlemci mimarisi için hedeflenmiş olabilirler: x86, x64, PowerPC, arm vb. Analiz ettiğiniz örnek dosyanın türüne ve hedefine bağlı olarak, örnek dosyayı analiz etmek için farklı araçlara ve hatta işletim sistemi kurulumuna veya işlemci türüne ihtiyacınız olabilir.
İyi bir ilk adım, dosyanın biçimini bulmaktır, çünkü bu, örneğin hedefinin neye benzediği hakkında çok şey gösterir. Bunun için trid aracını kulanabiliriz.

Uzantı sahteciliği, dosya adlarının bir parçası olarak sahte uzantılar kullanarak çalışır. Bu teknik, .pdf, .xlsx ve .doc gibi uzantılar olarak tanıyan ve bu nedenle güvenli olduklarını düşünen çoğu kullanıcı kurbanının cehaletinden yararlanır. Saldırganlar, bu uzantıları zararlı yazılım dosya adlarına ekleyerek, kurbanları onları .exe olmayan dosyalar olarak yanlış okumaları için kandırmayı başarır ve temelde onları indirip tıklamaları için kandırır.

Versiyon Bilgileri

Sistemimizdeki çoğu temiz yazılım ve dosya, Özellikler penceresinin altında, dosyaya sağ tıklayıp Özellikler'i seçerek erişilebilen bir Ayrıntılar sekmesine sahiptir. Ayrıntılar sekmesi, Dosya sürümü, Ürün adı, Ürün sürümü ve Telif Hakkı gibi dosyayla ilgili çeşitli ayrıntıları gösterir.

Sistemimizdeki çoğu temiz yazılım ve dosya, Özellikler penceresinin altında, dosyaya sağ tıklayıp Özellikler'i seçerek

Uygulamayı açıklayan iyi tanımlanmış alanlar ve özellikler görmüyorsanız, numuneyi daha fazla araştırmayı garanti edecek şekilde şüpheli olarak değerlendirebilirsiniz. Aynı şekilde, önemsiz görünen veya çok az anlamı olan veya hiçbir anlamı olmayan alan değerleri görürseniz, örneği şüpheli olarak değerlendirebilirsiniz. Özelliklerini ve sürüm bilgilerini açıklamak için gereksiz değerler kullanan temiz uygulamalar görmezsiniz.

Kod İmza Bilgileri

Belgeleri imzamızla imzaladığımız gibi, dosyaları imzalamak için kriptografik olarak oluşturulmuş, kod imzalama sertifikaları olarak da bilinen dijital anahtarlar kullanılır. Bu kod imzalama sertifikalarını kullanan dosyalar için oluşturulan benzersiz dijital imzalar, dosyanın orijinal yazarına kadar uzanır.

Belgeleri imzamızla imzaladığımız gibi, dosyaları imzalamak için kriptografik olarak oluşturulmuş, kod imzalama

String Analizi

Zararlı yazılım örnekleri, yazılım programlarından başka bir şey değildir ve oluşturulan son çalıştırılabilir yazılımın bir parçası olarak birçok string içerir. Bu diziler genellikle yazılımın türünü, işlevselliğini ve amacını belirlemek için çok iyi göstergeler olarak hizmet edebilir.

Zararlı yazılım örnekleri, yazılım programlarından başka bir şey değildir ve oluşturulan son çalıştırılabilir yazılımın bir

BinText aracı ile dosya içindeki stringleri bulabiliriz ve burdan bilgi edinebiliriz. Bu GOAT dosyası Andreas Marx tarafından oluşturulmuştur. RR'den ROSEGOAT! (23.08.1998) Dosya: ROSE001.COM — 20.000 (4E20h) bayt uzunluk! gibi bilgilere burdan ulaştık.

YARA Kuralı Oluşturma

YARA, zararlı yazılım araştırmacıları için İsviçre Çakısı olarak tanımlanan bir araçtır. Dosyalara ve genel olarak her türlü arabelleğe karşı kural eşleştirme motorudur. YARA'yı kullanarak, insan tarafından okunabilen stringler ve hatta ikili kalıplar kullanarak kurallar oluşturabilir ve bu kalıpları, dosyalarda ve arabelleklerde eşleştirmek için boolean ifadeler kullanarak birleştirebilirsiniz.

rule YARA_example  
{  
      meta:  
          description = "This is just an example"  
      strings:  
          $a = "ROSEGOAT"  
      condition:  
          $a  
}

Bu kuralı sample.exe üzerinde çalıştırırsak eşleşme olduğunu görürüz.

Bu kuralı sample.exe üzerinde çalıştırırsak eşleşme olduğunu görürüz

YARA ile daha detaylı bilgite internet üzerinden ulaşabilirsiniz.

PE Dosya Başlıkları ve Bölümleri

PE dosya biçimi, bir dizi bölümün izlediği bir başlık içerir. Başlık, dosyanın kendisiyle ilgili meta verileri içerir. Başlığın ardından, dosyanın her biri yararlı bilgiler içeren gerçek bölümleri bulunur. PEview aracı ile bunları görüntüleyebiliriz.

PE dosya biçimi, bir dizi bölümün izlediği bir başlık içerir

Yaygın PE bölümleri:

  • .text bölümü, CPU'nun yürüttüğü talimatları içerir. Diğer tüm bölümler verileri ve destekleyici bilgileri saklar. Yürütülebilen, kodların bulunduğu, tek bölümdür.
  • .rdata bölümü tipik olarak içe ve dışa aktarma bilgilerini içerir. Bu bölüm, program tarafından kullanılan diğer salt okunur verileri de saklayabilir.
  • .data bölümü, programın herhangi bir yerinden erişilebilen programın genel verilerini içerir.
  • .rsrc bölümü, yürütülebilir dosya tarafından kullanılan ve yürütülebilir dosyanın parçası sayılmayan simgeler, resimler, menüler ve stringler gibi kaynakları içerir.

Disassembly

Makine kodunu assembly diline çevirebilen birçok program olsa da IDA Pro en iyi yazılım diyebiliriz.

Makine kodunu assembly diline çevirebilen birçok program olsa da IDA Pro en iyi yazılım diyebiliriz

IDA pro ücretli bir yazılım ancak IDA freeware isminde ücretsiz bir sürümüde mevcut bu sürümü ile analiz gerçekleştirebilirsiniz.

Statik analiz yöntemlerini ve tekniklerini ele aldıktan sonra, şimdi de zararlı yazılımı kontrollü bir ortamda çalıştırarak davranışlarını inceleyeceğimiz dinamik analiz aşamasına geçebiliriz.


Dinamik Analiz

Zararlı yazılım analizinde dinamik analiz yöntemlerini, tekniklerini ve kullanılan araçları inceleyeceğiz. Ne tür dinamik analiz teknikleri var? Hangi araçlar kullanılıyor? Nasıl analiz yapılıyor? Detaylar bu bölümde.

Dinamik Analiz Yöntemleri

Çeşitli araçların yardımıyla bir zararlı yazılım örneğini yürütmeyi ve yalnızca davranışı kaydetmeyi değil, aynı zamanda yürütülen zararlı yazılım tarafından üretilen çeşitli yapıtları da gözlemlemeyi içerir.

Dinamik analiz ve statik analiz, analiz sürecinde iki farklı aşama gibi görünse de öyle değildir. Çeşitli dinamik analiz adımlarını ve araçlarını gözden geçirirken, geri dönüp öğrendiğiniz çeşitli statik analiz adımlarını uygulamanız ve ardından tekrar dinamik analize geri dönmeniz gerekebilir. Bu döngü birkaç kez daha devam edebilir.

Dinamik analize başlamadan önce analiz ortamınızın izole ve yedeklenmiş olmasından emin olmalısınız. Bunun için sandbox kurulumu bölümünde değindiğimiz gibi Windows 7 makinenizin bir klonunu oluşturabilirsiniz ve işlemleri bu klon üzerinde gerçekleştirebilirsiniz. Ayrıca, ağ adaptörünün devredışı veya host-only modda olduğundan emin olun. Base sisteminizi korumak için sanal makine içinde herhangi bir ağ bağlantısı olmaması gerekiyor.

Bundan sonraki aşamalarda adım adım analiz tekniklerine değineceğiz.

İlk Çalıştırma

Analiz sürecindeki en iyi ilk adım, örneği gelişigüzel bir şekilde çalıştırmak ve davranışını çok yüksek bir düzeyde fark etmektir.

Fidye yazılımı gibi pek çok örneğin açık davranışları vardır. Örneği çalıştırmak ve yazılımın sistem ve diskteki dosyalar üzerindeki etkilerini gözlemlemek, örneğin zararlı yazılım olduğu sonucuna varmak, zararlı yazılımın türünü ve amacını anlamak için yeterli olabilir.

Yürütülen zararlı yazılımın davranışını gelişigüzel bir şekilde gözlemlemek beklentilerimizi belirlememize ve derinlemesine analizine devam etmek için gereken bir sonraki araç setine kendimizi hazırlamamıza yardımcı olur.

Tek bir yürütme, davranışı hakkında yeterince gözlem yapmamıza yardımcı olmayacağından, bu işlemi tekrarlamamız ve aynı örneği gelişigüzel bir şekilde birden çok kez yeniden çalıştırmamız gerekebilir. Örneği gelişigüzel bir şekilde her yeniden çalıştırdığımızda, VM'i sıfırlamamız önerilir. Bunun için çalıştırmadan önce snapshot alabilirsiniz ve zararlı yazılımı çalıştırdıktan sonra restore edebilirsiniz.

Tek bir yürütme, davranışı hakkında yeterince gözlem yapmamıza yardımcı olmayacağından, bu işlemi tekrarlamamız ve aynı

Bu işlemi gerçekleştirirken, örneğin davranışını pasif olarak gözlemlememize yardımcı olan Process Hacker ve dosya tarayıcısı gibi birkaç basit araçtan da yardım alabiliriz.

Bu işlemi gerçekleştirirken, örneğin davranışını pasif olarak gözlemlememize yardımcı olan Process Hacker ve dosya

örneğin burada sample.exe adında bir zararlı yazılımız var Bunu çalıştırdığımızda neler olacak gözlemleyelim.

örneğin burada sample.exe adında bir zararlı yazılımız var Bunu çalıştırdığımızda neler olacak gözlemleyelim

sample.exe öğresi ortadan kayboldu ve yeni prosesler başladı. Artık bilgisayarımız enfekte olmuş durumda.

sample.exe öğresi ortadan kayboldu ve yeni prosesler başladı

işlemimiz tamamlandıktan sonra makinemizi sıfırlamak için snapshotu restore etmemiz gerekli. Tekrar başlattığımızda makine snapshot aldığımız hali ile başlayacak.

API Log Davranışı

Zararlı yazılım, Win API çağrılarıyla faaliyetlerini gerçekleştirir. APIMiner veya Cuckoo Sandbox gibi bir API kaydedici aracı kullanarak bir örnek tarafından kullanılan API'leri elde edebilirsiniz. API'lere dayanarak, örneğin zararlı yazılım olup olmadığı sonucuna varabilir ve kategorisini öğrenebilirsiniz.

Zararlı yazılım, Win API çağrılarıyla faaliyetlerini gerçekleştirir

APIminer aracı bize bir log dosyası yaratır. Log dosyaları, zaman sırasına göre düzenlenir. Gördüğünüz ilk dosya oluşturulan ilk dosya olur. Oluşturulan log dosyasını alttaki şekilde görebilirsiniz.

APIminer aracı bize bir log dosyası yaratır

Peki bu bilgilerden ne gibi çıkarımlar yapacağız.

CreateProcessInternalW([command_line]"svchost.exe",
 [process_identifier]4080,
 [thread_identifier]3248,
 [creation_flags]4
 [process_handle]0x00002A7C,
 [thread_handle]0x00002A78)
NtReadVirtualMemory([process_handle]0x00002A7C)
NtMapViewOfSection([process_handle]0x00002A7C)
NtReadVirtualMemory([process_handle]0x00002A7C)
NtUnmapViewOfSection([process_handle]0x00002A7C)
NtResumeThread([thread_handle]0x00002A78,
 [process_identifier]4080)

Bu kısmı ele alalım ve madde madde gidelim.

  • CreateProcessInternalW API'sini kullanan örnek, bir sistem olan svchost.exe programı için yeni bir işlem oluşturur.
    C:\Windows\System32\svchost.exe konumunda bulunan işlem
  • Oluşturulan işlem, [creation_flags]4 kullanılarak 4 bağımsız değişken değeri kullanılarak tanımlanan ASKIYA ALINMIŞ durumda. 4 değerinin ASKIYA ALINDI anlamına geldiğini nasıl bilebiliriz? CreateProcess API için MSDN'deki API açıklamasına bakın ve CREATE_SUSPENDED bayrağını kontrol edin.
  • Bu yeni oluşturulan işlemin tanıtıcısı ve iş parçacığı 0x00002A7C ve 0x00002A78'dir.
  • NtReadVirtualMemory API'sini kullanan örnek daha sonra, 0x00002A7C işlem tanıtıcısı kullanılarak tanımlanan uzak işlemden belleği okur
  • NtMapViewOfSection API'sini kullanan örnek daha sonra bir bölüm oluşturur ve bunun bir görünümünü, 0x00002A7C tanıtıcısı kullanılarak tanımlanan uzak işleme eşler.
  • 0x00002A78 iş parçacığı tanıtıcısı ve 4080 işlem tanımlayıcısı kullanılarak tanımlanan ResumeThread API'sini kullanarak ASKIYA ALINAN iş parçacığını/işlemini sürdürür.

Tüm bu API dizisi neye benziyor? Bu, örneğin yalnızca kullanılmasa bile çoğunlukla zararlı yazılım tarafından kullanılan bir özellik olan işlem boşluğunu kullandığı anlamına gelir. Böylece bunun kötü amaçlı bir yazılım olduğu sonucuna varmamızı sağlar.

Zararlı Yazılım Ailesinin Belirlenmesi

API loglarından zararlı yazılım olduğu sonucuna vardık, ancak zararlı yazılımın ailesini anlayabilir miyiz? Aynı aileye ait her zararlı yazılımın o aileye özgü özellikleri veya yapıları vardır. Özellikleri API logları aracılığıyla araştırılabilir. Örnek için, oluşturulan üç API log dosyası vardır. İlk log dosyasını alın ve bir muteks oluşturan CreateMutant API'sini arayın. 
Zararlı yazılımlar tarafından yaygın olarak kullanılan bir senkronizasyon yöntemidir. Zararlı yazılımımız, API çağrısı aracılığıyla görebileceğiniz gibi, 2GVWNQJz1 adlı bir muteks oluşturur.

Zararlı yazılımlar tarafından yaygın olarak kullanılan bir senkronizasyon yöntemidir

Örneğimiz tarafından oluşturulan Mutex, kuluoz ailesine ait olduğunu ve bir botnet virüsü olduğunu ortaya koyuyor

Dinamik String Analizi

String analizinde ilk adım, paketlenmiş olup olmadığını anlamaktır. Paketlenmemiş ise statik analiz yöntemleri ile stringler tespit edilebilir. Eğer paketlenmişse bu durumda dinamik analize ihtiyaç duyulur.

PEiD, örneğin paketlenip paketlenmediğini anlayabileceğiniz statik dosyanın entropisini sağlayabilen harika bir araçtır.

PEiD, örneğin paketlenip paketlenmediğini anlayabileceğiniz statik dosyanın entropisini sağlayabilen harika bir araçtır

Paketlenen zararlı yazılımlarda stringler gizlenmiş olur. Bu, BinText kullanarak stringlerin statik analizini işe yaramaz hale getirir. Paketlenmiş zararlı yazılım çalıştırdığımızda, kendilerini bellekte açarlar. Kendi paketini açtıktan sonra, tüm gizlenmiş stringleri artık görünür hale gelir. Bu stringleri tespit etmeye çalışacağız.

Bu noktada yardımımıza yine process hacker koşuyor. process hacker ile başlatılan sürece tıklayıp bellek verilerini görüntüleyebiliriz.

Bu noktada yardımımıza yine process hacker koşuyor

Burada, birçok stringi görebiliyoruz.

Bu stringlerde ne çıkarabiliriz? SMTP ve POP gibi çeşitli protokoller ve Filezilla ve Internet Explorer gibi çeşitli araçlarla birlikte Kullanıcı Adı ve Parolaya atıfta bulunan çok sayıda string bulunuyor. Bu, örneğin kullanıcıların kullandığı çeşitli araçlardan kimlik bilgilerini çalmaya çalışan infoStealers sınıfınfa bir zararlı yazılım olduğunu gösterir.

Stringler içinde farklı görünen ama yine de bir anlamı olan garip isimler arayın (bunun için çok sabırlı olmanız gerekir). Tüm bu stringler arasında bir de YUIPWDFILE0YUIPKDFILE0YUICRYPTED0YUI1.0 stringi var ki bu string çok tuhaf görünüyor ama aynı zamanda CRYPTED ve FILE0 gibi kelimelerden oluşan bir yapıya sahip.

Stringler içinde farklı görünen ama yine de bir anlamı olan garip isimler arayın (bunun için çok sabırlı olmanız gerekir)

Google'da bu stringi aradığımızda, örneğimizle aynı aileye ait olan Pony Loader veya Fareit gibi diğer zararlı yazılım örnekleri için birçok analiz raporuna işaret eder.

Debuging

Örneği assembly kodıuna çevirip yürütmek, yaptığı çağrıları görmemiz açısından faydalı olabilir. OllyDbg bu noktada bize yardımcı olacak.

Öncelikle OllyDbg üzerinde birkaç küçük ayar yapamız lazım option menüsüne geliyoruz.

Öncelikle OllyDbg üzerinde birkaç küçük ayar yapamız lazım option menüsüne geliyoruz

Burada sol taraftan start bölümüne gelip Entry point of main module seçeneğini işaretliyoruz.

Burada sol taraftan start bölümüne gelip Entry point of main module seçeneğini işaretliyoruz

Ardından SFX bölümüne gelip kutucuklardaki tikleri kaldırıyoruz. Artık hazırız. OllyDbg ile zararlı yazılım dosyamızı açıyoruz. Açılması biraz sürebilir.

Ardından SFX bölümüne gelip kutucuklardaki tikleri kaldırıyoruz

Burada OllyDbg'ın ana ekranını görüyorsunuzç Görüntü gözünüzü biraz korkutabilir. Aslında bu kısım assembly bilginize bağlı.

Burada OllyDbg'ın ana ekranını görüyorsunuzç Görüntü gözünüzü biraz korkutabilir

OllyDbg üzerindeki hızlı erişim butonları şekildeki gibidir. OllyDbg ile yazılımı satır satır çalıştırabilir ve yaptığı işlemleri gözlemleyebilirsiniz.

Davranış Olayları Analizi

Örneğimizi analiz edip çalıştırdığımızda çeşitli olayları yakalayabilen çok önemli bir başka analiz aracı olan ProcMon'a değineceğiz. Yaptığımız analizi adım adım inceleyelim.

  1. Örneğiniz çalıştırdığınızda başlatılan süreç(ler) üzerinde bir gözünüz olması için Process Hacker'ı çalıştırın.
  2. ProcMon'u başlatın ve olayları yakalamayı durdurmak için Ctrl+E tuşlarına basın. Varsayılan olarak, ProcMon sistemdeki tüm olayları yakalar ve bazen çok fazla etkinliğiniz olur.
  3. Görüntülediği mevcut olayları temizleyebilmek için Ctrl+X tuşlarına basın.
  4. Olayları yakalamaya başlayabilmeniz için Ctrl+E tuşlarına basın.
  5. Process Hacker aracılığıyla çalıştığından veya en azından başka alt süreçler oluşturduğundan emin olarak Sample.exe'yi çalıştırın.
  6. Örneği bir süre çalıştırın ve ardından ProcMon'da Ctrl+E tuşlarına basın. Ancak çok uzun süre çalıştırmak istemezsiniz; aksi takdirde, analiz edilecek çok fazla olayla boğulursunuz.

Olayları gözden geçirelim ve örnek sürecimizle doğrudan veya dolaylı olarak ilgili olaylardan herhangi bir kötü niyetli olay/gösterge fark edip edemeyeceğimize bakalım.

Olayları gözden geçirelim ve örnek sürecimizle doğrudan veya dolaylı olarak ilgili olaylardan herhangi bir kötü niyetli

Tüm olaylar zararlı bir aktiviteyi gösteriyor.

  1. SCOHOST.EXE adında bir dosya oluşturmaya çalışıyor ki bu isim sistem programı olcan svchost.exe'ye çok yakın.
  2. sample.exe kendi içeriğini okuyor.
  3. SVOHOST.EXE'ye okudupu içeriği yazıyor. Yani kendini kopyalıyor.

İçeriğini kopyalayıp bu yeni dosyaya yapıştırmak, yaygın olarak kullanılan bir zararlı yazılım tekniğidir, burada kötü amaçlı yazılım kendilerini sistemdeki başka bir klasördeki yeni bir dosyaya kopyalar ve bu yeni klasörde bulunan bu yeni dosyadan yeni bir işlem olarak çalışır.

Autoruns

Zararlı yazılım örneği bir RUN kalıcılık girişi oluşturduğundan, bu kalıcılık RUN girişinin hala var olup olmadığını AutoRuns aracıyla doğrulayalım.

Zararlı yazılım örneği bir RUN kalıcılık girişi oluşturduğundan, bu kalıcılık RUN girişinin hala var olup olmadığını

Autoruns aracı ile oluşturulan kaydı görebilirsiniz.

Kod Enjeksiyonu Tespiti

Kod enjeksiyonu çeşitli teknikler kullanılarak yakalanır. Yöntemlerden biri, belirli Win32 API'lerinin kullanımını algılar. Bu API'leri göz önünde bulundurarak ve APIMiner gibi bir araç kullanarak kod enjeksiyonunu kolayca tespit edebilirsiniz.

GMER

Zararlı yazılım örneğinin kod enjeksiyonu gerçekleştirdiğini anladığınızı varsayalım. Her kod enjeksiyon tekniği, zararlı yazılımın API hooking yapmayı planladığını veya rootkit işlevini kullanmaya çalıştığını göstermez. Ancak bu noktada kötü amaçlı yazılımın amaçlarından birinin API hooking veya rootkit olma olasılığı yüksek. Bu aşamada, GMER aracını kullanmak iyi bir adımdır.

Zararlı yazılım örneğinin kod enjeksiyonu gerçekleştirdiğini anladığınızı varsayalım

GMER Taraması

Memory Forensics (Adli Bilişim)

Zararlı yazılım yürütüldüğünde, belirli işlemler, dosyalar, log girdileri oluşturabilir, rootkit'ler yükleyebilir vb. Bu zararlı yazılım yapıları bazen kendisitarafından yok edilebilir, böylece bir analist bunları algılayamaz. Örneğin, zararlı bir işlem, meşru bir işleme kod enjekte edildikten sonra sona erebilir veya zararlı yazılım tarafından oluşturulan geçici bir dosya kullanıldıktan sonra silinir. Adli bilişim tekniklerini kullanarak, zararlı yazılım tarafından yok edilmiş olmasına rağmen bu tür bilgileri ve verileri geri alabilirsiniz, böylece zararlı etkinlikleri tespit edebilirsiniz.

Memory Forensiğin 2 temel adımı vardır:

  • Memory acquisition (bellek edinimi)
  • Memory analysis (bellek analizi)

Memory Acquisition

Adli bilişim veri toplama ile başlar. Hafızaya bakmak istediğimiz için hafıza edinim araçlarını kullanmamız gerekiyor. Bellekten bir imaj (RAM dökümü) alabilen araçlardan bazıları şunlardır:

  • FTK Imager
  • RAM Capture
  • Dump It
  • Memoryze

Bellek imajını almak için FTP Imager Lite'u kullanabiiriz. Bu araç son derece hafif ve kullanımı kolaydır.

Bellek imajını almak için FTP Imager Lite'u kullanabiiriz

Capture memory düğmesine tıklayarak bir hafıza dökümü oluşturabilirsiniz. Oluşturulan bellek dökümü dosyası, adli bellek araçları tarafından anlaşılabilecek özel bir dosya biçimine sahiptir.

Memory Analysis

Dökümlerimizi analiz etmek için, Volatility adlı iyi bilinen bir açık kaynaklı adli bellek aracını kullanabiliriz.

Dökümlerimizi analiz etmek için, Volatility adlı iyi bilinen bir açık kaynaklı adli bellek aracını kullanabiliriz

volality

Volality bir komut satırı aracıdır ve aracın çıktısı çok büyükse çıktıyı komut isteminden görüntülemek sakıncalıdır. Bunun yerine komutun çıktısını bir metin dosyasına yönlendirebilirsiniz.

Volality bir komut satırı aracıdır ve aracın çıktısı çok büyükse çıktıyı komut isteminden görüntülemek sakıncalıdır

Komuttan help.txt dosyasına yönlendirilen çıktı artık Notepad veya Notepad++ gibi bir metin düzenleyici kullanılarak görüntülenebilir.

Komuttan help.txt dosyasına yönlendirilen çıktı artık Notepad veya Notepad++ gibi bir metin düzenleyici kullanılarak

Ekran görüntüsü, araç tarafından sağlanan komutların listesini görüntüler. Volality çok kapsamlı bir araçtır. Bütün özelliklerini bu yazıda anlatmayacağım.

Ekran görüntüsü, araç tarafından sağlanan komutların listesini görüntüler

imaj bilgileri

Bellek imajını analiz etmek için pek çok komut ve teknik vardır. Bunları araştırarak öğrenebilirsiniz.


Kaynak Araştırması

Zararlı yazılım analizi konusunda faydalı olabilecek çeşitli kaynakları (repolar, kitaplar, siteler ve videolar) burada bulabilirsiniz.

Repolar

Github üzerinde zararlı yazılım analizi ile ilgili birçok repository bulunmaktadır. Bunlardan bazılarını sizler için derledim.

Github üzerinde zararlı yazılım analizi ile ilgili birçok repository bulunmaktadır

awesome-malware-analysis

Zararlı yazılım analizi araçlarının ve kaynaklarının derlenmiş bir listesi ve araçlar hakkında ayrıntılı bilgileri bu repoda bulabilirsiniz.

Bu linkten erişebilirsiniz: 
https://github.com/rshipp/awesome-malware-analysis

malware-samples

Zararlı yazılım örneklerini bulabileceğiniz repolardır.

Bu linklerden erişebilirsiniz:

Malware-Sample-Sources

Zararlı yazılımları bulabileceğiniz kaynak siteleri listelemiş bir repodur.

Bu linkten erişebilirsiniz:
https://github.com/Virus-Samples/Malware-Sample-Sources

Kitaplar

Zararlı yazılım analizi üzerine yazılmış kaynak kitaplar mevcuttur. Bu kaynaklardan bazılarını sizler için derledim.

Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

Sektörde çok bilinen ve popüler olan bıu kitapta zararlı yazılım anallizi teknikleri ve araçları ayrıntılı şekilde anlatılmakta. Küçük bir google araştırmasıyla pdfini bulabilirsiniz.

Sektörde çok bilinen ve popüler olan bıu kitapta zararlı yazılım anallizi teknikleri ve araçları ayrıntılı şekilde

Bu linkten erişebilirsiniz:
https://www.amazon.com/Practical-Malware-Analysis-Hands-Dissecting-ebook/dp/B007ED2XDS

Malware Analysis and Detection Engineering: A Comprehensive Approach to Detect and Analyze Modern Malware

Bu rehberi hazırlarken en çok yararlandığım kaynak bu kitaptı. Bir önceki kitaba göre daha yeni bir kitap olduğu için daha yeni teknikleri de içermekte. Ayrıca detection engineering konusunu da ayrıntılı ele almakta.

Bu rehberi hazırlarken en çok yararlandığım kaynak bu kitaptı

Bu linkten erişebilirsiniz:
https://www.amazon.com/Malware-Analysis-Detection-Engineering-Comprehensive/dp/1484261925

Mastering Malware Analysis: The complete malware analyst's guide to combating malicious software, APT, cybercrime, and IoT attacks

Zararlı yazılım analizi alanında uzmanlaşmak isteyenlere yöneil bir kitaptır. İçeriği biraz ileri seviyedir.

Zararlı yazılım analizi alanında uzmanlaşmak isteyenlere yöneil bir kitaptır

Bu linkten erişebilirsiniz:
https://www.amazon.com/Mastering-Malware-Analysis-combating-cybercrime/dp/1789610788?asin=1789610788&revisionId=&format=4&depth=1

Kaynak Siteler

Zararlı yazılım analizi alanında çalışırken kullanmanız gereken veya kullanabilecğiniz websitelerini bu kısımda derledim.

SANS

Zararlı Yazılım Analizi alanında pek çok çözümü bulunan ve bizlere bu teknolojilerin bir kısmını sunan bir şirkettir.

Zararlı Yazılım Analizi alanında pek çok çözümü bulunan ve bizlere bu teknolojilerin bir kısmını sunan bir şirkettir

Blog sayfasından ayrıntıları öğrenebilirsiniz:
https://www.sans.org/blog/how-you-can-start-learning-malware-analysis/

ANY.RUN

Etkileşimli Online Zararlı Yazılım Analizi Sandbox platformudur. Bu site üzerinde zararlı yazılım alanında pek çok bilgi bulabilirsiniz. Dahası pek çok zararlı yazılımın hash bilgisini girerek o örneği indirebilirsiniz.

Etkileşimli Online Zararlı Yazılım Analizi Sandbox platformudur

Bu linten ulaşabilirsiniz:
https://app.any.run/

Malware Bazaar

Bir zaararlı yazılım veritabanıdır diyebiliriz. Zararlı yazılım örneklerini indirip yükleyebilileceğimiz bir platform

Bir zaararlı yazılım veritabanıdır diyebiliriz

Bu linkten ulaşabilirsiniz:
https://bazaar.abuse.ch/

VirusShare

VirusShare, Corvus Forensics tarafından barındırılan ve sürdürülen bir hizmettir.

VirusShare, Corvus Forensics tarafından barındırılan ve sürdürülen bir hizmettir

Videolar

Youtube üzerinde zararlı yazılım analizi ile ilgili pek çok video, çalma listesi ve kanal bulunmaktadır. Bu kısımda bu içerikleri derledim.

SANS Digital Forensics and Incident Response

Zararlı yazılım ve çok daha geniş konularda video eğitimler barınıran bir kanal.

Zararlı yazılım ve çok daha geniş konularda video eğitimler barınıran bir kanal

Bu linkten ulaşabilirsiniz:
https://www.youtube.com/@SANSForensics

Beyaz Şapkalı Hacker

Youtube üzerindeki nadir türkçe kanallardan biri. Zararlı yazılım analizi ile ilgili de küçük bir serisi var.

Youtube üzerindeki nadir türkçe kanallardan biri

Bu linkten ulaşabilirsiniz:
https://youtube.com/playlist?list=PLF7uV-A3fhIBpCzOsnvA0r4BBHTH8p70G

HackerSploit

Youtube üzerinde hacking alanında bir çok video serisi bulunan bir kanaldır. Zararlı yazılım analizi alanında olan bir serisi de var.

Youtube üzerinde hacking alanında bir çok video serisi bulunan bir kanaldır

Bu linkten ulaşabilirsiniz:
https://youtube.com/playlist?list=PLBf0hzazHTGMSlOI2HZGc08ePwut6A2Io

PBER ACADEMY

Youtube üzerinde siber güvenlik alanında eğitim videolarıni barındıran bir kanal. Zararlı yazılım analizi üzerine bir serisi de mevcut.

Youtube üzerinde siber güvenlik alanında eğitim videolarıni barındıran bir kanal

Bu linkten ulaşabilirsiniz:
https://youtu.be/vr1Bt38lwMg

Zararlı yazılım analizi; statik inceleme, dinamik davranış gözlemi ve tersine mühendislik tekniklerinin birleşiminden oluşan disiplinli bir alandır. Yukarıda paylaşılan kaynaklar ve analiz laboratuvarları, şüpheli ikili dosyaları (binaries) güvenli bir şekilde incelemek ve SOC operasyonlarında doğru tespit kuralları (YARA / Sigma) oluşturmak için sağlam bir referans noktası sunmaktadır.