iwystic
Veteran
- Katılım
- 27 Ağu 2019
- Konular
- 290
- Mesajlar
- 4,886
- Çözümler
- 491
- Tepkime puanı
- 10,772

Merhaba değerli RC üyeleri,
Bu konumda sizlere Android cihazlarda zararlı yazılım analizi yapmayı göstereceğim.
Günümüzde, teknolojinin gelişmesiyle beraber mobil cihazların kullanımı arttı. Bu artış ile mobil cihazlarda çıkabilecek zafiyetler ve kişisel verilere ulaşmak gibi amaçları olan zararlı yazılımların sayısı da arttı. Bütün günümüzü onlarla geçiriyoruz ve tuvalete bile onlarla gidiyoruz. Kısacası, her yerde yanımızda taşıyoruz. Mobil cihazlarınızın yaptığınız her aktiviteyi izlemesini ve kaydetmesini ne kadar isterdiniz?
İçerik
- Neden Android?
- Android Sistem Blokları
- Android Güvenlik Mimarisi
- APK Mimarileri
- "classes.dex" Dosyasının mantığı
- Zararlı Yazılım Türleri
- Analizlerde kullanılan programlar
- Zararlı Yazılımların Yayılma Türleri
- Programların APK dosyalarını bulma
- Zararlı yazılım analiz türleri
- Android emulatör kurulumu (Genymotion)
- MobSF kurulumu
- Örnek analizler
- MobSF ile Zararlı Yazılım Analizi
Neden Android?
Bütçe, diğer programlarla rahat entegrasyonu gibi farklı nedenler sebebiyle, insanların çoğunluğu mobil cihaz olarak Android işletim sistemini kullanmayı tercih etmektedir. Aşağıda bulunan Eylül 2019 ve Eylül 2020 arası için oluşturulan tabloyu incelediğimizde, sayısal olarak Dünya'nın yaklaşık %75-80'inin açık sistem Android cihaz kullandığını görüyoruz. Bu ciddi sayısal farktan dolayı mobil zararlı yazılım analistleri genel olarak Android cihazlar üzerinde yoğunlaşmaktadır ve zararlı yazılımlar da Android sistemlerde daha yaygın görülmektedir.
Ek olarak, Android cihazların sağladığı kişiselleştirme özellikleri kullanıcılar için kullanım kolaylığı sağlasa da zararlı yazılımlar açısından daha kolay bulaşma/yayılma ortamı sağlamaktadır. Yukarıda belirtilen ana sebeplerden dolayı Android kullanıcılarının kişisel bilgi güvenliğine daha çok dikkat etmesi gerekmektedir.

Android Sistem Blokları
Android sistemler, 3 ana işlem üzerinden çalışmakta ve bu döngü olarak devam etmektedir.
1. Uygulama çalıştırılır ve değişiklik talep eder.
2. Uygulamanın sistem üzerinde yapmak istediği değişiklikler, işletim sistemine gider.
3. İşletim sistemine giden değişikler, cihaz donanımına gider ve değişiklik uygulanır.

Android Güvenlik Mimarisi
Android güvenlik mimarisi ise, aşağıdaki gibi çalışmaktadır:
- Uygulama (Kamera, Kişilerim, Email vs.)
- Java API Framework (Lokasyon Servisi, Bildirim Yöneticisi, Paket Yöneticisi vs.)
- Yerel, cihaz kütüphaneleri (SSL, SQLite, OpenGL vs.)
- HAL, donanım soyutlama katmanı
- Kernel yapısı (Wifi Driver, USB Driver, Bluetooth Driver vs.)

APK Mimarileri
APK ismini verdiğimiz "Android Package Kit" dosyalarının yapılandırmalarını ve mimarisini de bilmemiz önem taşımaktadır.
Aşağıdaki tabloyu incelemeniz fayda sağlayacaktır.

"classes.dex" Dosyasının Mantığı
Yapılacak analizler sırasında ilk yapılması gereken şeylerden biri ise, APK dosyası extract edildikten sonra "classes.dex" dosyasının statik analizidir.
Bu dosya, Java dosyalarının classlara çevrilmesi, bu classların birleştirilmesi ve birleştirilme işleminden sonra dexing adını verdiğimiz ".class" uzantısını ".dex" uzantısına çeviren işlem gerçekleştirilir. Ardından d2j gibi programlar aracılığıyla dex dosyası jar'a dönüştürülür ve decompiler programları ile analiz edilir.
Zararlı Yazılım Türleri
Windows ve MAC cihazlarda olduğu gibi, Android cihazlar için de farklı farklı zararlı yazılım türleri bulunmaktadır. En popülerleri ve açıklamaları aşağıdaki gibidir;
Crypto Mining: Arka planda donanımı sömürerek saldırgan için kripto para kazandıran zararlı yazılım türüdür.
Ransomware: Cihazı şifreleyen ve karşılığında fidye talep eden yazılımdır.
Bank Trojan: Mobil cihazda bulunan banka uygulamaları üzerinden veri çalmayı hedefleyen zararlı yazılım türüdür.
RAT: Remote Administration Tool olarak geçer. Saldırgan zararlı yazılım yüklenen cihazda tam erişim sağlamaktadır.
Adware: Reklam yazılımı olarak geçmektedir. Amaçlanan, kullanıcıyı reklam göstererek rahatsız etmek ve veri toplamaktır.

Analizlerde Kullanılan Programlar
Android analizleri sırasında farklı farklı toollar kullanılıp işlemler kolaylaştırılmaktadır. En temelleri aşağıdakilerdir:
APK Tool: Tersine mühendislikte kullanılır, programları decompile eder.
Dex2jar: Dex dosyalarını jar'a dönüştürmeyi hedeflemektedir.
Enjarify: dex2jar alternatifidir.
Jadx: APK derleyicisidir. Kaynak kodlarını okumamıza yardımcı olur.
jd-gui: Jadx programının alternatifidir.
mobsf: Birçok işlevi bulunan mobil analiz programıdır.
APK Inspector: İçerisinde APK analizlerinde kullanılabilecek birçok tool bulunan programdır.
Packet Capturer: Dinamik analiz sırasında ağ trafiğini izlemek amacıyla kullanılır.
AndroGuard: APK dosyalarını analiz eder, bilgi toplar.
Zararlı Yazılımların Yayılma Türleri
Zararlı yazılımlar, saldırganın hedefine göre farklı yollar ile yayılabilmektedir; ancak araştırmacıların tespit ettiği ve en çok kullanılan yöntemler aşağıdaki gibidir:
Uygulama indirme platformları (Play Store vs.)
Phishing sayfaları
Fiziksel kontrol
Sisteme sızma (Zafiyet sömürme vs.)

Programların APK Dosyalarını Bulma
Farklı yöntemler ile programların APK dosyaları elde edilebilir; ancak genel olarak aşağıdaki yöntemler kullanılır;
- Tarayıcı eklentileri (APK Downloader)
- APK extractor vb. programlar
- Web siteler
Zararlı Yazılım Analiz Türleri
Toplamda 3 tür zararlı yazılım analiz yöntemi bulunmaktadır.
1-) Statik
- Program çalıştırılmaz.
- Kaynak kodları okunur, tersine mühendislik yapılır.
- Gelişmiş zararlı yazılımları tespit etmek çok zordur.
2-) Dinamik
- Program çalıştırılır ve işlemler gözlemlenir.
- Genel olarak programın hareketleri izlenir.
- RAM gibi cihaz donanımları izlenir. (Performans artışı vs.)
- Gelişmiş zararlı yazılımlar için etkilidir.
3-) Hibrit
- Yukarıda bulunan 2 analiz türü de kullanılır.

Android Emulatör Kurulumu (Genymotion)
Dinamik analiz sırasında kişisel cihazlarımıza zarar gelmemesi gibi nedenlerden kaynaklı olarak sanal cihazlar kullanılır. Mobsf ile gerçekleştireceğimiz dinamik analiz için Genymotion emulatörü gerekmektedir. Bu emulatör mobsf dışında da dinamik analiz ve benzeri amaçlar için kullanılabilir.
İlk olarak, https://genymotion.com/account/create sitesine giderek kayıt oluyoruz.

Kayıt işleminden sonra, https://genymotion.com/download/'a giderek programı indiriyoruz.
Download'a bastıktan sonra .bin dosyası inmesi gerekmektedir.

Superuser yetkisi (sudo su) aldıktan sonra, chmod + x genymotion.bin komutu ile dosyaya çalıştırma izni veriyoruz.
"./genymotion.bin" komutu ile kurulumu başlatıyoruz ve kurulum bittikten sonra programı çalıştırıyoruz. Kayıt olurken girdiğimiz hesap bilgileri ile giriş yapıyoruz. Giriş yaptıktan sonra, bizi aşağıdaki gibi bir ekran karşılıyor. "+" butonu ile Android makine kurabiliyoruz.

MobSF Kurulumu
Kod:
git clone https://github.com/MobSF/Mobile-Secu...work-MobSF.git
cd Mobile-Security-Framework-MobSF
./setup.sh
Yukarıda bulunan komutları sırasıyla yazdıktan sonra, kurulum işlemi tamamlanmış oluyor. "./run.sh" komutu ile programı çalıştırıyoruz ve tarayıcı üzerinden 0.0.0.0:8080'e gidip programı kullanabiliyoruz; ancak dinamik analiz için "Genymotion" ile emulatörü açmamız gerekmektedir.

Örnek Analizler
Msfvenom aracılığıyla anlaşılabilir olması için, Obfuscator olmadan bir adet payload oluşturdum. Birlikte analiz edelim.
Programı APK Tool ile decompile ediyoruz.

"AndroidManifest.xml" dosyasını inceleyerek, yetkilendirme gibi farklı bilgiler elde ediyoruz.
Fotoğraftan da görebileceğiniz üzere, programın olağanüstü yetkilendirmesi var.

Smali dosyasına girdiğimizde, "metâsploit" isimli bir dizin olduğunu görüyoruz.
Dizinin içerisinde programın ana aktiviteleri ve benzeri aktiviteleri barındıran Smali dosyalarını görebiliyoruz.
Programın "metâsploit payload" olduğunu açık bir şekilde anlamış oluyoruz.

MobSF ile Zararlı Yazılım Analizi
Az önce tool'u kurmayı öğrenmiştik. Şimdi ise, Anubis içeren zararlı yazılım analiz edeceğiz.
Programı çalıştırmak için, bulunduğu dizine gidip "./run.sh" komutunu yazıyoruz.
Programı başlattıktan sonra programın arayüzüne ulaşmak için, tarayıcıya 0.0.0.0:8080 yazmamız yeterli olacaktır.

Ortada bulunan "Upload & Analyze" butonuna basıp dosyayı yüklüyoruz. Bir süre sonra sonuçlar önümüze çıkacaktır. Fotoğrafta görebildiğiniz gibi,
toplam 17 aktivite, 24 servis, 4 alıcı olduğunu gösteriyor. Bunun yanında uygulama hakkında hash bilgileri gibi temel bilgileri göstermiş.

Biraz aşağı indiğimizde, programın decompile edilmiş hali ve dinamik analiz başlatabileceğimiz bir yer ile karşılaşıyoruz.
Bir sonraki bölüme geldiğimizde, programın imza / sertifika bilgilerini inceleyebiliyoruz. Aşağıda Mobsf'in yorumlamalarını görebiliriz.

Permissions bölümünde programın yetkilendirmelerini, ne olduklarını ve ne yapabileceklerini anlatmış.

Android API bölümünde kullanılan, Android API'lerini inceleyebiliyoruz.

Bir sonraki bölümde browsable olan aktiviteleri inceleyebileceğimiz ve uygulama ile bağlantılı ağ güvenliğini kontrol edebileceğimiz 2 bölüm bulunmakta.
Manifest analizinde programın manifest dosyasını analiz eder, kullanılan komutların açıklamalarını belirtir.

"Code Analysis" bölümünde programın kaynak kodlarını analiz eder. Popüler standartlara göre önem derecesini, açıklamasını ve geçerli olan dosyaları belirtir.

Aşağıdaki fotoğrafta bulunan "SHARED LIBRARY BINARY ANALYSIS" bölümünde,
binary analizi gerçekleştirerek herhangi bir kütüphane paylaşılıp paylaşılmamış olduğunu inceler. "NIAP ANALYSIS" bölümünde NIAP değerlerinin yaptığı işlemleri gösterir ve açıklamaktadır.

"File Analysis" bölümünde, APK içerisinde bulunan dosyalar analiz edilir.
"APKID Analysis" bölümünde kullanılan compilerlar, anti-vm/debug ve benzeri olaylar gösterilir.

Bir sonraki bölümde, program içerisinde çıkan domainlerin, başka zararlı yazılımlarda kullanılıp kullanılmadığını, zararlı olup olmadığını göstermektedir.

"URLS" bölümünde program içerisinde bulunan URL'ler gösterilir.
Bir sonraki bölümde ise, varsa firebase database bilgileri, e-mailler, trackerlar, değerleri vb. veriler gösterilir.

Biraz daha aşağılara indiğimizde ise, dosyalar, kütüphaneler, servisler, aktiviteler gibi bilgileri görmüş oluruz. Dinamik analiz için Genymotion ile Android makine oluşturduktan sonra çalıştırıp Mobsf üzerinden "Start Dynamic Analysis" butonuna basmamız yeterli olacaktır.
İyi Forumlar
Son düzenleme: