SlideShare a Scribd company logo
1 of 19
Download to read offline
iOS Güvenlik Mekanizmaları
Code Signing, ASLR, DEP, Sanboxing, iOS Data Protection API…
# UNISIPSiberGüvenlikSempzyumu’14
!
@OguzhanTopgul
# whoami
Oğuzhan Topgül
Uzman Araştırmacı @Siber Güvenlik Enstitüsü
• Mobil Güvenlik
• Mobil Zaralı Yazılımlar
• Web Güvenliği
OWASP-Türkiye - webguvenligi.org
BGK - bilgiguvenligi.gov.tr
Blog - oguzhantopgul.com
iOS Kullanıcı Kısıtlaması
En temelde 2 kullanıcı var:
• root: iOS kernel user ve kernel daemon’ları
• mobile: Kullanıcının çalıştırdığı tüm uygulamalar, bazı
temel uygulamalar (SMS, Phone) ve diğer tüm işlemler
Code Signing
Tüm kütüphane ve binary’ler
Kod parçaları,
HTML dosyaları, resimler, plist dosyaları vs.
Apple tarafından veya Apple Authorized bir sertifika ile imzalanıyor.
JailBreak yapınca Code Signing devre dışı kalıyor.
Data Execution Prevention
DEP
Bellekte çalıştırılabilir kod ve data birbirinden ayrılıyor.X
DEP bypass için: Return Oriented Programming - ROP
ROP: Halihazırdaki kod parçalarının tekrar kullanılarak
olağan dışı ve işlemler yapılması. (Reusing code snippets)
Bu sayede istenmeyen kötü amaçlı işlemler yaptırılabilir.
Address Space Layout
Randomization - ASLR
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.
Memory Leak’ler ASLR bypass için kritik öneme sahip.
SandBoxing
Kullanıcı Hakları kontrolüne ek güvenlik katmanı
Aynı user haklarıyla çalışsalar dahi, her uygulama kendi
sandbox’ında.
SMS App ve Web Browser App: mobile
• SMS, browser cookie’sine erişemez.
• Browser, sms gönderemez.
Uygulamalar aynı hakla çalışıyor: Sandbox’un doğru çalışması gerek
iOS Güvenliği
CODE SIGNING
DEP
SANDBOX
ASLR
ROP ILE KOD CALISTIR
DRM koruması
DRM: Digital Rigths Management
Apple DRM = FairPlay
Apple Store’dan indirilen uygulamalar iTunes hesabı ile şifreleniyor.
İki farklı hesaptan aynı uygulamayı indirip kurabilirsin.
Uygulama binary’si Master Key ile şifrelenir.
Master Key, bir random key ile şifrelenir.
Random key iTunes hesabı ile ilişkilendirilip Appe Sunucularından tutulur.
Herhangi bir cihazda iTunes hesabı aktive edildiğinde bütün key’ler AppleStore uygulamasına
gönderilir.
Uygulama binary’si cihazda DRM encrypted tutulur. Statik analiz için DRM encryption’un decrypt
edilmesi gerekiyor.
iOS Data Protection API
Dosya Sistemi Koruması
Hangi dosya ve Keychain elemanları hassas
Hassas elemanlar hangi durumda erişilebilir.
File Key: Dosyanın şifrelendiği anahtar.
Class Key: File Key’i şifreleyen Anahtar
File System Key: Dosya sistemini şifreleyen anahtar
iOS Data Protection API
Dosya Sistemi Koruması
UID: Cihaza özel bir numara. Direk olarak erişilemez.
User Passcode: Kullanıcının device lock parolası
File System Key: Cihaz ilk kurulduğunda veya wipe edildiğinde yeniden
oluşturulur.
iOS Data Protection API
Dosya Sistemi Koruması
Bir dosya oluşturulduğunda bir protection class ile
ilişkilendirilir:
NSFileProtectionComplete:
Şifre girildiğinde Class Key belleğe alınır. Tekrar lock edildiğinde bellekten
silinir.

!
NSFileProtectionCompleteUntilFirstUserAuthentication:
Şifre girildiğinde Class Key belleğe alınır.Cihaz yeniden başlayana kadar
bellekte kalır.

!
NSFileProtectionNone:
Class Key sadece UID değerinden üretilir.
Keychain: Parola ve sertifika gibi hassas verilerin tutulduğu bir sqlite veritabanı.
Keychain dosya sisteminde NSFileProtectionNone tipinde.
Keychain güvenliği Keychain Protection Class’lar ile sağlanır.
Her uygulamanın bir app id’si ve Keychain Access grubu var.
Her uygulama kendi id’sinin erişim izni olan elemanlara erişebilir.
Aynı Keychain Access Gruba ait uygulamalar birbirlerinin Keychain elemanlarına
erişebilir. (Aynı developera ait app’ler)
XXXThisDeviceOnly : UID + Parola
iOS Data Protection API
Keychain Koruması
iOS Data Protection API
Keychain Koruması
JailBreak
Tüm disk partitionlarına w+x hakkı vermek (iOS7 ??)
AFC ile / dizinine erişim hakkı vermek
Code Signing’i devre dışı bırakmak
Shell ve gerekli araçları, programları yüklemek
APR (/usr/lib)
APT 0.7 (apt-key)
APT 0.7 Strict (lib)
Base Structure
Big Boss Icon Set
Bourne-Again SHell
bzip2
Core Utilities (/bin)
evasi0n 6.0-6.1.2 Untether
Cydia Installer
Cydia Translations
Darwin Tools
Debian Packager
Debian Utilities
Tape Archive
UI Kit Tools
Diff Utilities
Find Utilities
GNU Privacy Guard
grep
gzip
LZMA Utils
New Curses
PAM (Apple)
PAM Modules
pcre
Profile Directory
readline
sed
shell-cmds
system-cmds
iOS Zararlı Yazılımlar
2009 2014
Unflod Baby Panda
Kitaplar ve Kaynaklar
http://images.apple.com/ipad/business/docs/iOS_Security_Feb14.pdf
http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123
http://www.amazon.com/Hacking-Securing-iOS-Applications-Hijacking/dp/1449318746
http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651
Teşekkürler…
OWASP Türkiye Sponsorları

More Related Content

Similar to iOS Güvenlik Mekanizmaları - UNISIP Siber Güvenlik Sempozyumu 2014

Devfest istanbul'14 web app security and framework
Devfest istanbul'14   web app security and framework Devfest istanbul'14   web app security and framework
Devfest istanbul'14 web app security and framework Mehmet Ince
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması Ertugrul Akbas
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...OWASP Turkiye
 
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
 
Bi̇li̇şi̇m Teknolojileri ve Yazılım
Bi̇li̇şi̇m Teknolojileri ve YazılımBi̇li̇şi̇m Teknolojileri ve Yazılım
Bi̇li̇şi̇m Teknolojileri ve YazılımBiliimyazlm
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
SecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekSecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekFurkan Çalışkan
 
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
 
Jetico personal firewall 2
Jetico personal firewall 2Jetico personal firewall 2
Jetico personal firewall 2Mutlu
 
Ransomware Nedir, Nasıl Korunulur?
Ransomware Nedir, Nasıl Korunulur?Ransomware Nedir, Nasıl Korunulur?
Ransomware Nedir, Nasıl Korunulur?Ibrahim Akgul
 
Zigbee Standardinda Guvenlik
Zigbee Standardinda GuvenlikZigbee Standardinda Guvenlik
Zigbee Standardinda Guvenlikeroglu
 
Halil Öztürkçi - Dijital iz sürme sanatı adli bilişim
Halil Öztürkçi - Dijital iz sürme sanatı   adli bilişimHalil Öztürkçi - Dijital iz sürme sanatı   adli bilişim
Halil Öztürkçi - Dijital iz sürme sanatı adli bilişimKasım Erkan
 
Ağ tabanlı Saldırı Tespit Sistemleri
Ağ tabanlı Saldırı Tespit SistemleriAğ tabanlı Saldırı Tespit Sistemleri
Ağ tabanlı Saldırı Tespit Sistemleriosmncht
 
Ağ Tabanlı Saldırı Tespit Sistemleri
Ağ Tabanlı Saldırı Tespit SistemleriAğ Tabanlı Saldırı Tespit Sistemleri
Ağ Tabanlı Saldırı Tespit SistemleriCihat Işık
 
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
 
Devfest istanbul'14 - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14  - Web Application Attacks and Trusting FrameworksDevfest istanbul'14  - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14 - Web Application Attacks and Trusting FrameworksMehmet Ince
 

Similar to iOS Güvenlik Mekanizmaları - UNISIP Siber Güvenlik Sempozyumu 2014 (18)

Devfest istanbul'14 web app security and framework
Devfest istanbul'14   web app security and framework Devfest istanbul'14   web app security and framework
Devfest istanbul'14 web app security and framework
 
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması SIEM ve KVKK Teknik Tedbirlerinin  ANET SureLog SIEM  ile uygulanması
SIEM ve KVKK Teknik Tedbirlerinin ANET SureLog SIEM ile uygulanması
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
 
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ı
 
Bi̇li̇şi̇m Teknolojileri ve Yazılım
Bi̇li̇şi̇m Teknolojileri ve YazılımBi̇li̇şi̇m Teknolojileri ve Yazılım
Bi̇li̇şi̇m Teknolojileri ve Yazılım
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
SecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemekSecurityOnion ile Ağ güvenliğini İzlemek
SecurityOnion ile Ağ güvenliğini İzlemek
 
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)
 
Jetico personal firewall 2
Jetico personal firewall 2Jetico personal firewall 2
Jetico personal firewall 2
 
Ransomware Nedir, Nasıl Korunulur?
Ransomware Nedir, Nasıl Korunulur?Ransomware Nedir, Nasıl Korunulur?
Ransomware Nedir, Nasıl Korunulur?
 
Ossec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit SistemiOssec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit Sistemi
 
Zigbee Standardinda Guvenlik
Zigbee Standardinda GuvenlikZigbee Standardinda Guvenlik
Zigbee Standardinda Guvenlik
 
Internet.ppt_4
Internet.ppt_4Internet.ppt_4
Internet.ppt_4
 
Halil Öztürkçi - Dijital iz sürme sanatı adli bilişim
Halil Öztürkçi - Dijital iz sürme sanatı   adli bilişimHalil Öztürkçi - Dijital iz sürme sanatı   adli bilişim
Halil Öztürkçi - Dijital iz sürme sanatı adli bilişim
 
Ağ tabanlı Saldırı Tespit Sistemleri
Ağ tabanlı Saldırı Tespit SistemleriAğ tabanlı Saldırı Tespit Sistemleri
Ağ tabanlı Saldırı Tespit Sistemleri
 
Ağ Tabanlı Saldırı Tespit Sistemleri
Ağ Tabanlı Saldırı Tespit SistemleriAğ Tabanlı Saldırı Tespit Sistemleri
Ağ Tabanlı Saldırı Tespit Sistemleri
 
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
 
Devfest istanbul'14 - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14  - Web Application Attacks and Trusting FrameworksDevfest istanbul'14  - Web Application Attacks and Trusting Frameworks
Devfest istanbul'14 - Web Application Attacks and Trusting Frameworks
 

iOS Güvenlik Mekanizmaları - UNISIP Siber Güvenlik Sempozyumu 2014

  • 1. iOS Güvenlik Mekanizmaları Code Signing, ASLR, DEP, Sanboxing, iOS Data Protection API… # UNISIPSiberGüvenlikSempzyumu’14 ! @OguzhanTopgul
  • 2. # whoami Oğuzhan Topgül Uzman Araştırmacı @Siber Güvenlik Enstitüsü • Mobil Güvenlik • Mobil Zaralı Yazılımlar • Web Güvenliği OWASP-Türkiye - webguvenligi.org BGK - bilgiguvenligi.gov.tr Blog - oguzhantopgul.com
  • 3. iOS Kullanıcı Kısıtlaması En temelde 2 kullanıcı var: • root: iOS kernel user ve kernel daemon’ları • mobile: Kullanıcının çalıştırdığı tüm uygulamalar, bazı temel uygulamalar (SMS, Phone) ve diğer tüm işlemler
  • 4. Code Signing Tüm kütüphane ve binary’ler Kod parçaları, HTML dosyaları, resimler, plist dosyaları vs. Apple tarafından veya Apple Authorized bir sertifika ile imzalanıyor. JailBreak yapınca Code Signing devre dışı kalıyor.
  • 5. Data Execution Prevention DEP Bellekte çalıştırılabilir kod ve data birbirinden ayrılıyor.X DEP bypass için: Return Oriented Programming - ROP ROP: Halihazırdaki kod parçalarının tekrar kullanılarak olağan dışı ve işlemler yapılması. (Reusing code snippets) Bu sayede istenmeyen kötü amaçlı işlemler yaptırılabilir.
  • 6. Address Space Layout Randomization - ASLR 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. Memory Leak’ler ASLR bypass için kritik öneme sahip.
  • 7. SandBoxing Kullanıcı Hakları kontrolüne ek güvenlik katmanı Aynı user haklarıyla çalışsalar dahi, her uygulama kendi sandbox’ında. SMS App ve Web Browser App: mobile • SMS, browser cookie’sine erişemez. • Browser, sms gönderemez. Uygulamalar aynı hakla çalışıyor: Sandbox’un doğru çalışması gerek
  • 9. DRM koruması DRM: Digital Rigths Management Apple DRM = FairPlay Apple Store’dan indirilen uygulamalar iTunes hesabı ile şifreleniyor. İki farklı hesaptan aynı uygulamayı indirip kurabilirsin. Uygulama binary’si Master Key ile şifrelenir. Master Key, bir random key ile şifrelenir. Random key iTunes hesabı ile ilişkilendirilip Appe Sunucularından tutulur. Herhangi bir cihazda iTunes hesabı aktive edildiğinde bütün key’ler AppleStore uygulamasına gönderilir. Uygulama binary’si cihazda DRM encrypted tutulur. Statik analiz için DRM encryption’un decrypt edilmesi gerekiyor.
  • 10. iOS Data Protection API Dosya Sistemi Koruması Hangi dosya ve Keychain elemanları hassas Hassas elemanlar hangi durumda erişilebilir. File Key: Dosyanın şifrelendiği anahtar. Class Key: File Key’i şifreleyen Anahtar File System Key: Dosya sistemini şifreleyen anahtar
  • 11. iOS Data Protection API Dosya Sistemi Koruması UID: Cihaza özel bir numara. Direk olarak erişilemez. User Passcode: Kullanıcının device lock parolası File System Key: Cihaz ilk kurulduğunda veya wipe edildiğinde yeniden oluşturulur.
  • 12. iOS Data Protection API Dosya Sistemi Koruması Bir dosya oluşturulduğunda bir protection class ile ilişkilendirilir: NSFileProtectionComplete: Şifre girildiğinde Class Key belleğe alınır. Tekrar lock edildiğinde bellekten silinir. ! NSFileProtectionCompleteUntilFirstUserAuthentication: Şifre girildiğinde Class Key belleğe alınır.Cihaz yeniden başlayana kadar bellekte kalır. ! NSFileProtectionNone: Class Key sadece UID değerinden üretilir.
  • 13. Keychain: Parola ve sertifika gibi hassas verilerin tutulduğu bir sqlite veritabanı. Keychain dosya sisteminde NSFileProtectionNone tipinde. Keychain güvenliği Keychain Protection Class’lar ile sağlanır. Her uygulamanın bir app id’si ve Keychain Access grubu var. Her uygulama kendi id’sinin erişim izni olan elemanlara erişebilir. Aynı Keychain Access Gruba ait uygulamalar birbirlerinin Keychain elemanlarına erişebilir. (Aynı developera ait app’ler) XXXThisDeviceOnly : UID + Parola iOS Data Protection API Keychain Koruması
  • 14. iOS Data Protection API Keychain Koruması
  • 15. JailBreak Tüm disk partitionlarına w+x hakkı vermek (iOS7 ??) AFC ile / dizinine erişim hakkı vermek Code Signing’i devre dışı bırakmak Shell ve gerekli araçları, programları yüklemek APR (/usr/lib) APT 0.7 (apt-key) APT 0.7 Strict (lib) Base Structure Big Boss Icon Set Bourne-Again SHell bzip2 Core Utilities (/bin) evasi0n 6.0-6.1.2 Untether Cydia Installer Cydia Translations Darwin Tools Debian Packager Debian Utilities Tape Archive UI Kit Tools Diff Utilities Find Utilities GNU Privacy Guard grep gzip LZMA Utils New Curses PAM (Apple) PAM Modules pcre Profile Directory readline sed shell-cmds system-cmds