Kötü amaçlı android yazılımların makine öğrenmesi yöntemleri ile tespiti
Detection of android malware with machine learning methods
Yazar: ABDULLAH BATUHAN YILMAZ
Danışman: DR. ÖĞR. ÜYESİ MURAT KÖKLÜ
Selçuk Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Android = Android ; Makine öğrenmesi = Machine learning ; Sınıflandırma = Classification ; Zararlı yazılım analizi = Malware analysis ; Öğrenme algoritmaları = Learning algorithms

Özet:
Gelişen teknolojik yapı ile internete bağlanabilen cihazlar hayatımız birçok alanında yer edinmektedir. Bu alanda her insanın doğrudan kullanmakta olduğu ve insanlık için vazgeçilmez bir noktaya gelen akıllı telefonlar ise en başta gelmektedir. Cep telefonları insanlar için günlük hayatın bir parçası olarak bankacılık işlemlerinden alışverişe kadar birçok alanda etkin bir şekilde kullanılmakta ve her geçen gün mobil uygulamalar üzerinden gerçekleştirilen işlemlerde artış gözlemlenmektedir. Bu hususu takiben kötü niyetli kişilerce geliştirilen zararlı yazılımlar ile verilerin çalınmasına ve maddi zararlara yol açmaktadır. Siber güvenlik alanında belli bir kişi hedef alınmıyorsa amaç geliştirilen zararlı yazılım ile mümkün olan en fazla insanın verisine ulaşmak ve en fazla cihaza zararlının bulaşmasını sağlamaktır. Bu nedenle yapılan araştırmalar göstermektedir ki dünyada akıllı cep telefonu kullanıcıları büyük oranda Android işletim sistemine sahip cihazlar kullanılmaktadır. Bu nedenle saldırganların en çok ilgilendiği sistemde Android işletim sistemleridir. Bu nedenle geliştirilen zararlı yazılımların tespit edilebilmesi için bir sisteme ihtiyaç duyulmaktadır. Bu amaçla çalışmada Android özellik çıkarma tabanlı sınıflandırma analizi gerçekleştirilmiştir. Android işletim sistemine ait Android uygulama paketi dosyaları üzerinde özelliklerin tutulduğu alandan alınan özellikler ile Naive Bayes, Destek Vektör Makineleri, AdaBoost, Rastgele Orman ve Yapay Sinir Ağları algoritmaları kullanılarak özellik tabanlı sistemin eğitilmesi sağlanmıştır. Çalışmada Python programlama dili kullanılmıştır. Eğitim sırasında 2.854 adeti kötü niyetli olmak üzere toplam 5.724 adet dosya ile 117 özellik içeren bir veriseti kullanılmıştır. NB, DVM, AB, RO ve YSA algoritmaları ile yapılan çalışma sonucunda sırasıyla %92.4, %90.9, %97.8, %97.9% ve %98.4 sonuçları elde edilmiştir. Information Gain kullanılan seçilen 60 etkin özellik seçilmiş ve NB, DVM, AB, RO ve YSA algoritmaları ile yapılan çalışma sonucunda sırasıyla %92.3, %76.0, %97.0, %97.1 ve %97.5 sonuçları elde edilmiştir. Daha sonra IG kullanılarak 20 etkin özellik seçilmiş ve NB, DVM, AB, RO ve YSA algoritmaları ile yapılan çalışma sonucunda sırasıyla %91.7, %54.2, %95.2, %95.6 ve %95.5 sonuçları elde edilmiştir. Son aşamada ise 13 etkin özellik IG algoritması kullanılarak tespit edilmiştir.

Çalışmada kullanılan NB, DVM, AB, RO ve YSA algoritmalarına ilişkin çalışma sonuçları,
belirlenen etkin özellikler ve işlevleri ile çalışma sırasında elde edilen eğitim süreleri ve test süreleri paylaşılmıştır. Elde edilen veriler ve yöntemler ile Android zararlı yazılımların tespiti için kullanılabilmesi amaçlanmıştır.

Abstract:
With the developing technological structure, devices that can connect to the internet have a place 
in many areas of our lives. In this field, smart phones, which are used by everyone directly and become indispensable for humanity, come first. Mobile phones are used effectively in many areas from banking transactions to shopping as a part of daily life for people, and an increase is observed in transactions performed through mobile applications day by day. Following this issue, malicious software developed by malicious people leads to theft of data and material damage. If a specific person is not targeted in the field of cyber security, the aim is to reach the data of as many people as possible with the developed malware and to ensure that the most devices are infected with the malware. For this reason, researches show that smart mobile phone users in the world mostly use devices with Android operating system. For this reason, the system that attackers are most interested in is Android operating systems. For this reason, a system is needed to detect the developed malicious software. For this purpose, Android feature extraction-based classification analysis was carried out in the study. The feature-based system is trained by using the features taken from the area where the features are kept on the Android application package files of the Android operating system and Naive Bayes, Support Vector Machine, AdaBoost, Random Forest and Artificial Neural Network algorithms. Python programming language was used in the study. During the training, a data set containing 117 features and a total of 5,724 files, of which 2,854 were malicious, were used. As a result of the work done with NB, SVM, AB, RO and ANN algorithms, %92.4, %90.9, %97.8, %97.9 and %98.4 results were obtained, respectively. The selected 60 active features using Information Gain were selected and as a result of the work done with NB, SVM, AB, RO and ANN algorithms, %92.3, %76.0, %97.0, %97.1 and %97.5 results were obtained, respectively. Then, 20 active features were selected using IG and as a result of the work done with NB, SVM, AB, RO and ANN 
algorithms, %91.7, %54.2, %95.2, %95.6 and %95.5 results were obtained, respectively. In the last stage, 13 active features were determined using the IG algorithm. 

The study results of the NB, SVM, AB, RO and ANN algorithms used in the study, the determined effective features and functions, and the training times and test times obtained during the study were shared. With the obtained data and methods, it is aimed to be used for the detection of Android malware.