1 / 66

Mobil Uygulama Güvenliği (Mobile Security)

Mobil Uygulama Gu00fcvenliu011fi (Mobile Security)<br><br>www.cihanozhan.com

cihanozhan
Download Presentation

Mobil Uygulama Güvenliği (Mobile Security)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mobile SecurityMobile Device and Application SecurityCihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master

  2. Mobile AppSec 101 İhtiyacı Mobil uygulamaların %85’inde güvenlikzaafiyetleri var. Mobil Uygulamaların %49'u KişiselVerileriSızdırarakGDPR'yiİhlalEdiyor General Data Protection Regulation (Genel Veri GüvenliğiYönetmeliği) - https://gdpr.eu/

  3. App’inGüvenli mi? • Android uygulamalarının %73’ü hassasverilerisistemlog’larınasızdırıyor. • iOS uygulamaların %18’i hassasverilerisistemlog’larınasızdırıyor. • 7 iOS uygulamasından 1’i güvenliolmayan HTTP(insecure HTTP) kullanıyor. • 5 Android uygulamasından 1’i güvenliolmayan HTTP(insecure HTTP) kullanıyor.

  4. WebVs.MobileSecurity OWASP Web Top-10 : https://owasp.org/Top10/ OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/

  5. TemelFarklılıklar(Web vs. Mobile)

  6. Mobile App Security Testing device native / hybrid programming lang. Android / iOS / diğer

  7. MobileInfrastructures OWASP Web Top-10 : https://owasp.org/Top10/ OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/

  8. Android Ecosystem

  9. Android Ecosystem

  10. Android Ecosystem

  11. Android Architecture

  12. Android, Linux çekirdeğinindeğiştirilmişbirsürümünevediğeraçıkkaynaklıyazılımlaradayalı, öncelikleakıllıtelefonlarve tablet gibidokunmatikekranlımobilcihazlariçintasarlanmışbirmobilişletimsistemidir.

  13. AndroidManifest.xml

  14. Linux Kernel • Android mimarisininkalbidir. Runtime(çalışmazamanı) sırasındagerekliolanekransürücüleri, kamerasürücüleri, Bluetooth sürücüleri, sessürücüleri, belleksürücüleri vb. gibimevcuttümsürücüleriyönetir. • Platform Libraries • Platform library’leri, Android geliştirmedesteğisağlamakiçinçeşitli C/C++ çekirdeklibrary’lerive Media, Graphics, Surface Manager, OpenGL vb. Java tabanlıkitaplıklarıiçerir. • Application Runtime • Android Runtime ortamı, Android'inenönemliparçalarındanbiridir. Çekirdeklibrary’lerve Dalvik Virtual Machine (DVM) gibibileşenleriiçerir. Esasolarak, application framework içintemelsağlarveuygulamamızı core library’leryardımıylagüçlendirir. • Application Framework • Application Framework, biraygulamaoluşturmakiçinkullanılanbirkaçönemli class sağlar. Donanımerişimiiçingenelbirsoyutlama(abstraction) sağlarveayrıcauygulamakaynaklarıyla(application resources) kullanıcıarabirimininyönetilmesineyardımcıolur. Genelolarak, belirlibir class oluşturabileceğimizvebuclass’ıUygulamalaroluşturmaiçinyararlı hale getirebileceğimizhizmetlerisağlar. • Applications • Uygulamalar Android mimarisininenüstkatmanıdır. home, contacts, camera, gallery vb. gibi pre-installed uygulamalarve Play Store’danindirilen chat uygulamaları, oyunlar vb. gibi third-party uygulamalarsadecebukatmanayüklenir.

  15. APKveAPK Yapısı! • APK, Android Package(bazenAndroid Package Kit veyaAndroid Application Package) anlamınagelir. APK birarşivdosyasıdır, yanibirdenfazladosyavebunlarlailgilibazı meta verileriçerir. • Bir APKdosyası, Apktool, WinRAR, 7-Zipvediğersıkıştırmauygulamalarıtarafındanaçılabilir.

  16. Android Components & Lifecycle • Activity • Activity’leruygulamalarınsunumkatmanıdır. Uygulamamızınkullanıcıarayüzü, Activity sınıfınınbirveyadahafazlauzantısı(extensions) etrafındaoluşturulmuştur. Activity’ler, Fragment veView’lerikullanaraklayout’uayarlarveçıktıyıgörüntülerveayrıcakullanıcınıneylemlerine(user actions) yanıtverir. • Services • Servisler, uygulamamızınarkaplandakigörünmezçalışanlarıgibidir. Bu bileşenlerbackend’deçalışır, verikaynaklarınızı(data sources) veactivity’lerinizigünceller, notification’larıve broadcast intent’leritetikler. Uygulamalaraktifolmadığında da bazıgörevleriyerinegetirirler. • Content Provider • Uygulamaverileriniyönetmekvekalıcıkılmakiçinkullanılır, ayrıca SQL veritabanıileetkileşimegirer. Ayrıca, application boundary’ninötesindekiverileripaylaşmaktan da sorumludurlar. Belirlibiruygulamanın Content Provider’ları, diğeruygulamalardanerişimeizinverecekşekildeyapılandırılabilirvediğeruygulamalartarafındansunulan Content Provider’lar da yapılandırılabilir.

  17. Android Components & Lifecycle • Broadcast Receivers • They are known to be intent listeners as they enable your application to listen to the Intents that satisfy the matching criteria specified by us. Broadcast Receivers make our application react to any received Intent thereby making them perfect for creating event-driven applications. • Android Lifecycle Methods • Sonraki slide…

  18. Android Lifecycle Methods

  19. Mobile App Security Testing source code / binary device != mobile app rooted / non-rooted static / dynamic analysis

  20. Testing(Static Vs. Dynamic) • Static Analysis (aka. Static Testing) • Binary testi. • Tümkaynakkodlarasahipolmalı (ya da decompile etmeli). • Kötü “bad practice” belirtileriaramak! • Dynamic Analysis (aka. Dynamic Testing) • App’icihazya da emulator’ekur. • App işakışlarını(workflow) çalıştır, test et, izle… • Exploit etmeye(sömürmeye) çalış! • Ne kadarazpratik/uğraş o kadarazveri…

  21. Testing(Static Vs. Dynamic) • Static Analysis • Statikkodanalizi, bir program çalıştırılmadanöncekaynakkoduinceleyerekhataayıklamayöntemidir. Bir kodubelirlikodlamakurallarınakarşıanalizederekyapılır. Bu türbiranaliz, kaynakkodundagüvenlikaçıklarınayolaçabilecekzayıflıklarıgiderir. • Statikkodanalizi, işmantığınınanlaşılmasınısağlar, hardcoded secret’larıveya IP vekimlikbilgilerini(erişim vb.) bulmayayardımcıolur. • Dynamic Analysis • Dinamik program analiziolarak da bilinendinamikanaliz, birprogramınveyateknolojiningerçekzamanlı(realtime) verilerikullanarakdeğerlendirilmesidir. Kodu offline’açekmekyerine, güvenlikaçıklarıve program davranışı, program halihazırdaçalışıyorkenizlenebilirvegerçekdünyadakidavranışısağlanıp/simüleedilerekgüvenlikanaliziyapılabilir. • İstemcivesunucuarasındakigerçekzamanlı(realtime) verialışverişiniizlemek, hassasverilerinakışhalindeolupolmadığınıbelirlemek, zayıfendpoint’leribelirlemekgibibirçoksebeplekullanılabilir.

  22. Device Testing != App Testing

  23. Device Testing != App Testing • Uygulamanınhangicihazüzerinekurulduğu… • Cihazüzerindekidiğeruygulamalar… • Cihazıkiminkullandığı… • Cihazınbağlantıkurduğuyer… • … gibialanlardahiçbirmüdahalemiz/kontrolümüz yok!

  24. Jailbroken/Rooted Device • İşletimsistemine tam erişimesahipcihazlar! • CihazUI’ınıözelleştirmek! • Malware • Unlocking • Korsanlık • GüvenlikAraştırmaları…

  25. Privileged Access • Uygulamanınhangicihazüzerinekurulduğu… • Cihazüzerindekidiğeruygulamalar… • Cihazıkiminkullandığı… • Cihazınbağlantıkurduğuyer… • … gibialanlardahiçbirmüdahalemiz/kontrolümüz yok!

  26. Decompilation & Decompiler

  27. Decompiler, makineseviyesinde/bilgisayartarafındanokunabilirkodu Pseudo kaynakkoduna/insantarafındanokunabilirbiçimedönüştürmeyeyardımcıolanbirbilgisayarprogramıdır. *Compiler’ın tam tersi.

  28. Decompilation

  29. Decompilation

  30. Android Decompilers(Jadx-GUI) Jadx-GUI Dex to Java Decompiler | https://github.com/skylot/jadx

  31. Android Decompilers(GDA) GDA GJoyDex Analyzer | https://github.com/charles2gan/GDA-android-reversing-Tool

  32. Android Decompilers(JEB CE) JEB CE JEB CE | https://www.pnfsoftware.com/jeb/community-edition

  33. Mobile App Security Testing Checklist OWASP MASVS MSTG

  34. Mobile Security Project • Mobile AppSec güvenlikzaafiyetlerineodaklanankaynak. • MSTG – Mobile Security Testing Guide • MASVS – Mobile App Security Verification Standard

  35. Mobile App Security Verification Standards - MASVS Mobil Uygulamalariçintemelbirgüvenlikoluşturun. Mobile Security Testing Guide - MSTG Mobil uygulamagüvenliktestiiçinrehber. OWASP Mobile Top 10 Mobil uygulamalardakarşılaşılanbüyükproblemler. Mobile Security Testing Checklist Güvenliktestiiçingereksinimler.

  36. Penetration Testing Bilgisayarsistemlerinde, ağlarda, web sitelerindeveuygulamalardaistismaredilebilirgüvenlikaçıklarınıarayansimüleedilmişsibersaldırılarınkasıtlıolarakaraştırılması/tetiklenmesi/manipüleedilmesinikapsar.

  37. Penetration Testing : Fazlar • Adım 1 : Reconnaissance (Keşif) • Adım 2 : Scanning (Tarama) • Adım 3 : Exploitation (Sömürü) • Adım 4 : Escalation • Adım 5 : Covering Tracks • Adım 6 : Reporting (Raporlama)

  38. Android Penetration Testing • Android sızmatesti, bir Android uygulamasındakigüvenlikaçıklarınıbulmasürecidir. Zayıflıklarıaramak, uygulamanıngüvenliğinidoğrulamakvegüvenlikpolitikalarınauyduğundaneminolmakiçinsistematikbiryaklaşımdır. • Entemel penetration aşamaları • Recon/Info Gathering • Static Analysis • Dynamic Analysis • Reporting

  39. Mobile Hacking Lab • Kali/Windows • VirtualBox • Android Studio • GenyMotion • MobSF • Visual Studio Code • APK Studio • Apktool • Android Debug Bridge (ADB) • Bytecode Viewer • Emulator ya da fizikselbir Android cihaz

  40. Android Static Security Analysis

  41. Android Static Security Analysis • Reverse Engineering • Information Gathering • Repackaging • Resigning an APK • Static Analysis with MobSF • Root Detection and Obfuscation Techniques

More Related