Çalıştırılabilir dosyaların nümerik ve metinsel özellikleri kullanılarak makine öğrenmesi ile zararlı yazılım tespiti
Malware detection with machine learning using executable files numeric and textual features
Yazar: SEFU MOHAMED
Danışman: DOÇ. DR. İBRAHİM ÖZÇELİK
Sakarya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar ve Bilişim Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Anahtar kelimeler: Taşınabilir Yürütülebilir (PE) dosya format, statik zararlı yazılım
analizi, makine öğrenmesi, zararlı yazılım tespiti, metin sınıflandırma, siber güvenlik
Son zamanlarda zararlı yazılımların hızlı bir şekilde gelişmesi ve birçok platform
aracılığıyla dağıtılabilir olmasından dolayı, siber saldırıların sayısı da gün geçtikçe
artmaktadır. Bu nedenle, zararlı yazılım tespiti ile ilgili araştırmalar bilgi güvenliği
topluluğunda ciddi bir sorun haline gelmiştir. Zararlı yazılım tespiti için önerilen ticari
çözümlerin çoğu imza tabanlı yöntemlerdir. İmza tabanlı yöntemler temel olarak
önceden zararlı yazılım varyantı bilgisini gerektirir. İncelenen akademik ve ticari
çalışmalar neticesinde bu yöntemlerin, sıfırıncı gün zararlı yazılım adı verilen
"yakalanmayan" zararlı yazılımlar üzerinde çalışmayacakları tespit edilmiştir. Bu
sebepten dolayı bu tez çalışmasında, imza tabanlı zararlı yazılım algılamadaki
eksikliklerin giderilmesi için Windows Çalıştırılabilir (Portable Executable-PE) dosya
biçiminin özelliklerini çıkaran statik analiz kapsamı içerisinde makine öğrenmesi
tabanlı bir yöntem geliştirilmiştir. Bu yöntemde PE başlık bilgisi olan Windows
çalıştırılabilir dosyaların ham özellikleri, derleyici bilgileri, dinamik bağlantı
kütüphaneleri (DLL) ve her DLL'deki API fonksiyonları özellik olarak çıkarılmıştır.
Daha sonra, PE başlığının özelliklerinde ilgisiz özellikleri kaldırmak ve özellik
kümesinin boyutunu azaltmak için Univariate feature selection (SelectKBest),
Recursive Feature Elimination (RFE), L1-based feature selection (L1) ve Tree-based
(ExtraTree) isimli dört farklı özellik seçim tekniği kullanılmıştır. Her bir tekniğin
özelliği seçip seçmediğine bakılarak, oylama yapılmış ve sonrasında en yüksek oy
puanına sahip özellikler seçilmiştir. Derleyici bilgilerileri, dinamik bağlantı
kütüphaneleri ve API fonksiyonları için de metin sınıflandırma teknikleri içerisinde
bulunan TF-IDF aracı kullanılarak özellik seçimi yapılmıştır.
Çalışmada kNN, Decision Tree, Random Forest ve Light GBM gibi sınıfladırıcılar
kullanılmış ve test sonucunda kullanılan sınıflamdırıcıların performanslarını ölçmek
ve zararlı yazılımları tespit etme yeteneklerini değerlendirmek için üç farklı test
yapılmıştır: Bu testlerden ilkinde sadece PE başlıklarına (nümerik) ait özellikler
kullanılmış, Random Forest sınıflandırıcısı ile %99.49 doğruluk elde edilmiştir.
İkincisinde Derleyici bilgileriler, kütüphaneler ve API fonksiyonlarına ait metinsel
özellikler kullanılmış, yine Random Forest sınıflandırıcısı ile %99.06'lık tespit
doğruluğu elde edilmiştir. Son olarak ise nümerik ve metinsel özellikler birleştirilerek
test yapılmış ve bu test sonucunda da genel olarak yine %99.44 duyarlılık, %1.2 yanlış
pozitif, %99.25 kesinlik ve %99.13 doğruluk oranları ile en iyi performans Random
Forest ile elde edilmiştir.

Abstract:
Keywords: Portable Executable (PE) file format, Static malware analysis, Machine
learning, Malware detection, Text Classification, Cyber Security.
Since malicious software or malware has become too agile, evolves quickly and can
distribute itself, the numbers of cyber-attacks continue to grow as well. Therefore
malware detection and relevant research became a serious issue in the information
security community. Most of the commercial proposed solutions for malware detection
are signature-based methods. Signature-based method fundamentally requires prior
malware variant knowledge which will not work on malwares that have never been
"captured" for analysis, called zero-day malware. This work explores an approach to
overcome the deficiencies in signature-based malware detection, namely usage of the
static analysis method to extract valuable features of Windows Portable Executable
(PE) file format. We extract raw features of Windows executables which are PE header
information, used Compilers, DLLs, and API functions inside each DLL of Windows
PE file. Thereafter, for PE header's information, four different feature selection
techniques (Univariate feature selection (SelectKBest), Recursive Feature Elimination
(RFE), L1-based feature selection (L1) and Tree-based feature selection (ExtraTree))
are used to remove irrelevant features and so reduce dimension of feature set, where
each technique votes whether they have selected the feature. Finally, the vote is
counted and the features with higher votes score are used with Compilers, DLLs and
API functions to train our classifiers. For Compilers Information, DLLs and API
functions Text Classification techniques tools such as TF-IDF were used for feature
selection.
To evaluate the performances of our detection models (kNN, Decision Tree, Random
Forest and Light GBM) and their ability to detect unseen and new malware we
conducted three experiments: First by using PE headers features (Numerical) only
where we achieve 99.49 % of accuracy with Random Forest, second by using only
Compilers Information, Dlls and API functions features (Textual) where 99.06% of
detection accuracy was achieved again with Random Forest, and finally we combined
Numerical and Textual features where an overall best performance was achieved by
Random Forest with a recall of 99.44%, a false positive rate of 1.2%, a precision of
99.25%, and an accuracy of 99.13%.