Şekil 8.4. Derleme ve tersine mühendislik işlemleri
R E F I K S A M E T - Ö M E R A S L A N
236
Sistem izleme araçları, paket ayırıcılar (Disassemblers), hata ayıkla-
ma araçları (Debuggers), vb. statik ve dinamik araçlar kullanılarak
tersine mühendislik yapılmaktadır ve elde edilen sonuçlar kullanı-
larak program imzası, özellikleri ve davranışları belirlenmektedir.
Kötü amaçlı yazılım analizi temel statik analiz, ileri düzey statik
analiz, temel dinamik analiz ve ileri düzey dinamik analiz olmak
üzere dört gruba ayrılmaktadır (Şekil 8.5).
Şekil 8.5. Kötü amaçlı yazılım analiz yöntemleri
Statik analizde program kodları çalıştırılmadan incelenir. Program
kodları çalıştırılmadığı için sistemde herhangi bir zarara neden ol-
maz. Statik analizde amaç program yapısını ve kod dizilimini anla-
maktır. Diğer taraftan dinamik analizde program kodları çalıştırıla-
rak analiz yapılır ve sistemin zarar görmemesi için analiz genelde
kapalı ortamlarda (Sandbox ya da sanal makineler kullanılarak)
yapılır. Dinamik analizde amaç program kodlarını detaylı olarak
incelemeden program davranışlarını anlamaktır. Program kodları
değişse bile bir programın göstereceği davranışlar çok değişmeye-
ceğinden dolayı yeni nesil kötü amaçlı yazılımları yakalamada etkili
bir analiz çeşididir.
8.4.1. Statik Analiz Statik analiz kötü amaçlı yazılım kodlarının çalıştırılmadan işlevsel-
liği hakkında bilgi çıkarma işlemidir. Analiz yapılırken dosya adı,
“MD5 checksum”, dosya tipi, dosya boyutu, kötü amaçlı yazılım
imzası gibi bilgiler elde edilmeye çalışılır. Bu amaçla kullanılan bir-
K Ö T Ü A M A Ç L I YA Z I L I M L A R V E A N A L İ Z İ
237
çok hazır araç vardır: “Md5deep”, “Peview”, “Resource Hacker”,
“IDA Pro”, “Bintext”, vb. (Tablo 8.2).