Upload
mehmet-kilic
View
169
Download
8
Embed Size (px)
Citation preview
Android Zararlı Yazılım AnaliziMehmet Kılıç IzHack’15
AndroidMobil cihazlar için geliştirilmiş, Dalvik VM üzerinde çalışan açık kaynak bir Linux işletim sistemidir.
Android Uygulamaları (APK) ...● Dosyalar
○ AndroidManifest.xml■ Binary XML■ Permissions istekleri■ Registered intents (Receiver, Service)
○ classes.dex■ Dalvik VM için bytecode■ Uygulama kodunu içerir.
○ resources.arsc■ Derlenmiş kaynak tabloları
Android Uygulamaları (APK)● Dizinler
○ META-INF■ Tanımlı anahtarlar■ APK içerisindeki imzalar
○ res■ Resimler, değerler, vb.
○ assets■ kütüphaneler■ diğer JAR ve çalıştırılabilir dosyalar.
Android Lifecycle
AndroidManifest.xml
Android Zararlı Yazılımları
Android Zararlı Yazılım Kategorileri● Android Adware (Adware): Kişisel bilgileri toplar● Android Premium Service Abusers (Chargeware) : Özel
numaralara SMS gönderimi, Cihazlarda kaynak tüketimi● Android Data Stealers (Spyware) : Kullanıcı izni oladan
cihazdaki özel bilgileri iletir.● Targeted Spyware (Sureveillance) : Belirli bir kuruma
yönelik geliştirilir (Bankacılık uygulamları, vb.)● Malicious Android Downloaders (Trojan) : Normal bir
uygulama olarak yüklenir ancak zararlı apk dosyasını uzak sunucudan yükler.
Analiz ÖncesiKullanılacak temel araçlar:● Android SDK● apktool : APK içeriklerinin çıkartılması
● dex2jar : .dex dosyalarının .jar dosyalarına dönüştürülmesi● jd-gui : .class dosyalarından kaynak kodlarına dönüştürülmesi● Santoku Linux
Santoku Linux (viaForensic)● Mobil Zararlı Yazılım Analizi
○ Mobil cihaz sanallaştırması○ Network servis simulasyonları○ Decompilation and Disassembly araçları
● Mobil Forensic○ Firmware flashing araçları○ Forensic araçları (açık kaynak + ticari)
● Mobil Güvenlik Testi○ Uygulama analiz scriptleri○ Decompilation and Disassembly araçları
Analiz Süreci➔ Analiz Yöntemleri
◆ Statik● Tersine Mühendislik
○ apktool○ dex2jar○ jdgui
◆ Dinamik● Android VM● Android SDK (android, emulator, adb, monitor)● Sandboxes
Decompiling Android APK $ apktool d [android.apk]$ jar xvf [android.apk] classes.dex # uygulamaya ait dex formatındaki dosyaları çıkartır.
$ sh dex2jar.sh classes.dex # dex formatından jar dosyasının oluşturulmasını sağlamaktadır.
$ jar xvf classes_dex2jar.jar # jar içerisindeki kaynak dosyalarının çıkartılmasını sağlar.
Statik Analiz (Kaynak Kod)
Dinamik Analiz (İzleme...)$ emulator -avd [cihaz_adı] --http-proxy 127.0.0.1:8080 #sanal cihaz içerisindeki isteklerin takibi için proxy ayarlı çalıştırılır
$ adb install [android.apk] # apk dosyası çalıştırılan cihaza yüklenir
$ adb shell # cihazın komut satırına erişmeyi sağlar
$ adb shell dumpsys meminfo [paket_adı] # analiz edilmek istenen uygulamanın paket adı ile sistem üzerindeki bilgileri alınır
$ adb shell logcat # cihazdaki log akışı anormallikleri yakalamak amaçlı takip edilir
Dinamik Analiz (İzleme)$ monitor # cihaz içerisindeki birçok işlemin takibi görsel yapılabilir
Dinamik Analiz (Aksiyon Alma)$ telnet 127.0.0.1 5554Android Console: type 'help' for a list of commandshelpAndroid console command help:
help|h|? print a list of commands event simulate hardware events
geo Geo-location commands gsm GSM related commands
cdma CDMA related commands kill kill the emulator instance
network manage network settings power power related commands
quit|exit quit control session redir manage port redirections
sms SMS related commands avd control virtual device execution
window manage emulator window qemu QEMU-specific commands
sensor manage emulator sensors
Android Zararlı Analizi Sonrası● Bulaşma Yöntemi : Zararlı cihaza nasıl yüklendi● Aktivasyon : Zararlı kendisini nasıl etkinleştirdi.● Yetki Yükseltme : Cihazda yetki yükseltme var mı? Nasıl?● Payload : Zararlı davranış için kullanılan yöntem, komutlar.● Başka Zararlı : İçerisinde başka zararlı(lar) mevcut mudur?
Kaynaklar
● Android SDK - Lifecycles● Apktool● Dex2jar● Santoku Linux● Java Decompiler-GUI● Android Kategorileri
Teşekkürler ?
Blog: mehmetkilic.pro
LinkedIn : tr.linkedin.com/in/mhmtklc
SlideShare : http://www.slideshare.net/mehmetkilic