SlideShare una empresa de Scribd logo
1 de 66
Mobile Security
Mobile Device and Application Security
Cihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master
Mobile AppSec 101 İhtiyacı
Mobil uygulamaların %85’inde güvenlik zaafiyetleri var.
Mobil Uygulamaların %49'u Kişisel Verileri Sızdırarak GDPR'yi İhlal Ediyor
General Data Protection Regulation (Genel Veri Güvenliği Yönetmeliği)
- https://gdpr.eu/
App’in Güvenli mi?
• Android uygulamalarının %73’ü hassas verileri sistem log’larına sızdırıyor.
• iOS uygulamaların %18’i hassas verileri sistem log’larına sızdırıyor.
• 7 iOS uygulamasından 1’i güvenli olmayan HTTP(insecure HTTP) kullanıyor.
• 5 Android uygulamasından 1’i güvenli olmayan HTTP(insecure HTTP) kullanıyor.
Web Vs. Mobile Security
OWASP Web Top-10 OWASP Mobile Top-10
Broken Authentication Improper Platform Usage
Cryptographic Failures Insecure Data Storage
Injection Insecure Communication
Insecure Design Insecure Authentication
Security Misconfiguration Insufficient Cryptography
Vulnerable and Outdated Components Insecure Authorization
Identification and Authentication Failures Client Code Quality
Software and Data Integrity Failures Code Tampering
Security Logging and Monitoring Failures Reverse Engineering
Server-Side Request Forgery (SSRF) Extraneous Functionality
OWASP Web Top-10 : https://owasp.org/Top10/
OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/
Temel Farklılıklar
(Web vs. Mobile)
Web Mobile
Kodun büyük çoğunluğu firewall ve diğer koruyucu
altyapının arkasında…
Kritik kod, IP, client cihazdaki veriler…
Browser SSL/HTTPS'yi yönetir. Mobile app, local dosya/hafıza işlemlerini uygun
şekilde yapmalıdır.
Browser, verileri lokal makine hafızasından ve
dosyalardan yalıtır.
Mobile app, network işlemlerini uygun şekilde
yapmalıdır.
Web uygulamalar diğer web app’lerden izoledir. Mobil, uygulamalar arası veri paylaşım kapasitesine
sahiptir.
Mobile App Security Testing
native / hybrid
programming lang.
Android / iOS / diğer
device
Mobile Infrastructures
Native Hybrid
Java Xamarin
Kotlin Flutter
NDK (C/C++) React Native
Objective C Ionic
Swift jQuery Mobile
Apache Cordova (PhoneGap)
Corona SDK
Monaca
Mobile Angular UI
NativeScript
OWASP Web Top-10 : https://owasp.org/Top10/
OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/
Android Ecosystem
Android Ecosystem
Android Ecosystem
Android Architecture
Android, Linux çekirdeğinin değiştirilmiş bir sürümüne ve diğer açık kaynaklı
yazılımlara dayalı, öncelikle akıllı telefonlar ve tablet gibi dokunmatik ekranlı
mobil cihazlar için tasarlanmış bir mobil işletim sistemidir.
AndroidManifest.xml
• Linux Kernel
– Android mimarisinin kalbidir. Runtime(çalışma zamanı) sırasında gerekli olan ekran
sürücüleri, kamera sürücüleri, Bluetooth sürücüleri, ses sürücüleri, bellek sürücüleri vb. gibi
mevcut tüm sürücüleri yönetir.
• Platform Libraries
– Platform library’leri, Android geliştirme desteği sağlamak için çeşitli C/C++ çekirdek
library’leri ve Media, Graphics, Surface Manager, OpenGL vb. Java tabanlı kitaplıkları içerir.
• Application Runtime
– Android Runtime ortamı, Android'in en önemli parçalarından biridir. Çekirdek library’ler ve
Dalvik Virtual Machine (DVM) gibi bileşenleri içerir. Esas olarak, application framework için
temel sağlar ve uygulamamızı core library’ler yardımıyla güçlendirir.
• Application Framework
– Application Framework, bir aygulama oluşturmak için kullanılan birkaç önemli class sağlar.
Donanım erişimi için genel bir soyutlama(abstraction) sağlar ve ayrıca uygulama
kaynaklarıyla(application resources) kullanıcı arabiriminin yönetilmesine yardımcı olur.
Genel olarak, belirli bir class oluşturabileceğimiz ve bu class’ı Uygulamalar oluşturma için
yararlı hale getirebileceğimiz hizmetleri sağlar.
• Applications
– Uygulamalar Android mimarisinin en üst katmanıdır. home, contacts, camera, gallery vb. gibi
pre-installed uygulamalar ve Play Store’dan indirilen chat uygulamaları, oyunlar vb. gibi
third-party uygulamalar sadece bu katmana yüklenir.
APK ve APK Yapısı!
• APK, Android Package(bazen Android Package Kit veya Android
Application Package) anlamına gelir. APK bir arşiv dosyasıdır, yani birden
fazla dosya ve bunlarla ilgili bazı meta veriler içerir.
• Bir APK dosyası, Apktool, WinRAR, 7-Zip ve diğer sıkıştırma uygulamaları
tarafından açılabilir.
Android Components & Lifecycle
• Activity
– Activity’ler uygulamaların sunum katmanıdır. Uygulamamızın kullanıcı arayüzü, Activity
sınıfının bir veya daha fazla uzantısı(extensions) etrafında oluşturulmuştur. Activity’ler,
Fragment ve View’leri kullanarak layout’u ayarlar ve çıktıyı görüntüler ve ayrıca
kullanıcının eylemlerine(user actions) yanıt verir.
• Services
– Servisler, uygulamamızın arkaplandaki görünmez çalışanları gibidir. Bu bileşenler
backend’de çalışır, veri kaynaklarınızı(data sources) ve activity’lerinizi günceller,
notification’ları ve broadcast intent’leri tetikler. Uygulamalar aktif olmadığında da bazı
görevleri yerine getirirler.
• Content Provider
– Uygulama verilerini yönetmek ve kalıcı kılmak için kullanılır, ayrıca SQL veritabanı ile
etkileşime girer. Ayrıca, application boundary’nin ötesindeki verileri paylaşmaktan da
sorumludurlar. Belirli bir uygulamanın Content Provider’ları, diğer uygulamalardan
erişime izin verecek şekilde yapılandırılabilir ve diğer uygulamalar tarafından sunulan
Content Provider’lar da yapılandırılabilir.
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…
Android Lifecycle Methods
Mobile App Security Testing
source code / binary
static / dynamic analysis
rooted / non-rooted
device != mobile app
Testing
(Static Vs. Dynamic)
• Static Analysis (aka. Static Testing)
– Binary testi.
– Tüm kaynak kodlara sahip olmalı (ya da decompile etmeli).
– Kötü “bad practice” belirtileri aramak!
• Dynamic Analysis (aka. Dynamic Testing)
– App’i cihaz ya da emulator’e kur.
– App iş akışlarını(workflow) çalıştır, test et, izle…
– Exploit etmeye(sömürmeye) çalış!
– Ne kadar az pratik/uğraş o kadar az veri…
Testing
(Static Vs. Dynamic)
• Static Analysis
– Statik kod analizi, bir program çalıştırılmadan önce kaynak kodu inceleyerek hata
ayıklama yöntemidir. Bir kodu belirli kodlama kurallarına karşı analiz ederek yapılır. Bu tür
bir analiz, kaynak kodunda güvenlik açıklarına yol açabilecek zayıflıkları giderir.
– Statik kod analizi, iş mantığının anlaşılmasını sağlar, hardcoded secret’ları veya IP ve
kimlik bilgilerini(erişim vb.) bulmaya yardımcı olur.
• Dynamic Analysis
– Dinamik program analizi olarak da bilinen dinamik analiz, bir programın veya teknolojinin
gerçek zamanlı(realtime) verileri kullanarak değerlendirilmesidir. Kodu offline’a çekmek
yerine, güvenlik açıkları ve program davranışı, program halihazırda çalışıyorken izlenebilir
ve gerçek dünyadaki davranışı sağlanıp/simüle edilerek güvenlik analizi yapılabilir.
– İstemci ve sunucu arasındaki gerçek zamanlı(realtime) veri alışverişini izlemek, hassas
verilerin akış halinde olup olmadığını belirlemek, zayıf endpoint’leri belirlemek gibi bir
çok sebeple kullanılabilir.
Device Testing != App Testing
Device Testing != App Testing
• Uygulamanın hangi cihaz üzerine kurulduğu…
• Cihaz üzerindeki diğer uygulamalar…
• Cihazı kimin kullandığı…
• Cihazın bağlantı kurduğu yer…
• … gibi alanlarda hiç bir müdahalemiz/kontrolümüz yok!
Jailbroken/Rooted Device
• İşletim sistemine tam erişime sahip cihazlar!
• Cihaz UI’ını özelleştirmek!
• Malware
• Unlocking
• Korsanlık
• Güvenlik Araştırmaları…
Privileged Access
• Uygulamanın hangi cihaz üzerine kurulduğu…
• Cihaz üzerindeki diğer uygulamalar…
• Cihazı kimin kullandığı…
• Cihazın bağlantı kurduğu yer…
• … gibi alanlarda hiç bir müdahalemiz/kontrolümüz yok!
Decompilation & Decompiler
Decompiler, makine seviyesinde/bilgisayar tarafından okunabilir kodu Pseudo
kaynak koduna/insan tarafından okunabilir biçime dönüştürmeye yardımcı
olan bir bilgisayar programıdır.
*Compiler’ın tam tersi.
Decompilation
Decompilation
Android Decompilers
(Jadx-GUI)
Jadx-GUI
Dex to Java Decompiler | https://github.com/skylot/jadx
Android Decompilers
(GDA)
GDA
GJoy Dex Analyzer | https://github.com/charles2gan/GDA-android-reversing-Tool
Android Decompilers
(JEB CE)
JEB CE
JEB CE | https://www.pnfsoftware.com/jeb/community-edition
Mobile App Security Testing
OWASP
MASVS
Checklist
MSTG
Mobile Security Project
• Mobile AppSec güvenlik zaafiyetlerine odaklanan kaynak.
• MSTG – Mobile Security Testing Guide
• MASVS – Mobile App Security Verification Standard
OWASP Mobile Top 10
Mobil uygulamalarda
karşılaşılan büyük problemler.
Mobile App Security
Verification Standards -
MASVS
Mobil Uygulamalar için
temel bir güvenlik
oluşturun.
Mobile Security Testing
Guide - MSTG
Mobil uygulama güvenlik
testi için rehber.
Mobile Security Testing
Checklist
Güvenlik testi için
gereksinimler.
Penetration Testing
Bilgisayar sistemlerinde, ağlarda, web sitelerinde ve uygulamalarda istismar
edilebilir güvenlik açıklarını arayan simüle edilmiş siber saldırıların kasıtlı olarak
araştırılması/tetiklenmesi/manipüle edilmesini kapsar.
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)
Android Penetration Testing
• Android sızma testi, bir Android uygulamasındaki güvenlik açıklarını
bulma sürecidir. Zayıflıkları aramak, uygulamanın güvenliğini doğrulamak
ve güvenlik politikalarına uyduğundan emin olmak için sistematik bir
yaklaşımdır.
• En temel penetration aşamaları
– Recon/Info Gathering
– Static Analysis
– Dynamic Analysis
– Reporting
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 fiziksel bir Android cihaz
Android Static Security Analysis
Android Static Security Analysis
• Reverse Engineering
• Information Gathering
• Repackaging
• Resigning an APK
• Static Analysis with MobSF
• Root Detection and Obfuscation Techniques
OWASP Mobile Top 10
• M1 : Improper Platform Usage
• M2 : Insecure Data Storage
• M3 : Insecure Communication
• M4 : Insecure Authentication
• M5 : Insufficient Cryptography
• M6 : Insecure Authorization
• M7 : Client Code Quality
• M8 : Code Tampering
• M9 : Reverse Engineering
• M10 : Extraneous Functionality
https://owasp.org/www-project-mobile-top-10/
Vulnerable Mobile Apps
• InsecureBankv2
– https://github.com/dineshshetty/Android-InsecureBankv2
• DIVA
– https://github.com/payatu/diva-android
• ya da…
– apkmirror.com
– apkmonk.com
• ya da… Cihazdan Kopyala…
– adb shell ‘pm list packages -f’
– adb shell pm path com.example.someapp
– adb pull /data/app/com.example.someapp-2.apk
– path/to/desired/destination
InsecureBankv2
• Insecure Login Mechanism
• Hidden Button in the Login Mechanism
• Developer Login
• Insecure Data Storage
• Debug Mode Enabled
• Back Up Mode Enabled
• Insecure Logging
• Root Detection Bypass
• Insecure Webview Implementation
• Android Pasteboard Vulnerability
• Android Keyboard Vulnerability
• Insecure HTTP Connections
• Parameter Manipulation
• User Enumeration
DIVA
(Damn Insecure and Vulnerable App)
• Insecure Login Mechanism
• Hardcoding Issues
• Insecure Data Storage
• Input Validation Issues
• Access Control Issues
https://github.com/payatu/diva-android
https://github.com/tjunxiang92/Android-Vulnerabilities/blob/master/diva-beta.apk
tools
• adb https://developer.android.com/studio/command-line/adb (Android Debug Bridge)
• Burp Suite https://portswigger.net/burp/communitydownload
• Genymotion https://www.genymotion.com/
• mLogcat
• Frida https://frida.re/
• Jadx github.com/skylot/jadx - https://github.com/skylot/jadx/releases/tag/v1.3.1
• GDA github.com/charles2gan/GDA-android-reversing-tool/releases
• JNB https://www.pnfsoftware.com/jeb/communityedition
• MobSF https://mobsf.github.io/docs - https://github.com/MobSF/Mobile-Security-Framework-MobSF
– Automated Mobile App Assessment Framework (Android/iOS/Windows)
– Dynamic, Static, and Malware Analysis
• Drozer https://labs.f-secure.com/tools/drozer
• QARK github.com/linkedin/qark
• JD-GUI http://java-decompiler.github.io/
• Dex2Jar https://github.com/pxb1988/dex2jar
• HoneyNet Project redmine.honeynet.org/projects/are/wiki
• JEB CE https://www.pnfsoftware.com/jeb/community-edition
• Apktool https://ibotpeaches.github.io/Apktool/
• AXMLPrinter2.jar https://github.com/digitalsleuth/AXMLPrinter2 (extract XML manifest)
adb
• adb devices
• adb root
• adb shell
• adb push
• adb pull
• adb install
Drozer
• Android güvenlik değerlendirmeleri için framework.
• Android'de çalışan “agent"dan oluşur.
• *NIX'te çalışan konsol (Windows'ta çalışabilir, ancak büyük olasılıkla "kötü
amaçlı yazılım" olabilir).
• TCP üzerinden localhost iletilerek iletişim kurar (port 31415).
• Uygulamayı incelemek için çeşitli modüllere sahiptir...
• Gerektiğinde uygulamaya çeşitli uyaranlar(situmuli) gönderebilir.
• Start Drozer session:
– adb forward tcp:31415 tcp:31415
– drozer console connect
Android App Penetration Testing Checklist
Android Pentesting 201
Cihan Özhan
Bağlantılar
• cihanozhan.com
• linkedin.com/in/cihanozhan
• medium.com/@cihanozhan
• youtube.com/user/OracleAdam
• twitter.com/UnmannedCode
• github.com/cihanozhan
E-Mail
• cihan@deeplab.co

Más contenido relacionado

La actualidad más candente

Checkmarx meetup API Security - API Security top 10 - Erez Yalon
Checkmarx meetup API Security -  API Security top 10 - Erez YalonCheckmarx meetup API Security -  API Security top 10 - Erez Yalon
Checkmarx meetup API Security - API Security top 10 - Erez YalonAdar Weidman
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For BeginnersRahul Nath
 
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA KullanımıZararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA KullanımıBGA Cyber Security
 
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSF
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSFAppSec EU 2016: Automated Mobile Application Security Assessment with MobSF
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSFAjin Abraham
 
SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? Geeks Anonymes
 
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıZararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıBGA Cyber Security
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceDoug Ayers
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Murat KARA
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD PipelineJames Wickett
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOpsCYBRIC
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersDevOps.com
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 
API Security Best Practices and Guidelines
API Security Best Practices and GuidelinesAPI Security Best Practices and Guidelines
API Security Best Practices and GuidelinesWSO2
 
Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Aqua Security
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiKurtuluş Karasu
 
OWASP Top 10 Proactive Controls
OWASP Top 10 Proactive ControlsOWASP Top 10 Proactive Controls
OWASP Top 10 Proactive ControlsKaty Anton
 

La actualidad más candente (20)

Checkmarx meetup API Security - API Security top 10 - Erez Yalon
Checkmarx meetup API Security -  API Security top 10 - Erez YalonCheckmarx meetup API Security -  API Security top 10 - Erez Yalon
Checkmarx meetup API Security - API Security top 10 - Erez Yalon
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA KullanımıZararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
 
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSF
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSFAppSec EU 2016: Automated Mobile Application Security Assessment with MobSF
AppSec EU 2016: Automated Mobile Application Security Assessment with MobSF
 
MongoDB Overview
MongoDB OverviewMongoDB Overview
MongoDB Overview
 
Api security-testing
Api security-testingApi security-testing
Api security-testing
 
SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ?
 
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıZararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
How to Get Started with DevSecOps
How to Get Started with DevSecOpsHow to Get Started with DevSecOps
How to Get Started with DevSecOps
 
Security in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps EngineersSecurity in CI/CD Pipelines: Tips for DevOps Engineers
Security in CI/CD Pipelines: Tips for DevOps Engineers
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
API Security Best Practices and Guidelines
API Security Best Practices and GuidelinesAPI Security Best Practices and Guidelines
API Security Best Practices and Guidelines
 
DevSecOps
DevSecOpsDevSecOps
DevSecOps
 
Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
 
OWASP Top 10 Proactive Controls
OWASP Top 10 Proactive ControlsOWASP Top 10 Proactive Controls
OWASP Top 10 Proactive Controls
 

Similar a Mobil Uygulama Güvenliği (Mobile Security)

Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?mobilike
 
Mobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporMobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporSuat Furkan ISIK
 
Lecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarLecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarTurkIOT
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma sonBGA Cyber Security
 
Android İşletim Sistemi
Android İşletim SistemiAndroid İşletim Sistemi
Android İşletim Sistemi_aerdeger
 
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişPhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişEgemen Mede
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin KullanımıSiber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin KullanımıBGA Cyber Security
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Univerist
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiricilermerveyildiz1
 
Android Teknolojileri
Android TeknolojileriAndroid Teknolojileri
Android TeknolojileriMuharrem Tac
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android SlideAsude Sena Ölmez
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIAhmet Pekel
 
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013Hakan ERDOGAN
 
Mobile First Indexing
Mobile First Indexing Mobile First Indexing
Mobile First Indexing ceydaaricioglu
 

Similar a Mobil Uygulama Güvenliği (Mobile Security) (20)

Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
Uygulama diline karar vermek: HTML5 mi, Native mi yoksa Hibrit uygulama mı?
 
Android
AndroidAndroid
Android
 
Mobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporMobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar rapor
 
Lecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel KavramlarLecture 1 Siber Güvenlik Temel Kavramlar
Lecture 1 Siber Güvenlik Temel Kavramlar
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
 
Android
AndroidAndroid
Android
 
Android İşletim Sistemi
Android İşletim SistemiAndroid İşletim Sistemi
Android İşletim Sistemi
 
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye GirişPhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
PhoneGap/Cordova ile Mobil Uygulama Geliştirmeye Giriş
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin KullanımıSiber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1
 
Mobi̇l Yazılım Geli̇şti̇rme
Mobi̇l Yazılım Geli̇şti̇rmeMobi̇l Yazılım Geli̇şti̇rme
Mobi̇l Yazılım Geli̇şti̇rme
 
Mobil Platformlar ve Uygulamalar
Mobil Platformlar ve UygulamalarMobil Platformlar ve Uygulamalar
Mobil Platformlar ve Uygulamalar
 
Mobil Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve GeliştiricilerMobil  Uygulamalar ve Geliştiriciler
Mobil Uygulamalar ve Geliştiriciler
 
Android Teknolojileri
Android TeknolojileriAndroid Teknolojileri
Android Teknolojileri
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android Slide
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGI
 
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013
Yasayan Bir Organizma: YAZILIM - YTU-KVK Finans ve Yazilim Gunleri - 18.11.2013
 
Mobile First Indexing
Mobile First Indexing Mobile First Indexing
Mobile First Indexing
 

Más de Cihan Özhan

AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesCihan Özhan
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarCihan Özhan
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel BakışCihan Özhan
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - GirişCihan Özhan
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesCihan Özhan
 
Endüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerCihan Özhan
 
AI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityCihan Özhan
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama DiliCihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11Cihan Özhan
 

Más de Cihan Özhan (20)

AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation Realities
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - Giriş
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Endüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom Sistemler
 
AI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision Security
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 
İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12İleri Seviye T-SQL Programlama - Chapter 12
İleri Seviye T-SQL Programlama - Chapter 12
 
İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11İleri Seviye T-SQL Programlama - Chapter 11
İleri Seviye T-SQL Programlama - Chapter 11
 

Mobil Uygulama Güvenliği (Mobile Security)

  • 1. Mobile Security Mobile Device and Application Security Cihan Özhan | DeepLab.co | Developer/Hacker, AI Engineer, Data Master
  • 2.
  • 3. Mobile AppSec 101 İhtiyacı Mobil uygulamaların %85’inde güvenlik zaafiyetleri var. Mobil Uygulamaların %49'u Kişisel Verileri Sızdırarak GDPR'yi İhlal Ediyor General Data Protection Regulation (Genel Veri Güvenliği Yönetmeliği) - https://gdpr.eu/
  • 4. App’in Güvenli mi? • Android uygulamalarının %73’ü hassas verileri sistem log’larına sızdırıyor. • iOS uygulamaların %18’i hassas verileri sistem log’larına sızdırıyor. • 7 iOS uygulamasından 1’i güvenli olmayan HTTP(insecure HTTP) kullanıyor. • 5 Android uygulamasından 1’i güvenli olmayan HTTP(insecure HTTP) kullanıyor.
  • 5. Web Vs. Mobile Security OWASP Web Top-10 OWASP Mobile Top-10 Broken Authentication Improper Platform Usage Cryptographic Failures Insecure Data Storage Injection Insecure Communication Insecure Design Insecure Authentication Security Misconfiguration Insufficient Cryptography Vulnerable and Outdated Components Insecure Authorization Identification and Authentication Failures Client Code Quality Software and Data Integrity Failures Code Tampering Security Logging and Monitoring Failures Reverse Engineering Server-Side Request Forgery (SSRF) Extraneous Functionality OWASP Web Top-10 : https://owasp.org/Top10/ OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/
  • 6. Temel Farklılıklar (Web vs. Mobile) Web Mobile Kodun büyük çoğunluğu firewall ve diğer koruyucu altyapının arkasında… Kritik kod, IP, client cihazdaki veriler… Browser SSL/HTTPS'yi yönetir. Mobile app, local dosya/hafıza işlemlerini uygun şekilde yapmalıdır. Browser, verileri lokal makine hafızasından ve dosyalardan yalıtır. Mobile app, network işlemlerini uygun şekilde yapmalıdır. Web uygulamalar diğer web app’lerden izoledir. Mobil, uygulamalar arası veri paylaşım kapasitesine sahiptir.
  • 7. Mobile App Security Testing native / hybrid programming lang. Android / iOS / diğer device
  • 8. Mobile Infrastructures Native Hybrid Java Xamarin Kotlin Flutter NDK (C/C++) React Native Objective C Ionic Swift jQuery Mobile Apache Cordova (PhoneGap) Corona SDK Monaca Mobile Angular UI NativeScript OWASP Web Top-10 : https://owasp.org/Top10/ OWASP Mobile Top-10 : https://owasp.org/www-project-mobile-top-10/
  • 9.
  • 11.
  • 15. Android, Linux çekirdeğinin değiştirilmiş bir sürümüne ve diğer açık kaynaklı yazılımlara dayalı, öncelikle akıllı telefonlar ve tablet gibi dokunmatik ekranlı mobil cihazlar için tasarlanmış bir mobil işletim sistemidir.
  • 16.
  • 17.
  • 19. • Linux Kernel – Android mimarisinin kalbidir. Runtime(çalışma zamanı) sırasında gerekli olan ekran sürücüleri, kamera sürücüleri, Bluetooth sürücüleri, ses sürücüleri, bellek sürücüleri vb. gibi mevcut tüm sürücüleri yönetir. • Platform Libraries – Platform library’leri, Android geliştirme desteği sağlamak için çeşitli C/C++ çekirdek library’leri ve Media, Graphics, Surface Manager, OpenGL vb. Java tabanlı kitaplıkları içerir. • Application Runtime – Android Runtime ortamı, Android'in en önemli parçalarından biridir. Çekirdek library’ler ve Dalvik Virtual Machine (DVM) gibi bileşenleri içerir. Esas olarak, application framework için temel sağlar ve uygulamamızı core library’ler yardımıyla güçlendirir. • Application Framework – Application Framework, bir aygulama oluşturmak için kullanılan birkaç önemli class sağlar. Donanım erişimi için genel bir soyutlama(abstraction) sağlar ve ayrıca uygulama kaynaklarıyla(application resources) kullanıcı arabiriminin yönetilmesine yardımcı olur. Genel olarak, belirli bir class oluşturabileceğimiz ve bu class’ı Uygulamalar oluşturma için yararlı hale getirebileceğimiz hizmetleri sağlar. • Applications – Uygulamalar Android mimarisinin en üst katmanıdır. home, contacts, camera, gallery vb. gibi pre-installed uygulamalar ve Play Store’dan indirilen chat uygulamaları, oyunlar vb. gibi third-party uygulamalar sadece bu katmana yüklenir.
  • 20. APK ve APK Yapısı! • APK, Android Package(bazen Android Package Kit veya Android Application Package) anlamına gelir. APK bir arşiv dosyasıdır, yani birden fazla dosya ve bunlarla ilgili bazı meta veriler içerir. • Bir APK dosyası, Apktool, WinRAR, 7-Zip ve diğer sıkıştırma uygulamaları tarafından açılabilir.
  • 21. Android Components & Lifecycle • Activity – Activity’ler uygulamaların sunum katmanıdır. Uygulamamızın kullanıcı arayüzü, Activity sınıfının bir veya daha fazla uzantısı(extensions) etrafında oluşturulmuştur. Activity’ler, Fragment ve View’leri kullanarak layout’u ayarlar ve çıktıyı görüntüler ve ayrıca kullanıcının eylemlerine(user actions) yanıt verir. • Services – Servisler, uygulamamızın arkaplandaki görünmez çalışanları gibidir. Bu bileşenler backend’de çalışır, veri kaynaklarınızı(data sources) ve activity’lerinizi günceller, notification’ları ve broadcast intent’leri tetikler. Uygulamalar aktif olmadığında da bazı görevleri yerine getirirler. • Content Provider – Uygulama verilerini yönetmek ve kalıcı kılmak için kullanılır, ayrıca SQL veritabanı ile etkileşime girer. Ayrıca, application boundary’nin ötesindeki verileri paylaşmaktan da sorumludurlar. Belirli bir uygulamanın Content Provider’ları, diğer uygulamalardan erişime izin verecek şekilde yapılandırılabilir ve diğer uygulamalar tarafından sunulan Content Provider’lar da yapılandırılabilir.
  • 22. 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…
  • 24. Mobile App Security Testing source code / binary static / dynamic analysis rooted / non-rooted device != mobile app
  • 25. Testing (Static Vs. Dynamic) • Static Analysis (aka. Static Testing) – Binary testi. – Tüm kaynak kodlara sahip olmalı (ya da decompile etmeli). – Kötü “bad practice” belirtileri aramak! • Dynamic Analysis (aka. Dynamic Testing) – App’i cihaz ya da emulator’e kur. – App iş akışlarını(workflow) çalıştır, test et, izle… – Exploit etmeye(sömürmeye) çalış! – Ne kadar az pratik/uğraş o kadar az veri…
  • 26. Testing (Static Vs. Dynamic) • Static Analysis – Statik kod analizi, bir program çalıştırılmadan önce kaynak kodu inceleyerek hata ayıklama yöntemidir. Bir kodu belirli kodlama kurallarına karşı analiz ederek yapılır. Bu tür bir analiz, kaynak kodunda güvenlik açıklarına yol açabilecek zayıflıkları giderir. – Statik kod analizi, iş mantığının anlaşılmasını sağlar, hardcoded secret’ları veya IP ve kimlik bilgilerini(erişim vb.) bulmaya yardımcı olur. • Dynamic Analysis – Dinamik program analizi olarak da bilinen dinamik analiz, bir programın veya teknolojinin gerçek zamanlı(realtime) verileri kullanarak değerlendirilmesidir. Kodu offline’a çekmek yerine, güvenlik açıkları ve program davranışı, program halihazırda çalışıyorken izlenebilir ve gerçek dünyadaki davranışı sağlanıp/simüle edilerek güvenlik analizi yapılabilir. – İstemci ve sunucu arasındaki gerçek zamanlı(realtime) veri alışverişini izlemek, hassas verilerin akış halinde olup olmadığını belirlemek, zayıf endpoint’leri belirlemek gibi bir çok sebeple kullanılabilir.
  • 27.
  • 28.
  • 29. Device Testing != App Testing
  • 30. Device Testing != App Testing • Uygulamanın hangi cihaz üzerine kurulduğu… • Cihaz üzerindeki diğer uygulamalar… • Cihazı kimin kullandığı… • Cihazın bağlantı kurduğu yer… • … gibi alanlarda hiç bir müdahalemiz/kontrolümüz yok!
  • 31. Jailbroken/Rooted Device • İşletim sistemine tam erişime sahip cihazlar! • Cihaz UI’ını özelleştirmek! • Malware • Unlocking • Korsanlık • Güvenlik Araştırmaları…
  • 32. Privileged Access • Uygulamanın hangi cihaz üzerine kurulduğu… • Cihaz üzerindeki diğer uygulamalar… • Cihazı kimin kullandığı… • Cihazın bağlantı kurduğu yer… • … gibi alanlarda hiç bir müdahalemiz/kontrolümüz yok!
  • 34. Decompiler, makine seviyesinde/bilgisayar tarafından okunabilir kodu Pseudo kaynak koduna/insan tarafından okunabilir biçime dönüştürmeye yardımcı olan bir bilgisayar programıdır. *Compiler’ın tam tersi.
  • 37. Android Decompilers (Jadx-GUI) Jadx-GUI Dex to Java Decompiler | https://github.com/skylot/jadx
  • 38. Android Decompilers (GDA) GDA GJoy Dex Analyzer | https://github.com/charles2gan/GDA-android-reversing-Tool
  • 39. Android Decompilers (JEB CE) JEB CE JEB CE | https://www.pnfsoftware.com/jeb/community-edition
  • 40. Mobile App Security Testing OWASP MASVS Checklist MSTG
  • 41. Mobile Security Project • Mobile AppSec güvenlik zaafiyetlerine odaklanan kaynak. • MSTG – Mobile Security Testing Guide • MASVS – Mobile App Security Verification Standard
  • 42. OWASP Mobile Top 10 Mobil uygulamalarda karşılaşılan büyük problemler. Mobile App Security Verification Standards - MASVS Mobil Uygulamalar için temel bir güvenlik oluşturun. Mobile Security Testing Guide - MSTG Mobil uygulama güvenlik testi için rehber. Mobile Security Testing Checklist Güvenlik testi için gereksinimler.
  • 43. Penetration Testing Bilgisayar sistemlerinde, ağlarda, web sitelerinde ve uygulamalarda istismar edilebilir güvenlik açıklarını arayan simüle edilmiş siber saldırıların kasıtlı olarak araştırılması/tetiklenmesi/manipüle edilmesini kapsar.
  • 44. 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)
  • 45. Android Penetration Testing • Android sızma testi, bir Android uygulamasındaki güvenlik açıklarını bulma sürecidir. Zayıflıkları aramak, uygulamanın güvenliğini doğrulamak ve güvenlik politikalarına uyduğundan emin olmak için sistematik bir yaklaşımdır. • En temel penetration aşamaları – Recon/Info Gathering – Static Analysis – Dynamic Analysis – Reporting
  • 46. 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 fiziksel bir Android cihaz
  • 48. Android Static Security Analysis • Reverse Engineering • Information Gathering • Repackaging • Resigning an APK • Static Analysis with MobSF • Root Detection and Obfuscation Techniques
  • 49.
  • 50.
  • 51. OWASP Mobile Top 10 • M1 : Improper Platform Usage • M2 : Insecure Data Storage • M3 : Insecure Communication • M4 : Insecure Authentication • M5 : Insufficient Cryptography • M6 : Insecure Authorization • M7 : Client Code Quality • M8 : Code Tampering • M9 : Reverse Engineering • M10 : Extraneous Functionality https://owasp.org/www-project-mobile-top-10/
  • 52.
  • 53. Vulnerable Mobile Apps • InsecureBankv2 – https://github.com/dineshshetty/Android-InsecureBankv2 • DIVA – https://github.com/payatu/diva-android • ya da… – apkmirror.com – apkmonk.com • ya da… Cihazdan Kopyala… – adb shell ‘pm list packages -f’ – adb shell pm path com.example.someapp – adb pull /data/app/com.example.someapp-2.apk – path/to/desired/destination
  • 54. InsecureBankv2 • Insecure Login Mechanism • Hidden Button in the Login Mechanism • Developer Login • Insecure Data Storage • Debug Mode Enabled • Back Up Mode Enabled • Insecure Logging • Root Detection Bypass • Insecure Webview Implementation • Android Pasteboard Vulnerability • Android Keyboard Vulnerability • Insecure HTTP Connections • Parameter Manipulation • User Enumeration
  • 55. DIVA (Damn Insecure and Vulnerable App) • Insecure Login Mechanism • Hardcoding Issues • Insecure Data Storage • Input Validation Issues • Access Control Issues https://github.com/payatu/diva-android https://github.com/tjunxiang92/Android-Vulnerabilities/blob/master/diva-beta.apk
  • 56. tools • adb https://developer.android.com/studio/command-line/adb (Android Debug Bridge) • Burp Suite https://portswigger.net/burp/communitydownload • Genymotion https://www.genymotion.com/ • mLogcat • Frida https://frida.re/ • Jadx github.com/skylot/jadx - https://github.com/skylot/jadx/releases/tag/v1.3.1 • GDA github.com/charles2gan/GDA-android-reversing-tool/releases • JNB https://www.pnfsoftware.com/jeb/communityedition • MobSF https://mobsf.github.io/docs - https://github.com/MobSF/Mobile-Security-Framework-MobSF – Automated Mobile App Assessment Framework (Android/iOS/Windows) – Dynamic, Static, and Malware Analysis • Drozer https://labs.f-secure.com/tools/drozer • QARK github.com/linkedin/qark • JD-GUI http://java-decompiler.github.io/ • Dex2Jar https://github.com/pxb1988/dex2jar • HoneyNet Project redmine.honeynet.org/projects/are/wiki • JEB CE https://www.pnfsoftware.com/jeb/community-edition • Apktool https://ibotpeaches.github.io/Apktool/ • AXMLPrinter2.jar https://github.com/digitalsleuth/AXMLPrinter2 (extract XML manifest)
  • 57. adb • adb devices • adb root • adb shell • adb push • adb pull • adb install
  • 58. Drozer • Android güvenlik değerlendirmeleri için framework. • Android'de çalışan “agent"dan oluşur. • *NIX'te çalışan konsol (Windows'ta çalışabilir, ancak büyük olasılıkla "kötü amaçlı yazılım" olabilir). • TCP üzerinden localhost iletilerek iletişim kurar (port 31415). • Uygulamayı incelemek için çeşitli modüllere sahiptir... • Gerektiğinde uygulamaya çeşitli uyaranlar(situmuli) gönderebilir. • Start Drozer session: – adb forward tcp:31415 tcp:31415 – drozer console connect
  • 59.
  • 60.
  • 61.
  • 62. Android App Penetration Testing Checklist
  • 63.
  • 65.
  • 66. Cihan Özhan Bağlantılar • cihanozhan.com • linkedin.com/in/cihanozhan • medium.com/@cihanozhan • youtube.com/user/OracleAdam • twitter.com/UnmannedCode • github.com/cihanozhan E-Mail • cihan@deeplab.co

Notas del editor

  1. https://technostacks.com/blog/mobile-app-development-frameworks https://mindster.com/mobile-app-development-frameworks/
  2. Andorid 1.0/1.1 Nov. 2007 Android T-Mobile G1 Sep. 2008 Android 1.5 : Cupcake Ryan Gibson, Project Manager at Google April 2009 Android : Donut September 2009 Support for carriers using CDMA-based networks Android : Eclair 2.0/2.1 October 2009 Text-to-speech Live wallpapers Multiple account Google Maps navigation ... Android : Froyo 2.2/2.2.3 May 2010 Features Dalvik Just in Time (JIT) compiler Wi-Fi mobile hotspot Push Notifications via the Android Cloud to Device Messaging (C2DM) Flash Support Android : Gingerbread 2.3/2.3.7 Sep. 2010 Features Near Field Communication (NFC) ... Android : Honeycomob 3.0/3.2 February 2011 Features For tablets and other mobile devices with larger displays. Android : Ice Cream Sandwich 4.0 October 2011 Features "Favorites" on the home screen Unblocking a phone with owner's face Android : Jelly Bean 4.1 June 2012 Features Notification Features Google Chrome Android : Kitkat 4.4 Sep. 2013 Features 512 MB of RAM Android : Lollipop 5.0.1 Fall of 2014 Features Android runtime (ART) Google's new Material Design language Android : Marsmallow 6.0 Fall of 2015 Features Fingerprint Biometric Unlocking USB Type-C Support Google Pay Android : Nougat 7.0 Fall of 2016 Features Vulkan API for faster 3D rendering Android : Oreo 8.0 March 2017 Features Visual changes to the Settings Menu Picture-in-picture mode Notification Channels Autofil APIs Android : Pie 9.0 August 2018 Features Machine Learning to extend battery life Android : android10 10 August 2019 Features New logo and no triditional desserts Android Q New API's Android : android11 11 Sep. 2020 Features Conversations Notification Recording Screen Controlling Smart Home Devices
  3. - The "AndroidManifest.xml" file is in ALL apps. - It is required to: Declare the app name. Declare all components of the app. Includes declaration of all "activities", "broadcast receivers", and "services" Declare permissions the app needs. Declare hardware/software features needed. We always SHOULD look at the MANIFEST!
  4. - Decompiles/deconstructs DEX files into Java source - Can then search through all files with TEXT or Class search. - Search through for things like: - Intent communications method calls. - Dangerous network class use. - SMS Manager use. - Contacts/address book access.
  5. Mobile Security Testing Guide (MSTG) https://owasp.org/www-project-mobile-security-testing-guide/ https://github.com/OWASP/owasp-mstg https://mobile-security.gitbook.io/mobile-security-testing-guide/ (eBook) Mobile AppSec Verification (MASVS) https://mobile-security.gitbook.io/masvs/ …
  6. https://owasp.org/www-project-mobile-top-10/
  7. https://owasp.org/www-project-mobile-top-10
  8. - https://appdevelopermagazine.com/security-brief--protecting-against-the-owasp-mobile-top-10/
  9. github.com/payatu/diva-android https://github.com/tjunxiang92/Android-Vulnerabilities/blob/master/diva-beta.apk