11.4.4. Makine Öğrenmesi Teknikleri
Kötücül kodlar genellikle, kötücül olmayan uygulamaların kullan-
dıkları yolun dışında API araması, yöntemler ve hizmetlerin kom-
binasyonunu kullanmaktadırlar. Makine öğrenme algoritmaları
kötücül servislerin, API ve sistem aramalarının genel kombinasyo-
nunu öğrenerek kötücül olmayan uygulamaları ayırt edebilirler [3].
Şekil 11.5’de genel anlamda, Android tabanlı bir uygulamanın tersi-
ne mühendislik ile bileşenlerine ayrılması ve bu bileşenlerin maki-
ne öğrenme algoritmaları ile sınıflandırılmasına yönelik akış sırası
görülmektedir.
Şekil 11.5. Android bileşenlerine ayırma ve makine öğrenme ile sınıflandırma
akış diyagramı [9]
Kötücül yazılımların imza tabanlı yöntemlerde olduğu gibi klasik
yaklaşımlar ile tespit edilmesi gün geçtikçe zorlaşmaktadır. Özel-
likle sahip olduğu imzayı değiştirme yeteneğine sahip çok biçimli
kötücül yazılımların tespit edilebilmesi için farklı yöntemler gelişti-
rilmesi gerekmektedir [41]. Kötücül yazılım tespitinde yüksek doğ-
rulukla tespit yapılabilmesi için yazılımlara ilişkin birçok paramet-
renin ve bunlar arasındaki korelasyonun analiz edilmesi gerekebil-
mektedir. Bu açıdan, makine öğrenme algoritmaları siber güvelikte
Android APK dosyası
Sınıf dosyalarının
bileşenlerine ayrılması
Java kodlarının
birleştirilmesi
Makine öğrenme /
sınıflandırma
DEX dosya çıkarımı
DEX-JAR Dönüşümü
DEX-JAR Dönüşümü
MUSTAFA ALKAN - İ. ALPER DOĞRU - MURAT DÖRTERLER - RAMİ URFALIOĞLU - ÇAĞRI SÜMER
330
vazgeçilmez araçlardan birisidir. Genel anlamda makine öğrenme
sürecine ilişkin akış diyagramı Şekil 11.6’de görülmektedir.
Şekil 11.6. Makine öğrenmesinde genel akış
Analiz edilecek verinin birçok boyutu olabilmektedir. Boyutların
yer aldığı özellik vektörü olarak adlandırılan matristen analizde
kullanılmayacak olan verilerin süzülmesi gerekmektedir. Bu işlem,
özellik çıkarma olarak adlandırılmaktadır. Böylece, geliştirilen mo-
delde analiz edilecek veri setine odaklanılarak hem zamandan hem
de işlem maliyetinden tasarruf sağlanmış olacaktır [42].
Makine öğrenme tekniklerinde kullanılan bir diğer önemli yakla-
şım ise denetimli ve denetimsiz öğrenme yaklaşımıdır. Denetimli
öğrenmede, etiketlenmiş örnek veri setleri kullanılarak model eği-
tilmekte akabinde, test verileri ile modelin tespit duyarlılığı analiz
edilmektedir. Denetimsiz öğrenmede ise, model eğitilirken etiketli
örnek veriler kullanılmamaktadır. Burada amaç, belirli bir değeri
tahmin etmekten ziyade, işlenmemiş veri içerisinde bir paterni bul-
maktır [43]. Kümeleme denetimsiz öğrenme yöntemine örnek ola-
rak verilebilir.
Literatürde yaygın olarak kullanılan makine öğrenme algoritmaları;
•
Destek vektör makineleri (Support Vector Machines)
•
Karar ağacı (J48 Decision Tree)
•
Random Forest
•
Naive Bayes
•
K en yakın komşu (K Nearest Neighboor)
şeklinde özetlenebilir.
Verinin
Alınması
Verinin
Düşürülmesi
Modelin
Eğitimi
Modelin Test
Edilmesi
Modelin
Geliştirilmesi
Test Veriseti
|