SlideShare a Scribd company logo
1 of 24
Android Application
Security
Murat AYDIN
Güvenlik Neden Önemli?
2
Güvenlik Neden Önemli?
3
Güvenlik Neden Önemli?
4
Güvenlik Neden Önemli?
5
%100 Güvenlik?
6
1992 Yılında Jeff Richards(Güvenlik Uzmanı):
1. Don't buy a computer
2. If you do buy a computer, don't turn it on
2013 Yılında Murat Aydın(Ünlü Düşünür):
1. Don't buy a smart phone
2. If you do buy a smart phone, don't turn it on
Sorular
7
Güvenlik Riski
 Risk=Vulnerability + Threat + Consequences
8
• %100 Güvenlik Mümkün Değil Ama
Daha Güvenli Mümkün
• Riski Azalt
Linux Security Model
 Her kullanıcının UID’si var
 Her grubun GID’si var
 Kullanıcılar Gruplara atanabilir
 Her kaynağın owner,group ve world izinleri
var
 Haklar R,W ve X
9
Android Security Model
10
 Her yüklenen Android paketinin UID’si var
 Uygulamaya ait dosya, veritabanı gibi
kaynaklarda da bu UID kullanılıyor
 Bir uygulama başka bir uygulamanın
kaynaklarına ulaşamıyor
Android Security Model
 Uygulamalar UID paylaşabilir
 Dolayısı ile kaynakları da paylaşabilir
11
 İki uygulama da aynı sertifika ile imzalanmalı
12
Android Security Model
Components can share process or not
OR
Sharing Process
 İki bileşenin process paylaşması kaynak
kullanımını azaltmak için kullanılabilir
 Farklı process kullanması, biri göçtüğünde ya da
kapatıldığında diğerinin devam etmesi
sağlanabilir
13
Android File System
14
 Aynı UID’ye sahip uygulamalar dosya
paylaşabilir
 Root olan birisi tüm kaynaklara
ulaşabilir, uygulamanızın dosyalarını
encrypt edin
 Harici depolamada linux izinleri geçerli
değil, uygulamanızın dosyalarını encrypt
edin
 Geliştirici dosyaların izin haklarını
değiştirebilir, dikkatli değiştirin
Application Permissions
 Uygulamanızın kullandığı izinleri Manifest
dosyasına yazılır
 Uygulama Manifest dosyasına yazmadığı
izinleri kullanamaz
 Kullanıcı uygulamayı yüklemeden önce
istediği izinleri görür
 Hacker bir uygulamayı hacklese de
uygulamanın izinleri dışında bir yere
erişemez
 Mümkün olduğunca az izin kullanın
15
Security Tips
16
 Kaynaklara izin verirken cimri davranın
 İzin vermek kolaydır, geri almak zordur
 Dosyalara MODE_WORLD_WRITEABLE izin
hakkı vermeyin
 Başka uygulamalarla veri paylaşmak
istiyorsanız bir content provider kullanın
 Root yetkisine karşı verileri şifreleyin
Security Tips
17
 Harici depolama yazma ve okumaya karşı
korumasız
 Harici depolamada önemli veri tutmayınız
 Tutuyorsanız şifreleyerek tutun
 Harici depolamadaki verileri kullanırken
input validation yapın çünkü dışarıdan
değiştirilebilir
Security Tips
18
 Mümkün olduğunca az izin alın
 Önemli ve tehlikeli izinleri almamaya
çalışın
 WebView kullanırken javascript ihtiyacınız
yoksa setJavaScriptEnabled() metodunu
çağırmayın, javascript injection
engellenmiş olur
 WebView önemli bilgilere erişiyorsa
clearCache() metodunu çağırarak
kaydedilen bilgileri temizleyin
Security Tips
19
 Önemli ve kişisel verileri saklarken
şifreleyerek saklayın
 Eğer önemli veriler internet üzerinden
aktarılıyorsa HttpsURLConnection veya
SSLSocket metodlarını kullanın
Security Tips
20
 Intent filter kullanıyorsanız servisler
varsayılan olarak dışarı açıktır
 Kullanmıyorsanız android:exported özelliği
ile dışarı açabilir ya da kapatabilirizsiniz
 Servisinizin dışarı açık olup olmaması
gerektiğine karar verip buna göre bu
özellikleri kullanın
 android:permission özelliği ile servislerinizi
dışarı karşı koruyabilirsiniz
Security Tips
21
 Android NDK yerine Android SDK’da
geliştirme yapın çünkü
1. Android NDK daha karmaşık
2. Android NDK daha az taşınabilir
3. Buffer overflow’a sebep olabilecek
memory hatalarına daha çok açık
22
Security Tips
 Dinamik kod yüklemeyin çünkü
1. Uygulamanız ile aynı haklara sahip olur
2. Code injection’a imkan vermiş olursunuz
 Özellikle güvenli olmayan
ortamlardan, şifrelenmemiş olarak dinamik
kod yüklemeyin
23
Tool:Mercury
 Mercury is a framework for exploring the
Android platform; to find vulnerabilities
and share proof-of-concept exploits
 Mercury allows you to assume the role of
a low-privileged Android app, and to
interact with both other apps and the
system.
 Interact with the 4 IPC endpoints -
activities, broadcast receivers, content
providers and services
Sorular
24

More Related Content

Similar to Android app security

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
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriPRISMA CSI
 
Android Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
Android Zararlı Yazılım Analizi ve Güvenlik YaklaşımlarıAndroid Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
Android Zararlı Yazılım Analizi ve Güvenlik YaklaşımlarıBGA Cyber Security
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...Siber Güvenlik Derneği
 
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıAndroid Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıTalha Kabakus
 
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Kamuran Özkan
 
Güvenli İstemci Yönetim Sistemi
Güvenli İstemci Yönetim SistemiGüvenli İstemci Yönetim Sistemi
Güvenli İstemci Yönetim Sistemiergün elvan bilsel
 
Information security Bilgi Guvenligi
Information security Bilgi GuvenligiInformation security Bilgi Guvenligi
Information security Bilgi GuvenligiBilal Dursun
 
Web Tarayıcılarının Evrimi
Web Tarayıcılarının EvrimiWeb Tarayıcılarının Evrimi
Web Tarayıcılarının EvrimiFerruh Mavituna
 
Veritas Vision Solution Day 2020, Istanbul, Turkey
Veritas Vision Solution Day 2020, Istanbul, TurkeyVeritas Vision Solution Day 2020, Istanbul, Turkey
Veritas Vision Solution Day 2020, Istanbul, TurkeyVeritas Technologies LLC
 
Gazeteciler İçin Hacker Kültürü ve Bilgi Güvenliği
Gazeteciler İçin Hacker Kültürü ve Bilgi GüvenliğiGazeteciler İçin Hacker Kültürü ve Bilgi Güvenliği
Gazeteciler İçin Hacker Kültürü ve Bilgi GüvenliğiAhmet A. Sabancı
 
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdf
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdfSizce Kontroller ile kastedilen nedir Target veri ihlalin.pdf
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdfcontact32
 

Similar to Android app security (16)

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
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
 
Android Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
Android Zararlı Yazılım Analizi ve Güvenlik YaklaşımlarıAndroid Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
Android Zararlı Yazılım Analizi ve Güvenlik Yaklaşımları
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...
Mobil Uygulamalarda Avcılık - Nebi Şenol Yılmaz #SiberGuvenlikKonferansi 14.0...
 
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit MekanizmalarıAndroid Kötücül Yazılım (Malware) Tespit Mekanizmaları
Android Kötücül Yazılım (Malware) Tespit Mekanizmaları
 
Bluetooth Security
Bluetooth SecurityBluetooth Security
Bluetooth Security
 
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
Bi̇li̇şi̇m Si̇stemleri̇nde Güvenli̇k Sorunları ve Önlemleri̇
 
Güvenli İstemci Yönetim Sistemi
Güvenli İstemci Yönetim SistemiGüvenli İstemci Yönetim Sistemi
Güvenli İstemci Yönetim Sistemi
 
Information security Bilgi Guvenligi
Information security Bilgi GuvenligiInformation security Bilgi Guvenligi
Information security Bilgi Guvenligi
 
Web Tarayıcılarının Evrimi
Web Tarayıcılarının EvrimiWeb Tarayıcılarının Evrimi
Web Tarayıcılarının Evrimi
 
Veritas Vision Solution Day 2020, Istanbul, Turkey
Veritas Vision Solution Day 2020, Istanbul, TurkeyVeritas Vision Solution Day 2020, Istanbul, Turkey
Veritas Vision Solution Day 2020, Istanbul, Turkey
 
Erofflps
ErofflpsErofflps
Erofflps
 
Gazeteciler İçin Hacker Kültürü ve Bilgi Güvenliği
Gazeteciler İçin Hacker Kültürü ve Bilgi GüvenliğiGazeteciler İçin Hacker Kültürü ve Bilgi Güvenliği
Gazeteciler İçin Hacker Kültürü ve Bilgi Güvenliği
 
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdf
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdfSizce Kontroller ile kastedilen nedir Target veri ihlalin.pdf
Sizce Kontroller ile kastedilen nedir Target veri ihlalin.pdf
 
SİBER GÜVENLİK
SİBER GÜVENLİKSİBER GÜVENLİK
SİBER GÜVENLİK
 

Android app security

  • 6. %100 Güvenlik? 6 1992 Yılında Jeff Richards(Güvenlik Uzmanı): 1. Don't buy a computer 2. If you do buy a computer, don't turn it on 2013 Yılında Murat Aydın(Ünlü Düşünür): 1. Don't buy a smart phone 2. If you do buy a smart phone, don't turn it on
  • 8. Güvenlik Riski  Risk=Vulnerability + Threat + Consequences 8 • %100 Güvenlik Mümkün Değil Ama Daha Güvenli Mümkün • Riski Azalt
  • 9. Linux Security Model  Her kullanıcının UID’si var  Her grubun GID’si var  Kullanıcılar Gruplara atanabilir  Her kaynağın owner,group ve world izinleri var  Haklar R,W ve X 9
  • 10. Android Security Model 10  Her yüklenen Android paketinin UID’si var  Uygulamaya ait dosya, veritabanı gibi kaynaklarda da bu UID kullanılıyor  Bir uygulama başka bir uygulamanın kaynaklarına ulaşamıyor
  • 11. Android Security Model  Uygulamalar UID paylaşabilir  Dolayısı ile kaynakları da paylaşabilir 11  İki uygulama da aynı sertifika ile imzalanmalı
  • 12. 12 Android Security Model Components can share process or not OR
  • 13. Sharing Process  İki bileşenin process paylaşması kaynak kullanımını azaltmak için kullanılabilir  Farklı process kullanması, biri göçtüğünde ya da kapatıldığında diğerinin devam etmesi sağlanabilir 13
  • 14. Android File System 14  Aynı UID’ye sahip uygulamalar dosya paylaşabilir  Root olan birisi tüm kaynaklara ulaşabilir, uygulamanızın dosyalarını encrypt edin  Harici depolamada linux izinleri geçerli değil, uygulamanızın dosyalarını encrypt edin  Geliştirici dosyaların izin haklarını değiştirebilir, dikkatli değiştirin
  • 15. Application Permissions  Uygulamanızın kullandığı izinleri Manifest dosyasına yazılır  Uygulama Manifest dosyasına yazmadığı izinleri kullanamaz  Kullanıcı uygulamayı yüklemeden önce istediği izinleri görür  Hacker bir uygulamayı hacklese de uygulamanın izinleri dışında bir yere erişemez  Mümkün olduğunca az izin kullanın 15
  • 16. Security Tips 16  Kaynaklara izin verirken cimri davranın  İzin vermek kolaydır, geri almak zordur  Dosyalara MODE_WORLD_WRITEABLE izin hakkı vermeyin  Başka uygulamalarla veri paylaşmak istiyorsanız bir content provider kullanın  Root yetkisine karşı verileri şifreleyin
  • 17. Security Tips 17  Harici depolama yazma ve okumaya karşı korumasız  Harici depolamada önemli veri tutmayınız  Tutuyorsanız şifreleyerek tutun  Harici depolamadaki verileri kullanırken input validation yapın çünkü dışarıdan değiştirilebilir
  • 18. Security Tips 18  Mümkün olduğunca az izin alın  Önemli ve tehlikeli izinleri almamaya çalışın  WebView kullanırken javascript ihtiyacınız yoksa setJavaScriptEnabled() metodunu çağırmayın, javascript injection engellenmiş olur  WebView önemli bilgilere erişiyorsa clearCache() metodunu çağırarak kaydedilen bilgileri temizleyin
  • 19. Security Tips 19  Önemli ve kişisel verileri saklarken şifreleyerek saklayın  Eğer önemli veriler internet üzerinden aktarılıyorsa HttpsURLConnection veya SSLSocket metodlarını kullanın
  • 20. Security Tips 20  Intent filter kullanıyorsanız servisler varsayılan olarak dışarı açıktır  Kullanmıyorsanız android:exported özelliği ile dışarı açabilir ya da kapatabilirizsiniz  Servisinizin dışarı açık olup olmaması gerektiğine karar verip buna göre bu özellikleri kullanın  android:permission özelliği ile servislerinizi dışarı karşı koruyabilirsiniz
  • 21. Security Tips 21  Android NDK yerine Android SDK’da geliştirme yapın çünkü 1. Android NDK daha karmaşık 2. Android NDK daha az taşınabilir 3. Buffer overflow’a sebep olabilecek memory hatalarına daha çok açık
  • 22. 22 Security Tips  Dinamik kod yüklemeyin çünkü 1. Uygulamanız ile aynı haklara sahip olur 2. Code injection’a imkan vermiş olursunuz  Özellikle güvenli olmayan ortamlardan, şifrelenmemiş olarak dinamik kod yüklemeyin
  • 23. 23 Tool:Mercury  Mercury is a framework for exploring the Android platform; to find vulnerabilities and share proof-of-concept exploits  Mercury allows you to assume the role of a low-privileged Android app, and to interact with both other apps and the system.  Interact with the 4 IPC endpoints - activities, broadcast receivers, content providers and services