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



Benzer belgeler

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

Android Uygulamalarında Güvenlik Testi

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

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?

Android ile Mobil Programlama

Mobile Application Pentest Eğitimi

Android Platformunda Uygulama Geliştirme.

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

STOCK ROM: Yazılım üreticisi Google ın ürettiği firmware'in cihaz üreticileri tarafından kendi cihazlarına göre özelleştirilmiş hali.

ANDROID AÇIK AKSESUAR API & AKSESUAR GELİŞTİRME. Dr. Fatma Cemile Serçe

.com. Kurumsal Java. Özcan Acar com

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

Statik Analiz Dinamik Analiz Açık Kutu Testleri

Güvenlik Java ve Web Uygulama Güvenliği

İŞLETİM SİSTEMLERİ. (Operating Systems)

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

Sertan Kolat

Clonera Bütünleşik İş Sürekliliği Gereksinimler ve Kurulum Dökümanı


İşletim Sistemlerine Giriş

Java 2 Micro Edition (J2ME)

Android Uygulamalarında Güvenlik Testi

Google Play Zararlısı İnceleme Raporu

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

EFe Event Management System

MOBIL UYGULAMA GELIŞTIRME

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 MOBIL UYGULAMALAR

Web Application Penetration Test Report

Bacula Yedekleme Sistemi

1 LK ANDROID YAZILIMIMIZ VE ÖN HAZIRLIKLAR

Bilgi Güvenliği Denetim Sürecinde Özgür Yazılımlar. Fatih Özavcı Bilgi Güvenliği Danışmanı

Sistem Gereksinimleri Opera v5

Kaspersky Open Space Security: Release 2. İşletmeniz için birinci sınıf bir BT güvenliği çözümü

Bilişim Teknolojilerine Giriş

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

1-20 Kullanıcı. 2*Xeon 2.4 GHZ 4 GB 2*146 GB 15k (Raid 1) c: 30 GB, d: Kullanıcı Kullanıcı Kullanıcı.

1 Milyon Kullanıcıya Nasıl Hizmet Veriyoruz? CloudLMS Teknik Alt Yapı ve Mimarimiz

SİSTEM İHTİYAÇLARI (Tiger Enterprise / Tiger 3 Enterprise)

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

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

İstemci Yönetimi ve Mobil Yazdırma Çözümleri

Suite 8 on Oracle 11gR2 Donanım İsterleri Kullanıcı (interface'ler dahil) Kullanıcı (interface'ler dahil)

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

Sanal Makineler ve Linux Konteynerlerin Performans Karşılaştırması

Bilgi Güvenliği Eğitim/Öğretimi

Bilgi ve iletişim teknolojileri

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

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

BioAffix Ones Technology nin tescilli markasıdır.

Yerel Okul Sunucusu Uygulama Yazılımları Prototipi

Veritabanı. Ders 2 VERİTABANI

Bilgi ve Olay Yönetim Sistemi

SİSTEM İHTİYAÇLARI (Tiger Plus / Tiger 3)

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

T.C. Kimlik Kartı Ve E-Uygulamaları. Mücahit MUTLUGÜN

Android Programlama BAHAR

Web Uygulama Güvenliği Kontrol Listesi 2010

Servis olarak Altyapı

Özgür Yazılımlar ile Kablosuz Ağ Denetimi

CAN TECİM HEDEF DENEYİM. Tecrübe bütün öğretmenlerin en iyisidir. Publilus Syrus

USB Keylogger İncelemesi

MOBİL İŞLETİM SİSTEMLERİ (MOBILE OPERATING SYSTEMS)

Kaspersky Administration Kit 8.0

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

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

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

Virtual Router Redundancy Protocol (VRRP)

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

MOBİL UYGULAMA GELİŞTİRME

5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall. Rekare Bilgi Teknolojileri

Windows İşletim Sistemi

Zararlı Yazılım Analizi

Reverse Engineering Bootcamp Eğitim İçeriği

Tanımı Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

Linux Dosya Yapısı. Eren BAŞTÜRK.

MCR02-AE Ethernet Temassız Kart Okuyucu

İÇİNDEKİLER. YAZARLAR HAKKINDA... v. RESİMLER LİSTESİ...xv. 1.1.Bulut Bilişim Kavramının Analizi...1 BÖLÜM 1: TEMELLER...1

01 Şirket Profili

Türk Telekom Güvenlik Güvenli Aile(Safe Family) Ürünü Kurulum Kılavuzu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ


BİLGİSAYAR VE AĞ GÜVENLİĞİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA DERS 2 > AĞ VE UYGULAMA GÜVENLİĞİ

ĐZLEME(MONITORING) HĐZMETĐ

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

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

Sonsuz İmkan için Esnek İnce İstemci

Java Programlama Giriş

Bilgisayar Sistemlerine Genel Bakış

08217 Internet Programcılığı I Internet Programming I

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

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi. Genel Bilgiler ve Uygulama. BLM401 Dr.Refik SAMET

Transkript:

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

Sunum İçeriği Giriş Android Temelleri ve Güvenlik Özellikleri Android Pentest 2

Giriş 3

Mobil Cihazlar & Akıllı Telefonlar Telefon??? Bilgisayar??? iphone 5 & Curiosity Mars Rover 1GB RAM 16GB Flash HDD 1,3 GHz Dual Core CPU 256MB RAM 2GB Flash HDD 200 MHz CPU* *http://en.wikipedia.org/wiki/mars_science_laboratory 4

Mobil Cihazlar Mobil Cihaz Pazarı Gartner 3. Çeyrek Raporları * http://www.gartner.com/newsroom/id/2623415 * http://www.gartner.com/newsroom/id/2645115 5

Android Temelleri ve Güvenlik Özellikleri 6

Android Temelleri ve Güvenlik Özellikleri Android Nedir? Android Uygulamaları APK yapısı İşletim Sistemi Katmanları Kullanıcı Yapısı İşlemciler Dosya Sistemi Android Boot Süreci App İmzalama ve Cihaza Yükleme Süreci Android Güvenlik Mekanizmaları 7

Android Nedir? Linux çekirdeği Açık Kaynak Open Handset Alliance (OHA) Android Open Source Project (AOSP) Java Android SDK 8

Google ve Android 9

Android Uygulamaları Android Uygulamaları Java + Android SDK ile geliştirilir. Android Dalvik VM ile çalıştırılır. EclipseIDE = Eclipse + ADT Plugin JAVA.class.dex C / C++ ile geliştirme yapılabilir. Native Development Kit (NDK) 10

APK Yapısı Android Application Package (APK) Android Application Package Program kodu, sertifikalar, manifest dosyaları kaynaklar APK = JAR (JAVA Archive) = ZIP DEX = Dalvik Executable (Android in EXE si) 11

İşletim Sistemi Katmanları *source.android.com 12

Kullanıcı Yapısı /data/data Tse Sandbox Appx Sandbox AppY Sandbox Tse.app Documents Library Temp 13

İşlemciler 14

Dosya Sistemi Android Cihazı Genel olarak 6 partition bulunur: /boot: Kernel ve ramdisk /system: Adroid OS, GUI, apps /recovery: Backup (altnv. boot) /data: Kullanıcı data partitionu /cache: Çok kullanılan veriler /misc: Bazı sistem ayarları App ler /data/data altına kurulur. SD Card SD Card /sdcard /sd-ext Boot System Recovery Data Cache Misc 15

Android Boot Süreci Boot ROM Boot Leader Kernel Init Zygote Dalvik Sistem sunucuları Boot Zinciri Cihazın açılması ve çip üzerindeki ROM kodunun çalışmaya başlaması External RAM Ve Android Sistemi Linux Sistemi Dosyaların tanıtımı ve init.rc Kütüphanelerin yüklenmesi Servisler başlatılır Ana menü 16

App İmzalama ve Cihaza Yükleme Süreci İmzalama Uygulamanın hazırlanması Yükleme İmzalı APK keytool Hatalar düzeltilir ve derlenir APK dosyasına çevrilir JarVerifier jarsigner Özel anahtar ile imzalanır installd Google Play İnternet sitesi E-mail Sunucu 17

Android Komponentleri Android Komponentleri http://www.javatpoint.com/images/androidimages/componentsandroid.jpg Activity: Kullanıcı arayüzünü oluşturan kısım Services: Uygulamanın arka plandaki çalışmalarını sağlayan kısım Broadcast receivers: Uygulamalar arası veya Android işletim sistemi ile arasındaki iletişimi sağlayan kısım Content provider: Her uygulamanın kendine ait Sqlite database bulunmaktadır. Veri ve veritabanı yönetimini sağlayan kısım. Intent: Uygulamalar arar veya uygulama içerisinde componentler arası object taşımaya yarar. 18

Android Güvenlik Mekanizmaları Amaç Kullanıcı verilerin korunması Sistem kaynaklarının korunması Uygulamaların birbirinden ayrı tutulması Metod Linux çekirdeği kullanımı Güvenli sanal ortam (Sandbox) kullanılması İşlemler arası güvenli iletişim sağlanması (IPC) Uygulama imzalama Uygulamanın tanımladığı ve kullanıcıların onayladığı izin sistemi 19

Android Güvenlik Mekanizmaları Kalıtsal Linux Güvenliği Linux çekirdeği kullanılıyor. Kullanıcı bazlı erişim izni Farklı işlemlerin birbirinden ayrılması (Process izolasyonu) İşlemler arasındaki iletişimin güvenli olması (güvenli IPC) Çekirdek yapısının uyarlanabilir olması 20

Android Güvenlik Mekanizmaları Kullanıcı Ayrımı Linux benzeri user-based (kullanıcı bazlı) güvenlik mekanizması. Her uygulama için tekil bir userid. Uygulamalar yetkisiz bir kullanıcı ile çalışıyor. 21

Android Güvenlik Mekanizmaları Güvenli Sanal Ortam (Sandbox) Kullanıcı ayrımına dayanır. Kernel (çekirdek) seviyesindedir. Uygulama bazlı sandbox ortamı. Her uygulama birbirinden ayrı çalışır. App App ve App OS arası. Sadece izin verilen alanlara ulaşım. 22

Android Güvenlik Mekanizmaları Data Execution Prevention (No execute - NX) Stack ve heap bellek alanları CPU ya donanımsal olarak NX olarak işaretleniyor. DEP bypass için Return Oriented Programming ROP: Halihazırdaki kod parçalarının tekrar kullanılarak olağan dışı işlemler yapılması. (Reusing code snippets) ROP ile kod parçacıkları kullanılarak istenmeyen bir işlem yapılabilir. Ör: 23

Android Güvenlik Mekanizmaları ASLR (Address Space Layout Randomization) ROP un en büyük düşmanı. ROP da kullanılacak kodun bellekteki lokasyonunu bilmemiz gerekiyor. Binary ler, kütüphaneler, dinamik linker lar, stack ve heap bellek adresleri randomize ediliyor. Bellek Sızmaları (Memory Leak) ASLR bypass için kritik öneme sahip. 24

Dosya Sistemi PIE Android 4.1 ve sonrası Sağlıklı bir ASLR için gerekli Çalıştırılabilir dosyalar bellekte herhangi bir adresten bağımsız olarak yüklenebiliyor. Disk Şifreleme Android 3.0 dan itibaren destekleniyor. /data dizini şifreleniyor. Cihaz parolası, şifreleme anahtarını şifrelemek için kullanılıyor. SD card şifreleme seçeneği 25

Android Güvenlik Mekanizmaları Anroid İzin Modeli Korunan kaynaklara erişim OS üzerinden olur. Korunan kaynaklara erişim için izin talep edilmelidir. İzinler toplu olarak verilir ve geri alınamaz. Uygulama kaldırıldığında verilen tüm izinler kaldırılır. Varsayılan izinler dışında izin tanımlaması yapılabilir. 26

Android Güvenlik Mekanizmaları Android İzin Modeli AndroidManifest.XML 27

Android Güvenlik Mekanizmaları Android İzin Modeli Android İzin Seviyeleri Normal Kullanıcıya ciddi bir zarar vermeyecek izinler. (duvar kağıdı değiştirmek vb.) Kullanıcı onayı alınmaz. Dangerous Kullanıcıya zarar verebilecek izinler. Maddi karşılığı olabilecek izinler (SMS, telefon, internet). Kullanıcı onayı gerekir. Signature Aynı geliştirici sertifikasıyla imzalanmış uygulamalarda kullanıcıya sorulmadan otomatik olarak izinler verilir. Signature/System Signature seviyesi ile aynı. Android system imajı içerisindeki uygulamalara ait haklar için de kullanıcı onayı alınmamasını sağlar. 28

Android Güvenlik Mekanizmaları Android İzin Kontrolleri Android Komponentleri Statik İzin Kontrolü Android İzin Tanımlama Android KitKat 4.4 API Level 19: 145 izin bulunuyor. Uygulamaya ait komponent izin tanımlanarak korunabilir. 29

Android Güvenlik Mekanizmaları Android İzin Modeli 30

Android Güvenlik Mekanizmaları Android İzin Modeli Android Contacts/People uygulaması Contacts Content Provider a erişim için izin talep ediyor 31

Android Güvenlik Mekanizmaları Uygulama İmzalama Uygulamanın yayınlanmadan önce imzalanması gerekmektedir. Uygulamalar «self-signed» sertifika ile imzalanabilir. CA kontrolü yok. İmza dosyaları ve sertifika META-INF dizini altında. İmza zinciri oluşturulur. Dosya 1 Dosya 2 Dosya 3 Dosya 4 Dosya 5 MANIFEST.MF Dosya 1:Hash Dosya 2:Hash Dosya 3:Hash Dosya 4:Hash Dosya 5:Hash *.SF Dosya 1:Hash Dosya 2:Hash Dosya 3:Hash Dosya 4:Hash Dosya 5:Hash *.RSA PKCS7 Public Sertifika İmzalanmış Hash Değeri 32

Android Güvenlik Mekanizmaları Uygulama Doğrulama Google Bouncer, App Verification 33

Android Pentest 34

Android Pentest Pentest Giriş Ağ Trafiği Analizi APK Reverse Engineering Depolama Analizi Davranışsal Analiz 35

Mobil Pentest Aşina olunan bazı açıklıklar mobil platformalarda yer alıyor. Webview kullanımı yaygındır. (SQL, XSS vb.) Mobil uygulamalar genellikle client-server tipi çalışıyor. İstemci taraflı testler çok önem arz ediyor. İletişim için web servisleri çok tercih ediliyor. Tersine mühendislik önemli bir faktör. Yeterince olgunlaşmış araçlar yok. 36

Pentest Ortamının Kurulması 37

Pentest Ortamının Kurulması Eclipse + Android SDK Eclipse Android Developer Tools Plugin Android SDK Manager adb Android Virtual Manager (emulator) DDMS.. 38

Pentest Ortamının Kurulması Android Debug Bridge (adb) Cihaz ve emülatörler iletişim kurmak amacıyla kullanılır. adb shell adb install/uninstall adb pull/push adb connect/disconnect adb forward adb restore/backup 39

Ağ Trafiği Analizi Ağ Trafiği Analizinin Önemi Blackbox (Kara Kutu) testlerinin en temel adımlarından biridir. Hızlı sonuç verebilir. Tespit edilen açıklıklar direkt olarak «mobil» ilişkili olmayabilir. Hassas veriler şifreli olarak mı gönderiliyor? Gönderi manipülasyonu ile enjeksiyon saldırıları yapılabilir mi? 40

Ağ Trafiği Analizi Ağ Trafiğinin Dinlenmesi Pasif dinleme ile açık metin (clear text) olarak gönderilen verinin incelenmesi Paket seviyesinde inceleme yapma imkanı TCPDump, Wireshark, ettercap Test Ortamı: Android cihazda (emulator) tcpdump ile paket yakalama PC de Wireshark ile analiz etme 41

Ağ Trafiği Analizi Ağ Trafiğinde Araya Girme Web uygulama testlerinde aşina olunan bir yöntem. Lokal Proxy yazılımları kullanılır. (Charles, BurpSuite, OWASP ZAP) Cihazdan çıkan trafiğin Lokal Proxy yazılımına yönlendirilmesine dayanır. Taleplerin manipüle edilebilmesinde olanak tanır. Android Device Interception Proxy Internet 42

APK Tersine Mühendislik APK Reverse Engineering APK yı elde etme (adb pull) Tersine Mühendislik (apktool, apkinspector vb.) Decompile (dex2jar, jdgui vb.) AndroidManifest dosyasının incelenmesi Obfuscation (Karmaşıklaştırma) Diassembly (baksmali, jasmin) 43

APK Tersine Mühendislik AndroidManifest.XML İncelemesi Uygulama komponentleri, izinleri versiyon, asgari gereksinimler 44

APK Tersine Mühendislik Tehlikeli 10 izin Google I/O 2012 de yapılan sunumda tehlikeli 10 izin sıralandı. 1. android.permission.send_sms ve android.permission.receive_sms 2. android.permission.system_alert_window 3. com.android.browser.permission.read_history_bookmarks com.android.browser.permission.write_history_bookmarks 4. android.permission.read_contacts, android.permission.write_contacts android.permission.read_calendar, android.permission.write_calendar 5. android.permission.call_phone 6. android.permission.read_logs 7. android.permission.access_fine_location 8. android.permission.get_tasks 9. android.permission.receive_boot_completed 10. android.permission.change_wifi_state 45

APK Tersine Mühendislik Otomatik Analiz - Lint ADT içerisinde geliyor. (ADT 16 dan itibaren) Asıl amaç uygulama bug larını bulmak, ancak güvenlik kontrolleri de yapıyor. Komut satırı ve Eclipse eklentisi var. 46

Depolama ve Hafıza Analizi Verilerin tutulduğu yerler Internal Storage External Storage Shared Preferences Sqlite Database Network bağlantısı Örnek Dosyalar /boot /data/data /mnt/asec /mnt/emmc /mnt/sdcard Açıklama Kernel ve ramdisk içeren kısım Uygulamaların bulunduğu yer Şifreli uygulamalar İnternal sd kart External sd kart 47

Davranışsal Analiz Sandbox (Kum havuzu) Ortamları Genellikle zararlı yazılımların incelenmesi amacıyla kullanılır. Uygulama sızma testi için büyük bir girdi sağlar. Uygulama, çalıştığı ortama göre davranabilir. Çalışma Sırasında Manipülasyon Ayıklayıcı (Debugger) ile çalışan app process ine attach olunur. Uygulama çalışması sırasında arayüzden çalıştırılamayan fonksiyonlar tetiklenebilir. Uygulanması daha zordur. Kritik sonuçlar çıkartılabilir. 48

49