Makine öğrenimi tabanlı android kod karıştırıcı tespiti
Machine learning based androi̇d code obfuscati̇on detecti̇on
Yazar: SADIK SARIBIYIK
Danışman: DR. ÖĞR. ÜYESİ CENGİZ TOĞAY
Bursa Uludağ Üniversitesi / Fen Bilimleri Enstitüsü / Siber Güvenlik Ana Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bilgi güvenliği = Information security ; Karıştırma yöntemleri = Mixing methods ; Makine öğrenmesi = Machine learning ; Siber güvenlik = Cyber security

Özet:
Android uygulamalarının kaynak kodları decompiler (Dexdump, Dex2jar, Androguard ve Apktool) adı verilen uygulamalar aracılığı ile elde edilebilmektedir. Tersine mühendislik olarak adlandırılan bu yöntem kötücül yazılımların tespit edilmesi, kaynak kodlarda yer alan fikri mülkiyet haklarına konu olan bir yöntem ya da içeriğin elde edilmesi, kaynak kod içerisinde bulunan bir bilgi aracılığı ile saldırı yapılması ve kodların değiştirilerek kullanılması gibi birçok senaryoda karşımıza çıkmaktadır. Uygulama geliştiriciler bu tip problemlere karşı uygulamada yer alan sınıf ve değişken isimlerinin karıştırılması, açık metinlerin şifrelenmesi, gereksiz kod ekleme vb. yöntemleri içeren karıştırma tekniklerini kullanmaktadırlar. Bu yaklaşım temelde doğru amaçlara hizmet etmekle birlikte aynı zamanda kötücül yazılım geliştiriciler tarafından da yoğun olarak kullanılmaktadır. Bu kapsamda bu tip yazılımların tespitinde ilk adım karıştırmanın yapılıp yapılmadığının tespitidir. Tezimizde kod karıştırma tekniklerinden hangilerinin kullanıldığının otomatik ve hızlı bir şekilde belirlenmesine yönelik çalışmalar gerçekleştirilmiştir. Tespitler yapılırken makine öğrenimi tekniklerinden yararlanılmış ve çeşitli algoritma yaklaşımları ile test edilmiştir. IR tekniği için %95,31. SE tekniği için ise %97,44 oranında doğruluklarda tespitler yapılmıştır. Bazı algoritmalarda yüksek bazı oranlarda düşük sonuçlar elde edilmiş olup değişimler algoritma bazlı oluşmuştur.

Abstract:
Android uygulamalarının kaynak kodları decompiler (Dexdump, Dex2jar, Androguard ve Apktool) adı verilen uygulamalar aracılığı ile elde edilebilmektedir. Tersine mühendislik olarak adlandırılan bu yöntem kötücül yazılımların tespit edilmesi, kaynak kodlarda yer alan fikri mülkiyet haklarına konu olan bir yöntem ya da içeriğin elde edilmesi, kaynak kod içerisinde bulunan bir bilgi aracılığı ile saldırı yapılması ve kodların değiştirilerek kullanılması gibi birçok senaryoda karşımıza çıkmaktadır. Uygulama geliştiriciler bu tip problemlere karşı uygulamada yer alan sınıf ve değişken isimlerinin karıştırılması, açık metinlerin şifrelenmesi, gereksiz kod ekleme vb. yöntemleri içeren karıştırma tekniklerini kullanmaktadırlar. Bu yaklaşım temelde doğru amaçlara hizmet etmekle birlikte aynı zamanda kötücül yazılım geliştiriciler tarafından da yoğun olarak kullanılmaktadır. Bu kapsamda bu tip yazılımların tespitinde ilk adım karıştırmanın yapılıp yapılmadığının tespitidir. Tezimizde kod karıştırma tekniklerinden hangilerinin kullanıldığının otomatik ve hızlı bir şekilde belirlenmesine yönelik çalışmalar gerçekleştirilmiştir. Tespitler yapılırken makine öğrenimi tekniklerinden yararlanılmış ve çeşitli algoritma yaklaşımları ile test edilmiştir. IR tekniği için %95,31. SE tekniği için ise %97,44 oranında doğruluklarda tespitler yapılmıştır. Bazı algoritmalarda yüksek bazı oranlarda düşük sonuçlar elde edilmiş olup değişimler algoritma bazlı oluşmuştur.