Zararlı Yazılımla Mücadele Eği7mi



Benzer belgeler

Mobil Güvenlik Eğitimi Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Mobile Application Pentest Eğitimi

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi GÜVENLİK VE İZİNLER. BLM401 Dr.Refik SAMET

Android Uygulamalarında Güvenlik Testi

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi UYGULAMA KAYNAKLARI. BLM401 Dr.Refik SAMET

Android ile Mobil Programlama

Sertan Kolat

Android Platformunda Uygulama Geliştirme.

Exploit.CVE Analizi

Reverse Engineering Bootcamp Eğitim İçeriği

Model-Tabanlı ve Rastgele Karma Yöntem


Android Kaynakları (Resources)

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

1 LK ANDROID YAZILIMIMIZ VE ÖN HAZIRLIKLAR

Muhar a r r e r m e T a T ç J PT Gel e e l c e e c k e o k nli l n i e And n r d oi o d i Nedi d r

JAVA API v2.0 Belge sürümü: 2.0.2

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

T.C. GEBZE YÜKSEK TEKNOLOJİ ENSTİTÜSÜ

1 REACT (REACTJS) GIRIŞ

2 CORDOVA UYGULAMA DİZİN YAPISI 9 Cordova Uygulama Dizin Yapısı 9 www Klasörü 10 platforms Klasörü 11 plugins Klasörü 12 merges Klasörü 15

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Proje 1. Arayüz Tasarımı

T.C. KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

BİL-142 Bilgisayar Programlama II

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

TC KİMLİK NO SMS GÖNDERİM SOAP API

MOBİL UYGULAMA GELİŞTİRME

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

Listview Kullanımı. Aşağıdaki örnekte bir ListView'ı birkaç ülke ismiyle dolduracağız.

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

Android Ders Notları


Android Uygulamalarında Güvenlik Testi

Web Application Penetration Test Report

MOBİL UYGULAMA GELİŞTİRME

Java Programlamaya Giriş

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi YAYIN ALICILARI. BLM401 Dr.Refik SAMET

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

VIDEOCELL API. Versiyon 1.0.0

Üst Düzey Programlama

Google Play Zararlısı İnceleme Raporu

ZARARLI YAZILIM YAYMA ARACI OLARAK MOBİL UYGULAMALARIN KULLANILMASI: POKEMON GO ÖRNEĞİ. Özet. Abstract

PAKET TRANSFER SİSTEMİ

Kaspersky Administration Kit 8.0

Android ile SQLLite Veri Tabanı

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

PAKET TRANSFER SİSTEMİ

Düzce Üniversitesi Bilim ve Teknoloji Dergisi

BMH-210 MOBİL CİHAZ PROGRAMLAMA. Android OS Tanıtımı, Kurulumu, Bileşenleri, Önemli noktalar Dr. Musa ATAŞ

Malware Analizi Yöntem ve Araçları. Huzeyfe ÖNAL Bilgi Güvenliği

MOBIL UYGULAMA GELIŞTIRME

01 Şirket Profili

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

CLEARONE MAX IP KONFERANS CİHAZI

WebInstaller. 1. Kurulum Đçin Gereksinimler

Exobot Bankacılık Zararlısı İnceleme Raporu

Red Alert 2.0 Truva Atı ve Bankacılık Zararlısı İnceleme Raporu

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

ELEKTRONİK BELGE YÖNETİM SİSTEMİ KOORDİNATÖRLÜĞÜ (EBYS KOORDİNATÖRLÜĞÜ) ELEKTRONİK İMZA KURULUM AŞAMALARI VE EBYS PROGRAMI SİSTEM GEREKSİNİMLERİ

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

Android de Video Nasıl Oynatılır?

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

Virtual Router Redundancy Protocol (VRRP)

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Android Programlama BAHAR

Kullanıcı Dökümanı. Flash B2B. Versiyon 0.1

Erişim konusunda iki taraf vardır:

API v2 Multi Smart Card ( ) 4- VERİİMZA API ile bir web uygulaması nasıl haberleşir?

SMS interconnecion APi S DOKÜMANI

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

Bilgisayar Üzerinde Zararlı Yazılım Analizi

Linux İşletim Sistemleri. Eren BAŞTÜRK.

Hackerlar'ın Gözünden Flash Uygulamaları

SOAP API. Mobildev Toplu Mesajlaşma API

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Anti-Virüs Atlatma 3. Kurulum

4. Bölüm Programlamaya Giriş

19 Şubat 2016 Cuma

Üst Düzey Programlama

COPA TOUCH LINE SPLİT KLİMA WiFi UYGULAMASI KULLANIM KILAVUZU. WiFi Klima Uygulamasını cep telefonunuza indirmek için QR kodu okutun.

Bilgi ve Olay Yönetim Sistemi

IDA Pro ile Remote Linux Debugging

Bazı Akıllı Telefon Sensörleri

COM API v2.0 Belge sürümü : 2.0.3

SÜRE BAŞLAMA TARİHİ : 19/12/2018 BİTİŞ TARİHİ : 20/02/2019 KURS SÜRESİ : 144 Saat KURS NO :

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi İNTENT VE İNTENT. BLM401 Dr.Refik SAMET

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Android Platformunda OpenCV İle Görüntü İşleme

SİBER SUÇLARA KARŞI SİBER ZEKA

Transkript:

12/01/16 Zararlı Yazılımla Mücadele Eği7mi Mobil Zararlı Yazılım Analizinde Temel Konular TÜBİTAK BİLGEM Siber Güvenlik Ens7tüsü 12 Ocak 2016 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 2 1

12/01/16 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 3 Android APK Paket İçeriği APK = ZIP 4 2

Android APK Paket İçeriği Dosya imzaları (hash) Geliştirici Public Key i 5 Android APK Paket İçeriği İşlemci mimarisine göre compile edilmiş native kütüphaneler (Native ELF dosyaları) JAR Dosyaları (kütüphaneler) 6 3

Android APK Paket İçeriği anim: Compile edilmiş animasyon dosyaları drawable: Resim dosyaları layout: UI/view tanımlamaları values: Diziler, renkler, style lar, string ler dimensions xml: Compile edilmiş XML dosyaları raw: Compile edilmemiş raw dosyalar Compile işlemi AAPT (Android Asset Packaging Tool) tarafından yapılır 7 Android APK Paket İçeriği Çoğu zaman raw dosyalar bulunur. Resimler, fontlar, ses dosyaları Bazı malware ler bu dizinde cihaza kurrmak üzere APK dosyaları saklarlar 8 4

Android APK Paket İçeriği Uygulama meta-data ları Paket ismi Versiyon bilgisi Uygulamanın talep ettiği izinler Uygulamada bulunan komponentler Activity Service Bradcast Receiver Content Provider Compile edilmiş olarak paket içerisinde yer alır. 9 Android APK Paket İçeriği DEX: Dalvik Executable Android in EXE si Dalvik VM üzerinde çalışır DEX: Dalvik VM için compile edilmiş class dosyaları 10 5

Android APK Paket İçeriği Compile edilmiş resource lar R.java string.xml ids.xml layouts.xml 11 Android APK Paket İçeriği 12 6

Android Uygulamaları Android Uygulamaları Java + Android SDK ile gelişjrilir. Android Dalvik VM ile çalışnrılır. JAVA à.class à.dex C / C++ ile gelişjrme yapılabilir. NaJve Development Kit (NDK).java javac.class dx dex zip APK 13 Dalvik vs ART * https://www.google.com/events/io/schedule/session/b750c8da-aebe-e311-b297-00155d5066d7 14 7

12/01/16 Pentest Ortamının Kurulması JEB Decompiler apktool Android Tamer Vezir Santoku Eclipse+ Android SDK Droidbox JD-GUI gdb Drozer IDA Pro Burp-suite baksmali dex2jar Wireshark 15 Mobil Zararlı Yazılım Ortamı Ø Mobil güvenlik testleri için gerekli araçların bulunduğu bir Ubuntu dağıtımıdır. Ø Gerekli araçlar, uygulama örnekleri ~/ambar dizini altında bulunmaktadır. Ø vezir:vezir kullanıcı bilgileri ile giriş yapılabilir. https://github.com/oguzhantopgul/vezir-project 8

12/01/16 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 17 AndroidManifest.XML İncelemesi AndroidManifest.XML İncelemesi Uygulama komponentleri, izinleri, versiyon, minimum gereksinimler 18 9

12/01/16 AndroidManifest.XML İncelemesi Uygulama Adı: flashupdater.apk 19 AndroidManifest.XML İncelemesi Uygulama Adı: flashupdater.apk 20 10

AndroidManifest.XML İncelemesi Uygulama Adı: Short Message Service.apk 21 AndroidManifest.XML İncelemesi İzinlerin İncelenmesi AlternaJf olarak aapt aracı ile izinle görüntülenebilir # aapt d permissions uygulama.apk package: com.benim.uygulamam uses-permission: android.permission.camera uses-permission: android.permission.internet uses-permission: android.permission.access_network_state uses-permission: android.permission.write_external_storage uses-permission: android.permission.access_fine_location uses-permission: android.permission.read_contacts uses-permission: android.permission.wake_lock uses-permission: android.permission.get_tasks uses-permission: android.permission.record_audio uses-permission: android.permission.get_accounts uses-permission: android.permission.read_profile uses-permission: android.permission.read_frame_buffer uses-permission: android.permission.set_orientation uses-permission: android.permission.battery_stats 22 11

12/01/16 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 23 APK Tersine Mühendislik JAVA Decompile Dex -> JAR ->JAVA Java Decompiler Ø JD-GUI Ø JAD Ø Jadx Ø Procyon Ø APK JAR.class.class DEX dex2jar enjarify * Dex2jar * Enjarify * JD-GUI * Procyon * jadx * JAD : https://github.com/pxb1988/dex2jar : https://github.com/google/enjarify : http://jd.benow.ca/ : https://bitbucket.org/mstrobel/procyon/wiki/java%20decompiler : h:ttps://github.com/skylot/jadx/releases : http://varaneckas.com/jad/ 24 12

APK Tersine Mühendislik Decompile Dex -> JAR (.class files) -> JAVA Decompile edilmiş JAR kodu tekrar compile edilerek çalışır hale gejrilemez. Decompile edilen kod yaklaşık koddur, %100 bire bir dönüşüm gerçekleşjrilemez. Dex2jar çıknsında elde edilen JAR kodu çalışnrılamaz. Dalvik Bytecode, JAR koduna döüştürülerek kolay okunabilir ve anlaşılabilir hale gelir. $ d2j-dex2jar.sh classes.dex dex2jar classes.dex -> classes-dex2jar.jar $ java -jar classes-dex2jar.jar Error: Invalid or corrupt jarfile classes-dex2jar.jar 25 Zararlı Yazılım Analizi Hassas Fonksiyon Çağrıları Özellikle zararlı yazılımların hassas verilere erişmek için kullandığı bazı fonksiyon çağrıları. Socket: DatagramSocket: TelephonyManager.getCallState() TelephonyManager.getCellLocaJon() TelephonyManager.getDeviceId() TelephonyManager.getLine1Number() TelephonyManager.getSimSerialNumber() LocaJonManager ContactsContract SmsManager ProcessBuilder Intent.ACTION_CALL vending.billing TCP bağlannsı kurmak için UDP bağlannsı kurmak için Şu an çağrıda olunup olunmadığını anlamak için Baz istasyonuna göre lokasyon bilgisi almak için IMIE numarasını almak için Telefon numarasını almak için SIM karnn seri numarasını almak için Lokasyon bilgisi almak için Contacts content provider ile ilejşime geçmek ve telefon rehberi verisine erişmek için SMS verisine erişmek ve SMS göndermek için Bir executable dosyayı çalışnrmak için Telefon çağrısı başlatma intenj Uygulama için alımlar API sine erişmek için 26 13

12/01/16 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 27 APK Tersine Mühendislik Disassemble Dex ->.smali APK.smali.smali.smali DEX Dex Disassembler Ø Baksmali Ø Dedexer Ø apktool * Dedexer : http://dedexer.sourceforge.net/ * Baksmali : https://github.com/jesusfreke/smali * Apktool : https://ibotpeaches.github.io/apktool/ 28 14

APK Tersine Mühendislik Disassemble DEX ->.smali DEX dosyasını okunabilir Dalvik Bytecode a dönüştürülüyor.smali uzannlı Dalvik Bytecode, modifiye edilebilir. Modifiye edilen Dalvik Bytecode tekrar imzalanır, paketlenir ve cihazda çalışnrılabilir. Baksmali aracı ile disasemble işlemi yapılabilir. Apktool, baksmali içerir. $ java jar baksmali.jar o /Output/dir classes.dex # Disassemble edince: Aynı dizine UygulamaAdi klasörü oluşturur $ apktool d UygulamaAdi.apk # Modifiye sonrası tekrar paketlemek için: Paketlenen dizin # içerisinde dist dizinine yeni paket koyulur $ apktool b /paketlenecek/dosya/yolu 29 APK Tersine Mühendislik Hello World Uygulaması Basit bir Hello World uygulamasında MainAcJvity.java 30 15

APK Tersine Mühendislik Hello World Uygulaması MainAcJvity.smali dosyası açılarak incelenir. 31 APK Tersine Mühendislik Hello World Uygulaması MainAcJvity.smali dosyası açılarak incelenir. 32 16

12/01/16 Android Zararlı Yazılım Analiz Adımları 1. 2. 3. 4. 5. Ağ Trafiği Analizi Pasif & Aktif Network Dinleme Statik Analiz ve Tersine Mühendislik Strings AndroidManifest.XML Decompile Disassembly Dinamik Analiz Filesystem Analizi Function Call & API Call Analizi Çalışma Anında Manipülasyon Debugging Dynamic Instrumentation Anti-Analiz Tekniklerinin Atlatılması Deobfuscation Anti-VM Bypass Unpacking Native Code Decompile 33 Kod Bulanıklaş^rma (Obfusca7on) Kod Bulanıklaş^rma (Obfusca7on) Kullanılmayan sınıflar, metodlar temizlenir. Bytecode opjmize edilir. Kullanılmayan instrucjonlar temizlenir. Geri kalan sınıflar, metodlar, alanlar, değişkenler anlamsız kısa isimlerle adlandırılır ProGuard Android framework ile birlikte geliyor. obfuscate.java javac.class.class dx dex 34 17

Kod Bulanıklaş^rma (Obfusca7on) Kod Bulanlıklaş^rma Bir Örnek Disassemble ederek obfuscation dan kurtulunamaz! 35 Kod Bulanıklaş^rma (Obfusca7on) 36 18

Kod Bulanıklaş^rma (Obfusca7on) 37 Kod Bulanıklaş^rma (Obfusca7on) 38 19

APK Tersine Mühendislik Deobfusca7on - Simplify EncrypJon tarzı karmaşıklaşnrmaları çözebilmek için. https://github.com/calebfenton/simplify 39 BONUS: An7-VM Bypass Emulator Detec7pn Bypass Emulatör Kontrolü Yapan Kod Parçası 40 20

BONUS: An7-VM Bypass Emulator Detec7pn Bypass Disassemble edilmiş emülatör kontrol kodu 41 BONUS: An7-VM Bypass Emulator Detec7pn Bypass Disassemble edilmiş emülatör kontrol kodu 42 21

BONUS: An7-VM Bypass Emulator Detec7pn Bypass Emülatör kontrol kodu patch edilir. 43 BONUS: An7-VM Bypass Patch lenen uygulama tekrar paketlenir # apktool b malware.apk I: Using Apktool 2.0.0-RC3 on malware I: Checking whether sources has changed... I: Checking whether resources has changed... I: Building apk file... Tekrar paketlenen uygulama jarsigner aracıyla tekrar imzalanır. # jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore examplekeystore malware.apk example Enter Passphrase for keystore: adding: META-INF/MANIFEST.MF adding: META-INF/EXAMPLE.SF adding: META-INF/EXAMPLE.RSA signing: AndroidManifest.xml signing: classes.dex 44 22

12/01/16 Android Zararlı Yazılım Analizi nde Daha Fazla https://mobile-security.zeef.com/oguzhan.topgul 45 Teşekkürler oguzhan.topgul@tubitak.gov.tr 23