SlideShare a Scribd company logo
T.C.
BEYKENT ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI
BİLGİSAYAR MÜHENDİSLİĞİ BİLİM DALI
MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK
( Yüksek Lisans Projesi )
Projeyi Hazırlayan:
Fuat SAVAŞ
İSTANBUL, 2015
T.C.
BEYKENT ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI
BİLGİSAYAR MÜHENDİSLİĞİ BİLİM DALI
MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK
( Yüksek Lisans Projesi )
Projeyi Hazırlayan:
Fuat SAVAŞ
Öğrenci No:
110820031
Danışman:
Yrd. Doç. Dr. Ediz ŞAYKOL
İSTANBUL, 2015
YEMİN METNİ
Yüksek lisans projesi olarak sunduğum “ Mobil İşletim Sistemlerinde Güvenlik ”
başlıklı bu çalışmanın, bilimsel ahlak ve geleneklere uygun şekilde tarafımdan
yazıldığını, yararlandığım eserlerin tamamının kaynaklarda gösterildiğini ve
çalışmamın içinde kullanıldıkları her yerde bunlara atıf yapıldığını belirtir ve bunu
onurumla doğrularım. ( 29.01.2015 )
Fuat SAVAŞ
TEŞEKKÜR
Proje çalışmalarım esnasında bana yardımcı olan proje danışmanım Beykent
Üniversitesi Yrd. Doç. Dr. Ediz ŞAYKOL'a ve manevi desteğini üzerimden hiç eksik
etmeyen rahmetli validem Ayşe SAVAŞ hanımefendiye teşekkür ederim.
Fuat SAVAŞ
I
MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK
Projeyi Hazırlayan: Fuat SAVAŞ
ÖZET
Türkiye'de mobil cihaz kullanımının her geçen gün yaygınlaşmasıyla birlikte
kullanıcılar tıpkı masaüstü ve dizüstü bilgisayarlarda olduğu gibi mobil cihazlarda da
artık belli başlı özellikler aramaktadırlar. Bunlar; işletim sistemi, tasarım, alışkanlık
ve diğer teknik özelliklere göre değişmektedir. Fakat mesleki sebepler dışında
güvenlik konusunu umursayan pek kimse yok ne yazık ki.
Oysa Mobil uygulama geliştiricisi Lookout'un yayınladığı "2013 Mobil Güvenlik
Öngörüleri" başlıklı raporda web tabanlı mobil tehditler, 2013 yılı içinde
kullanıcıların en çok dikkat etmesi gereken tehditler arasında başta yer almaktadır.
Ortada yeterince kimsenin farkında olmadığı çok ciddi bir güvenlik riski
bulunmaktadır. Burada önemli olan henüz yeni gelişmekte olan bu mobil hacking
karşısında önlem almaktır.
Mobil cihazların hacklenmesiyle birlikte bilgisayarlardan farklı olarak telefon
rehberimiz, mesajlarımız, sosyal medya bilgilerimiz, mobil uygulamalardaki
verilerimizde tamamen kötü niyetli kişilerin eline geçebilecek. Bu muhtemel
sorunları telefonları kullanım amaçlarına göre çeşitlendirebiliriz.
Anahtar Kelimeler: Android, IOS, API, Sandbox, Linux.
II
SECURITY ON MOBILE OPERATING SYSTEMS
Prepared by Fuat SAVAŞ
ABSTRACT
Users demand some special features from mobile devices as in laptop and desktop
computers in line with gradually increasing usage of them. Those features vary
according to operating systems, designs, habits and other technical specialities.
However, nobody unfortunately cares about security issues except occupational
reasons. In fact, web based mobile threats comes first within the most noticable ones
indicated by the “Mobile Security Projections” report which has been published by
Lookout, mobile application developer.
There is a very important security risk outstanding that nobody be aware of. The
most important point is here to take measures against this newly developing mobile
hacking.
With the mobile hacking, unlike in computers, bad persons will be able to get our
telephone books, messages, social media user infos and our dats in mobile
applications. We can categorize those potential problems in terms of our aims to use
mobile devices.
Key Words: Android, IOS, API, Sandbox, Linux
III
İÇİNDEKİLER
ÖZET .......................................................................................................................... I
ABSTRACT ............................................................................................................. II
ŞEKİLLER LİSTESİ............................................................................................ VII
KISALTMALAR LİSTESİ ................................................................................ VIII
1. GİRİŞ ...................................................................................................................... 1
2. IOS GÜVENLİK.................................................................................................... 1
2.1. SİSTEM MİMARİSİ ..................................................................................... 2
2.1.1. GÜVENLİK ÖNYÜKLEME ZİNCİRİ .................................................. 2
2.1.2. SİSTEM YAZILIMI KİŞİSELLEŞTİRME............................................. 3
2.1.3. UYGULAMA KOD İMZALAMA ......................................................... 4
2.1.4. ÇALIŞMA ZAMANI İŞLEM GÜVENLİĞİ .......................................... 5
2.2. AĞ GÜVENLİĞİ ........................................................................................... 7
2.2.1. SSL, TSL ................................................................................................. 7
2.2.2. VPN ......................................................................................................... 7
2.2.3. WI - FI ..................................................................................................... 8
2.2.4. BLUETOOTH ......................................................................................... 8
2.3. VERİ KORUMA VE ŞİFRELEME............................................................. 9
2.3.1. DONANIM VE GÜVENLİK ÖZELLİKLERİ........................................ 9
2.3.2. DOSYA VERİLERİNİ KORUMA........................................................ 10
2.3.3. GEÇİŞ KODLARI ................................................................................. 11
2.3.4. ANAHTARLIK VERİ KORUMA ........................................................ 14
2.3.5. KEYBAGS ........................................................................................... 16
2.4. CİHAZ ERİŞİMİ ......................................................................................... 18
2.4.1. GEÇİŞ KODU KORUMASI ................................................................. 18
IV
2.4.2. YAPILANDIRMA UYGULAMA ........................................................ 19
2.4.3. MOBİL CİHAZ YÖNETİMİ ................................................................. 20
2.4.4. APPLE YAPILANDIRICISI ................................................................. 21
2.4.5. CİHAZ KISITLAMALARI ................................................................... 21
2.4.6. UZAKTAN SİLME ............................................................................... 22
3. ANDROID GÜVENLİK................................................................................. 23
3.1. GİRİŞ ....................................................................................................... 23
3.1.1. ANDROID GÜVENLİK GENEL BAKIŞ ....................................... 23
3.1.2. ANDROID GÜVENLİK MİMARİSİ................................................ 25
3.2. SİSTEM VE ÇEKİRDEK GÜVENLİK DÜZEYİ................................ 26
3.2.1. LINUX GÜVENLİK.......................................................................... 26
3.2.2. APPLICATION SANDBOX ............................................................. 27
3.2.3. SİSTEM BÖLÜMÜ VE GÜVENLİ MOD ....................................... 28
3.2.4. DOSYA SİSTEMİ İZİNLERİ ........................................................... 28
3.2.5. ŞİFRELEME ..................................................................................... 29
3.2.6. BELLEK YÖNETİMİ GÜVENLİK GELİŞTİRMELERİ ................ 29
3.2.7. CİHAZLARIN KÖKLEŞMESİ ........................................................ 32
3.2.8. KULLANICI GÜVENLİK ÖZELLİKLERİ ..................................... 33
3.2.8.1. DOSYA SİSTEMİ ŞİFRELEME ................................................ 33
3.2.8.2. PAROLA KORUMASI ............................................................... 34
3.2.8.3. CİHAZ YÖNETİMİ .................................................................... 34
3.3. ANDROID UYGULAMA GÜVENLİĞİ ................................................ 35
3.3.1. UYGULAMANIN UNSURLARI ....................................................... 35
3.3.2. ANDROID İZİN MODELİ: ERİŞİM KORUMALI API' LER .......... 36
3.3.3. KULLANICILAR 3.PARTİ UYGULAMALARI NASIL ANLAR ... 38
3.3.4. İŞLEMLERARASI İLETİŞİM ........................................................... 39
V
3.3.5. MALİYET DUYARLI API' LER ....................................................... 40
3.3.6. SIM KART ERİŞİM ............................................................................ 40
3.3.7. KİŞİSEL BİLGİLER ........................................................................... 40
3.3.8. HASSAS VERİ GİRİŞ CİHAZLARI ................................................. 41
3.3.9. UYGULAMA İMZALAMA ............................................................... 42
3.3.10. UYGULAMA DOĞRULAMASI ..................................................... 42
3.3.11. DİJİTAL HAKLAR YÖNETİMİ ...................................................... 43
3.4. ANDROID GÜNCELLEMELERİ............................................................... 43
3.5. GÜVENLİK İPUÇLARI ............................................................................... 44
3.5.1. VERİ DEPOLAMA................................................................................... 45
3.5.1.1. DAHİLİ DEPOLAMAYI KULLANMAK ....................................... 45
3.5.1.2. HARİCİ DEPOLAMAYI KULLANMAK ....................................... 46
3.5.1.3. İÇERİK SAĞLAYICILARI KULLANMAK ................................... 46
3.5.2. İZİNLERİ KULLANMA .......................................................................... 47
3.5.2.1. İZİNLERİ İSTEMEK ........................................................................ 47
3.5.2.2. İZİNLERİ OLUŞTURMAK ............................................................. 48
3.5.3. AĞ KULLANMA .................................................................................... 49
3.5.3.1. IP AĞI KULLANMA.......................................................................... 49
3.5.3.2. TELEFON AĞI KULLANMA........................................................... 49
3.5.4. GİRİŞ DOĞRULAMASI GERÇEKLEŞTİRME................................ 50
3.5.5. KULLANICI VERİLERİ İŞLEME ...................................................... 50
3.5.5.1. WEBVIEW KULLANARAK............................................................ 52
3.5.5.1.1. KİMLİK BİLGİLERİ KULLANARAK ..................................... 52
3.5.5.2. ŞİFRELEME KULLANARAK ...................................................... 53
3.5.5.3. İŞLEMLERARASI İLETİŞİM KULLANARAK.............................. 54
3.5.5.3.1. NİYETLERİ KULLANARAK................................................... 54
VI
3.5.5.3.2. SERVİSLERİ KULLANARAK ................................................. 55
3.5.5.3.3. BINDER / MESSENGER ARABİRİMLERİ KULLANARAK 55
3.5.5.3.4. YAYIN ALICILARI KULLANARAK...................................... 56
3.5.6. DİNAMİK YÜKLEME KODU................................................................. 56
3.5.7. SANAL MAKİNEDE GÜVENLİK ......................................................... 57
3.5.8. YEREL KOD GÜVENLİĞİ ..................................................................... 58
4. SÖZLÜK .............................................................................................................. 58
SONUÇ VE ÖNERİLER ........................................................................................ 61
KAYNAKLAR ........................................................................................................ 62
VII
ŞEKİLLER LİSTESİ
ŞEKİL 1. ANDROID YAZILIM YIĞINI ................................................................ 26
ŞEKİL 2. UYGULAMA İÇİN İZİNLER GÖSTERİMİ........................................... 37
ŞEKİL 3. HASSAS KULLANICI VERİLERİNE ERİŞİM ..................................... 41
ŞEKİL 4. DİJİTAL HAKLAR YÖNETİMİNİN MİMARİSİ .................................. 43
VIII
KISALTMALAR LİSTESİ
API : Application Programming Interface (Uygulama Programlama Arabirimi)
IPC : Inter Process Communication ( İşlemler Arası İletişim )
SSP : System Software Personalization ( Sistem Yazılımı Kişiselleştirme )
OTA : Over The Air ( Şebeke Üzerinden )
GCM : Galois Counter Mode ( Galois Sayaç Modu )
MDM : Mobile Device Management ( Mobil Cihaz Yönetimi )
SDK : Software Development Kit ( Yazılım Geliştirme Kiti )
LLB : Low Level Bootloader ( Düşük Seviye Önyükleme Yükleyicisi )
DFU : Device Firmware Upgrade ( Cihaz Yazılım Yükseltmesi )
RNG : Random Number Generator ( Rastgele Sayı Üreteci )
APK : Android Package ( Android Paketi )
OEM : Original Equipment Manufacturer ( Orijinal Ekipman Üreticisi )
RIL : Radio Interface Layer ( Radyo Arabirimi Katmanı )
NDA : Non-Disclosure Agreement ( Gizlilik Sözleşmesi )
GID : Group Identity Device ( Aygıt Grup Kimliği )
DRM : Dijital Rights Management ( Dijital Haklar Yönetimi )
ARM : Acorn Risc Machine ( Acorn Risk Makinesi )
UID : Unique Identity Device ( Cihazın Benzersiz Bir Kullanıcı Kimliği )
ECID : Device Unique Identity Device (Cihazın Benzersiz Kullanıcı Kimliği )
SKAG : Shared Keychain Access Groups (Paylaşılan Anahtarlık Erişim Gruplar)
ASLR : Address Space Layout Randomization (Adres Alanı Düzeni Rastgelesi)
UI : User Interface ( Kullanıcı Arabirimi )
IV : Initialization Vector ( Başlangıç Vektörü )
APNS : Apple Push Notification Service ( Apple Push Bildirim Hizmeti )
1
1.GİRİŞ
Mobil İşletim Sistemleri, akıllı telefonlar ve tablet bilgisayarlar için üretilmiş
yazılımlardır. Bugün dünyada en yaygın ve bilinenleri IOS ve Android'tir. Bu iki
işletim sistemi dışında 3.cü olarak Windows Phone bulunmaktadır. Ayrıca, Firefox
4.cü olarak mobil işletim sistemi piyasasına güçlü bir giriş yapmak için
hazırlanmaktadır. IOS yalnızca Apple ve Windows Phone yalnızca Sony Ericsson
akıllı telefonlarında kullanılırken Android ise Samsung, Htc, Huawei, LG, Acer ve
General Mobile gibi birçok akıllı telefonda kullanılmaktadır. Böylelikle, pazarın
aslan payına sahiptir fakat IOS'ta Apple çatısı altında olmasının avantajıyla hatırı
sayılır bir paya sahiptir.
Android, açık kaynak kodlu bir yazılım olduğu için birçok yazılımcı tarafından da
sempati görmektedir. IOS'un, her ne kadar yerleşik güvenlik önlemleri bakımından
daha güvenli olduğu söylense de Android cihazların kullanımının kolaylığı hakkında
kullanıcılar arasında fikirbirliği vardır.
Her iki işletim sistemi de kendilerinin kullanıcı güvenliğini sağlama da daha
güvenilir olduklarını belirtselerde kullanıcıların ezici bir çoğunluğunun birçok dahili
ve harici olmak üzere birçok güvenlik önleminden habersiz oldukları bilinen bir
gerçektir. Kullanıcılar, akıllı telefonlarını sosyal medya, ücretsiz sohbet uygulamaları
ve kamera / fotoğraf makinesi olarak kullanmaktan ibaret gördüğü için veri güvenliği
konusunda duyarsızdır. Hangi işlev için kullanılır olursa olsun bilinçsiz kullanım
sonucunda mail, mesaj, rehber, banka, adres, fotoğraf, bireysel ve kurumsal tüm bilgi
ile belgelerin kötü niyetli insanların eline geçmesi ciddi bir risktir.
2. IOS GÜVENLİK
Mobil cihazlarda bilgi güvenliği ister kişisel ister kurumsal kullanıcı için olsun
oldukça önemlidir. Çünkü; müşteri veya kullanıcı, kişisel veya kurumsal
farketmeksizin bilgilerini depolamaktadır. IOS cihazlar, her kullanıcının bilgisinin
güvenli olması gerektiğinden yola çıkarak güçlü güvenlik teknolojileri sağlamaktadır
ve aynı zamanda kullanımı kolaydır. Cihazlar, güvenliği mümkün olduğunca şeffaf
yapmak için tasarlandığından güvenlik özelliklerinin çoğu varsayılan olarak etkindir
bu yüzden bilgi teknolojisi departmanları kapsamlı yapılandırmalar gerçekleştirmeye
ihtiyaç duymaz. Örneğin; cihaz şifreleme gibi bazı temel özellikler yapılandırılabilir
değildir, böylelikle kullanıcılar yanlışlıkla bunları devre dışı bırakamaz [5].
2
IOS cihazlar güvenlik katmanlarıyla tasarlanmıştır. Düşük düzey donanım ve
yazılım özellikleri, kötü amaçlı yazılımlara ve virüslere karşı koruma sağlar. Üst
düzey işletim sistemi özellikleri, kişisel ve kurumsal bilgilerinize güvenli erişime izin
verir ve yetkisiz kullanım ile saldırıları önlemeye yardımcı olur. IOS güvenlik
modeli, mobil kullanım senkronizasyon ve 3.parti uygulamaları etkinleştirirken
bilgileri korur. Sistemin çoğu endüstri standardı güvenli tasarım ilkelerine dayanır.
2.1. SİSTEM MİMARİSİ
IOS cihazlarda yazılım ve donanımın sıkı entegrasyonu cihazın tüm katmanları
arasındaki faaliyetlerin onaylanmasına izin verir. IOS, yazılım yükleme ve 3.parti
uygulamalar sayesinde ilk açılıştan itibaren her bir aşamada her kaynağın düzgün
kullanıldığından ve faaliyetlerin güvenilir olduğundan emin olmak için analiz edilir
ve onaylanır [5].
Sistem çalışmaya başladıktan sonra bu entegre güvenlik mimarisi, XNU' nun
güvenilirliği ve bütünlüğüne bağlıdır. XNU, güvenlik özelliklerini zamanında
çalışmaya zorlar, üst düzey fonksiyonlar ve uygulamalara güvenmek için gereklidir.
2.1.1. GÜVENLİ ÖNYÜKLEME ZİNCİRİ
Açılış işleminin her adımı bütünlüğü sağlamak için Apple tarafından imzalanmış
şifreli bileşenleri içerir ve sadece güven zinciri doğruladıktan sonra devam eder. Bu
önyükleme yükleyiciler; çekirdek, çekirdek uzantıları ve baseband yazılım içerir.
Bir IOS cihaz açık olduğunda, uygulama işlemcisi hemen Boot ROM olarak bilinen
salt okunur bellek üzerinden kodu çalıştırır. Bu değişmez kod, çip üretim sırasında
koyulur ve dolaylı olarak güvenilirdir. Boot ROM kodu, LLB yüklemek için izin
vermeden önce Apple tarafından imzalanmış olduğunu doğrulamak için kullanılan
Apple Kök CA ortak anahtarı içerir. Bu, her adımın bir sonrakisinin Apple tarafından
imzalanmış olmasını sağlayan güven zincirinin ilk adımıdır. LLB görevlerini
bitirdiğinde, bu doğrular ve sonraki aşama Önyükleme yükleyicisi sırayla doğrular ve
IOS çekirdeği çalışır.
Bu güvenli önyükleme zinciri, bu yazılımın en düşük seviyelerinin tahrif
edilmemesini sağlar ve IOS yalnızca doğrulanmış Apple cihazları çalıştırmak için
izin verir [5].
3
Eğer bu önyükleme işleminin bir adımı yükleme veya sonrasında doğrulama
yapamıyorsa, boot-up durur ve cihaz "i-Tunes' a bağlayın" ekranını görüntüler. Bu
kurtarma modu olarak adlandırılır. Eğer Boot ROM bile, LLB yüklemek veya
doğrulamak için mümkün değilse DFU moduna girer. Her iki durumda da, cihaz
USB ile iTunes'a bağlanmalı ve varsayılan fabrika ayarlarına geri yüklenmelidir.
DFU MODUNA GİRME
DFU moduna, hem Home hem de Sleep / Wake tuşlarına basılı tutarken, USB
kablosu kullanarak cihazı bir bilgisayara manuel olarak bağlayarak girilebilir. 8
saniye geçtikten sonra Home tuşuna basılı tutmaya devam ederken Sleep / Wake
tuşunu serbest bırakın.
NOT: DFU modunda ekranda hiçbirşey görüntülenmeyecek. Apple logosu
görülürse Sleep / Wake tuşuna uzun süre basılı tutun. Geri yüklenen bir cihaz DFU
moduna girdikten sonra yalnızca Apple imzalı değiştirilmemiş mevcut kod ile
kesinlikle bilinen iyi bir duruma geri döner.
2.1.2. SİSTEM YAZILIMI KİŞİSELLEŞTİRME
Apple, ortaya çıkan güvenlik endişelerini gidermek için düzenli olarak yazılım
güncellemeleri yayımlar. Bu güncellemeler, destekleyen tüm cihazlar için aynı anda
sağlanır.
Kullanıcılar; cihaz üzerinde ve iTunes üzerinden IOS güncelleme bildirimlerini alır
ve güncellemeler kablosuz olarak teslim edilir, son güvenlik düzeltmeleri hızla
benimsenir.
Yukarıda açıklanan önyükleme işlemi, sadece Apple imzalı kodun bir cihazda yüklü
olmasını sağlar. Cihazları en son güvenlik güncelleştirmelerinden yoksun eski
sürümlere döndürmemek için, IOS SSP denilen bir işlem kullanır. Eğer gerileştirme
mümkün olsaydı, bir saldırgan IOS'un eski bir sürümünü yükleyebilir ve cihazın yeni
sürümde elde ettiği giderilmiş olan bir güvenlik açığından yararlanabilirdi.
IOS yazılım güncellemeleri iTunes kullanarak veya cihaz üzerindeki OTA üzerinden
yüklenebilir. iTunes ile IOS'un tam bir kopyası indirilir ve yüklenir. OTA yazılım
güncelleştirmeleri ağ verimliliği için deltalar gibi sağlanmaktadır.
4
IOS yükleme veya yükseltme sırasında, Apple kurulum yetkilendirme sunucusuna
bağlanır ve ECID, rastgele bir antireplay değeri ve yükleme paketinin yüklenecek her
bölümü ( LLB, iBoot, çekirdek ve OS görüntü ) için şifreleme ölçümlerinin listesini
gönderir.
Sunucu, sürümlere karşı yükleme izni için ölçümlerin sunulan listesini denetler, eğer
bir eşleşme bulursa, ölçüme ECID ekler ve sonucu imzalar. İmzalanan verilerin
komple tam dizisi, sunucudan yükleme veya yükseltme sürecinin bir parçası olarak
cihaza geçirilir. ECID ekleme, talep eden cihaz için "kişiselleştiren"
yetkilendirmedir. Sunucu, bilinen ölçümler için yetkilendirerek ve sadece
imzalayarak Apple tarafından sağlanan güncelleştirmenin tam olmasını sağlar.
Önyükleme süresi; imza ile kaplı eşleşme, cihazın benzersiz kimliği ile birlikte
diskten yüklenen öğenin ölçümü ve Apple'den imzalı gelen güven değerlendirme
zincirini doğrular.
Bu adımlar yetkilendirme sağlar ve belirli bir cihaz için eski bir IOS sürümü bir
cihazdan diğerine kopyalanamaz. Antireplay, saldırganın sunucunun yanıtını
kaydetmesini ve bunu kullanarak kullanıcının cihazı gelecekte downgrade için
kullanmasını önler.
2.1.3. UYGULAMA KOD İMZALAMA
IOS çekirdek başladıktan sonra, kullanıcı işlemlerini ve uygulamaları çalıştırmayı
kontrol edebilir. Tahrif edilmemiş, bilinen ve onaylanmış bir kaynaktan gelen tüm
uygulamaları sağlamak için IOS ile Apple tarafından verilmiş bir sertifikayı
kullanarak tüm kod çalıştırılabilir. 3.parti uygulamalar doğrulanmış ve Apple
tarafından verilmiş bir sertifika kullanılarak imzalanmış olmalıdır. Zorunlu kod
imzalama, işletim sistemi uygulamaları için güven zinciri kavramını genişletir.
3.parti uygulamalar, imzasız kod kaynakları veya kendini değiştiren kodu kullanarak
yüklenmesini engeller.
Geliştiriciler, IOS cihazlarda uygulamalar kurmak ve geliştirmek için Apple ile kayıt
olmalı ve IOS geliştirici programına katılmalıdır. Her geliştiricinin gerçek dünyadaki
kimliği, ister bir birey veya faaliyet olsun onların sertifikası verilmeden önce Apple
tarafından doğrulanır [5].
5
Bu sertifika uygulamaları imzalamak için geliştiricilere olanak sağlar ve onları
dağıtım için Apple Store'a teslim eder. Sonuç olarak, Apple Store'daki tüm
uygulamalar, kötü niyetli uygulamalar oluşturulması için bir caydırıcı olarak hizmet
veren tanımlanabilir bir kişi veya kuruluş tarafından teslim edilmiştir.
İşletmeler ayrıca şirket içi uygulamaları kendi bünyesinde kullanılmak üzere
çalışanlara dağıtmak için yazma yeteneğine sahiptir. İşletmeler ve kuruluşlar, bir D-
U-N-S numarası ile IOS geliştirici Enterprise programına başvurabilir. Apple, kimlik
ve uygunluğunu kontrol ettikten sonra başvuruyu onaylar. Bir organizasyon IDEP
üyesi olduktan sonra, bu yetki cihazlarda çalıştırmak için organizasyon içi
uygulamalara izin veren bir "hazırlama profili" elde etmek için kayıt olunabilinir.
Kullanıcılar, organizasyon için uygulamaları çalıştırmak için hazırlama profili yüklü
olmalıdır. Bu yalnızca, kuruluşun hedeflenen kullanıcıların IOS cihazlar üzerine
uygulamaları yüklemesinin mümkünlüğünü sağlar.
Diğer mobil platformların aksine IOS, kullanıcıların kötü amaçlı imzasız
uygulamaları web sitelerinden yüklemeye veya güvenilmeyen kod çalıştırmasına izin
vermez. Çalışma zamanında, bir uygulamanın son güncelleme veya yüklemeden
sonra değiştirilmemişliğini sağlamak için onları yüklü oldukları gibi tüm
çalıştırılabilir bellek sayfalarının kod imza kontrolleri yapılır.
2.1.4. ÇALIŞMA ZAMANI İŞLEM GÜVENLİĞİ
Bir uygulama onaylanmış bir kaynaktan doğrulandıktan sonra, IOS diğer
uygulamalar veya sistemin geri kalanını garantiye almak için güvenlik önlemlerini
güçlendirir.
Tüm 3.parti uygulamalar "sandboxed" yani korumalıdır, bu yüzden onların diğer
uygulamalar tarafından depolanan dosyalara erişmesi veya cihazda değişiklik
yapması kısıtlıdır. Bu, uygulamaların diğer uygulamalar tarafından depolanan
bilgileri değiştirmelerini veya toplamalarını engeller. Her uygulamanın, dosyaları
için uygulama kurulduğunda rastgele atanmış benzersiz bir giriş dizini vardır.
Bir 3. parti uygulamanın kendi dışındaki bilgilere erişmesi gerekiyorsa sadece
API'ler ve IOS tarafından sağlanan hizmetleri kullanarak yapar. Sistem dosyaları ve
kaynakları da kullanıcının uygulamalarından korumalıdır. IOS çoğunluğu, tüm
3.parti uygulamaları gibi ayrıcalıklı olmayan "mobil" kullanıcı gibi çalışır.
6
Tüm işletim sistemi bölümü salt okunur monte edilmiştir. Böyle uzaktan oturum
açma hizmetleri gibi gereksiz araçlar sistem yazılımına dahil değildir ve API'ler,
uygulamalara diğer uygulamaların veya IOS'un kendi ayrıcalıklarını değiştirmesi için
yükseltmesine izin vermez [5].
3.parti uygulamalar ile kullanıcı bilgi ve özelliklerine erişim, iCloud gibi yetki
bildirimleri kullanılarak kontrol edilir. Yetkilerin, bir uygulama için imzalanmış olan
şifre / değer çiftleri vardır ve UNIX kullanıcı kimliği gibi çalışma zamanı
faktörlerinin haricinde kimlik doğrulamasına izin verir. Yetkiler, dijital olarak
imzalanmış olduğundan değiştirilemez. Yetkiler, sistem uygulamaları ve araçlar
tarafından ayrıcalıklı belirli işlemler için yoğun olarak kullanılmaktadır aksi taktirde
"root" olarak çalıştırmak için işlem gerekir. Bu büyük ölçüde sistem uygulaması
veya araçlar tarafından bir uzlaşmayla ayrıcalık yükseltme olasılığını azaltır.
Uygulamalar sadece sistem tarafından sağlanan API'ler sayesinde arka plan işlemi
gerçekleştirebilir. Bu, uygulamaların performansını düşürmeden veya pil ömrünü
önemli ölçüde etkilemeden işlevine devam etmesini sağlar. Uygulamalar birbirleri ile
doğrudan veri paylaşmaz; paylaşım, uygulamalar özel URL şemalarını kullanarak
yalnızca hem alma hem gönderme veya SKAG aracılığıyla gerçekleştirilebilir.
ASLR, bellek bozulması hatalarını sömürüye karşı korur. Yerleşik uygulamalar, tüm
bellek bölgelerinin rastgele başlatılmasını sağlamak için ASLR kullanır. İlaveten,
cihaz her açılışta sistem paylaşılan kütüphane konumlarını rastgele seçer. Xcode IOS
geliştirme ortamı, açık ASLR desteği ile otomatik olarak 3.parti programları derler.
Daha fazla koruma, IOS'un ARM'nin bellek sayfalarını yürütülemez olarak
işaretleyen Execute Never özelliğini kullanmasıyla sağlanmaktadır. Hem yazılabilir
hem de yürütülebilir olarak işaretlenmiş bellek sayfaları sıkı şekilde denetlenen
koşullar altında yalnızca uygulamalar tarafından kullanılabilir:
Çekirdek, sadece Apple'ın varlığı için "dinamik kod imzalama" yetkisini denetler. O
zaman bile, rastgele seçme adresi verilen yürütülebilir ve yazılabilir bir sayfa istemek
için sadece tek bir "mmap" çağrı yapılabilir. Safari, bu işlevi kendi JavaScript JIT
derleyicisi için kullanır.
7
2.2. AĞ GÜVENLİĞİ
Mobil kullanıcıların, dünyanın herhangi bir yerinden kurumsal bilgi ağlarına
erişmesi gerekebilir, bu yüzden onların yetkilerini ve veri iletimi sırasında
korunmasını sağlamak önemlidir. IOS, kimliği doğrulanmış yetkili ve şifreli iletişim
için standart ağ protokollerini kullanır ve geliştirici erişimi sağlar. IOS, hem Wi-Fi
hem de hücresel veri ağ bağlantıları için kanıtlanmış teknolojiler ve bu güvenlik
hedeflerini gerçekleştirmek için en son standartları sağlar.
Diğer platformlarda, çok sayıda açık iletişim portlarını izinsiz girişlere karşı
korumak için güvenlik duvarı yazılımı gereklidir. Çünkü, IOS dinlenme bağlantı
portlarını sınırlayarak azaltılmış bir saldırı yüzeyini elde eder ve telnet, kabuklar
veya bir web sunucusu gibi gereksiz ağ programlarını kaldırır, bu güvenlik duvarı
yazılımı gerektirmez. Ayrıca; iMessage, Facetime ve APNS kullanarak iletişim
tamamen şifrelenir ve kimlik doğrulanır.
2.2.1. SSL, TSL
IOS, DTLS ve Aktarım Katmanı Güvenliği ( TLS v1.1, TLS v1.2 ) gibi Güvenli
Yuva Katmanı'nı ( SSL v3 ) da destekler. Safari, Takvim, Mail ve diğer internet
uygulamaları ağ hizmetleri ve cihaz arasında şifreli bir iletişim kanalı etkinleştirmek
için otomatik olarak bu mekanizmaları kullanır. Düşük seviyeli ( SecureTransport )
API'ler "ince taneli kontrolü" sağlarken, Yüksek seviyeli ( CFNetwork gibi ) API'ler
geliştiricilerin kendi uygulamalarında TLS benimsemesini kolaylaştırır [4].
2.2.2. VPN
Güvenli ağ hizmetleri, sanal özel ağ gibi tipik olarak IOS cihazlar ile çalışmak için
en az kurulum ve yapılandırma gerektirir. IOS cihazlar, aşağıdaki protokolleri ve
kimlik doğrulama yöntemlerini destekleyen VPN sunucuları ile çalışır:
* Apple Store'dan uygun istemci uygulaması kullanarak Juniper Networks, Cisco,
Aruba Networks, SonicWALL, Check Point, and F5 Networks SSL-VPN
Bu uygulamalar, yerleşik IOS desteği için kullanıcı kimlik doğrulaması sağlar.
* Şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik doğrulaması
ile Cisco IPSec ve paylaşılmış gizlilik ve sertifikalar ile makine kimlik doğrulaması
8
* Cisco IPSec, cihaz yapılandırması sırasında belirtilen etki alanları için VPN On
Demand'ı destekler.
* MS-CHAPV2 şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik
doğrulaması ile L2TP/IPSec ve paylaşılmış gizlilik ve sertifikalar ile makine kimlik
doğrulaması
* MS-CHAPV2 şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik
doğrulaması ile PPTP
IOS, sertifika tabanlı kimlik doğrulaması kullanan ağlar için VPN On Demand'ı
destekler. Bilgi Teknolojileri politikaları, hangi etki alanlarının bir yapılandırma
profili kullanarak bir VPN bağlantısı gerektirdiğini belirler.
2.2.3. WI - FI
IOS, kablosuz kurumsal ağlara kimliği doğrulanmış erişim sağlamak için WPA2
Kurumsal dahil olmak üzere endüstri standardı Wi-Fi protokollerini destekler.
WPA2 Kurumsal, veri gönderirken kullanıcılara en yüksek seviyede güvence
vererek 128-bit AES şifreleme kullanır ve Wi-Fi üzerinden veri alır. 802.1X desteği
ile IOS cihazlar, RADIUS kimlik doğrulama ortamlarında geniş bir yelpazeye
entegre edilebilir. 802.1X, iPhone ve iPad'te EAP-TLS, EAP-TTLS, EAP-FAST,
EAP-SIM, PEAPv0, PEAPv1, ve LEAP dahil kablosuz kimlik doğrulama
yöntemlerini destekler [4].
2.2.4. BLUETOOTH
IOS'un Bluetooth desteği gereksiz yere artan özel veriye erişim olmadan yararlı
işlevsellik sağlamak üzere tasarlanmıştır. IOS cihazlar; Şifreleme Modu 3, Güvenlik
Modu 4 ve Servis Seviyesi 1 bağlantılarını destekler.
IOS, aşağıdaki Bluetooth profillerini destekler:
* Eller serbest profili ( HFP 1.5 )
* Telefon defteri erişim profili ( PBAP )
* Gelişmiş ses dağıtım profili ( A2DP )
* Ses / video uzaktan kumanda profili ( AVRCP )
* Kişisel alan ağı profili ( PAN )
* İnsan arabirim cihaz profili ( HID )
9
2.3. VERİ KORUMA VE ŞİFRELEME
Güvenli önyükleme zinciri, kod imzalama ve çalışma zamanı işlem güvenliğini
sağlamak için sadece güvenilen kod ve uygulamaları bir cihaz üzerinde
çalıştırılabilinir. IOS, güvenlik altyapısının bir cihaz üzerinde yetkisiz değişiklikler
ile diğer bölgelerde tehlikeye düştüğü durumlarda bile kullanıcı verilerini korumak
için ek güvenlik özellikleri vardır. Sistem mimarisi kendisi gibi, bu şifreleme ve veri
koruma yetenekleri yazılım teknolojilerini ve entegre donanım katmanlarını kullanır
[4].
2.3.1. DONANIM GÜVENLİK ÖZELLİKLERİ
Mobil cihazlarda, hız ve güç verimliliği kritik öneme sahiptir. Şifreleme işlemleri
karmaşıktır. Doğru tasarlanmamış ve uygulanmamışsa, performans veya pil ömrü
sorunlarıyla karşılaşılabilinir. Her IOS cihazın, flash depolama ve ana sistem belleği
ile DMA içinde dosya şifrelemeyi çok verimli yapan adanmış bir AES 256 şifreleme
motoru vardır. AES motor ile birlikte SHA - 1, daha fazla şifreleme işleminin
yükünü azaltarak donanımda uygulanmaktadır.
UID ve GID üretim sırasında AES 256-bit anahtarları uygulama işlemcisinin içine
kaynaşır. Hiçbir yazılım veya ürün bilgisi, onları doğrudan okuyamaz; onlar, bunları
kullanarak gerçekleştirilen şifreleme ve şifre çözme işlemlerin yalnızca sonuçlarını
görebilir. UID her cihaz için benzersizdir ve Apple veya tedarikçilerin herhangi birisi
tarafından kaydedilmez [5].
GID, cihaz sınıfının tüm işlemcileri için ortaktır. Yükleme ve geri yükleme sırasında
sistem yazılımı teslim edilirken ek bir koruma seviyesi olarak da kullanılır. Hararetli
bu anahtarlar, silikon içinde bunların tahrif veya bypass edilmesini engeller ve
sadece AES motoru tarafından ulaşılabilir olduğunu garanti eder.
UID, verilerin şifreli olarak belirli bir cihaza bağlanmasına olanak sağlar. Örneğin;
dosya sistemini koruyan anahtar hiyerarşisi kullanıcı kimliği içerir, bu yüzden bellek
yongaları fiziksel olarak bir cihazdan başka bir cihaza taşınırsa dosyalar erişilemez
olur. UID, cihazdaki başka bir tanımlayıcı ile ilişkili değildir.
UID ve GID dışındaki diğer tüm şifreleme anahtarları "yarrow" 'a dayalı bir
algoritmayı kullanarak sistemin RNG'si tarafından oluşturulur.
10
Sistem entropisi, önyükleme sırasında ara verme zamanından ve ilave olarak cihaz
önyüklemeye başladıktan sonra gelen iç sensörlerden toplanır.
Güvenli bir şekilde kaydedilen anahtarları silmek, onları üreten kadar önemlidir. Bu
özellikle flash depolama üzerinde zorludur, bu yüzden aşınma - düzeltme verilerinin
çoklu kopyalarının silinmesi gerekir anlamına gelebilir. Bu sorunu çözmek için IOS
cihazlar, "silinebilir depolama" adı verilen özel bir güvenli veri silme özelliği içerir.
Bu özellik, çok düşük bir düzeydeki blokların az sayıdakini silmek ve doğrudan
adres için temel depolama teknolojisine erişir.
2.3.2. DOSYA VERİLERİNİ KORUMA
Yerleşik donanım şifreleme özelliklerine ek olarak, ayrıca cihazdaki flash bellekte
saklanan verileri daha fazla korumak için "veri koruma" adlı bir teknoloji kullanılır.
Bu teknoloji mobil cihazların her zaman açık ve internete bağlı oldukları, herhangi
bir zamandaki telefon görüşmeleri, metin, mesaj ve e-mailler alabileceği gerçeği
dikkate alınarak tasarlanmıştır. Veri koruma, bir cihaza kilitliyken yeni bilgi
indirmeksizin ve hassas verilerin şifresini çözmeksizin gelen telefon aramaları gibi
olaylara yanıt vermesini sağlar. Bu bireysel davranışlar, "sınıflar" bölümünde
açıklandığı gibi her bir dosya için bir sınıf için her dosyayı atayarak kontrol edilir.
Veri koruma, her sınıftaki verilerin erişilmesi gerektiğinde verileri korur.
Erişilebilirlik, sınıf anahtarları kilidinin açılmış olup olmadığına göre belirlenir. Veri
koruma, anahtarların bir hiyerarşisi oluşturularak ve yönetilerek uygulanır, daha önce
açıklanan donanım şifreleme teknolojileri üzerine inşa edilir [4].
MİMARİYE BAKIŞ
Her zaman veri bölümü üzerine bir dosya oluşturulduğunda; Veri koruma, dosya
başına yeni bir 256-bit şifre oluşturur ve onu dosyayı şifrelemek için AES CBC
modunu kullanarak flash belleğe yazılır gibi şifre kullanan AES motor donanımına
verir. IV, dosya anahtar başına SHA-1 hash ile şifrelenmiş, kapalı blok dosyasına
ayarlanmış hesaplanan bir geribildirim kaydırma kaydının çıktısıdır.
Dosya başına anahtar, dosya erişilebilir olması gereken şartlar altında çeşitli sınıf
anahtarlarından biri ile örülmüştür. Diğer tüm sargılar gibi, bu RFC 3394 başına
NIST AES anahtar sarması kullanılarak yapılır. Sarılmış dosya başına anahtar
dosyanın metadatasında depolanır.
11
Bir dosya açıldığında, onun metadatası dosya sistemi anahtarı ile şifresi çözülür.
Sarılı dosya başına anahtar açığa çıkar ve üzerinde sınıfı koruyan bir notasyon olur.
Dosya başına anahtar sınıf anahtarı ile sarılmamıştır, daha sonra flash bellekten
okunduğu gibi dosyanın şifresini çözen AES motor donanımına verilir.
Dosya sistemindeki tüm dosyaların metadataları, IOS ilk yüklendiğinde veya cihaz
bir kullanıcı tarafından silindiği zaman rastgele oluşturulan bir anahtar ile şifrelenir.
Dosya sistem anahtarı, "silinebilir depolama" da saklanır.
Bu anahtar cihazda depolandığından beri, verilerin gizliliğini korumak için
kullanılmaz, bunun yerine isteğe bağlı olarak hızlıca silinecek şekilde tasarlanmıştır.
Bu şekilde anahtarın silinmesi, tüm dosyaları şifreli olarak erişilemez hale getirir.
Bir dosyanın içeriği, bir sınıf anahtarı ile sarılmış bir dosya başına anahtar ile
şifrelenmiştir ve sırayla dosya sistemi anahtarı ile şifrelenen bir dosyanın
metadatasında saklanır. Sınıf anahtarı donanım UID ile korunur. Bu hiyerarşi,
esneklik ve performans sağlar.
TÜM İÇERİK VE AYARLARI SİL
Ayarlar'daki "tüm içerik ve ayarları sil" seçeneği silinebilir depolamadaki bütün
anahtarları yok eder ve tüm kullanıcı verilerini cihaz üzerinde şifrelemeye erişemez
hale getirir.
GÜÇLÜ APPLE ID PAROLALARI OLUŞTURMA
Apple ID'ler; iCloud, Facetime ve iMessage gibi hizmetleri bir diziye bağlamak için
kullanılır. Kullanıcıların, güçlü şifreler oluşturmasına yardımcı olmak için tüm yeni
hesaplar aşağıdaki parola nitelikleri içermelidir:
* En az 8 karakter * En az 1 sayı
* En az 1 harf * En fazla 3 ardışık aynı karakter
* En az 1 büyük harf * Hesap adıyla aynı olmayacak
2.3.3. GEÇİŞ KODLARI
Bir cihaz geçiş kodu ayarlayarak kullanıcı otomatik olarak veri koruma sağlar. IOS,
dört haneli ve keyfi uzunluktaki alfanumerik geçiş kodlarını destekler.
12
Cihazın kilidini açmaya ek olarak, bir geçiş kodu cihazda depolanmayan şifreleme
anahtarları için entropi sağlar. Bu, cihaza sahip bir saldırganın geçiş kodu olmaksızın
veri koruma sınıflarındaki verilere erişim sağlayamaması anlamına gelir.
Geçiş kodu, cihazın UID'le karışık olmalıdır. Bu yüzden brute-force girişimleri
saldırı altındaki cihazda yapılmalıdır. Büyük bir yineleme sayısı her girişimi daha
yavaş yapmak için kullanılır. Yineleme sayısı kalibre edilir, böylece bir girişim
yaklaşık seksen milisaniye sürer. Bu, küçük harfler ve sayılar ile altı karakterli
alfanumerik bir parolanın tüm kombinasyonlarını denemek için en fazla 5½ ( 5,5 yıl )
veya yalnızca sayılarla dokuz basamaklı bir parola için 2½ ( 2,5 yıl ) alacağı
anlamına gelir.
Ayrıca brute-force geçiş kodu saldırılarından vazgeçirmek için, IOS arabirimi kilit
ekranında geçersiz bir geçiş kodu girmesinden sonra artan zaman gecikmelerini
zorlar. Kullanıcılar, başarısız on parola girişiminden sonra cihazı otomatik olarak
silmeyi seçebilir. Bu ayar, MDM ve Exchange ActiveSync üzerinden yönetim ilkesi
olarak da kullanılabilir ve aynı zamanda daha düşük bir eşik değeri ile ayarlanabilir.
GEÇİŞ KODU HAKKINDA ÖNEMLİ HUSUSLAR
Yalnızca sayı içeren uzun bir geçiş kodu girilirse, bir sayısal tuş takımı kilit
ekranında tam klavye yerine görüntülenir. Benzer güvenlik sağlarken, uzun bir
sayısal geçiş kodu girmek kısa bir alfanumerik geçiş kodu girmekten daha kolay
olabilir [5].
SINIFLAR
IOS cihaz üzerinde yeni bir dosya oluşturulduğunda, onu oluşturan uygulama
tarafından bir sınıf atanmıştır. Her sınıf, veri erişilebilirliğini belirlemek için farklı
politikalar kullanır.
Temel sınıflar ve politikalar aşağıdaki gibidir:
TAM KORUMA (NSFILEPROTECTIONCOMPLETE)
Sınıf anahtarı, UID cihaz ve kullanıcı geçiş kodundan türetilen bir şifre ile
korunmaktadır. Kullanıcı cihazı kilitledikten kısa süre sonra şifresi çözülmüş sınıf
anahtarı bir kenara ayrılır, kullanıcı geçiş kodunu tekrar girene kadar bu sınıftaki tüm
verilere ulaşılamaz. Mail uygulaması, iletiler ve ekleri için tam koruma sağlar.
13
Uygulama başlatma görüntüleri ve konum bilgileri de tam koruma ile
saklanmaktadır.
AÇIK OLDUKÇA (NSFILEPROTECTIONCOMPLETEUNLESSOPEN)
Bazı dosyaların cihaz kilitliyken yazılması gerekebilir. Arka planda bir mail ekini
indirmek bunun en iyi örneğidir. Bu davranış, asimetrik eliptik eğri şifreleme
kullanılarak elde edilir. Her zamanki dosya başına anahtar ile birlikte veri koruma,
ortak dosya / özel anahtar çifti üretir.
Paylaşılan bir gizli dosya, dosyanın özel anahtarı kullanılarak hesaplanır ve cihazın
UID ve kullanıcının geçiş kodu ile açık olduğu sürece koruma ortak sınıf anahtarına
karşılık gelen özel anahtar korunmaktadır.
Dosya başına anahtar, bu paylaşılan gizliliğin hashi ile sarılır ve dosyanın ortak
anahtarı ile birlikte dosyanın metadatasında saklanır; karşılık gelen özel anahtar
sonra hafızadan silinir. En kısa sürede kapalı dosya, dosya başına anahtar da aynı
zamanda hafızadan silinir.
Dosyayı yeniden açmak için, açık olduğu sürece koruma ortak sınıf anahtarı ve
dosyanın geçici ortak anahtarı kullanılarak paylaşılan gizlilik yeniden oluşturulur;
hash, daha sonra dosyanın şifresini çözmek için kullanılan dosya başına anahtar
paketini açmak için kullanılır [5].
İLK KULLANICI KİMLİK DOĞRULAMASINA KADAR
(NSFILEPROTEC. COMP. UNTILFIRSTUSERAUTHENTICATION)
Bu sınıf, "tam koruma" ile aynı şekilde davranır. Cihaz kilitlendiğinde şifresi
çözülmüş sınıf anahtarı dışında bellekten kaldırılmaz. Bu sınıftaki koruma, masaüstü
tam disk şifrelemeye benzer özelliklere sahiptir ve verileri yeniden başlatılmasını
gerektiren saldırılardan korur.
KORUMASIZ (NSFILEPROTECTIONNONE)
Bu sınıf anahtarı yalnızca UID ile korunur ve silinebilir depolamada ( Effaceable
Storage ) saklanır. Bu varsayılan sınıf, tüm dosyalar için değildir aksi taktirde bir veri
koruma sınıfına atanır. Bu sınıftaki dosyaların şifresini çözmek için gerekli tüm
anahtarlar cihazınızda saklanır, şifreleme yalnızca uzaktan hızlı silmeye yarar. Eğer,
bir dosyaya veri koruma sınıfı atanmamışsa, yine de bu bir IOS cihaz üzerindeki tüm
veriler gibi şifrelenmiş biçimde depolanır.
14
IOS SDK, 3.parti uygulamaları kolay hale getirmek ve ev geliştiricilerine veri
koruma benimsemesi için tam bir API'ler takımı sunar ve kendi uygulamalarında en
üst düzeyde koruma sağlar. Veri koruma; SQLite, NSData, CoreData ve
NSFileManager dahil dosya ve veritabanı API'leri için kullanılabilir.
2.3.4. ANAHTARLIK VERİ KORUMA
Uygulamaların birçoğunun parolaları ve anahtarlar ile giriş belirteçleri gibi diğer
kısa ama hassas veri bitlerini ele alması gerekir.
Anahtarlık, güvenlik dosyalarını korumak için kullanılan anahtar hiyerarşisine
paralel çalışan farklı bir anahtar hiyerarşisi tarafından sağlanan "korumasız" sınıftaki
dosya sisteminde depolanan SQLite veri tabanı olarak uygulanır. Yalnızca tek bir
veritabanı vardır; "securityd" daemon, anahtarlık öğelerinin her bir işlem veya
uygulamaya erişebilmesini belirler.
Anahtarlık erişim API'leri, "securityd" çerçevesinde yapılan uygulamanın
"anahtarlık-erişim-gruplar" ve "uygulama-tanımlayıcı" yetkisini sorgulayan
çağrıların nedenidir. Tek bir işlemi kısıtlamak yerine, erişim grupları Anahtarlık
öğeleri uygulamalar arasında paylaşılmasına olanak sağlar [5].
Anahtarlık öğeleri yalnızca aynı geliştirici uygulamalar arasında paylaşılabilir. Bu,
erişim gruplarını kullanmak için 3.parti uygulamalar gerektiren IOS geliştirici
Programı aracılığıyla kendilerine ayrılan bir önek ile yönetilir. Önek gereksinimi,
kod imzalama ve Provizyon profilleri üzerinden uygulanır.
Anahtarlık verisi, Veri Koruma dosyasında kullanılan benzer bir sınıf yapısı
kullanılarak korunmaktadır. Bu sınıflar, dosya veri koruma sınıfları için eşdeğer
davranışlara sahiptir ama farklı tuşları kullanır ve API'lerin farklı adlandırılan
parçasıdır.
Her Anahtarlık sınıfı, yedekleme sırasında cihazdan kopyalanmaya başladığı zaman
UID ile daima korunan "sadece bu cihaz" muadiline sahiptir. Eğer farklı bir cihaza
geri yüklediyseniz bunu işe yaramaz hale getirir.
Apple, işletim sistemi tarafından ihtiyaç duyulduğunda bilgi güvenliğinin türüne
bağlı olarak Anahtarlık sınıfları tarafından dikkatle dengelenmiş güvenlik ve
kullanılabilirliğe sahiptir.
15
Örneğin; bir VPN sertifikası her zaman kullanılabilir olmalıdır, bu yüzden cihaz
sürekli bir bağlantı tutar ama başka bir cihaza taşınamaz olduğundan non-migratory
olarak sınıflandırılmıştır.
IOS tarafından oluşturulan Anahtarlık öğeleri için aşağıdaki sınıf korumaları
uygulanır:
Eleman Erişilebilir
Wi-Fi passwords After first unlock
Mail accounts After first unlock
Exchange accounts After first unlock
VPN certificates Always, non-migratory
VPN passwords After first unlock
LDAP, CalDAV, CardDAV After first unlock
Social network account tokens After first unlock
Home sharing password When unlocked
Find My iPhone token Always
iTunes backup When unlocked, non-migratory
Voicemail Always
Safari passwords When unlocked
Bluetooth keys Always, non-migratory
Apple Push Notification Service Token Always, non-migratory
iCloud certificates and private key Always, non-migratory
iCloud token After first unlock
iMessage keys Always, non-migratory
SIM PIN Always, non-migratory
Certificates and private keys installed Always, non-migratory
by Configuration Profile
BİR ANAHTARLIK ÖĞESİNİN BİLEŞENLERİ
Erişim grubu ile birlikte her bir anahtarlık öğesi, metadata ( "oluşturulmuş" ve "en
son güncellenmiş" zaman belirteci gibi ) içerir.
16
Aynı zamanda, sorgulamak için kullanılan hesap ve sunucu adı gibi her bir öğenin
şifresini çözmeden arama izni vermek için SHA-1 özniteliklerinin karmalarını içerir.
Son olarak, aşağıdakileri şifreleme verilerini içerir:
* Sürüm numarası
* Değer koruma sınıfını belirten eleman
* Eleman başına koruma sınıfı anahtar ile sarılmış
* Elemanı açıklayan neiteliklerin sözlüğü ( SecItemAdd için geçti gibi ), bir ikili plist
olarak kodlanmış ve şifrelenmiş
Şifreleme, GCM'deki AES 128'dir: erişim grubu nitelikleri içinde ve GMAC
tarafından korunmaktadır.
2.3.5. KEYBAGS
Anahtarlar; hem dosya hem de Anahtarlık Veri Koruma sınıfları için toplanır ve
keybags içinde yönetilir. IOS, aşağıdaki 4 keybags'i kullanır:
SYSTEM KEYBAG
Cihazın normal çalışmasında kullanılan sarılmış sınıf anahtarlarının depolandığı
yerdir. Örneğin; bir geçiş kodu girildiğinde, NSFileProtectionComplete anahtarı
sistem anahtarlığından yüklenir ve paketi açar.
Bu, "Korumasız" sınıfta depolanan bir ikili plisttir ama içerikleri Silinebilir
Depolama'da tutulan bir anahtar ile şifrelenir. Keybags için ileri güvenlik sağlamak
amacıyla, bu anahtar silinir ve bir kullanıcı geçiş kodunu değiştirdiği her zamanda
yenilenir. Sistem Keybag, cihazda depolanan tek keybag'tir. AppleKeyStore çekirdek
uzantısı Sistem Keybag'i yönetir ve bir cihazın kilit durumu ile ilgili sorgulanabilir.
Bu raporlar, paket açılması başarılı bir şekildeyken eğer sistemdeki tüm sınıf
anahtarları erişilebilir ise sadece cihazın kilidinin açık olduğunu bildirir.
BACK-UP KEYBAG
Back-up Keybag, iTunes tarafından şifrelenmiş bir yedekleme yapıldığında
oluşturulur ve cihazın yedeklendiği bilgisayarda depolanır. Yeni bir keybag yeni bir
anahtar dizisiyle oluşturulur ve yedeklenmiş veriler bu yeni anahtarlar için yeniden
şifrelenir.
17
Daha önce açıklandığı gibi, non-migrator Anahtarlık öğeleri UID türetilmiş anahtar
ile sarılı kalır, onlar orijinalinde yedeklenmiş cihaza restore edilmeye izin verir ancak
onları farklı bir cihazda ulaşılamaz hale getirir.
Keybag, iTunes' taki ayarlanan parolayla korunur ve PBKDF2' nin 10.000
yinelemesi aracılığıyla çalışır. Bu büyük yineleme sayısına rağmen, belirli bir aygıt
için herhangi bir bağ yoktur ve bu nedenle back-up keybag üzerindeki birçok
bilgisayar arasında paralel bir brute-force saldırısı denenebilir. Bu tehdit yeterince
güçlü bir parola ile azaltılabilir.
Eğer bir kullanıcı iTunes yedekleme için şifrelemeyi seçmezse, yedekleme dosyaları
onların Veri Koruma sınıfına bakılmaksızın yani sınıfı ne olursa olsun şifrelenmez
ama Anahtarlık, türetilmiş bir anahtar ile korumalı kalır. Bu yüzden, eğer yalnızca bir
yedekleme parolası ayarlanırsa Anahtarlık öğeleri yeni bir cihaza taşınır.
ESCROW KEYBAG
iTunes senkronizasyonu ve MDM için kullanılır. iTunes'u yedeklemeyi ve kullanıcı
geçiş kodu girmesini gerektirmeden senkronize etmeyi sağlar ve uzaktan bir
kullanıcının şifresini temizlemek için bir MDM sunucusu sağlar. Senkronizasyon
için kullanılan bilgisayarda veya cihazı yöneten MDM sunucusunda depolanır.
Escrow keybag, cihaz senkronizasyonu sırasında potansiyel verilerin tüm sınıflarına
erişimi gerektiren kullanıcı deneyimini geliştirir. Bir geçiş kodu ile kilitli cihaz,
iTunes'a bağlandığında kullanıcıdan bir geçiş kodu girmesi istenir. Bundan sonra
cihaz, bir Escrow Keybag oluşturur ve Host'a iletir. Escrow Keybag, tam olarak yeni
oluşturulan anahtar tarafından korunan cihazda kullanılan aynı sınıf anahtarları içerir.
Bu anahtar, Escrow Keybag kilidini açmak için gereklidir ve Protected Until First
User Authentication sınıfındaki cihazda depolanır. Bu yüzden, cihaz yeniden
başlatıldıktan sonra ilk kez iTunes yedeklemeden önce geçiş kodu girilmelidir.
ICLOUD BACK-UP KEYBAG
Back Up Keybag'e benzemektedir. Bu keybag'in tüm sınıf anahtarları asimetriktir,
bu yüzden iCloud yedeklemeleri arka planda gerçekleşebilir. "No Protection" hariç
tüm veri koruma sınıfları için şifrelenmiş veri cihazdan okunur ve iCloud'a
gönderilir. İlgili sınıf anahtarları, iCloud anahtarları tarafından korunur.
18
Anahtarlık sınıfı anahtarları, şifrelenmemiş bir iTunes yedeklemesiyle aynı şekilde
UID türetilmiş bir anahtar ile sarılır.
BİR KEYBAG BİLEŞENLERİ
Başlık İçerikleri:
* Sürüm ( IOS 3 veya daha sonra 5'e ayarlama )
* Tür ( Sistem, Yedekleme, Emanet, iCloud Yedekleme )
* Keybag UID
* Keybag imzalanmış ise bir HMAC
* Sınıf anahtarlarının sarılması için kullanılan yöntem: UID veya PBKDF ile
birbirine dolaşmış, salt ve yineleme sayısı ile birlikte
Sınıf anahtarlarının bir listesi:
* Anahtar UUID
* Sınıf ( Bu, hangi dosya veya Anahtarlık veri koruma sınıfı )
* Sarma Türü
* Sarmalanmış sınıf anahtarı
* Asimetrik sınıflar için ortak anahtar
2.4. CİHAZ ERİŞİMİ
IOS, esnek güvenlik politikaları ve kolayca uygulanan yapılandırmaları destekler ve
yönetir. Bu, şirketlerin kurumsal bilgilerini korumayı ve çalışanların kurumsal
beklentilerini karşılamayı sağlar.
2.4.1. GEÇİŞ KODU KORUMASI
Kriptografik koruma sağlamanın yanı sıra, geçiş kodları cihazın kullanıcı kimliğine
yetkisiz erişimini önler. IOS arabirimi, geçersiz bir geçiş kodu girildikten sonra artan
zaman gecikmelerini zorlar, kilit ekranı üzerinden brute-force saldırıların etkinliğini
önemli ölçüde azaltır.
Kullanıcılar, başarısız on geçiş kodu denemesinden sonra cihaz otomatik olarak
silinebiliri seçebilir. Bu ayar, idari bir yönetim politikası olarak kullanılabilir. Ayrıca
Exchange ActiveSync ve MDM sayesinde daha düşük bir eşik değeri ayarlanabilir
[5].
19
Varsayılan olarak, kullanıcının geçiş kodu 4 haneli PIN olarak tanımlanabilir.
Kullanıcılar, daha uzun alfanumerik ( alfasayısal ) geçiş kodu belirleyebilir: Settings
> General > Passcode > Complex Passcode. Daha uzun ve daha karmaşık geçiş
kodlarını tahmin etmek ya da saldırmak zordur ve kurumsal kullanım için tavsiye
edilmektedir.
Yöneticiler, karmaşık parola gereksinimlerini ve MDM veya Exchange ActiveSync
gibi diğer politikaları kullanarak veyahut kullanıcıların el ile yapılandırma profilleri
zorunlu kılarak zorlayabilir.
Aşağıdaki geçiş kodu politikaları kullanılabilir:
* Basit bir değere izin vermek
* Alfanumerik değer gerektirir
* Minimum geçiş kodu uzunluğu
* Minimum sayıda karmaşık karakter
* Maksimum geçiş kodu yaşı
* Geçiş kodu geçmişi
* Otomatik kilit zaman aşımı
* Cihaz kilidi için mühlet verilen süre
* Maksimum sayıda başarısız girişim
2.4.2. YAPILANDIRMA UYGULAMA
Bir yapılandırma profili, bir yöneticiye IOS cihazlar için yapılandırma bilgisini
dağıtmayı sağlayan bir XML dosyasıdır. Yüklenmiş bir yapılandırma profili
tarafından tanımlanmış ayarlar, kullanıcı tarafından değiştirilemez. Eğer kullanıcı,
yapılandırma profilini silerse profil tarafından tanımlanmış tüm ayarlar da kaldırılır.
Böylelikle, yöneticiler politikaları erişime bağlayarak ayarlarını uygulayabilirler.
Örneğin; bir e-mail yapılandırması sağlayan bir yapılandırma profili, ayrıca cihaz
geçiş kodu politikasını belirler. Kullanıcıların, geçiş kodları yöneticinin
gereksinimlerini karşıladığı sürece maillerine erişmek mümkün olmayacaktır.
20
Bir IOS yapılandırma profili, aşağıda belirtilen bir dizi ayarı içerir:
* Geçiş kodu politikaları
* Cihaz özelliklerini kısıtmala ( kamerayı devre dışı bırakma gibi )
* Wi - Fi ayarları
* VPN ayarları
* E-mail sunucu ayarları
* Exchange ayarları
* LDAP dizin hizmeti ayarları
* CalDAV takvim hizmeti ayarları
* Web klipleri
* Kimlik bilgileri ve anahtarlar
* Gelişmiş hücresel ağ ayarları
Yapılandırma profilleri imzalanmış ve kökeni doğrulamak, onların bütünlüğünü
sağlamak ve içeriğini korumak için şifreli olabilir. Yapılandırma profilleri, 3DES ve
AES-128 destekleyen CMS ( RFC 3852 ) kullanılarak şifrelenir.
Yapılandırma profilleri, onların tamamen kaldırılmasını engellemek için bir cihaza
kilitlenebilir veya bir geçiş kodu ile yalnızca kaldırmak için izin verir.
Birçok kurumsal kullanıcı, kişisel olarak kendi IOS cihazlarını kullandığı için
yapılandırma profilleri kaldırılabilir bir MDM sunucusuna bir cihazı bağlar ancak
bunu yaparken aynı zamanda yönetilen tüm yapılandırma bilgileri, veri ve
uygulamaları kaldırır.
Kullanıcılar, iPhone Configuration Utility kullanarak kendi cihazları üzerinde
doğrudan Yapılandırma Profilleri yükleyebilirler. Yapılandırma Profilleri, bir MDM
sunucusu kullanarak havadan veya e-mail yoluyla indirilebilir.
2.4.3. MOBİL CİHAZ YÖNETİMİ
IOS, işletmelerin güvenli bir şekilde yapılandırmasını sağlamak için MDM'yi
destekler ve onların kendi arasındaki ölçeklendirilmiş iPhone ve iPad dağıtımlarını
yönetir. MDM yetenekleri; OTA Enrollment, APNS ve yapılandırma profilleri gibi
mevcut IOS teknolojileri üzerine inşa edilmiştir.
21
MDM kullanarak, Bilişim Teknolojileri departmanları kurumsal bir ortamda IOS
cihazları kaydedebilir, kablosuz yapılandırma yapabilir ve ayarları güncelleyebilir,
kurumsal politikalar ile uyumu izleyebilir ve hatta uzaktan silme veya cihazları
kilitlemeyi yönetebilir.
2.4.4. APPLE YAPILANDIRICISI
MDM'ye ek olarak, Apple Yapılandırıcısı IOS cihazları herkese dağıtmak için OS
X' i kolaylaştırır. Apple yapılandırıcısı; ayarlar, uygulamalar ve veri ile çok sayıda
cihazı yapılandırmak için hızlı kullanılabilir. Başlangıçta yapılandırılmış cihazlar,
yüklenmesi için gerekli kısıtlamalar ve ek ayarları sağlayan Apple yapılandırıcısı
kullanarak denetlenebilir. Bir cihaz; Apple yapılandırıcısı ile bir kez denetlendikten
sonra, mevcut tüm ayarlar ve kısıtlamalar OTA üzerinden yüklenir, MDM yoluyla da
yüklenebilir.
2.4.5. CİHAZ KISITLAMALARI
Yöneticiler, bir yapılandırma profili yükleyerek cihaz özelliklerini kısıtlayabilir.
Aşağıdaki mevcut kısıtlamalar:
* Uygulama yüklemeye izin ver
* Kamera kullanımına izin ver
* Facetime izin ver
* Ekran yakalama izin ver
* Sesli arama izin ver
* Dolaşımdayken otomatik eşitlemeye izin ver
* Uygulama satınalıma izin ver
* Eklenen mailler senkronizasyonuna izin ver
* Tüm alımlar için kullanıcıyı mağaza şifresini girmeye zorlamak
* Çok oyunculu oyun izin ver
* Oyun merkezi arkadaşları eklemeye izin ver
* Siri kullanımına izin ver
* Cihaz kilitliyken Siri kullanımına izin ver
* Youtube kullanımına izin ver
* Cihaz kilitliyken hesap cüzdanı bildirimlerine izin ver
* iTunes Store kullanımına izin ver
* Safari kullanımına izin ver
22
* Safari otomatik doldurmayı etkinleştirme
* Sahte Web sitesi uyarısını zorlama
* JavaScript etkinleştirmek
* Açılır pencereleri engelle
* Çerezleri ( tanımlama bilgileri ) kabul et
* iCloud yedekleme ve belge senkronizasyonuna izin ver
* Fotoğraf akışına izin ver
* Paylaşılan fotoğraf akışına izin ver
* Apple için tanılama ( teşhis ) gönderilmesine izin ver
* Güvenilmeyen TLS sertifikaları kabul etmek için kullanıcıya izin ver
* Zor şifrelenmiş yedekleme
* İçerik derecelendirme tarafından medya kısıtlaması
Sadece Denetimli Kısıtlamalar
* iMessage izin ver
* Oyun merkezi izin ver
* iBookStore izin ver
* iBookStore'dan erotik izin ver
* Uygulamaların kaldırılmasına izin ver
* Siri küfür filtresini etkinleştir
* Elle yapılandırma profilleri yüklenmesine izin ver
2.4.6. UZAKTAN SİLME
IOS cihazlar, bir yönetici veya kullanıcı tarafından uzaktan silinebilir. Silinebilir
depolama'dan bloke edilmiş depolama şifreleme anahtarı atılarak, anında uzaktan
silme güvenli bir şekilde elde edilir ve tüm veriler okunamaz hale gelir. Uzaktan
silme; iCloud, Exchange veya MDM tarafından başlatılabilir.
Uzaktan silme, MDM veya iCloud tarafından tetiklendiğinde cihaz bir bildirim
gönderir ve silme gerçekleştirilir. Exchange ile uzaktan silme için, cihaz silme
işlemini gerçekleştirmeden önce Exchange sunucu ile denetler.
Ayrıca, kullanıcılar ayarlar uygulamasını kullanarak ellerindeki cihazları silebilir.
Ve belirtildiği gibi, cihazlar bir dizi başarısız geçiş kodu denemesinden sonra
otomatik olarak silmek için ayarlanabilir.
23
3. ANDROID GÜVENLİK
3.1. GİRİŞ
3.1.1. ANDROID GÜVENLİK GENEL BAKIŞ
Android uygulamaları, platform sayesinde yerel ve görev verilerinin yanısıra
gelişmiş donanım ve yazılım kullanımını da sağlar. Bu değeri korumak için
kullanıcıların veri, uygulamalar, cihaz ve ağ güvenliğini sağlayan uygulama ortamı
sunulmalıdır. Açık bir platformu korumak için güvenlik mimarisi ve ciddi güvenlik
programları gereklidir. Android, tüm kullanıcılara gerekli korumayı sağlarken açık
bir platform için gerekli esnekliği sağlayan çok katmanlı güvenlik ile tasarlanmıştır.
Android, güvenlik kontrollerinin geliştiricilerin üzerindeki yükü azaltması
düşünülerek tasarlanmıştır. Güvenlik uzmanı geliştiriciler, esnek güvenlik kontrolleri
üzerinde kolayca çalışabilir ve güvenebilirler.
Android, aynı zamanda kullanıcılar düşünülerek tasarlanmıştır. Kullanıcılar,
uygulamaların nasıl çalıştığını ve bu uygulamaların üzerinde denetimin nasıl
göründüğünü sağlar. Bu tasarım, saldırganların cihaza kötü niyetli yazılım yüklemek
için sosyal mühendislik gibi yaygın saldırıları ve 3.cü taraf uygulamalar üzerinden
saldırı beklentilerini içerir. Android, hem bu saldırıların olasılığını azaltmak hem de
etkisini sınırlandırmak için tasarlanmış ve bunda da başarılı olmuştur.
Android plaftormunun ana yapı taşları:
CİHAZ DONANIMI: Android OS; akıllı telefonlar, tabletler ve set-top-boxes dahil
olmak üzere donanım yapılandırmalarının geniş bir yelpazesinde çalışır. Anroid,
bilinemez işlemcidir ama ARM v6 eXecute-Never gibi donanıma özgü güvenlik
özelliklerinin bazı avantajlarından yararlanır.
ANDROID İŞLETİM SİSTEMİ: Çekirdek işletim sistemi, Linux çekirdeği üzerine
inşa edilmiştir. Kamera işlevleri, GPS verileri, Bluetooth işlevleri, telefon işlevleri,
ağ bağlantıları vb. gibi tüm cihaz kaynaklarına işletim sistemi üzerinden erişilebilir.
ANDROID UYGULAMA ÇALIŞMA ZAMANI: Android uygulamaları en sık
Java programlama dilinde yazılmıştır ve Dalvik sanal makinesinde çalıştırılır ancak
uygulamaların birçoğu, çekirdek Android hizmetlerini kapsar ve yerli uygulamaları
veya yerli kütüphaneleri kapsar. Hem Dalvik hem yerli uygulamalar, Application
Sandbox içinde bulunan aynı güvenlik ortamı içinde çalışır.
24
Uygulamalar için birincil iki kaynak şunlardır:
ÖNCEDEN YÜKLENMİŞ UYGULAMALAR: Android; telefon, e-posta, takvim,
web tarayıcı ve kişiler de dahil olmak üzere önceden yüklenmiş bir dizi uygulama
içerir. Bu fonksiyon hem kullanıcı uygulamaları gibi hem de diğer uygulamalar
tarafından erişilebilen anahtar cihaz yeteneklerini sağlar. Önceden Yüklenmiş
Uygulamalar, açık kaynak kodlu Android platformunun bir parçası olabilir ya da özel
bir cihaz için bir OEM tarafından geliştirilebilir.
KULLANICI TARAFINDAN YÜKLENEN UYGULAMALAR: Android,
herhangi bir 3.parti uygulamayı destekleyen açık bir geliştirme ortamı sağlar.
Birincil hizmetler şunlardır:
GOOGLE PLAY: Kullanıcıya uygulama keşfetmek, denemek, yüklemek ve web
satınalma izni veren bir hizmet topluluğudur. Google Play; geliştiriciler için, Android
kullanıcılarına ve potansiyel müşterilere ulaşmayı kolaylaştırır. Google Play; aynı
zamanda topluluk gözden geçirme, uygulama lisans doğrulama, uygulama güvenliği
tarama ve diğer güvenlik hizmetlerini sağlar.
ANDROID GÜNCELLEMELERİ: Android güncelleme servisi, OTA üzerinden
veya web sayesinde güncelleştirmeler dahil olmak üzere Android cihazlar için
güvenlik güncelleştirmeleri ve yeni özellikler sunar.
UYGULAMA HİZMETLERİ: Çerçeveler, push mesajları için buluttan cihaza
mesajlaşma ve uygulama verisi ve ayarları gibi Android uygulamalarının bulut
yetenekleri kullanmasına izin verir.
Android Güvenlik Programı, anahtar bileşenleri içerir:
Temel Bileşenler;
TASARIM İNCLEMESİ: Android güvenlik süreci, zengin ve yapılandırılabilir
güvenlik modeli ve tasarım oluşturulması ile erken geliştirme yaşam döngüsünde
başlar. Platformun her önemli özelliği mühendislik ve güvenlik kaynakları tarafından
sistem mimarisine entegre edilmiş uygun güvenlik kontrolleri ile gözden geçirilir.
25
PENETRASYON TESTİ VE KOD İNCELEME: Platform geliştirilmesi sırasında,
Android oluşturulan ve açık kaynak bileşenleri güçlü güvenlik değerlendirmelerine
tabidir. Bu inceleme Google Bilgi Güvenliği Mühendislik Ekibi ve bağımsız
güvenlik danışmanları tarafından Android Güvenlik Ekibi ile yapılmaktadır. Bu
incelemenin amacı açık kaynak platformdan önce zayıf ve olası güvenlik açıklarını
tespit etmek ve dış güvenlik uzmanları tarafından gerçekleştirilecek analiz türlerini
taklit etmektir.
AÇIK KAYNAK VE TOPLULUK İNCELEME: Android, Linux çekirdeği gibi
önemli dış güvenliği inceleyen açık kaynak teknolojilerini de kullanır. Google Play;
kullanıcılar ve şirketler için, kullanıcılara belirli uygulamalar hakkında doğrudan
bilgi vermek için forum sağlamaktadır.
OLAYA MÜDAHALE: Tüm bu önlemlere rağmen, güvenlik sorunları Android
Projesi'nin kapsamlı bir güvenlik tepki süreci oluşturmasından sonra meydana
gelebilir. İşte bu yüzden tam zamanlı bir Android güvenlik ekibi, potansiyel güvenlik
açıklarının tartışılması için Android'e özgü güvenlik topluluğunu sürekli izler.
3.1.2. ANDROID PLATFORMU GÜVENLİK MİMARİSİ
* kullanıcı verilerini korumak
* sistem kaynaklarını korumak ( ağ dahil olmak üzere )
* uygulama yalıtımı sağlamak
Bu hedeflere ulaşabilmek için Android'in sunduğu gerekli güvenlik özellikleri:
* Linux çekirdeği sayesinde işletim sistemi düzeyinde güçlü güvenlik
* Tüm uygulamalar için zorunlu Sandbox uygulaması
* Güvenli işlemler arası iletişim
* Uygulama İmzalama
* Uygulama tanımlı ve kullanıcıya verilen izinler
Şekil1'de Android yazılım yığınının çeşitli düzeylerde düşünceleri ve güvenlik
bileşenleri belirtilmiştir.
Her bileşen, aşağıdaki bileşenlerin tamamen güvenli olduğunu varsayar. Kök olarak
çalışan Android İşletim Sistemi kodunun küçük bir miktarı haricinde, Linux
çekirdeği üzerindeki tüm kodlar Sandbox Uygulama tarafından kısıtlanır.
26
A p p l i c a t i o n s
A p p l i c a t i o n F r a m e w o r k
h o m e d i a l e r im
S m s /
m m s
c l o c ka l b u m s
c a l c u l a t o ra l a r mc a m e r ab r o w s e r
c o n t a c t s e - m a i l c a l e n d a r …
A c t i v i t y
M a n a g e r
M e d i a
p l a y e r
V o i c e
d i a l
W i n d o w s
M a n a g e r
C o n t e n t
P r o v i d e r s
N o t i f i c a t i o n
M a n a g e r
V i e w S y s t e m
P a c k a g e
M a n a g e r
T e l e p h o n e
M a n a g e r
R e s o u r c e
M a n a g e r
lo c a t i o n
M a n a g e r
X m p p
S e r v i c e
S u r f a c e
M a n a g e r
M e d i a
F r a m e w o r k
O p e n G L - E S L i b W e b C o r eF r e e T y p e
S Q L i t e
L i b r a r i e s
L i b cS S LS G L
A n d r o i d R u n t i m e
C o r e L i b r a r i e s
D a l v i k V i r t u a l
M a c h i n e
D i s p l a y
D r i v e r
B lu e t o o t h
D r i v e r
K e y p a d
D r i v e r
A u d i o
D r i v e r s
F l a s h
M e m o r y
D r i v e r
C a m e r a
D r i v e r
U S B D r i v e r W i - F i D r i v e r
B in d e r ( I P C )
D r i v e r
P o w e r
M a n a g e m e n t
L i n u x K e r n e l
Şekil 1: Android yazılım yığını
3.2. SİSTEM VE ÇEKİRDEK GÜVENLİK DÜZEYİ
İşletim sistemi düzeyinde Android platformu, işlemler arası güvenli bir iletişim
kolaylığının yanısıra, farklı süreçlerde çalışan uygulamalar arasında güvenli iletişimi
sağlamak için Linux çekirdeğinin güvenliğini sağlar. Bu güvenlik özellikleri, işletim
sistemi düzeyinde Sandbox Uygulama tarafından yerel kodun bile kısıtlanmasını
sağlar. Kod, uygulama davranışının dahili bir sonucu veya bir uygulamanın güvenlik
açığının sömürüsü olsa da olmasa da Sistem; cihazın kendisi, Android sistemi veya
diğer uygulamalardan gelen zararlı sahte uygulamayı önleyebilecektir [3].
3.2.1. LINUX GUVENLİK
Android platformunun temeli Linux çekirdeğidir. Linux çekirdeğinin kendisi
yıllardır yaygın olarak kullanılmaktadır, aynı zamanda güvenlik duyarlı ortamlarda
milyonlarca kez kullanılmıştır. Tarihi boyunca binlerce geliştirici tarafından sürekli
araştırılmış, saldırılmış ve düzeltilmiştir. Linux, birçok şirket ve güvenlik uzmanı
tarafından istikrarlı ve güvenli bir çekirdek haline gelmiştir [3].
27
Bir mobil bilgi işlem ortamı için temel olarak Linux çekirdeği, Android ile çeşitli
anahtar güvenlik özellikleri sağlar.
Bunlar;
* Kullanıcı tabanlı izinler modeli
* İşlem yalıtımı
* Güvenli IPC için genişletilebilir mekanizma
* Çekirdeğin gereksiz ve potansiyel olarak güvenli olmayan parçalarını kaldırma
yeteneği
Çok kullanıcılı bir işletim sistemi olarak Linux çekirdeğinin temel güvenlik amacı
kullanıcı kaynaklarını birbirinden izole etmektir.
Böylece Linux;
* a kullanıcısının b kullanıcısının dosyalarını okumasını önler.
* a kullanıcısının b kullanıcısının belleğini tüketmemesini sağlar
* a kullanıcısının b kullanıcısının cpu kaynaklarını tüketmemesini sağlar
* a kullanıcısının b kullanıcısının telefon, GPS, Bluetooth cihazlarını tüketmemesini
sağlar.
3.2.2. APPLICATION SANDBOX
Android platformu, uygulama kaynaklarını belirlemek ve izole etmek için bir araç
olarak Linux kullanıcı tabanlı korumadan faydalanır. Android sistemi, her Android
uygulama için UID atar ve ayrı bir işlemde kullanıcı gibi çalışır. Bu yaklaşım,
geleneksel Linux yapılandırma da dahil olmak üzere birden fazla uygulamanın aynı
kullanıcı izinleriyle çalıştığı diğer işletim sistemlerinden farklıdır [7].
Çekirdek, kullanıcı ve uygulamalar için atanmış olan grup kimlikleri gibi standart
Linux imkanları aracılığıyla işlem düzeyinde sistem ve uygulamalar arasındaki
güvenliği zorlar. Varsayılan olarak, uygulamalar birbirleriyle etkileşemez ve işletim
sistemine sınırlı erişim hakkına sahiptirler. Eğer, A uygulaması B uygulamasının izni
olmaksızın telefonu veya verilerini okumak gibi zararlı birşey yapmaya çalışırsa ,
işletim sistemi bunu korur. Çünkü, A uygulaması uygun kullanıcı ayrıcalıklarına
sahip değildir.
28
Sandbox; basit, denetlenebilir ve dosya izinleri ile onlarca yıldır süren UNIX stili
kullanıcı ayırma işlemlerine dayanmaktadır.
Application Sandbox, çekirdekte olduğundan bu güvenlik modeli yerel kod ve
işletim sistemi uygulamalarına genişler. Şekil 1'deki çekirdek üzerinde yazılımın
tümü; işletim sistemi kütüphaneleri, uygulama çerçevesi ve uygulama zamanı dahil
tüm uygulamalar Application Sandox içinde çalışır.
Bazı platformlarda geliştiriciler belirli bir geliştirme çerçevesi, API'lerin dizisi veya
dil güvenliğini sağlamak için sınırlandırılmıştır. Android'te güvenlik sağlamak için
gerekli bir uygulamanın nasıl yazılmış olduğuyla ilgili herhangi bir kısıtlama yoktur;
bu bağlamda yerel kod sadece güvenli olarak yorumlanır.
Bazı işletim sistemlerinde bellek bozulması hataları genellikle tamamen cihazın
güvenliğini tehlikeye sokar. Bu durum, kendi kaynakları işletim sistemi seviyesinde
korumalı alan olan tüm uygulamalar için Android'te böyle değildir. Bir bellek
bozulması hatası, işletim sistemi tarafından kurulan izinler ile sadece belirli bir
uygulama bağlamında rastgele kod yürütülmesine izin verecektir.
3.2.3. SİSTEM BÖLÜMÜ VE GÜVENLİ MOD
Sistem bölümü; uygulamalar, işletim sistemi kütüphaneleri, uygulama çalışma
zamanı ve uygulama çerçevesinin yanı sıra Android çekirdeğini de içerir. Bu bölüm
salt okunur olarak ayarlanır. Bir kullanıcı cihaza güvenli modda önyükleme
yaptığında yalnızca çekirdek Android uygulamaları mevcuttur. Bu 3.parti bir
yazılımın ücretsiz olduğu bir ortamda kullanıcının kendi telefonuna önyükleme
yapabilmesini sağlar.
3.2.4. DOSYA SİSTEMİ İZİNLERİ
UNIX tarzı bir ortamda, dosya sistemi izinleri bir kullanıcının, bir başka kullanıcının
dosyalarını değiştirememesini veya okuyamamasını sağlar. Android'in durumunda
ise her bir uygulama kendi kullanıcı olarak çalışır. Geliştirici, diğer uygulamalar için
dosyaları ortaya çıkarmadıkça bir uygulama tarafından oluşturulan dosyalar, başka
bir uygulama tarafından değiştirilemez veya okunamaz.
29
3.2.5. ŞİFRELEME
Android, uygulamalar tarafından kullanılmak üzere bir kriptografik API dizisi
sağlar. Bu AES, RSA, DSA ve SHA gibi standart ve yaygın olarak kullanılan ilkel
şifreleme uygulamalarını içerir. İlaveten API'ler, SSL ve HTTPS gibi yüksek seviyeli
protokoller sağlar [4].
3.2.6. BELLEK YÖNETİMİ GÜVENLİK GELİŞTİRMELERİ
Android, yaygın bellek sorunlarını önemli ölçüde zorlaştıran birçok özellik içerir.
Android SDK, derleyiciler ve işletim sistemi yaygın bellek sorunlarını önemli ölçüde
zorlaştırmak için aşağıdaki araçları kullanır.
ANDROID 1.5.
* Yığın ( öbek ) arabellek taşmalarını önlemek için ProPolice (f-stack-protector)
* Tamsayı taşmalarını azaltmak için safe_iop
* Serbest çift güvenlik açıklarını ve yığın birleştirme ( sağlamlaştırma ) saldırılarını
önlemek için OpenBSD dlmalloc uzantıları
* Bellek tahsisi sırasında tamsayı taşmalarını önlemek için OpenBSD calloc
ANDROID 2.3.
* Biçim dizesi güvenlik açığı koruması
* Donanım tabanlı yığın ve üzerinde kod yürütülmesini engellemek için No eXecute
* Boş işaretçi etkisini azaltmak ve ayrıcalık yükseltmek için Linux mmap_min_addr
KQUEUE
ANDROID 4.0.
* Hafızada anahtar yerleri rastgele seçmek için ASLR
ANDROID 4.1.
* Konumdan bağımsız yürütülebilir destek ( PIE )
* Salt okunur yer değiştirmeler / anında bağlanma (-Wl,-z,relro -Wl,-z,now )
* Etkin dmesg_restrict ( çekirdek adreslerinin sızmaması )
* Etkin kptr_restrict ( çekirdek adreslerinin sızmaması ) [8].
ANDROID 4.2.
Uygulama Doğrulama: Zararlı olabilecek bir uygulama yüklemeye çalışırsanız
uygulama doğrulama kullanıcıyı uyarabilir. Eğer bir uygulama özellikle kötüyse
yüklemeyi engelleyebilir.
30
FORTIFY_SOURCE: Bellek bozulmasını önlemek için sistem kütüphaneleri ve
uygulamalar tarafından kullanılır.
Daha fazla hediye SMS kontrolü: Android, bir uygulama için ek masrafa neden
olabilecek premium servislerden kısa sms gönderme girişiminde bir bildirim
sağlayacak. Kullanıcı uygulama izni için mesaj göndermeyi / engellemeyi seçebilir.
Her zaman açık VPN: Uygulamalar, VPN bağlantısı kuruluncaya kadar ağa
erişemez. Böylece, VPN yapılandırılabilir. Bu uygulamalar diğer ağlar arasında veri
göndermesini engeller.
Sertifika Sabitleme: Android çekirdek kütüphaneleri sertifika tutturmayı destekler.
Eğer sertifika beklenen sertifika zincir kümesi değilse tutturulmuş sertifika
doğrulama hatası alırsınız. Bu sertifika yetkililerini olası uzlaşmasına karşı korur.
Android İzinlerin Geliştirilmiş Ekranı: İzinler kullanıcı tarafından daha kolay
anlaşılır gruplar halinde organize edilmiştir. İzinlerin incelenmesi sırasında kullanıcı
izni hakkında daha detaylı bilgi izni için tıklayabilirsiniz.
Installd Sabitleme: Installd komutu kök ayrıcalık yükseltmek için potansiyel saldırı
alanını azaltarak kök kullanıcısı olarak çalışmaz.
Init Komut Sabitleme: Semantik saldırıları ile ilgili sembolik koruma için
O_NOFOLLOW Inıt komutunu şimdi uygula
ContentProvider Varsayılan Yapılandırma: API seviyesindeki 17 uygulamanın
her biri için varsayılan olarak her içerik sağlayıcının hedefi hatalıyı dışa çıkararak
uygulamalar için varsayılan saldırı alanın azaltılmasıdır.
Kriptografi: SecureRandom ve Cipher'ın varsayılan uygulamaları modifiye etmek.
RSA,OpenSSL kullanacak. OpenSSL 1.0.1 kullanılarak TLSv1.1 ve TLSv1.2 için
SSL Socket eklendi.
Güvenlik Düzeltmeleri: Güvenlik düzeltmeleri açık kaynak kütüphaneleri ile
Webkit , libpng , OpenSSL ve LibXML'de dahil olmak üzere yükseltilmiştir [6].
ANDROID 4.3.
Selinux ile güçlendirilmiş Android Sandbox: Selinux güçlendirme kullanıcılara ve
geliştiriciye görünmez. Mevcut uygulamalar ile uyumluluğu korurken mevcut
android güvenlik modeline sağlamlık ekler. Uyumluluğun devamını sağlamak için
Selinux'un kullanıma izin verir. Bu mod kurallara aykırı kayıtları tutar ama
uygulamaları kesmez / bölmez ve sistemin davranışını etkilemez.
31
No setuid / setgid programları: Android sistem dosyalarında dosya sistemi
kabiliyeti desteği eklendi. Tüm setuid / setguid programları kaldırıldı. Bu kök saldırı
yüzeysel ve olası güvenlik açıkları olasılığını azaltır.
ADB Kimlik Doğrulama: Android 4.2.2'den beri, ADB bağlantıları bir RSA
keypair ile doğrulanır. Bu, saldırganın bir cihaza fiziksel erişimi olan ADB yetkisiz
kullanımını önler.
Android uygulamalarından gelen setuid sınırlama: zigot proces, android
sisteminin setuid programının çalışmasını önlüyor.
Yetenek sınırlayıcı: Android, zigot ve ADB önceki gereksiz uygulamaları
kaldırmak için artık PR_CAPBSET_DROP'u kullanıyor. Bu, kabuktan gelen
ayrıcalıklı özelliğe sahip Android uygulamaların ve uygulamaların başlamasını
engeller.
Android şifre deposu sağlayıcısı: API'li Android uygulamalarında özel kullanım
tuşları imkanı veren şifre deposu vardır. Bu şifre deposu API'li uygulamalara kendine
özel şifre tanımlamalarına izin verir ve bu şifre başka uygulama tarafından
kullanılamaz.
KeyChain isBoundKeyAlgorithm: Şimdi keychain API şimdi isbound keytype
isimli bir method sunuyor. Bu method uygulamaya sistem genelinde cihaz için
güvenliğin bir donanım köküne bağlı olduğunu doğrulamak için izin veren bir
yöntemdir. Bu da kök uzlaşma durumunda dahi cihaz dışına çıkmaması için özel
anahtarı oluşturmak veya saklamak için bir yer sağlar.
NO_NEW_PRIVS.: Android zigot, ilaveten kullanılan bir önceki kod uygulayıcıyı
engellemek için PR_SET_NO_NEW_PRIVS kullanır.
FORTIFY_SOURCE geliştirmeleri: Potansiyel zayıf noktaları ya da bitirilmemiş
dizilerin kayıt hatalarını tespit eder.
Yer Değiştirme korumaları: Yalnızca statik haldeki yer değişimini okumasına izin
verir ve Android kodundaki yeri değiştirilmiş tüm metinler kaldırıldı.
Geliştirilmiş EntropyMixer: Kapatma yeniden başlatma ve ek olarak karışık
zamanlardaki düzensizlik. Tüm cihazlar açıkken entropy yapmasına izin verir ve
özellikle hemen yeniden başlattan sonra hazır olan cihazlar için yararlıdır [9].
32
ANDROID 4.4.
Selinux ile güçlendirilmiş Android Sandbox: Android, şimdi güçlendirme
modunda Selinux kullanır. Selinux, mevcut isteğe bağlı erişim denetim tabanlı
güvenlik modelini arttırmada kullanılan linux çekirdeğindeki zorunlu bir erişim
kontrol sistemidir. Bu potansiyel güvenlik açıklarına karşı ek koruma sağlar.
Kullanıcı başına VPN: Çok kullanıcılı cihazlarda, VPN şimdi kullanıcı başına
uygulanır. Böylelikle kullanıcı cihaz üzerinde diğer kullanıcıları etkilenmeden VPN
üzerinden tüm ağ trafiğini yönlendirmek için izin verebilir.
AndroidKeyStore'da ECDSA Destek Sağlayıcı: Android'te şimdi ECDSA ve DSA
algoritmalarının kullanımını sağlayan bir şifre deposu sağlayıcısı vardır.
Cihaz İzleme Uyarıları: Herhangi bir sertifika şifreli ağ trafiğini izlemek için cihaz
sertifika deposuna eklenmişse Android bir uyarı ile kullanıcılara bunu bildirir.
FORTIFY_SOURCE: Android, 2.ci seviyeyi destekler. Tüm kod bu uygulamalarla
derlenmiştir. FORTIFY_SOURCE C için bir derleyici olan Clang ile çalışmak için
geliştirilmiştir.
Sertifika Sabitleme: Android, güvenli SSL / TLS iletişimlerinde kullanılan Google
sertifikalarının hileli kullanımını algılar ve önler.
Güvenlik Düzeltmeleri: 4.4 aynı zamanda Android'e özel güvenlik açıkları için
düzeltmeler içerir.
3.2.7. CİHAZLARIN KÖKLEŞMESİ
Varsayılan olarak, Android üzerinde sadece çekirdek ve çekirdek uygulamaların
küçük bir alt kümesi kök izinleri ile çalıştırılır. Android; kök izinleri ile işletim
sistemi, çekirdek ve herhangi diğer bir uygulamayı değiştirerek bir kullanıcı veya
uygulamayı engellemez. Genel olarak, kök tüm uygulamalara ve tüm uygulama
verilerine tam erişime sahiptir. Kullanıcılar, uygulamalara kök erişimi vermek için
Android cihaz üzerinde izinleri değiştirir, kötü niyetli uygulamalar ve potansiyel
uygulama kusurları için güvenlik arttırır.
Sahip oldukları bir Android cihaz değiştirme yeteneği, Android platformu ile çalışan
geliştiriciler için önemlidir. Birçok Android cihaz kullanıcısı, alternatif bir işletim
sisteminin kurulumunu sağlamak için bootloader kilidini açma yeteneğine sahiptir.
Bu alternatif işletim sistemleri, hata ayıklama uygulamaları ve sistem bileşenleri
veya Android API'leri tarafından uygulamalara sunulmamış özelliklere erişmek için
sahibinin kök erişim sağlamasına izin verebilir [7].
33
Bazı cihazlarda, fiziksel bir cihaz kontrolü ve bir USB kablosu ile bir kişinin
kullanıcıya kök ayrıcalıkları sağlayan yeni bir işletim sistemi yüklemek mümkündür.
Varolan herhangi bir kullanıcı verisini korumak için, kilit açma adımın bir parçası
olarak önyükleme yükleyicisi varolan herhangi bir kullanıcı verisini silmeyi
gerektirir. Kök, bir çekirdek hatasından faydalanarak veya güvenlik açığı bu
korumayı atlayarak erişim kazanabilir.
Cihaz üzerinde saklı bir anahtar ile veri şifrelemek, kök kullanıcılardan gelen
uygulama verisine koruma sağlamaz. Uygulamalar, bir kullanıcı parolası veya bir
sunucu üzerindeki gibi kapalı cihazda saklı bir anahtar ile şifreleme kullanarak veri
koruma katmanı ekleyebilir. Bu yaklaşım , anahtar halihazırda değilse geçici koruma
sağlayabilir ancak eninde sonunda uygulama için anahtar sağlanmalıdır, ancak o
zaman kök kullanıcılar erişilebilir olur.
Donanım çözümlerinin kullanımı yoluyla kök kullanıcılardan veri korumak daha
sağlam bir yaklaşımdır. OEM'ler, Google cüzdan için NFC ile ilgili güvenilir
depolama veya video oynatımı için DRM gibi belirli içerik türlerine erişimi
sınırlandıran donanım çözümleri uygulamayı seçebilir.
Bir kayıp yada çalıntı cihaz durumunda, tam dosya sistemi şifreleme Android
cihazlarda şifreleme anahtarını korumak için cihaz parolasını kullanır, bu yüzden
kullanıcının cihaz parolası olmadan önyükleme yükleyicisini veya işletim sistemini
değiştirmek kullanıcı verisine erişmek için yeterli değildir.
3.2.8. KULLANICI GÜVENLİK ÖZELLİKLERİ
3.2.8.1. DOSYA SİSTEMİ ŞİFRELEME
Android 3.0 ve sonraki sürümler tam dosya sistemi şifreleme sağlar, bu yüzden tüm
kullanıcı verileri ESSIV:SHA256 ve CBC ile AES128'in dmcrypt uygulamasını
kullanarak çekirdekte şifreli olabilir. Şifreleme anahtarı, kullanıcı cihaz parolası
olmadan depolanmış verilere yetkisiz erişimi engelleyen ve kullanıcı parolasından
türetilen bir anahtar kullanarak AES128 ile korunur.
Sistematik parola tahmin saldırılarına karşı direnç sağlamak için, parola rastgele bir
"salt" ile birleştirilir ve dosyasistemi anahtarının şifresini çözmek için daha önce
kullanılan standart PBKDF2 algoritmasını kullanarak SHA1 ile defalarca "hash"
edilir.
34
Sözlük parola tahmin saldırılarına karşı direnç sağlamak için, Android tarafından
zorunlu ve cihaz yöneticisi tarafından ayarlanabilir karmaşık parola kuralları sağlar
[4].
Dosyasistemi şifreleme, bir kullanıcı parolasının kullanımını gerektirir. Örnek
tabanlı ekran kilidi desteklenmez.
* hash: bir hashing algoritmasının ( md5, sha1, sha2 ) şifrelenmiş çıktısıdır. Bir
hashing algoritmasında açık metin ve şifrelenmiş metin arasında tek yönlü bir ilişki
vardır. Yani herhangi bir açık metin şifrelenmiş metine dönüştürüldüyse, şifrelenmiş
bir metin açık bir metine dönüştürülemez. Hashing algoritmasında girdinin boyutu
standart dışında büyük olsa bile şifrelenmiş çıktısı sabit değerdedir. Bu sayede
girdinin boyutu veya türü belirlenemez.
* salt: rastgele üretilmiş ve oluşturulmuş değerdir. Şifre ve salt birleştirilerek ortaya
çıkan metin bir hash fonksiyonuna gönderilir. Sonra ortaya çıkan bu hash veri, salt
ile birlikte kaydedilir. Büyük boyutlardaki salt değer, her şifreyi eşsiz hashleyerek
önceden hesaplanmış saldırıları engeller.
Örneğin; X ve Y' ye ait aynı veritabanında saklanan aynı şifreler, salt değerleri
farklı hash değerlerine sahip olacakları için bir saldırgan veritabanına erişse bile bu
ikisinin şifresinin aynı olduğu bilemeyecektir. Saldırganın başarılı olabilmesi için her
salt değerinin ayrı ayrı hesaba katılması gerekir. Salt kullanılmasının amacı
şifrelerdeki entropi seviyesini arttırarak daha iyi bir koruma sağlamaktır.
3.2.8.2. PAROLA KORUMASI
Android, bir cihaza erişim sağlamadan önce kullanıcı tarafından sağlanan parolayı
doğrulamak için yapılandırabilir. Cihazın yetkisiz kullanımını önlemeye ek olarak,
bu parola tam dosyasistemi şifrelemesi için şifreleme anahtarını korur. Bir parola
veya karmaşık parola kurallarının kullanımı bir cihaz yöneticisi tarafından gerekli
olabilir.
3.2.8.3. CİHAZ YÖNETİMİ
Android 2.2 ve sonraki sürümler sistem düzeyinde Android cihaz yönetim özellikleri
sağlayan API sağlar. Örneğin; Yerleşik Android E-posta uygulaması, Exchange
desteği arttırmak için API'leri kullanır.
35
E-posta uygulaması sayesinde, Exchange yöneticileri cihazlar arasında sayısal
PIN'ler ve alfasayısal parolalar dahil parola politikalarını uygulayabilir. Yöneticiler,
ayrıca kayıp veya çalıntı telefonları uzaktan silebilir. Android sistemiyle birlikte
dahili uygulamalarda kullanmaya ek olarak, bu API'ler Aygıt yönetimi çözümlerinin
3.taraf sağlayıcıları için kullanışlıdır.
3.3. ANDROID UYGULAMA GÜVENLİĞİ
3.3.1. UYGULAMANIN UNSURLARI
Android, mobil cihazlar için açık kaynak platformu ve uygulama ortamı sağlar.
Çekirdek işletim sistemi, Linux çekirdeğe dayalıdır. Android uygulamaları en çok
Java programlama dilinde yazılmıştır ve Dalvik sanal makinesinde çalıştırılır. Ancak,
uygulamalar yerel kodda da yazılmış olabilir. Uygulamalar, .APK dosya uzantısına
sahip tek bir dosyadan yüklenir.
Ana Android uygulama yapı taşları:
AndroidManifest.xml: AndroidManifest.xml dosyası, bir uygulama içindeki tüm
üst düzey bileşenler ile sisteme ne yapacağını söyleyen denetim dosyasıdır. Bu aynı
zamanda hangi izinlerin gerekli olduğunu belirtir.
Etkinlikler: Genellikle tek bir kullanıcı odaklı görev için koddur ve kullanıcı için bir
UI görüntülenmesini içerir ancak zorunda değildir ( bazı etkinlikler kullanıcı
arabirimlerini asla görüntüleyemez ).
Tipik olarak, uygulamanın etkinliklerinin biri uygulama için bir giriş noktasıdır.
Hizmetler: Bir hizmet, arka planda çalışan bir kod parçasıdır. Bu kendi işleminde
veya başka bir uygulama süreci bağlamında çalıştırılabilir. Diğer bileşenler bir
hizmete engel olur ve uzaktan prosedür çağrıları ile üzerindeki yöntemleri çağırır.
Bir medya oynatıcı bir hizmet örneğidir: kullanıcı, medya seçimi kullanıcı
arabirimini sonlandırdığında bile kullanıcı muhtemelen hala müzik çalmaya devam
etme niyetindedir.
Yayın Alıcısı: Başka bir uygulama veya işletim sistemi tarafından verilen, amacı
bilinen IPC mekanizmasında örnek bir nesnedir. Bir uygulama, düşük pil mesajı için
veya bu bilgilere dayanarak onun davranışını değiştirmek için bir alıcıya
kaydolabilir.
36
3.3.2. ANDROID İZİN MODELİ: ERİŞİM KORUMALI API'LER
Android üzerindeki tüm uygulamalar, bir Application Sandbox içinde çalışır.
Varsayılan olarak bir Android uygulaması sadece sistem kaynaklarının sınırlı bir
alanına erişebilir. Sistem, kaynakların yanlış veya kötü niyetle kullanılması halinde
olumsuz kullanıcı deneyimi, ağ veya cihazdaki verileri etkileyebilecek Android
uygulamaya erişimi yönetir [7].
Bu kısıtlamalar birçok farklı biçimde uygulanır. Bazı yetenekler, hassas işlevselliği
için API'lerin kasıtlı bir eksikliği tarafından kısıtlıdır ( Sim kartı doğrudan
değiştirmek için bir Android API yoktur ). Bazı durumlarda, uygulama başına
depolama yalıtımı gibi rollerin ayrılması bir güvenlik önlemi sağlar. Diğer
durumlarda hassas API'ler, izinler olarak bilinen bir güvenlik mekanizması sayesinde
korunmak ve güvenilir uygulamalar tarafından kullanılmak için amaçlanmıştır.
Bu korumalı API'lerin içerdikleri:
* Kamera İşlevleri
* Konum İşlevleri
* Bluetooth İşlevleri
* Telefon İşlevleri
* SMS / MMS İşlevleri
* Ağ / Veri Bağlantıları
Bu kaynaklar, yalnızca işletim sistemi üzerinden erişilebilirdir. Cihaz üzerinde
korumalı API'lerin kullanımını sağlamak için, bir uygulama onun bildiriminde
ihtiyacı olan yetenekleri tanımlamalıdır. Bir uygulama yüklemeye hazırlanırken,
sistem kullanıcıya istenen izinleri gösteren bir iletişim kutusu görüntüler ve
yüklemeye devam etmek isteyip istemediğinizi sorar. Kullanıcı yüklemeye devam
ederse, sistem kullanıcıya istenen tüm izinlerin verilmiş olduğunu kabul eder.
Kullanıcı, izinleri tek tek red veya kabul edemez. Hepsini bir bütün olarak red veya
kabul edebilir. Bir kez verilen izinler, uygulamaya yüklü olduğu müddetçe uygulanır.
Kullanıcı karışıklığını önlemek için; sistem, uygulamaya verilen izinlerin tekrarı için
kullanıcıya bildirimde bulunmaz. Çekirdek işletim sisteminde bulunan veya bir OEM
ile paketlenmiş uygulamalar, kullanıcıdan izin istemez.
37
Eğer bir uygulama kaldırılırsa izinleri de kaldırılır bu yüzden bir sonraki yeniden
yükleme için yeni izin ekranlarına ihtiyaç olacaktır.
Cihaz ayarları içinde, kullanıcılar daha önceden yüklü uygulamaları için izinleri
görüntüleyebilecek, GPS, radyo veya Wi-Fi gibi bazı küresel işlevleri seçerek devre
dışı bırakabilecektir. Bir uygulama; uygulamanın beyanında bildirilmemiş korumalı
özelliği kullanmak için çalıştığında, izin hatası uygulamaya geri atılan bir güvenlik
istisnasına tipik sonuç olacaktır.
Korumalı API izin denetimi, tuzakları önlemek için mümkün olan en düşük seviyede
uygulanır. Bir uygulama yüklendiğinde kullanıcı mesajlaşma örneği korumalı
API'lere erişim talep ederken Şekil 2 'de gösterilmiştir.
Uygulama Yükleme İzinleri & G. Maps Yüklenmiş Uygulama İzinleri & Gmail
Şekil 2: Uygulama için izinlerin gösterimi
38
OEM tarafından önceden yüklenmiş uygulamalar ile kullanılıyor olabilen, 3.parti
uygulamalar için geçerli olmayan ama SMS yayın amaçları gönderme yeteneği gibi
bazı cihaz yetenekleri vardır.
3.3.3. KULLANICILAR 3. PARTİ UYGULAMALARI NASIL ANLAR?
Android, 3.parti uygulamalar ile etkileşime girdiğinde kullanıcılara açık hale
getirmek için çaba harcar ve bu uygulamalar kullanıcıyı bilgilendirme yeteneklerine
sahiptir. Herhangi bir uygulama yüklemeden önce, uygulamanın istediği farklı izinler
hakkında kullanıcıya net bir mesaj gösterilir. Yüklendikten sonra, herhangi bir izin
için kullanıcıya onay sorulmaz [7].
Yükleme zamanından önce, izinleri göstermek için pek çok sebep vardır. Bu
olduğunda kullanıcı etkin olarak uygulama hakkındaki bilgileri, onların ihtiyaç ve
beklentilerinin uyumlu olup olmadığını belirlemek için işlevsellik ve geliştiriciyi
gözden geçirir.
Diğer bazı platformlar, kullanıcı bildirimi için uygulamalar kullanımdayken veya
her oturumun başında izin isteyen farklı bir yaklaşım kullanır. Android'in vizyonu,
kullanıcılar için uygulamalar arasında sorunsuz geçiştir. Her defasında teyit
sağlanması, kullanıcıyı yavaşlatacak ve harika bir kullanıcı deneyimi sunan Androd'i
engelleyecektir. Kullanıcı, yükleme zamanında eğer onlar rahatsız ediyorsa
kullanıcıya uygulamayı yüklememe seçeneği sunan inceleme izinlerine sahiptir.
Ayrıca, birçok kullanıcı arabirimi üzerindeki çalışmalar kullanıcının gösterilen
herhangi bir iletişimi "tamam" diyerek başlatması için bazı sebeplere sahip olduğunu
göstermiştir. Android'in güvenlik hedeflerinden birisi, kullanıcıya kendisinin
görmezden gelindiği yok sayıldığı iletişimleri kullanarak yapılamayan önemli
güvenlik bilgilerini etkin bir şekilde iletmektir. Bir kez ve yalnızca önemli olduğunda
önemli bilgileri sunarak, onların kabul ettiğinin hakkında kullanıcının ne düşündüğü
daha olasıdır.
Bazı platformlar, tüm uygulama işlevselliği hakkında herhangi bir bilgi göstermeyi
tercih etmez. Bu yaklaşım, kullanıcıları uygulama yeteneklerini tartışmaktan ve
kolayca anlamaktan engeller. Tüm kullanıcıların her zaman tam bilinçli kararlar
alması mümkün değilken, Android kullanıcının geniş bir yelpazesindeki kolayca
erişilebilir uygulamalar hakkında izinleri model bilgi haline getirir.
39
Örneğin; beklenmedik izin istekleri, uygulama işlevselliği hakkında kritik sorular
sormak için daha sofistike yani çok yönlü gelişmiş kullanıcıları isteyebilir ve onlar
tüm kullanıcılar tarafından görülebilen Google Play gibi yerlerde kaygılarını
paylaşabilir.
3.3.4. İŞLEMLERARASI İLETİŞİM
İşlemler, geleneksel UNIX tipi mekanizmalardan birini kullanarak iletişim kurabilir.
Dosya sistemi, yerel yuva ve sinyaller gibi örnekleri içerir. Ancak, yine de Linux
izinleri geçerliliğini korur.
Android, ayrıca yeni IPC mekanizmaları sağlamaktadır:
Binder ( bağ ): Hafif bir yetenek tabanlı yordam çağrı mekanizması, süreç ve süreç
dışı çapraz aramalar gerçekleştirilirken yüksek performans için tasarlanmıştır.
Binder, özel bir Linux sürücüsü kullanılarak uygulanır.
Services: Hizmetler, Binder kullanarak doğrudan erişilebilir arabirimleri sağlar.
Niyetler ( Girişimler ): Bir niyet, birşey yapmak için bir "niyeti" temsil eden basit
bir mesaj nesnesidir. Örneğin; uygulama bir web sayfasını görüntülemek istiyorsa,
bir "niyet örneği" oluşturarak URL'yi görüntülemek için bir "niyet" ifade edilerek
kapalı sisteme teslim edilir. Sistem, kodun bazı diğer parçalarının "niyeti" nasıl
koruduğunu bulur ve onu çalıştırır. Niyetler, ayrıca sistem genelinde ilginç olayların
yayını için kullanılabilir.
Content Providers ( İçerik Sağlayıcılar ): Bir İçerik Sağlayıcı, cihazdaki verilere
erişimi sağlayan bir veri deposudur ve kullanıcının kişiler listesine erişmek için
kullanılan klasik bir örnektir. Bir uygulama, İçerik Sağlayıcı yoluyla diğer
uygulamaların ortaya çıkardığı verilere erişebilir ve ayrıca bir uygulama kendi
verilerini ortaya çıkarmak için kendi İçerik Sağlayıcılarını tanımlayabilir.
Ağ yuvaları veya herkes tarafından yazılabilir dosyalar gibi diğer mekanizmaları
kullanarak IPC uygulamak mümkün olsa da, bunlar önerilen Android IPC
çerçeveleridir.
40
3.3.5. MALİYET DUYARLI API'LER
Maliyet duyarlı bir API'nin herhangi bir işlevi, kullanıcı veya ağ için bir maliyet
oluşturabilir. Android platformu, işletim sistemi tarafından kontrol edilen korumalı
API'lerin listesindeki maliyet duyarlı API'leri yerleştirmiştir. Kullanıcı, maliyet
duyarlı API'leri kullanmak isteyen 3. parti uygulamalara açık izin vermelidir.
Android 4.2. SMS kullanımı üzerinde daha fazla denetim sağlar. Eğer, bir uygulama
ek ücrete neden olacak kaliteli hizmeti kullanarak kısa koda SMS göndermeye
çalışırsa Android bir bildirim sağlar. Kullanıcı, mesaj göndermek ve engellemek için
uygulamaya izin vermeyi seçebilir.
Bu API'ler şunları içerir:
* Telefon * Ağ / Veri * In-App Billing
* SMS/MMS * NFC Access
3.3.6. SIM KART ERİŞİM
Sim karta düşük seviye erişim, 3.parti uygulamalar için geçerli değildir. İşletim
sistemi, tüm iletişimi Sim kart hafızasındaki kişisel bilgilere erişim de dahil olmak
üzere Sim kart ile yönetir. Uygulamalar, RIL tarafından özel olarak yönetildiği için
ayrıca AT komutlarına erişemeyebilir. RIL, bu komutlar için yüksek seviyeli API 'ler
sağlar.
3.3.7. KİŞİSEL BİLGİLER
Android, korumalı API'lerin dizisinin içindeki kullanıcı verilerine erişim sağlayan
API yerleştirmiştir. Normal kullanımlar ile Android cihazlar aynı zamanda
kullanıcılar tarafından yüklenen 3.parti uygulamalar içindeki verileri de
biriktirecektir. 3.parti uygulamalardan gelen verileri korumak için Android izin
kontrollerini kullanabilir, bu bilgileri paylaşmak için uygulamalar seçilebilir.
Sistem içerik sağlayıcıların, açıkça tanımlanmış izinler ile oluşturulmuş rehber ve
takvim gibi kişisel olarak tanımlanabilir kişisel bilgileri içermesi muhtemeldir. Bu
parçalı yapı, uygulamaya sağlanabilir bilgi türlerinin açık göstergesi ile kullanım
sağlar. Yükleme sırasında bir 3.cü taraf uygulama bu kaynaklara erişim için izin
isteyebilir. Eğer izin verilirse, uygulama yüklenebilir ve yüklü olduğu herhangi bir
zamanda istenen verilere erişebilecektir.
41
Şekil 3: Hassas kullanıcı verilerine erişim yalnızca korumalı API'ler aracılığıyla
kullanılabilir.
Herhangi bir uygulama kişisel bilgileri toplayacak, varsayılan olarak bu bilgiler
sadece özel uygulama için sınırlı olacak. Eğer bir uygulama, IPC'ye rağmen diğer
uygulamalar için verileri kullanılabilir duruma getirmeyi seçerse IPC mekanizması
için uygulama erişim verme izinleri uygulayabilirsiniz.
3.3.8. HASSAS VERİ GİRİŞ CİHAZLARI
Android cihazlar sıklıkla, uygulamaların çevre ile etkileşimine izin vermek için
kamera, mikrofon veya GPS gibi hassas veri giriş cihazları sağlamaktadır. Bir 3.parti
uygulamanın bu cihazlara erişmesi için, Android İşletim Sistemi izinleri aracılığıyla
kullanıcı tarafından ilk olarak açıkça erişim sağlanmalıdır. Yükleme sonrasında
yükleyici, algılayıcı ( sensör ) için kullanıcı adı isteyen izni isteyecektir.
Bir uygulama kullanıcının konumunu bilmek isterse, uygulama kullanıcının
konumuna erişmek için bir izin gerekir. Yükleme sonrasında yükleyici, uygulama
kullanıcının konumuna erişirse kullanıcıya soracaktır. Herhangi bir zamanda,
kullanıcı herhangi bir uygulamanın kendi konumuna erişmesini istemiyorsa, o zaman
"ayarlar" uygulamasını çalıştırabilir, "konum ve güvenlik"'e gider, "kablosuz ağları
kullan" seçeneğinin işaretini kaldırır ve "GPS uydularını etkinleştir"'ir. Bu,
kullanıcının cihaz üzerindeki tüm uygulamalar için konum bazlı servisleri devre dışı
bırakacaktır.
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik
Mobil i̇şletim sistemlerinde güvenlik

More Related Content

Viewers also liked

Elefantes
ElefantesElefantes
Elefantes
lissetvera
 
magnetosfera y actividad solar
magnetosfera y actividad solarmagnetosfera y actividad solar
Get People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
Get People to Open Your Emails - Tips for Writing Effecive Email Subject LinesGet People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
Get People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
Evgeny Tsarkov
 
Hrm1
Hrm1Hrm1
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
Ángel Estévez
 
Ana morales márquez y sara garcía muñoz
Ana morales márquez y sara garcía muñozAna morales márquez y sara garcía muñoz
Ana morales márquez y sara garcía muñoz
JAMM10
 
General surgical instruments
General surgical instrumentsGeneral surgical instruments
General surgical instruments
Numisma International
 
10 principles of success
10 principles of success10 principles of success
10 principles of success
Ballueder Partners
 
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén SantosNanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
Instituto Aragonés de Ciencias de la Salud - IACS
 
The Old Regime. The Enlightenment
The Old Regime. The Enlightenment The Old Regime. The Enlightenment
The Old Regime. The Enlightenment
Nicanor Otín Nebreda
 
Gates Toorcon X New School Information Gathering
Gates Toorcon X New School Information GatheringGates Toorcon X New School Information Gathering
Gates Toorcon X New School Information Gathering
Chris Gates
 
Organigrama del servicio comarcal de deportes comarca cinco -villas
Organigrama del servicio comarcal de deportes   comarca cinco -villasOrganigrama del servicio comarcal de deportes   comarca cinco -villas
Organigrama del servicio comarcal de deportes comarca cinco -villas
Crónicas Marracos
 
los-simbolos-curativos
los-simbolos-curativoslos-simbolos-curativos
los-simbolos-curativos
Fátima Álvarez
 
Filosofia para niños
Filosofia para niñosFilosofia para niños
Filosofia para niños
J. Catherine Pulido Uni
 
Answering key questions on malaria drug delivery: 8 years of research
Answering key questions on malaria drug delivery: 8 years of researchAnswering key questions on malaria drug delivery: 8 years of research
Answering key questions on malaria drug delivery: 8 years of research
ACT Consortium
 
Ana Reyes y Raquel
Ana Reyes y  RaquelAna Reyes y  Raquel
Ana Reyes y Raquel
Ana Chica
 
ConsumerPerceptionofAnimalWelfareinProductionAgriculture
ConsumerPerceptionofAnimalWelfareinProductionAgricultureConsumerPerceptionofAnimalWelfareinProductionAgriculture
ConsumerPerceptionofAnimalWelfareinProductionAgriculture
Bailey Schurr
 

Viewers also liked (17)

Elefantes
ElefantesElefantes
Elefantes
 
magnetosfera y actividad solar
magnetosfera y actividad solarmagnetosfera y actividad solar
magnetosfera y actividad solar
 
Get People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
Get People to Open Your Emails - Tips for Writing Effecive Email Subject LinesGet People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
Get People to Open Your Emails - Tips for Writing Effecive Email Subject Lines
 
Hrm1
Hrm1Hrm1
Hrm1
 
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
Convocatoria Ctos de Andalucía Tiro con Arco Aire Libre 2016
 
Ana morales márquez y sara garcía muñoz
Ana morales márquez y sara garcía muñozAna morales márquez y sara garcía muñoz
Ana morales márquez y sara garcía muñoz
 
General surgical instruments
General surgical instrumentsGeneral surgical instruments
General surgical instruments
 
10 principles of success
10 principles of success10 principles of success
10 principles of success
 
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén SantosNanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
Nanoimmunotech, acercando la Nanotecnología a la Biomedicina. Rubén Santos
 
The Old Regime. The Enlightenment
The Old Regime. The Enlightenment The Old Regime. The Enlightenment
The Old Regime. The Enlightenment
 
Gates Toorcon X New School Information Gathering
Gates Toorcon X New School Information GatheringGates Toorcon X New School Information Gathering
Gates Toorcon X New School Information Gathering
 
Organigrama del servicio comarcal de deportes comarca cinco -villas
Organigrama del servicio comarcal de deportes   comarca cinco -villasOrganigrama del servicio comarcal de deportes   comarca cinco -villas
Organigrama del servicio comarcal de deportes comarca cinco -villas
 
los-simbolos-curativos
los-simbolos-curativoslos-simbolos-curativos
los-simbolos-curativos
 
Filosofia para niños
Filosofia para niñosFilosofia para niños
Filosofia para niños
 
Answering key questions on malaria drug delivery: 8 years of research
Answering key questions on malaria drug delivery: 8 years of researchAnswering key questions on malaria drug delivery: 8 years of research
Answering key questions on malaria drug delivery: 8 years of research
 
Ana Reyes y Raquel
Ana Reyes y  RaquelAna Reyes y  Raquel
Ana Reyes y Raquel
 
ConsumerPerceptionofAnimalWelfareinProductionAgriculture
ConsumerPerceptionofAnimalWelfareinProductionAgricultureConsumerPerceptionofAnimalWelfareinProductionAgriculture
ConsumerPerceptionofAnimalWelfareinProductionAgriculture
 

Similar to Mobil i̇şletim sistemlerinde güvenlik

DDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi RaporuDDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi Raporu
Oğuzcan Pamuk
 
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİMOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
ibrahim BALOGLU
 
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİGÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
BGA Cyber Security
 
Kursat taskin yolsuzluk onlemede bdd teknikleri
Kursat taskin   yolsuzluk onlemede bdd teknikleriKursat taskin   yolsuzluk onlemede bdd teknikleri
Kursat taskin yolsuzluk onlemede bdd teknikleriKürşat TAŞKIN
 
Gömülü Cihaz Güvenliği ve Zollard Botnet Analizi
Gömülü Cihaz Güvenliği ve Zollard Botnet AnaliziGömülü Cihaz Güvenliği ve Zollard Botnet Analizi
Gömülü Cihaz Güvenliği ve Zollard Botnet Analizi
Ibrahim Baliç
 
Bulut Bilişim ve Bilgisayar Ağları
Bulut Bilişim ve Bilgisayar AğlarıBulut Bilişim ve Bilgisayar Ağları
Bulut Bilişim ve Bilgisayar Ağlarıcgoze
 
Kuresel tehdit gorunumu raporu 2020
Kuresel tehdit gorunumu raporu 2020Kuresel tehdit gorunumu raporu 2020
Kuresel tehdit gorunumu raporu 2020
Tekvizyon Pc Teknoloji Hizmetleri
 
guvenlik yonetim 113L (1).pdf
guvenlik yonetim 113L (1).pdfguvenlik yonetim 113L (1).pdf
guvenlik yonetim 113L (1).pdf
YunusEmreKK1
 
guvenlik yonetim 113L.pdf
guvenlik yonetim 113L.pdfguvenlik yonetim 113L.pdf
guvenlik yonetim 113L.pdf
YunusEmreKK1
 
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
Celal Dolkan
 
Güvenlik Yönetimi 93
Güvenlik Yönetimi 93Güvenlik Yönetimi 93
Güvenlik Yönetimi 93
HakanKk8
 
Siber Güvenlik
Siber GüvenlikSiber Güvenlik
Siber Güvenlik
Ahmet Pekel
 
Guvenlikyonetimisubat
GuvenlikyonetimisubatGuvenlikyonetimisubat
Guvenlikyonetimisubat
ezgi özcan
 
Bt tez
Bt tezBt tez
Bt tezomt123
 
ZAFER M.SEN CV
ZAFER M.SEN CVZAFER M.SEN CV
ZAFER M.SEN CV
Zafer M. ŞEN
 
Bulut Bilişim El Kitabı
Bulut Bilişim El KitabıBulut Bilişim El Kitabı
Bulut Bilişim El KitabıHakan Yüksel
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGI
Ahmet Pekel
 

Similar to Mobil i̇şletim sistemlerinde güvenlik (20)

DDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi RaporuDDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi Raporu
 
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİMOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
MOBİL CİHAZLARDAN MANUEL VERİ ELDE ETME YÖNTEMLERİNİN İNCELENMESİ
 
Xamarin ile Android Uygulama
Xamarin ile Android UygulamaXamarin ile Android Uygulama
Xamarin ile Android Uygulama
 
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİGÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
GÜVENLİ YAZILIM GELİŞTİRME EĞİTİMİ İÇERİĞİ
 
Kursat taskin yolsuzluk onlemede bdd teknikleri
Kursat taskin   yolsuzluk onlemede bdd teknikleriKursat taskin   yolsuzluk onlemede bdd teknikleri
Kursat taskin yolsuzluk onlemede bdd teknikleri
 
Gömülü Cihaz Güvenliği ve Zollard Botnet Analizi
Gömülü Cihaz Güvenliği ve Zollard Botnet AnaliziGömülü Cihaz Güvenliği ve Zollard Botnet Analizi
Gömülü Cihaz Güvenliği ve Zollard Botnet Analizi
 
Bulut Bilişim ve Bilgisayar Ağları
Bulut Bilişim ve Bilgisayar AğlarıBulut Bilişim ve Bilgisayar Ağları
Bulut Bilişim ve Bilgisayar Ağları
 
Kuresel tehdit gorunumu raporu 2020
Kuresel tehdit gorunumu raporu 2020Kuresel tehdit gorunumu raporu 2020
Kuresel tehdit gorunumu raporu 2020
 
guvenlik yonetim 113L (1).pdf
guvenlik yonetim 113L (1).pdfguvenlik yonetim 113L (1).pdf
guvenlik yonetim 113L (1).pdf
 
guvenlik yonetim 113L.pdf
guvenlik yonetim 113L.pdfguvenlik yonetim 113L.pdf
guvenlik yonetim 113L.pdf
 
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
YAZILIM SÜREÇ İYİLEŞTİRME ÇALIŞMALARINDA YETENEK OLGUNLUK MODELİ ENTEGRASYONU...
 
Güvenlik Yönetimi 93
Güvenlik Yönetimi 93Güvenlik Yönetimi 93
Güvenlik Yönetimi 93
 
Siber Güvenlik
Siber GüvenlikSiber Güvenlik
Siber Güvenlik
 
Proje dökümanı
Proje dökümanıProje dökümanı
Proje dökümanı
 
Guvenlikyonetimisubat
GuvenlikyonetimisubatGuvenlikyonetimisubat
Guvenlikyonetimisubat
 
Kablosuz ortam
Kablosuz ortamKablosuz ortam
Kablosuz ortam
 
Bt tez
Bt tezBt tez
Bt tez
 
ZAFER M.SEN CV
ZAFER M.SEN CVZAFER M.SEN CV
ZAFER M.SEN CV
 
Bulut Bilişim El Kitabı
Bulut Bilişim El KitabıBulut Bilişim El Kitabı
Bulut Bilişim El Kitabı
 
GUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGIGUVENLI YAZILIM ve BILGI GUVENLIGI
GUVENLI YAZILIM ve BILGI GUVENLIGI
 

Mobil i̇şletim sistemlerinde güvenlik

  • 1. T.C. BEYKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI BİLGİSAYAR MÜHENDİSLİĞİ BİLİM DALI MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK ( Yüksek Lisans Projesi ) Projeyi Hazırlayan: Fuat SAVAŞ İSTANBUL, 2015
  • 2. T.C. BEYKENT ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI BİLGİSAYAR MÜHENDİSLİĞİ BİLİM DALI MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK ( Yüksek Lisans Projesi ) Projeyi Hazırlayan: Fuat SAVAŞ Öğrenci No: 110820031 Danışman: Yrd. Doç. Dr. Ediz ŞAYKOL İSTANBUL, 2015
  • 3. YEMİN METNİ Yüksek lisans projesi olarak sunduğum “ Mobil İşletim Sistemlerinde Güvenlik ” başlıklı bu çalışmanın, bilimsel ahlak ve geleneklere uygun şekilde tarafımdan yazıldığını, yararlandığım eserlerin tamamının kaynaklarda gösterildiğini ve çalışmamın içinde kullanıldıkları her yerde bunlara atıf yapıldığını belirtir ve bunu onurumla doğrularım. ( 29.01.2015 ) Fuat SAVAŞ
  • 4.
  • 5. TEŞEKKÜR Proje çalışmalarım esnasında bana yardımcı olan proje danışmanım Beykent Üniversitesi Yrd. Doç. Dr. Ediz ŞAYKOL'a ve manevi desteğini üzerimden hiç eksik etmeyen rahmetli validem Ayşe SAVAŞ hanımefendiye teşekkür ederim. Fuat SAVAŞ
  • 6. I MOBİL İŞLETİM SİSTEMLERİNDE GÜVENLİK Projeyi Hazırlayan: Fuat SAVAŞ ÖZET Türkiye'de mobil cihaz kullanımının her geçen gün yaygınlaşmasıyla birlikte kullanıcılar tıpkı masaüstü ve dizüstü bilgisayarlarda olduğu gibi mobil cihazlarda da artık belli başlı özellikler aramaktadırlar. Bunlar; işletim sistemi, tasarım, alışkanlık ve diğer teknik özelliklere göre değişmektedir. Fakat mesleki sebepler dışında güvenlik konusunu umursayan pek kimse yok ne yazık ki. Oysa Mobil uygulama geliştiricisi Lookout'un yayınladığı "2013 Mobil Güvenlik Öngörüleri" başlıklı raporda web tabanlı mobil tehditler, 2013 yılı içinde kullanıcıların en çok dikkat etmesi gereken tehditler arasında başta yer almaktadır. Ortada yeterince kimsenin farkında olmadığı çok ciddi bir güvenlik riski bulunmaktadır. Burada önemli olan henüz yeni gelişmekte olan bu mobil hacking karşısında önlem almaktır. Mobil cihazların hacklenmesiyle birlikte bilgisayarlardan farklı olarak telefon rehberimiz, mesajlarımız, sosyal medya bilgilerimiz, mobil uygulamalardaki verilerimizde tamamen kötü niyetli kişilerin eline geçebilecek. Bu muhtemel sorunları telefonları kullanım amaçlarına göre çeşitlendirebiliriz. Anahtar Kelimeler: Android, IOS, API, Sandbox, Linux.
  • 7. II SECURITY ON MOBILE OPERATING SYSTEMS Prepared by Fuat SAVAŞ ABSTRACT Users demand some special features from mobile devices as in laptop and desktop computers in line with gradually increasing usage of them. Those features vary according to operating systems, designs, habits and other technical specialities. However, nobody unfortunately cares about security issues except occupational reasons. In fact, web based mobile threats comes first within the most noticable ones indicated by the “Mobile Security Projections” report which has been published by Lookout, mobile application developer. There is a very important security risk outstanding that nobody be aware of. The most important point is here to take measures against this newly developing mobile hacking. With the mobile hacking, unlike in computers, bad persons will be able to get our telephone books, messages, social media user infos and our dats in mobile applications. We can categorize those potential problems in terms of our aims to use mobile devices. Key Words: Android, IOS, API, Sandbox, Linux
  • 8. III İÇİNDEKİLER ÖZET .......................................................................................................................... I ABSTRACT ............................................................................................................. II ŞEKİLLER LİSTESİ............................................................................................ VII KISALTMALAR LİSTESİ ................................................................................ VIII 1. GİRİŞ ...................................................................................................................... 1 2. IOS GÜVENLİK.................................................................................................... 1 2.1. SİSTEM MİMARİSİ ..................................................................................... 2 2.1.1. GÜVENLİK ÖNYÜKLEME ZİNCİRİ .................................................. 2 2.1.2. SİSTEM YAZILIMI KİŞİSELLEŞTİRME............................................. 3 2.1.3. UYGULAMA KOD İMZALAMA ......................................................... 4 2.1.4. ÇALIŞMA ZAMANI İŞLEM GÜVENLİĞİ .......................................... 5 2.2. AĞ GÜVENLİĞİ ........................................................................................... 7 2.2.1. SSL, TSL ................................................................................................. 7 2.2.2. VPN ......................................................................................................... 7 2.2.3. WI - FI ..................................................................................................... 8 2.2.4. BLUETOOTH ......................................................................................... 8 2.3. VERİ KORUMA VE ŞİFRELEME............................................................. 9 2.3.1. DONANIM VE GÜVENLİK ÖZELLİKLERİ........................................ 9 2.3.2. DOSYA VERİLERİNİ KORUMA........................................................ 10 2.3.3. GEÇİŞ KODLARI ................................................................................. 11 2.3.4. ANAHTARLIK VERİ KORUMA ........................................................ 14 2.3.5. KEYBAGS ........................................................................................... 16 2.4. CİHAZ ERİŞİMİ ......................................................................................... 18 2.4.1. GEÇİŞ KODU KORUMASI ................................................................. 18
  • 9. IV 2.4.2. YAPILANDIRMA UYGULAMA ........................................................ 19 2.4.3. MOBİL CİHAZ YÖNETİMİ ................................................................. 20 2.4.4. APPLE YAPILANDIRICISI ................................................................. 21 2.4.5. CİHAZ KISITLAMALARI ................................................................... 21 2.4.6. UZAKTAN SİLME ............................................................................... 22 3. ANDROID GÜVENLİK................................................................................. 23 3.1. GİRİŞ ....................................................................................................... 23 3.1.1. ANDROID GÜVENLİK GENEL BAKIŞ ....................................... 23 3.1.2. ANDROID GÜVENLİK MİMARİSİ................................................ 25 3.2. SİSTEM VE ÇEKİRDEK GÜVENLİK DÜZEYİ................................ 26 3.2.1. LINUX GÜVENLİK.......................................................................... 26 3.2.2. APPLICATION SANDBOX ............................................................. 27 3.2.3. SİSTEM BÖLÜMÜ VE GÜVENLİ MOD ....................................... 28 3.2.4. DOSYA SİSTEMİ İZİNLERİ ........................................................... 28 3.2.5. ŞİFRELEME ..................................................................................... 29 3.2.6. BELLEK YÖNETİMİ GÜVENLİK GELİŞTİRMELERİ ................ 29 3.2.7. CİHAZLARIN KÖKLEŞMESİ ........................................................ 32 3.2.8. KULLANICI GÜVENLİK ÖZELLİKLERİ ..................................... 33 3.2.8.1. DOSYA SİSTEMİ ŞİFRELEME ................................................ 33 3.2.8.2. PAROLA KORUMASI ............................................................... 34 3.2.8.3. CİHAZ YÖNETİMİ .................................................................... 34 3.3. ANDROID UYGULAMA GÜVENLİĞİ ................................................ 35 3.3.1. UYGULAMANIN UNSURLARI ....................................................... 35 3.3.2. ANDROID İZİN MODELİ: ERİŞİM KORUMALI API' LER .......... 36 3.3.3. KULLANICILAR 3.PARTİ UYGULAMALARI NASIL ANLAR ... 38 3.3.4. İŞLEMLERARASI İLETİŞİM ........................................................... 39
  • 10. V 3.3.5. MALİYET DUYARLI API' LER ....................................................... 40 3.3.6. SIM KART ERİŞİM ............................................................................ 40 3.3.7. KİŞİSEL BİLGİLER ........................................................................... 40 3.3.8. HASSAS VERİ GİRİŞ CİHAZLARI ................................................. 41 3.3.9. UYGULAMA İMZALAMA ............................................................... 42 3.3.10. UYGULAMA DOĞRULAMASI ..................................................... 42 3.3.11. DİJİTAL HAKLAR YÖNETİMİ ...................................................... 43 3.4. ANDROID GÜNCELLEMELERİ............................................................... 43 3.5. GÜVENLİK İPUÇLARI ............................................................................... 44 3.5.1. VERİ DEPOLAMA................................................................................... 45 3.5.1.1. DAHİLİ DEPOLAMAYI KULLANMAK ....................................... 45 3.5.1.2. HARİCİ DEPOLAMAYI KULLANMAK ....................................... 46 3.5.1.3. İÇERİK SAĞLAYICILARI KULLANMAK ................................... 46 3.5.2. İZİNLERİ KULLANMA .......................................................................... 47 3.5.2.1. İZİNLERİ İSTEMEK ........................................................................ 47 3.5.2.2. İZİNLERİ OLUŞTURMAK ............................................................. 48 3.5.3. AĞ KULLANMA .................................................................................... 49 3.5.3.1. IP AĞI KULLANMA.......................................................................... 49 3.5.3.2. TELEFON AĞI KULLANMA........................................................... 49 3.5.4. GİRİŞ DOĞRULAMASI GERÇEKLEŞTİRME................................ 50 3.5.5. KULLANICI VERİLERİ İŞLEME ...................................................... 50 3.5.5.1. WEBVIEW KULLANARAK............................................................ 52 3.5.5.1.1. KİMLİK BİLGİLERİ KULLANARAK ..................................... 52 3.5.5.2. ŞİFRELEME KULLANARAK ...................................................... 53 3.5.5.3. İŞLEMLERARASI İLETİŞİM KULLANARAK.............................. 54 3.5.5.3.1. NİYETLERİ KULLANARAK................................................... 54
  • 11. VI 3.5.5.3.2. SERVİSLERİ KULLANARAK ................................................. 55 3.5.5.3.3. BINDER / MESSENGER ARABİRİMLERİ KULLANARAK 55 3.5.5.3.4. YAYIN ALICILARI KULLANARAK...................................... 56 3.5.6. DİNAMİK YÜKLEME KODU................................................................. 56 3.5.7. SANAL MAKİNEDE GÜVENLİK ......................................................... 57 3.5.8. YEREL KOD GÜVENLİĞİ ..................................................................... 58 4. SÖZLÜK .............................................................................................................. 58 SONUÇ VE ÖNERİLER ........................................................................................ 61 KAYNAKLAR ........................................................................................................ 62
  • 12. VII ŞEKİLLER LİSTESİ ŞEKİL 1. ANDROID YAZILIM YIĞINI ................................................................ 26 ŞEKİL 2. UYGULAMA İÇİN İZİNLER GÖSTERİMİ........................................... 37 ŞEKİL 3. HASSAS KULLANICI VERİLERİNE ERİŞİM ..................................... 41 ŞEKİL 4. DİJİTAL HAKLAR YÖNETİMİNİN MİMARİSİ .................................. 43
  • 13. VIII KISALTMALAR LİSTESİ API : Application Programming Interface (Uygulama Programlama Arabirimi) IPC : Inter Process Communication ( İşlemler Arası İletişim ) SSP : System Software Personalization ( Sistem Yazılımı Kişiselleştirme ) OTA : Over The Air ( Şebeke Üzerinden ) GCM : Galois Counter Mode ( Galois Sayaç Modu ) MDM : Mobile Device Management ( Mobil Cihaz Yönetimi ) SDK : Software Development Kit ( Yazılım Geliştirme Kiti ) LLB : Low Level Bootloader ( Düşük Seviye Önyükleme Yükleyicisi ) DFU : Device Firmware Upgrade ( Cihaz Yazılım Yükseltmesi ) RNG : Random Number Generator ( Rastgele Sayı Üreteci ) APK : Android Package ( Android Paketi ) OEM : Original Equipment Manufacturer ( Orijinal Ekipman Üreticisi ) RIL : Radio Interface Layer ( Radyo Arabirimi Katmanı ) NDA : Non-Disclosure Agreement ( Gizlilik Sözleşmesi ) GID : Group Identity Device ( Aygıt Grup Kimliği ) DRM : Dijital Rights Management ( Dijital Haklar Yönetimi ) ARM : Acorn Risc Machine ( Acorn Risk Makinesi ) UID : Unique Identity Device ( Cihazın Benzersiz Bir Kullanıcı Kimliği ) ECID : Device Unique Identity Device (Cihazın Benzersiz Kullanıcı Kimliği ) SKAG : Shared Keychain Access Groups (Paylaşılan Anahtarlık Erişim Gruplar) ASLR : Address Space Layout Randomization (Adres Alanı Düzeni Rastgelesi) UI : User Interface ( Kullanıcı Arabirimi ) IV : Initialization Vector ( Başlangıç Vektörü ) APNS : Apple Push Notification Service ( Apple Push Bildirim Hizmeti )
  • 14. 1 1.GİRİŞ Mobil İşletim Sistemleri, akıllı telefonlar ve tablet bilgisayarlar için üretilmiş yazılımlardır. Bugün dünyada en yaygın ve bilinenleri IOS ve Android'tir. Bu iki işletim sistemi dışında 3.cü olarak Windows Phone bulunmaktadır. Ayrıca, Firefox 4.cü olarak mobil işletim sistemi piyasasına güçlü bir giriş yapmak için hazırlanmaktadır. IOS yalnızca Apple ve Windows Phone yalnızca Sony Ericsson akıllı telefonlarında kullanılırken Android ise Samsung, Htc, Huawei, LG, Acer ve General Mobile gibi birçok akıllı telefonda kullanılmaktadır. Böylelikle, pazarın aslan payına sahiptir fakat IOS'ta Apple çatısı altında olmasının avantajıyla hatırı sayılır bir paya sahiptir. Android, açık kaynak kodlu bir yazılım olduğu için birçok yazılımcı tarafından da sempati görmektedir. IOS'un, her ne kadar yerleşik güvenlik önlemleri bakımından daha güvenli olduğu söylense de Android cihazların kullanımının kolaylığı hakkında kullanıcılar arasında fikirbirliği vardır. Her iki işletim sistemi de kendilerinin kullanıcı güvenliğini sağlama da daha güvenilir olduklarını belirtselerde kullanıcıların ezici bir çoğunluğunun birçok dahili ve harici olmak üzere birçok güvenlik önleminden habersiz oldukları bilinen bir gerçektir. Kullanıcılar, akıllı telefonlarını sosyal medya, ücretsiz sohbet uygulamaları ve kamera / fotoğraf makinesi olarak kullanmaktan ibaret gördüğü için veri güvenliği konusunda duyarsızdır. Hangi işlev için kullanılır olursa olsun bilinçsiz kullanım sonucunda mail, mesaj, rehber, banka, adres, fotoğraf, bireysel ve kurumsal tüm bilgi ile belgelerin kötü niyetli insanların eline geçmesi ciddi bir risktir. 2. IOS GÜVENLİK Mobil cihazlarda bilgi güvenliği ister kişisel ister kurumsal kullanıcı için olsun oldukça önemlidir. Çünkü; müşteri veya kullanıcı, kişisel veya kurumsal farketmeksizin bilgilerini depolamaktadır. IOS cihazlar, her kullanıcının bilgisinin güvenli olması gerektiğinden yola çıkarak güçlü güvenlik teknolojileri sağlamaktadır ve aynı zamanda kullanımı kolaydır. Cihazlar, güvenliği mümkün olduğunca şeffaf yapmak için tasarlandığından güvenlik özelliklerinin çoğu varsayılan olarak etkindir bu yüzden bilgi teknolojisi departmanları kapsamlı yapılandırmalar gerçekleştirmeye ihtiyaç duymaz. Örneğin; cihaz şifreleme gibi bazı temel özellikler yapılandırılabilir değildir, böylelikle kullanıcılar yanlışlıkla bunları devre dışı bırakamaz [5].
  • 15. 2 IOS cihazlar güvenlik katmanlarıyla tasarlanmıştır. Düşük düzey donanım ve yazılım özellikleri, kötü amaçlı yazılımlara ve virüslere karşı koruma sağlar. Üst düzey işletim sistemi özellikleri, kişisel ve kurumsal bilgilerinize güvenli erişime izin verir ve yetkisiz kullanım ile saldırıları önlemeye yardımcı olur. IOS güvenlik modeli, mobil kullanım senkronizasyon ve 3.parti uygulamaları etkinleştirirken bilgileri korur. Sistemin çoğu endüstri standardı güvenli tasarım ilkelerine dayanır. 2.1. SİSTEM MİMARİSİ IOS cihazlarda yazılım ve donanımın sıkı entegrasyonu cihazın tüm katmanları arasındaki faaliyetlerin onaylanmasına izin verir. IOS, yazılım yükleme ve 3.parti uygulamalar sayesinde ilk açılıştan itibaren her bir aşamada her kaynağın düzgün kullanıldığından ve faaliyetlerin güvenilir olduğundan emin olmak için analiz edilir ve onaylanır [5]. Sistem çalışmaya başladıktan sonra bu entegre güvenlik mimarisi, XNU' nun güvenilirliği ve bütünlüğüne bağlıdır. XNU, güvenlik özelliklerini zamanında çalışmaya zorlar, üst düzey fonksiyonlar ve uygulamalara güvenmek için gereklidir. 2.1.1. GÜVENLİ ÖNYÜKLEME ZİNCİRİ Açılış işleminin her adımı bütünlüğü sağlamak için Apple tarafından imzalanmış şifreli bileşenleri içerir ve sadece güven zinciri doğruladıktan sonra devam eder. Bu önyükleme yükleyiciler; çekirdek, çekirdek uzantıları ve baseband yazılım içerir. Bir IOS cihaz açık olduğunda, uygulama işlemcisi hemen Boot ROM olarak bilinen salt okunur bellek üzerinden kodu çalıştırır. Bu değişmez kod, çip üretim sırasında koyulur ve dolaylı olarak güvenilirdir. Boot ROM kodu, LLB yüklemek için izin vermeden önce Apple tarafından imzalanmış olduğunu doğrulamak için kullanılan Apple Kök CA ortak anahtarı içerir. Bu, her adımın bir sonrakisinin Apple tarafından imzalanmış olmasını sağlayan güven zincirinin ilk adımıdır. LLB görevlerini bitirdiğinde, bu doğrular ve sonraki aşama Önyükleme yükleyicisi sırayla doğrular ve IOS çekirdeği çalışır. Bu güvenli önyükleme zinciri, bu yazılımın en düşük seviyelerinin tahrif edilmemesini sağlar ve IOS yalnızca doğrulanmış Apple cihazları çalıştırmak için izin verir [5].
  • 16. 3 Eğer bu önyükleme işleminin bir adımı yükleme veya sonrasında doğrulama yapamıyorsa, boot-up durur ve cihaz "i-Tunes' a bağlayın" ekranını görüntüler. Bu kurtarma modu olarak adlandırılır. Eğer Boot ROM bile, LLB yüklemek veya doğrulamak için mümkün değilse DFU moduna girer. Her iki durumda da, cihaz USB ile iTunes'a bağlanmalı ve varsayılan fabrika ayarlarına geri yüklenmelidir. DFU MODUNA GİRME DFU moduna, hem Home hem de Sleep / Wake tuşlarına basılı tutarken, USB kablosu kullanarak cihazı bir bilgisayara manuel olarak bağlayarak girilebilir. 8 saniye geçtikten sonra Home tuşuna basılı tutmaya devam ederken Sleep / Wake tuşunu serbest bırakın. NOT: DFU modunda ekranda hiçbirşey görüntülenmeyecek. Apple logosu görülürse Sleep / Wake tuşuna uzun süre basılı tutun. Geri yüklenen bir cihaz DFU moduna girdikten sonra yalnızca Apple imzalı değiştirilmemiş mevcut kod ile kesinlikle bilinen iyi bir duruma geri döner. 2.1.2. SİSTEM YAZILIMI KİŞİSELLEŞTİRME Apple, ortaya çıkan güvenlik endişelerini gidermek için düzenli olarak yazılım güncellemeleri yayımlar. Bu güncellemeler, destekleyen tüm cihazlar için aynı anda sağlanır. Kullanıcılar; cihaz üzerinde ve iTunes üzerinden IOS güncelleme bildirimlerini alır ve güncellemeler kablosuz olarak teslim edilir, son güvenlik düzeltmeleri hızla benimsenir. Yukarıda açıklanan önyükleme işlemi, sadece Apple imzalı kodun bir cihazda yüklü olmasını sağlar. Cihazları en son güvenlik güncelleştirmelerinden yoksun eski sürümlere döndürmemek için, IOS SSP denilen bir işlem kullanır. Eğer gerileştirme mümkün olsaydı, bir saldırgan IOS'un eski bir sürümünü yükleyebilir ve cihazın yeni sürümde elde ettiği giderilmiş olan bir güvenlik açığından yararlanabilirdi. IOS yazılım güncellemeleri iTunes kullanarak veya cihaz üzerindeki OTA üzerinden yüklenebilir. iTunes ile IOS'un tam bir kopyası indirilir ve yüklenir. OTA yazılım güncelleştirmeleri ağ verimliliği için deltalar gibi sağlanmaktadır.
  • 17. 4 IOS yükleme veya yükseltme sırasında, Apple kurulum yetkilendirme sunucusuna bağlanır ve ECID, rastgele bir antireplay değeri ve yükleme paketinin yüklenecek her bölümü ( LLB, iBoot, çekirdek ve OS görüntü ) için şifreleme ölçümlerinin listesini gönderir. Sunucu, sürümlere karşı yükleme izni için ölçümlerin sunulan listesini denetler, eğer bir eşleşme bulursa, ölçüme ECID ekler ve sonucu imzalar. İmzalanan verilerin komple tam dizisi, sunucudan yükleme veya yükseltme sürecinin bir parçası olarak cihaza geçirilir. ECID ekleme, talep eden cihaz için "kişiselleştiren" yetkilendirmedir. Sunucu, bilinen ölçümler için yetkilendirerek ve sadece imzalayarak Apple tarafından sağlanan güncelleştirmenin tam olmasını sağlar. Önyükleme süresi; imza ile kaplı eşleşme, cihazın benzersiz kimliği ile birlikte diskten yüklenen öğenin ölçümü ve Apple'den imzalı gelen güven değerlendirme zincirini doğrular. Bu adımlar yetkilendirme sağlar ve belirli bir cihaz için eski bir IOS sürümü bir cihazdan diğerine kopyalanamaz. Antireplay, saldırganın sunucunun yanıtını kaydetmesini ve bunu kullanarak kullanıcının cihazı gelecekte downgrade için kullanmasını önler. 2.1.3. UYGULAMA KOD İMZALAMA IOS çekirdek başladıktan sonra, kullanıcı işlemlerini ve uygulamaları çalıştırmayı kontrol edebilir. Tahrif edilmemiş, bilinen ve onaylanmış bir kaynaktan gelen tüm uygulamaları sağlamak için IOS ile Apple tarafından verilmiş bir sertifikayı kullanarak tüm kod çalıştırılabilir. 3.parti uygulamalar doğrulanmış ve Apple tarafından verilmiş bir sertifika kullanılarak imzalanmış olmalıdır. Zorunlu kod imzalama, işletim sistemi uygulamaları için güven zinciri kavramını genişletir. 3.parti uygulamalar, imzasız kod kaynakları veya kendini değiştiren kodu kullanarak yüklenmesini engeller. Geliştiriciler, IOS cihazlarda uygulamalar kurmak ve geliştirmek için Apple ile kayıt olmalı ve IOS geliştirici programına katılmalıdır. Her geliştiricinin gerçek dünyadaki kimliği, ister bir birey veya faaliyet olsun onların sertifikası verilmeden önce Apple tarafından doğrulanır [5].
  • 18. 5 Bu sertifika uygulamaları imzalamak için geliştiricilere olanak sağlar ve onları dağıtım için Apple Store'a teslim eder. Sonuç olarak, Apple Store'daki tüm uygulamalar, kötü niyetli uygulamalar oluşturulması için bir caydırıcı olarak hizmet veren tanımlanabilir bir kişi veya kuruluş tarafından teslim edilmiştir. İşletmeler ayrıca şirket içi uygulamaları kendi bünyesinde kullanılmak üzere çalışanlara dağıtmak için yazma yeteneğine sahiptir. İşletmeler ve kuruluşlar, bir D- U-N-S numarası ile IOS geliştirici Enterprise programına başvurabilir. Apple, kimlik ve uygunluğunu kontrol ettikten sonra başvuruyu onaylar. Bir organizasyon IDEP üyesi olduktan sonra, bu yetki cihazlarda çalıştırmak için organizasyon içi uygulamalara izin veren bir "hazırlama profili" elde etmek için kayıt olunabilinir. Kullanıcılar, organizasyon için uygulamaları çalıştırmak için hazırlama profili yüklü olmalıdır. Bu yalnızca, kuruluşun hedeflenen kullanıcıların IOS cihazlar üzerine uygulamaları yüklemesinin mümkünlüğünü sağlar. Diğer mobil platformların aksine IOS, kullanıcıların kötü amaçlı imzasız uygulamaları web sitelerinden yüklemeye veya güvenilmeyen kod çalıştırmasına izin vermez. Çalışma zamanında, bir uygulamanın son güncelleme veya yüklemeden sonra değiştirilmemişliğini sağlamak için onları yüklü oldukları gibi tüm çalıştırılabilir bellek sayfalarının kod imza kontrolleri yapılır. 2.1.4. ÇALIŞMA ZAMANI İŞLEM GÜVENLİĞİ Bir uygulama onaylanmış bir kaynaktan doğrulandıktan sonra, IOS diğer uygulamalar veya sistemin geri kalanını garantiye almak için güvenlik önlemlerini güçlendirir. Tüm 3.parti uygulamalar "sandboxed" yani korumalıdır, bu yüzden onların diğer uygulamalar tarafından depolanan dosyalara erişmesi veya cihazda değişiklik yapması kısıtlıdır. Bu, uygulamaların diğer uygulamalar tarafından depolanan bilgileri değiştirmelerini veya toplamalarını engeller. Her uygulamanın, dosyaları için uygulama kurulduğunda rastgele atanmış benzersiz bir giriş dizini vardır. Bir 3. parti uygulamanın kendi dışındaki bilgilere erişmesi gerekiyorsa sadece API'ler ve IOS tarafından sağlanan hizmetleri kullanarak yapar. Sistem dosyaları ve kaynakları da kullanıcının uygulamalarından korumalıdır. IOS çoğunluğu, tüm 3.parti uygulamaları gibi ayrıcalıklı olmayan "mobil" kullanıcı gibi çalışır.
  • 19. 6 Tüm işletim sistemi bölümü salt okunur monte edilmiştir. Böyle uzaktan oturum açma hizmetleri gibi gereksiz araçlar sistem yazılımına dahil değildir ve API'ler, uygulamalara diğer uygulamaların veya IOS'un kendi ayrıcalıklarını değiştirmesi için yükseltmesine izin vermez [5]. 3.parti uygulamalar ile kullanıcı bilgi ve özelliklerine erişim, iCloud gibi yetki bildirimleri kullanılarak kontrol edilir. Yetkilerin, bir uygulama için imzalanmış olan şifre / değer çiftleri vardır ve UNIX kullanıcı kimliği gibi çalışma zamanı faktörlerinin haricinde kimlik doğrulamasına izin verir. Yetkiler, dijital olarak imzalanmış olduğundan değiştirilemez. Yetkiler, sistem uygulamaları ve araçlar tarafından ayrıcalıklı belirli işlemler için yoğun olarak kullanılmaktadır aksi taktirde "root" olarak çalıştırmak için işlem gerekir. Bu büyük ölçüde sistem uygulaması veya araçlar tarafından bir uzlaşmayla ayrıcalık yükseltme olasılığını azaltır. Uygulamalar sadece sistem tarafından sağlanan API'ler sayesinde arka plan işlemi gerçekleştirebilir. Bu, uygulamaların performansını düşürmeden veya pil ömrünü önemli ölçüde etkilemeden işlevine devam etmesini sağlar. Uygulamalar birbirleri ile doğrudan veri paylaşmaz; paylaşım, uygulamalar özel URL şemalarını kullanarak yalnızca hem alma hem gönderme veya SKAG aracılığıyla gerçekleştirilebilir. ASLR, bellek bozulması hatalarını sömürüye karşı korur. Yerleşik uygulamalar, tüm bellek bölgelerinin rastgele başlatılmasını sağlamak için ASLR kullanır. İlaveten, cihaz her açılışta sistem paylaşılan kütüphane konumlarını rastgele seçer. Xcode IOS geliştirme ortamı, açık ASLR desteği ile otomatik olarak 3.parti programları derler. Daha fazla koruma, IOS'un ARM'nin bellek sayfalarını yürütülemez olarak işaretleyen Execute Never özelliğini kullanmasıyla sağlanmaktadır. Hem yazılabilir hem de yürütülebilir olarak işaretlenmiş bellek sayfaları sıkı şekilde denetlenen koşullar altında yalnızca uygulamalar tarafından kullanılabilir: Çekirdek, sadece Apple'ın varlığı için "dinamik kod imzalama" yetkisini denetler. O zaman bile, rastgele seçme adresi verilen yürütülebilir ve yazılabilir bir sayfa istemek için sadece tek bir "mmap" çağrı yapılabilir. Safari, bu işlevi kendi JavaScript JIT derleyicisi için kullanır.
  • 20. 7 2.2. AĞ GÜVENLİĞİ Mobil kullanıcıların, dünyanın herhangi bir yerinden kurumsal bilgi ağlarına erişmesi gerekebilir, bu yüzden onların yetkilerini ve veri iletimi sırasında korunmasını sağlamak önemlidir. IOS, kimliği doğrulanmış yetkili ve şifreli iletişim için standart ağ protokollerini kullanır ve geliştirici erişimi sağlar. IOS, hem Wi-Fi hem de hücresel veri ağ bağlantıları için kanıtlanmış teknolojiler ve bu güvenlik hedeflerini gerçekleştirmek için en son standartları sağlar. Diğer platformlarda, çok sayıda açık iletişim portlarını izinsiz girişlere karşı korumak için güvenlik duvarı yazılımı gereklidir. Çünkü, IOS dinlenme bağlantı portlarını sınırlayarak azaltılmış bir saldırı yüzeyini elde eder ve telnet, kabuklar veya bir web sunucusu gibi gereksiz ağ programlarını kaldırır, bu güvenlik duvarı yazılımı gerektirmez. Ayrıca; iMessage, Facetime ve APNS kullanarak iletişim tamamen şifrelenir ve kimlik doğrulanır. 2.2.1. SSL, TSL IOS, DTLS ve Aktarım Katmanı Güvenliği ( TLS v1.1, TLS v1.2 ) gibi Güvenli Yuva Katmanı'nı ( SSL v3 ) da destekler. Safari, Takvim, Mail ve diğer internet uygulamaları ağ hizmetleri ve cihaz arasında şifreli bir iletişim kanalı etkinleştirmek için otomatik olarak bu mekanizmaları kullanır. Düşük seviyeli ( SecureTransport ) API'ler "ince taneli kontrolü" sağlarken, Yüksek seviyeli ( CFNetwork gibi ) API'ler geliştiricilerin kendi uygulamalarında TLS benimsemesini kolaylaştırır [4]. 2.2.2. VPN Güvenli ağ hizmetleri, sanal özel ağ gibi tipik olarak IOS cihazlar ile çalışmak için en az kurulum ve yapılandırma gerektirir. IOS cihazlar, aşağıdaki protokolleri ve kimlik doğrulama yöntemlerini destekleyen VPN sunucuları ile çalışır: * Apple Store'dan uygun istemci uygulaması kullanarak Juniper Networks, Cisco, Aruba Networks, SonicWALL, Check Point, and F5 Networks SSL-VPN Bu uygulamalar, yerleşik IOS desteği için kullanıcı kimlik doğrulaması sağlar. * Şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik doğrulaması ile Cisco IPSec ve paylaşılmış gizlilik ve sertifikalar ile makine kimlik doğrulaması
  • 21. 8 * Cisco IPSec, cihaz yapılandırması sırasında belirtilen etki alanları için VPN On Demand'ı destekler. * MS-CHAPV2 şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik doğrulaması ile L2TP/IPSec ve paylaşılmış gizlilik ve sertifikalar ile makine kimlik doğrulaması * MS-CHAPV2 şifre, RSA SecurID veya CRYPTOCard tarafından kullanıcı kimlik doğrulaması ile PPTP IOS, sertifika tabanlı kimlik doğrulaması kullanan ağlar için VPN On Demand'ı destekler. Bilgi Teknolojileri politikaları, hangi etki alanlarının bir yapılandırma profili kullanarak bir VPN bağlantısı gerektirdiğini belirler. 2.2.3. WI - FI IOS, kablosuz kurumsal ağlara kimliği doğrulanmış erişim sağlamak için WPA2 Kurumsal dahil olmak üzere endüstri standardı Wi-Fi protokollerini destekler. WPA2 Kurumsal, veri gönderirken kullanıcılara en yüksek seviyede güvence vererek 128-bit AES şifreleme kullanır ve Wi-Fi üzerinden veri alır. 802.1X desteği ile IOS cihazlar, RADIUS kimlik doğrulama ortamlarında geniş bir yelpazeye entegre edilebilir. 802.1X, iPhone ve iPad'te EAP-TLS, EAP-TTLS, EAP-FAST, EAP-SIM, PEAPv0, PEAPv1, ve LEAP dahil kablosuz kimlik doğrulama yöntemlerini destekler [4]. 2.2.4. BLUETOOTH IOS'un Bluetooth desteği gereksiz yere artan özel veriye erişim olmadan yararlı işlevsellik sağlamak üzere tasarlanmıştır. IOS cihazlar; Şifreleme Modu 3, Güvenlik Modu 4 ve Servis Seviyesi 1 bağlantılarını destekler. IOS, aşağıdaki Bluetooth profillerini destekler: * Eller serbest profili ( HFP 1.5 ) * Telefon defteri erişim profili ( PBAP ) * Gelişmiş ses dağıtım profili ( A2DP ) * Ses / video uzaktan kumanda profili ( AVRCP ) * Kişisel alan ağı profili ( PAN ) * İnsan arabirim cihaz profili ( HID )
  • 22. 9 2.3. VERİ KORUMA VE ŞİFRELEME Güvenli önyükleme zinciri, kod imzalama ve çalışma zamanı işlem güvenliğini sağlamak için sadece güvenilen kod ve uygulamaları bir cihaz üzerinde çalıştırılabilinir. IOS, güvenlik altyapısının bir cihaz üzerinde yetkisiz değişiklikler ile diğer bölgelerde tehlikeye düştüğü durumlarda bile kullanıcı verilerini korumak için ek güvenlik özellikleri vardır. Sistem mimarisi kendisi gibi, bu şifreleme ve veri koruma yetenekleri yazılım teknolojilerini ve entegre donanım katmanlarını kullanır [4]. 2.3.1. DONANIM GÜVENLİK ÖZELLİKLERİ Mobil cihazlarda, hız ve güç verimliliği kritik öneme sahiptir. Şifreleme işlemleri karmaşıktır. Doğru tasarlanmamış ve uygulanmamışsa, performans veya pil ömrü sorunlarıyla karşılaşılabilinir. Her IOS cihazın, flash depolama ve ana sistem belleği ile DMA içinde dosya şifrelemeyi çok verimli yapan adanmış bir AES 256 şifreleme motoru vardır. AES motor ile birlikte SHA - 1, daha fazla şifreleme işleminin yükünü azaltarak donanımda uygulanmaktadır. UID ve GID üretim sırasında AES 256-bit anahtarları uygulama işlemcisinin içine kaynaşır. Hiçbir yazılım veya ürün bilgisi, onları doğrudan okuyamaz; onlar, bunları kullanarak gerçekleştirilen şifreleme ve şifre çözme işlemlerin yalnızca sonuçlarını görebilir. UID her cihaz için benzersizdir ve Apple veya tedarikçilerin herhangi birisi tarafından kaydedilmez [5]. GID, cihaz sınıfının tüm işlemcileri için ortaktır. Yükleme ve geri yükleme sırasında sistem yazılımı teslim edilirken ek bir koruma seviyesi olarak da kullanılır. Hararetli bu anahtarlar, silikon içinde bunların tahrif veya bypass edilmesini engeller ve sadece AES motoru tarafından ulaşılabilir olduğunu garanti eder. UID, verilerin şifreli olarak belirli bir cihaza bağlanmasına olanak sağlar. Örneğin; dosya sistemini koruyan anahtar hiyerarşisi kullanıcı kimliği içerir, bu yüzden bellek yongaları fiziksel olarak bir cihazdan başka bir cihaza taşınırsa dosyalar erişilemez olur. UID, cihazdaki başka bir tanımlayıcı ile ilişkili değildir. UID ve GID dışındaki diğer tüm şifreleme anahtarları "yarrow" 'a dayalı bir algoritmayı kullanarak sistemin RNG'si tarafından oluşturulur.
  • 23. 10 Sistem entropisi, önyükleme sırasında ara verme zamanından ve ilave olarak cihaz önyüklemeye başladıktan sonra gelen iç sensörlerden toplanır. Güvenli bir şekilde kaydedilen anahtarları silmek, onları üreten kadar önemlidir. Bu özellikle flash depolama üzerinde zorludur, bu yüzden aşınma - düzeltme verilerinin çoklu kopyalarının silinmesi gerekir anlamına gelebilir. Bu sorunu çözmek için IOS cihazlar, "silinebilir depolama" adı verilen özel bir güvenli veri silme özelliği içerir. Bu özellik, çok düşük bir düzeydeki blokların az sayıdakini silmek ve doğrudan adres için temel depolama teknolojisine erişir. 2.3.2. DOSYA VERİLERİNİ KORUMA Yerleşik donanım şifreleme özelliklerine ek olarak, ayrıca cihazdaki flash bellekte saklanan verileri daha fazla korumak için "veri koruma" adlı bir teknoloji kullanılır. Bu teknoloji mobil cihazların her zaman açık ve internete bağlı oldukları, herhangi bir zamandaki telefon görüşmeleri, metin, mesaj ve e-mailler alabileceği gerçeği dikkate alınarak tasarlanmıştır. Veri koruma, bir cihaza kilitliyken yeni bilgi indirmeksizin ve hassas verilerin şifresini çözmeksizin gelen telefon aramaları gibi olaylara yanıt vermesini sağlar. Bu bireysel davranışlar, "sınıflar" bölümünde açıklandığı gibi her bir dosya için bir sınıf için her dosyayı atayarak kontrol edilir. Veri koruma, her sınıftaki verilerin erişilmesi gerektiğinde verileri korur. Erişilebilirlik, sınıf anahtarları kilidinin açılmış olup olmadığına göre belirlenir. Veri koruma, anahtarların bir hiyerarşisi oluşturularak ve yönetilerek uygulanır, daha önce açıklanan donanım şifreleme teknolojileri üzerine inşa edilir [4]. MİMARİYE BAKIŞ Her zaman veri bölümü üzerine bir dosya oluşturulduğunda; Veri koruma, dosya başına yeni bir 256-bit şifre oluşturur ve onu dosyayı şifrelemek için AES CBC modunu kullanarak flash belleğe yazılır gibi şifre kullanan AES motor donanımına verir. IV, dosya anahtar başına SHA-1 hash ile şifrelenmiş, kapalı blok dosyasına ayarlanmış hesaplanan bir geribildirim kaydırma kaydının çıktısıdır. Dosya başına anahtar, dosya erişilebilir olması gereken şartlar altında çeşitli sınıf anahtarlarından biri ile örülmüştür. Diğer tüm sargılar gibi, bu RFC 3394 başına NIST AES anahtar sarması kullanılarak yapılır. Sarılmış dosya başına anahtar dosyanın metadatasında depolanır.
  • 24. 11 Bir dosya açıldığında, onun metadatası dosya sistemi anahtarı ile şifresi çözülür. Sarılı dosya başına anahtar açığa çıkar ve üzerinde sınıfı koruyan bir notasyon olur. Dosya başına anahtar sınıf anahtarı ile sarılmamıştır, daha sonra flash bellekten okunduğu gibi dosyanın şifresini çözen AES motor donanımına verilir. Dosya sistemindeki tüm dosyaların metadataları, IOS ilk yüklendiğinde veya cihaz bir kullanıcı tarafından silindiği zaman rastgele oluşturulan bir anahtar ile şifrelenir. Dosya sistem anahtarı, "silinebilir depolama" da saklanır. Bu anahtar cihazda depolandığından beri, verilerin gizliliğini korumak için kullanılmaz, bunun yerine isteğe bağlı olarak hızlıca silinecek şekilde tasarlanmıştır. Bu şekilde anahtarın silinmesi, tüm dosyaları şifreli olarak erişilemez hale getirir. Bir dosyanın içeriği, bir sınıf anahtarı ile sarılmış bir dosya başına anahtar ile şifrelenmiştir ve sırayla dosya sistemi anahtarı ile şifrelenen bir dosyanın metadatasında saklanır. Sınıf anahtarı donanım UID ile korunur. Bu hiyerarşi, esneklik ve performans sağlar. TÜM İÇERİK VE AYARLARI SİL Ayarlar'daki "tüm içerik ve ayarları sil" seçeneği silinebilir depolamadaki bütün anahtarları yok eder ve tüm kullanıcı verilerini cihaz üzerinde şifrelemeye erişemez hale getirir. GÜÇLÜ APPLE ID PAROLALARI OLUŞTURMA Apple ID'ler; iCloud, Facetime ve iMessage gibi hizmetleri bir diziye bağlamak için kullanılır. Kullanıcıların, güçlü şifreler oluşturmasına yardımcı olmak için tüm yeni hesaplar aşağıdaki parola nitelikleri içermelidir: * En az 8 karakter * En az 1 sayı * En az 1 harf * En fazla 3 ardışık aynı karakter * En az 1 büyük harf * Hesap adıyla aynı olmayacak 2.3.3. GEÇİŞ KODLARI Bir cihaz geçiş kodu ayarlayarak kullanıcı otomatik olarak veri koruma sağlar. IOS, dört haneli ve keyfi uzunluktaki alfanumerik geçiş kodlarını destekler.
  • 25. 12 Cihazın kilidini açmaya ek olarak, bir geçiş kodu cihazda depolanmayan şifreleme anahtarları için entropi sağlar. Bu, cihaza sahip bir saldırganın geçiş kodu olmaksızın veri koruma sınıflarındaki verilere erişim sağlayamaması anlamına gelir. Geçiş kodu, cihazın UID'le karışık olmalıdır. Bu yüzden brute-force girişimleri saldırı altındaki cihazda yapılmalıdır. Büyük bir yineleme sayısı her girişimi daha yavaş yapmak için kullanılır. Yineleme sayısı kalibre edilir, böylece bir girişim yaklaşık seksen milisaniye sürer. Bu, küçük harfler ve sayılar ile altı karakterli alfanumerik bir parolanın tüm kombinasyonlarını denemek için en fazla 5½ ( 5,5 yıl ) veya yalnızca sayılarla dokuz basamaklı bir parola için 2½ ( 2,5 yıl ) alacağı anlamına gelir. Ayrıca brute-force geçiş kodu saldırılarından vazgeçirmek için, IOS arabirimi kilit ekranında geçersiz bir geçiş kodu girmesinden sonra artan zaman gecikmelerini zorlar. Kullanıcılar, başarısız on parola girişiminden sonra cihazı otomatik olarak silmeyi seçebilir. Bu ayar, MDM ve Exchange ActiveSync üzerinden yönetim ilkesi olarak da kullanılabilir ve aynı zamanda daha düşük bir eşik değeri ile ayarlanabilir. GEÇİŞ KODU HAKKINDA ÖNEMLİ HUSUSLAR Yalnızca sayı içeren uzun bir geçiş kodu girilirse, bir sayısal tuş takımı kilit ekranında tam klavye yerine görüntülenir. Benzer güvenlik sağlarken, uzun bir sayısal geçiş kodu girmek kısa bir alfanumerik geçiş kodu girmekten daha kolay olabilir [5]. SINIFLAR IOS cihaz üzerinde yeni bir dosya oluşturulduğunda, onu oluşturan uygulama tarafından bir sınıf atanmıştır. Her sınıf, veri erişilebilirliğini belirlemek için farklı politikalar kullanır. Temel sınıflar ve politikalar aşağıdaki gibidir: TAM KORUMA (NSFILEPROTECTIONCOMPLETE) Sınıf anahtarı, UID cihaz ve kullanıcı geçiş kodundan türetilen bir şifre ile korunmaktadır. Kullanıcı cihazı kilitledikten kısa süre sonra şifresi çözülmüş sınıf anahtarı bir kenara ayrılır, kullanıcı geçiş kodunu tekrar girene kadar bu sınıftaki tüm verilere ulaşılamaz. Mail uygulaması, iletiler ve ekleri için tam koruma sağlar.
  • 26. 13 Uygulama başlatma görüntüleri ve konum bilgileri de tam koruma ile saklanmaktadır. AÇIK OLDUKÇA (NSFILEPROTECTIONCOMPLETEUNLESSOPEN) Bazı dosyaların cihaz kilitliyken yazılması gerekebilir. Arka planda bir mail ekini indirmek bunun en iyi örneğidir. Bu davranış, asimetrik eliptik eğri şifreleme kullanılarak elde edilir. Her zamanki dosya başına anahtar ile birlikte veri koruma, ortak dosya / özel anahtar çifti üretir. Paylaşılan bir gizli dosya, dosyanın özel anahtarı kullanılarak hesaplanır ve cihazın UID ve kullanıcının geçiş kodu ile açık olduğu sürece koruma ortak sınıf anahtarına karşılık gelen özel anahtar korunmaktadır. Dosya başına anahtar, bu paylaşılan gizliliğin hashi ile sarılır ve dosyanın ortak anahtarı ile birlikte dosyanın metadatasında saklanır; karşılık gelen özel anahtar sonra hafızadan silinir. En kısa sürede kapalı dosya, dosya başına anahtar da aynı zamanda hafızadan silinir. Dosyayı yeniden açmak için, açık olduğu sürece koruma ortak sınıf anahtarı ve dosyanın geçici ortak anahtarı kullanılarak paylaşılan gizlilik yeniden oluşturulur; hash, daha sonra dosyanın şifresini çözmek için kullanılan dosya başına anahtar paketini açmak için kullanılır [5]. İLK KULLANICI KİMLİK DOĞRULAMASINA KADAR (NSFILEPROTEC. COMP. UNTILFIRSTUSERAUTHENTICATION) Bu sınıf, "tam koruma" ile aynı şekilde davranır. Cihaz kilitlendiğinde şifresi çözülmüş sınıf anahtarı dışında bellekten kaldırılmaz. Bu sınıftaki koruma, masaüstü tam disk şifrelemeye benzer özelliklere sahiptir ve verileri yeniden başlatılmasını gerektiren saldırılardan korur. KORUMASIZ (NSFILEPROTECTIONNONE) Bu sınıf anahtarı yalnızca UID ile korunur ve silinebilir depolamada ( Effaceable Storage ) saklanır. Bu varsayılan sınıf, tüm dosyalar için değildir aksi taktirde bir veri koruma sınıfına atanır. Bu sınıftaki dosyaların şifresini çözmek için gerekli tüm anahtarlar cihazınızda saklanır, şifreleme yalnızca uzaktan hızlı silmeye yarar. Eğer, bir dosyaya veri koruma sınıfı atanmamışsa, yine de bu bir IOS cihaz üzerindeki tüm veriler gibi şifrelenmiş biçimde depolanır.
  • 27. 14 IOS SDK, 3.parti uygulamaları kolay hale getirmek ve ev geliştiricilerine veri koruma benimsemesi için tam bir API'ler takımı sunar ve kendi uygulamalarında en üst düzeyde koruma sağlar. Veri koruma; SQLite, NSData, CoreData ve NSFileManager dahil dosya ve veritabanı API'leri için kullanılabilir. 2.3.4. ANAHTARLIK VERİ KORUMA Uygulamaların birçoğunun parolaları ve anahtarlar ile giriş belirteçleri gibi diğer kısa ama hassas veri bitlerini ele alması gerekir. Anahtarlık, güvenlik dosyalarını korumak için kullanılan anahtar hiyerarşisine paralel çalışan farklı bir anahtar hiyerarşisi tarafından sağlanan "korumasız" sınıftaki dosya sisteminde depolanan SQLite veri tabanı olarak uygulanır. Yalnızca tek bir veritabanı vardır; "securityd" daemon, anahtarlık öğelerinin her bir işlem veya uygulamaya erişebilmesini belirler. Anahtarlık erişim API'leri, "securityd" çerçevesinde yapılan uygulamanın "anahtarlık-erişim-gruplar" ve "uygulama-tanımlayıcı" yetkisini sorgulayan çağrıların nedenidir. Tek bir işlemi kısıtlamak yerine, erişim grupları Anahtarlık öğeleri uygulamalar arasında paylaşılmasına olanak sağlar [5]. Anahtarlık öğeleri yalnızca aynı geliştirici uygulamalar arasında paylaşılabilir. Bu, erişim gruplarını kullanmak için 3.parti uygulamalar gerektiren IOS geliştirici Programı aracılığıyla kendilerine ayrılan bir önek ile yönetilir. Önek gereksinimi, kod imzalama ve Provizyon profilleri üzerinden uygulanır. Anahtarlık verisi, Veri Koruma dosyasında kullanılan benzer bir sınıf yapısı kullanılarak korunmaktadır. Bu sınıflar, dosya veri koruma sınıfları için eşdeğer davranışlara sahiptir ama farklı tuşları kullanır ve API'lerin farklı adlandırılan parçasıdır. Her Anahtarlık sınıfı, yedekleme sırasında cihazdan kopyalanmaya başladığı zaman UID ile daima korunan "sadece bu cihaz" muadiline sahiptir. Eğer farklı bir cihaza geri yüklediyseniz bunu işe yaramaz hale getirir. Apple, işletim sistemi tarafından ihtiyaç duyulduğunda bilgi güvenliğinin türüne bağlı olarak Anahtarlık sınıfları tarafından dikkatle dengelenmiş güvenlik ve kullanılabilirliğe sahiptir.
  • 28. 15 Örneğin; bir VPN sertifikası her zaman kullanılabilir olmalıdır, bu yüzden cihaz sürekli bir bağlantı tutar ama başka bir cihaza taşınamaz olduğundan non-migratory olarak sınıflandırılmıştır. IOS tarafından oluşturulan Anahtarlık öğeleri için aşağıdaki sınıf korumaları uygulanır: Eleman Erişilebilir Wi-Fi passwords After first unlock Mail accounts After first unlock Exchange accounts After first unlock VPN certificates Always, non-migratory VPN passwords After first unlock LDAP, CalDAV, CardDAV After first unlock Social network account tokens After first unlock Home sharing password When unlocked Find My iPhone token Always iTunes backup When unlocked, non-migratory Voicemail Always Safari passwords When unlocked Bluetooth keys Always, non-migratory Apple Push Notification Service Token Always, non-migratory iCloud certificates and private key Always, non-migratory iCloud token After first unlock iMessage keys Always, non-migratory SIM PIN Always, non-migratory Certificates and private keys installed Always, non-migratory by Configuration Profile BİR ANAHTARLIK ÖĞESİNİN BİLEŞENLERİ Erişim grubu ile birlikte her bir anahtarlık öğesi, metadata ( "oluşturulmuş" ve "en son güncellenmiş" zaman belirteci gibi ) içerir.
  • 29. 16 Aynı zamanda, sorgulamak için kullanılan hesap ve sunucu adı gibi her bir öğenin şifresini çözmeden arama izni vermek için SHA-1 özniteliklerinin karmalarını içerir. Son olarak, aşağıdakileri şifreleme verilerini içerir: * Sürüm numarası * Değer koruma sınıfını belirten eleman * Eleman başına koruma sınıfı anahtar ile sarılmış * Elemanı açıklayan neiteliklerin sözlüğü ( SecItemAdd için geçti gibi ), bir ikili plist olarak kodlanmış ve şifrelenmiş Şifreleme, GCM'deki AES 128'dir: erişim grubu nitelikleri içinde ve GMAC tarafından korunmaktadır. 2.3.5. KEYBAGS Anahtarlar; hem dosya hem de Anahtarlık Veri Koruma sınıfları için toplanır ve keybags içinde yönetilir. IOS, aşağıdaki 4 keybags'i kullanır: SYSTEM KEYBAG Cihazın normal çalışmasında kullanılan sarılmış sınıf anahtarlarının depolandığı yerdir. Örneğin; bir geçiş kodu girildiğinde, NSFileProtectionComplete anahtarı sistem anahtarlığından yüklenir ve paketi açar. Bu, "Korumasız" sınıfta depolanan bir ikili plisttir ama içerikleri Silinebilir Depolama'da tutulan bir anahtar ile şifrelenir. Keybags için ileri güvenlik sağlamak amacıyla, bu anahtar silinir ve bir kullanıcı geçiş kodunu değiştirdiği her zamanda yenilenir. Sistem Keybag, cihazda depolanan tek keybag'tir. AppleKeyStore çekirdek uzantısı Sistem Keybag'i yönetir ve bir cihazın kilit durumu ile ilgili sorgulanabilir. Bu raporlar, paket açılması başarılı bir şekildeyken eğer sistemdeki tüm sınıf anahtarları erişilebilir ise sadece cihazın kilidinin açık olduğunu bildirir. BACK-UP KEYBAG Back-up Keybag, iTunes tarafından şifrelenmiş bir yedekleme yapıldığında oluşturulur ve cihazın yedeklendiği bilgisayarda depolanır. Yeni bir keybag yeni bir anahtar dizisiyle oluşturulur ve yedeklenmiş veriler bu yeni anahtarlar için yeniden şifrelenir.
  • 30. 17 Daha önce açıklandığı gibi, non-migrator Anahtarlık öğeleri UID türetilmiş anahtar ile sarılı kalır, onlar orijinalinde yedeklenmiş cihaza restore edilmeye izin verir ancak onları farklı bir cihazda ulaşılamaz hale getirir. Keybag, iTunes' taki ayarlanan parolayla korunur ve PBKDF2' nin 10.000 yinelemesi aracılığıyla çalışır. Bu büyük yineleme sayısına rağmen, belirli bir aygıt için herhangi bir bağ yoktur ve bu nedenle back-up keybag üzerindeki birçok bilgisayar arasında paralel bir brute-force saldırısı denenebilir. Bu tehdit yeterince güçlü bir parola ile azaltılabilir. Eğer bir kullanıcı iTunes yedekleme için şifrelemeyi seçmezse, yedekleme dosyaları onların Veri Koruma sınıfına bakılmaksızın yani sınıfı ne olursa olsun şifrelenmez ama Anahtarlık, türetilmiş bir anahtar ile korumalı kalır. Bu yüzden, eğer yalnızca bir yedekleme parolası ayarlanırsa Anahtarlık öğeleri yeni bir cihaza taşınır. ESCROW KEYBAG iTunes senkronizasyonu ve MDM için kullanılır. iTunes'u yedeklemeyi ve kullanıcı geçiş kodu girmesini gerektirmeden senkronize etmeyi sağlar ve uzaktan bir kullanıcının şifresini temizlemek için bir MDM sunucusu sağlar. Senkronizasyon için kullanılan bilgisayarda veya cihazı yöneten MDM sunucusunda depolanır. Escrow keybag, cihaz senkronizasyonu sırasında potansiyel verilerin tüm sınıflarına erişimi gerektiren kullanıcı deneyimini geliştirir. Bir geçiş kodu ile kilitli cihaz, iTunes'a bağlandığında kullanıcıdan bir geçiş kodu girmesi istenir. Bundan sonra cihaz, bir Escrow Keybag oluşturur ve Host'a iletir. Escrow Keybag, tam olarak yeni oluşturulan anahtar tarafından korunan cihazda kullanılan aynı sınıf anahtarları içerir. Bu anahtar, Escrow Keybag kilidini açmak için gereklidir ve Protected Until First User Authentication sınıfındaki cihazda depolanır. Bu yüzden, cihaz yeniden başlatıldıktan sonra ilk kez iTunes yedeklemeden önce geçiş kodu girilmelidir. ICLOUD BACK-UP KEYBAG Back Up Keybag'e benzemektedir. Bu keybag'in tüm sınıf anahtarları asimetriktir, bu yüzden iCloud yedeklemeleri arka planda gerçekleşebilir. "No Protection" hariç tüm veri koruma sınıfları için şifrelenmiş veri cihazdan okunur ve iCloud'a gönderilir. İlgili sınıf anahtarları, iCloud anahtarları tarafından korunur.
  • 31. 18 Anahtarlık sınıfı anahtarları, şifrelenmemiş bir iTunes yedeklemesiyle aynı şekilde UID türetilmiş bir anahtar ile sarılır. BİR KEYBAG BİLEŞENLERİ Başlık İçerikleri: * Sürüm ( IOS 3 veya daha sonra 5'e ayarlama ) * Tür ( Sistem, Yedekleme, Emanet, iCloud Yedekleme ) * Keybag UID * Keybag imzalanmış ise bir HMAC * Sınıf anahtarlarının sarılması için kullanılan yöntem: UID veya PBKDF ile birbirine dolaşmış, salt ve yineleme sayısı ile birlikte Sınıf anahtarlarının bir listesi: * Anahtar UUID * Sınıf ( Bu, hangi dosya veya Anahtarlık veri koruma sınıfı ) * Sarma Türü * Sarmalanmış sınıf anahtarı * Asimetrik sınıflar için ortak anahtar 2.4. CİHAZ ERİŞİMİ IOS, esnek güvenlik politikaları ve kolayca uygulanan yapılandırmaları destekler ve yönetir. Bu, şirketlerin kurumsal bilgilerini korumayı ve çalışanların kurumsal beklentilerini karşılamayı sağlar. 2.4.1. GEÇİŞ KODU KORUMASI Kriptografik koruma sağlamanın yanı sıra, geçiş kodları cihazın kullanıcı kimliğine yetkisiz erişimini önler. IOS arabirimi, geçersiz bir geçiş kodu girildikten sonra artan zaman gecikmelerini zorlar, kilit ekranı üzerinden brute-force saldırıların etkinliğini önemli ölçüde azaltır. Kullanıcılar, başarısız on geçiş kodu denemesinden sonra cihaz otomatik olarak silinebiliri seçebilir. Bu ayar, idari bir yönetim politikası olarak kullanılabilir. Ayrıca Exchange ActiveSync ve MDM sayesinde daha düşük bir eşik değeri ayarlanabilir [5].
  • 32. 19 Varsayılan olarak, kullanıcının geçiş kodu 4 haneli PIN olarak tanımlanabilir. Kullanıcılar, daha uzun alfanumerik ( alfasayısal ) geçiş kodu belirleyebilir: Settings > General > Passcode > Complex Passcode. Daha uzun ve daha karmaşık geçiş kodlarını tahmin etmek ya da saldırmak zordur ve kurumsal kullanım için tavsiye edilmektedir. Yöneticiler, karmaşık parola gereksinimlerini ve MDM veya Exchange ActiveSync gibi diğer politikaları kullanarak veyahut kullanıcıların el ile yapılandırma profilleri zorunlu kılarak zorlayabilir. Aşağıdaki geçiş kodu politikaları kullanılabilir: * Basit bir değere izin vermek * Alfanumerik değer gerektirir * Minimum geçiş kodu uzunluğu * Minimum sayıda karmaşık karakter * Maksimum geçiş kodu yaşı * Geçiş kodu geçmişi * Otomatik kilit zaman aşımı * Cihaz kilidi için mühlet verilen süre * Maksimum sayıda başarısız girişim 2.4.2. YAPILANDIRMA UYGULAMA Bir yapılandırma profili, bir yöneticiye IOS cihazlar için yapılandırma bilgisini dağıtmayı sağlayan bir XML dosyasıdır. Yüklenmiş bir yapılandırma profili tarafından tanımlanmış ayarlar, kullanıcı tarafından değiştirilemez. Eğer kullanıcı, yapılandırma profilini silerse profil tarafından tanımlanmış tüm ayarlar da kaldırılır. Böylelikle, yöneticiler politikaları erişime bağlayarak ayarlarını uygulayabilirler. Örneğin; bir e-mail yapılandırması sağlayan bir yapılandırma profili, ayrıca cihaz geçiş kodu politikasını belirler. Kullanıcıların, geçiş kodları yöneticinin gereksinimlerini karşıladığı sürece maillerine erişmek mümkün olmayacaktır.
  • 33. 20 Bir IOS yapılandırma profili, aşağıda belirtilen bir dizi ayarı içerir: * Geçiş kodu politikaları * Cihaz özelliklerini kısıtmala ( kamerayı devre dışı bırakma gibi ) * Wi - Fi ayarları * VPN ayarları * E-mail sunucu ayarları * Exchange ayarları * LDAP dizin hizmeti ayarları * CalDAV takvim hizmeti ayarları * Web klipleri * Kimlik bilgileri ve anahtarlar * Gelişmiş hücresel ağ ayarları Yapılandırma profilleri imzalanmış ve kökeni doğrulamak, onların bütünlüğünü sağlamak ve içeriğini korumak için şifreli olabilir. Yapılandırma profilleri, 3DES ve AES-128 destekleyen CMS ( RFC 3852 ) kullanılarak şifrelenir. Yapılandırma profilleri, onların tamamen kaldırılmasını engellemek için bir cihaza kilitlenebilir veya bir geçiş kodu ile yalnızca kaldırmak için izin verir. Birçok kurumsal kullanıcı, kişisel olarak kendi IOS cihazlarını kullandığı için yapılandırma profilleri kaldırılabilir bir MDM sunucusuna bir cihazı bağlar ancak bunu yaparken aynı zamanda yönetilen tüm yapılandırma bilgileri, veri ve uygulamaları kaldırır. Kullanıcılar, iPhone Configuration Utility kullanarak kendi cihazları üzerinde doğrudan Yapılandırma Profilleri yükleyebilirler. Yapılandırma Profilleri, bir MDM sunucusu kullanarak havadan veya e-mail yoluyla indirilebilir. 2.4.3. MOBİL CİHAZ YÖNETİMİ IOS, işletmelerin güvenli bir şekilde yapılandırmasını sağlamak için MDM'yi destekler ve onların kendi arasındaki ölçeklendirilmiş iPhone ve iPad dağıtımlarını yönetir. MDM yetenekleri; OTA Enrollment, APNS ve yapılandırma profilleri gibi mevcut IOS teknolojileri üzerine inşa edilmiştir.
  • 34. 21 MDM kullanarak, Bilişim Teknolojileri departmanları kurumsal bir ortamda IOS cihazları kaydedebilir, kablosuz yapılandırma yapabilir ve ayarları güncelleyebilir, kurumsal politikalar ile uyumu izleyebilir ve hatta uzaktan silme veya cihazları kilitlemeyi yönetebilir. 2.4.4. APPLE YAPILANDIRICISI MDM'ye ek olarak, Apple Yapılandırıcısı IOS cihazları herkese dağıtmak için OS X' i kolaylaştırır. Apple yapılandırıcısı; ayarlar, uygulamalar ve veri ile çok sayıda cihazı yapılandırmak için hızlı kullanılabilir. Başlangıçta yapılandırılmış cihazlar, yüklenmesi için gerekli kısıtlamalar ve ek ayarları sağlayan Apple yapılandırıcısı kullanarak denetlenebilir. Bir cihaz; Apple yapılandırıcısı ile bir kez denetlendikten sonra, mevcut tüm ayarlar ve kısıtlamalar OTA üzerinden yüklenir, MDM yoluyla da yüklenebilir. 2.4.5. CİHAZ KISITLAMALARI Yöneticiler, bir yapılandırma profili yükleyerek cihaz özelliklerini kısıtlayabilir. Aşağıdaki mevcut kısıtlamalar: * Uygulama yüklemeye izin ver * Kamera kullanımına izin ver * Facetime izin ver * Ekran yakalama izin ver * Sesli arama izin ver * Dolaşımdayken otomatik eşitlemeye izin ver * Uygulama satınalıma izin ver * Eklenen mailler senkronizasyonuna izin ver * Tüm alımlar için kullanıcıyı mağaza şifresini girmeye zorlamak * Çok oyunculu oyun izin ver * Oyun merkezi arkadaşları eklemeye izin ver * Siri kullanımına izin ver * Cihaz kilitliyken Siri kullanımına izin ver * Youtube kullanımına izin ver * Cihaz kilitliyken hesap cüzdanı bildirimlerine izin ver * iTunes Store kullanımına izin ver * Safari kullanımına izin ver
  • 35. 22 * Safari otomatik doldurmayı etkinleştirme * Sahte Web sitesi uyarısını zorlama * JavaScript etkinleştirmek * Açılır pencereleri engelle * Çerezleri ( tanımlama bilgileri ) kabul et * iCloud yedekleme ve belge senkronizasyonuna izin ver * Fotoğraf akışına izin ver * Paylaşılan fotoğraf akışına izin ver * Apple için tanılama ( teşhis ) gönderilmesine izin ver * Güvenilmeyen TLS sertifikaları kabul etmek için kullanıcıya izin ver * Zor şifrelenmiş yedekleme * İçerik derecelendirme tarafından medya kısıtlaması Sadece Denetimli Kısıtlamalar * iMessage izin ver * Oyun merkezi izin ver * iBookStore izin ver * iBookStore'dan erotik izin ver * Uygulamaların kaldırılmasına izin ver * Siri küfür filtresini etkinleştir * Elle yapılandırma profilleri yüklenmesine izin ver 2.4.6. UZAKTAN SİLME IOS cihazlar, bir yönetici veya kullanıcı tarafından uzaktan silinebilir. Silinebilir depolama'dan bloke edilmiş depolama şifreleme anahtarı atılarak, anında uzaktan silme güvenli bir şekilde elde edilir ve tüm veriler okunamaz hale gelir. Uzaktan silme; iCloud, Exchange veya MDM tarafından başlatılabilir. Uzaktan silme, MDM veya iCloud tarafından tetiklendiğinde cihaz bir bildirim gönderir ve silme gerçekleştirilir. Exchange ile uzaktan silme için, cihaz silme işlemini gerçekleştirmeden önce Exchange sunucu ile denetler. Ayrıca, kullanıcılar ayarlar uygulamasını kullanarak ellerindeki cihazları silebilir. Ve belirtildiği gibi, cihazlar bir dizi başarısız geçiş kodu denemesinden sonra otomatik olarak silmek için ayarlanabilir.
  • 36. 23 3. ANDROID GÜVENLİK 3.1. GİRİŞ 3.1.1. ANDROID GÜVENLİK GENEL BAKIŞ Android uygulamaları, platform sayesinde yerel ve görev verilerinin yanısıra gelişmiş donanım ve yazılım kullanımını da sağlar. Bu değeri korumak için kullanıcıların veri, uygulamalar, cihaz ve ağ güvenliğini sağlayan uygulama ortamı sunulmalıdır. Açık bir platformu korumak için güvenlik mimarisi ve ciddi güvenlik programları gereklidir. Android, tüm kullanıcılara gerekli korumayı sağlarken açık bir platform için gerekli esnekliği sağlayan çok katmanlı güvenlik ile tasarlanmıştır. Android, güvenlik kontrollerinin geliştiricilerin üzerindeki yükü azaltması düşünülerek tasarlanmıştır. Güvenlik uzmanı geliştiriciler, esnek güvenlik kontrolleri üzerinde kolayca çalışabilir ve güvenebilirler. Android, aynı zamanda kullanıcılar düşünülerek tasarlanmıştır. Kullanıcılar, uygulamaların nasıl çalıştığını ve bu uygulamaların üzerinde denetimin nasıl göründüğünü sağlar. Bu tasarım, saldırganların cihaza kötü niyetli yazılım yüklemek için sosyal mühendislik gibi yaygın saldırıları ve 3.cü taraf uygulamalar üzerinden saldırı beklentilerini içerir. Android, hem bu saldırıların olasılığını azaltmak hem de etkisini sınırlandırmak için tasarlanmış ve bunda da başarılı olmuştur. Android plaftormunun ana yapı taşları: CİHAZ DONANIMI: Android OS; akıllı telefonlar, tabletler ve set-top-boxes dahil olmak üzere donanım yapılandırmalarının geniş bir yelpazesinde çalışır. Anroid, bilinemez işlemcidir ama ARM v6 eXecute-Never gibi donanıma özgü güvenlik özelliklerinin bazı avantajlarından yararlanır. ANDROID İŞLETİM SİSTEMİ: Çekirdek işletim sistemi, Linux çekirdeği üzerine inşa edilmiştir. Kamera işlevleri, GPS verileri, Bluetooth işlevleri, telefon işlevleri, ağ bağlantıları vb. gibi tüm cihaz kaynaklarına işletim sistemi üzerinden erişilebilir. ANDROID UYGULAMA ÇALIŞMA ZAMANI: Android uygulamaları en sık Java programlama dilinde yazılmıştır ve Dalvik sanal makinesinde çalıştırılır ancak uygulamaların birçoğu, çekirdek Android hizmetlerini kapsar ve yerli uygulamaları veya yerli kütüphaneleri kapsar. Hem Dalvik hem yerli uygulamalar, Application Sandbox içinde bulunan aynı güvenlik ortamı içinde çalışır.
  • 37. 24 Uygulamalar için birincil iki kaynak şunlardır: ÖNCEDEN YÜKLENMİŞ UYGULAMALAR: Android; telefon, e-posta, takvim, web tarayıcı ve kişiler de dahil olmak üzere önceden yüklenmiş bir dizi uygulama içerir. Bu fonksiyon hem kullanıcı uygulamaları gibi hem de diğer uygulamalar tarafından erişilebilen anahtar cihaz yeteneklerini sağlar. Önceden Yüklenmiş Uygulamalar, açık kaynak kodlu Android platformunun bir parçası olabilir ya da özel bir cihaz için bir OEM tarafından geliştirilebilir. KULLANICI TARAFINDAN YÜKLENEN UYGULAMALAR: Android, herhangi bir 3.parti uygulamayı destekleyen açık bir geliştirme ortamı sağlar. Birincil hizmetler şunlardır: GOOGLE PLAY: Kullanıcıya uygulama keşfetmek, denemek, yüklemek ve web satınalma izni veren bir hizmet topluluğudur. Google Play; geliştiriciler için, Android kullanıcılarına ve potansiyel müşterilere ulaşmayı kolaylaştırır. Google Play; aynı zamanda topluluk gözden geçirme, uygulama lisans doğrulama, uygulama güvenliği tarama ve diğer güvenlik hizmetlerini sağlar. ANDROID GÜNCELLEMELERİ: Android güncelleme servisi, OTA üzerinden veya web sayesinde güncelleştirmeler dahil olmak üzere Android cihazlar için güvenlik güncelleştirmeleri ve yeni özellikler sunar. UYGULAMA HİZMETLERİ: Çerçeveler, push mesajları için buluttan cihaza mesajlaşma ve uygulama verisi ve ayarları gibi Android uygulamalarının bulut yetenekleri kullanmasına izin verir. Android Güvenlik Programı, anahtar bileşenleri içerir: Temel Bileşenler; TASARIM İNCLEMESİ: Android güvenlik süreci, zengin ve yapılandırılabilir güvenlik modeli ve tasarım oluşturulması ile erken geliştirme yaşam döngüsünde başlar. Platformun her önemli özelliği mühendislik ve güvenlik kaynakları tarafından sistem mimarisine entegre edilmiş uygun güvenlik kontrolleri ile gözden geçirilir.
  • 38. 25 PENETRASYON TESTİ VE KOD İNCELEME: Platform geliştirilmesi sırasında, Android oluşturulan ve açık kaynak bileşenleri güçlü güvenlik değerlendirmelerine tabidir. Bu inceleme Google Bilgi Güvenliği Mühendislik Ekibi ve bağımsız güvenlik danışmanları tarafından Android Güvenlik Ekibi ile yapılmaktadır. Bu incelemenin amacı açık kaynak platformdan önce zayıf ve olası güvenlik açıklarını tespit etmek ve dış güvenlik uzmanları tarafından gerçekleştirilecek analiz türlerini taklit etmektir. AÇIK KAYNAK VE TOPLULUK İNCELEME: Android, Linux çekirdeği gibi önemli dış güvenliği inceleyen açık kaynak teknolojilerini de kullanır. Google Play; kullanıcılar ve şirketler için, kullanıcılara belirli uygulamalar hakkında doğrudan bilgi vermek için forum sağlamaktadır. OLAYA MÜDAHALE: Tüm bu önlemlere rağmen, güvenlik sorunları Android Projesi'nin kapsamlı bir güvenlik tepki süreci oluşturmasından sonra meydana gelebilir. İşte bu yüzden tam zamanlı bir Android güvenlik ekibi, potansiyel güvenlik açıklarının tartışılması için Android'e özgü güvenlik topluluğunu sürekli izler. 3.1.2. ANDROID PLATFORMU GÜVENLİK MİMARİSİ * kullanıcı verilerini korumak * sistem kaynaklarını korumak ( ağ dahil olmak üzere ) * uygulama yalıtımı sağlamak Bu hedeflere ulaşabilmek için Android'in sunduğu gerekli güvenlik özellikleri: * Linux çekirdeği sayesinde işletim sistemi düzeyinde güçlü güvenlik * Tüm uygulamalar için zorunlu Sandbox uygulaması * Güvenli işlemler arası iletişim * Uygulama İmzalama * Uygulama tanımlı ve kullanıcıya verilen izinler Şekil1'de Android yazılım yığınının çeşitli düzeylerde düşünceleri ve güvenlik bileşenleri belirtilmiştir. Her bileşen, aşağıdaki bileşenlerin tamamen güvenli olduğunu varsayar. Kök olarak çalışan Android İşletim Sistemi kodunun küçük bir miktarı haricinde, Linux çekirdeği üzerindeki tüm kodlar Sandbox Uygulama tarafından kısıtlanır.
  • 39. 26 A p p l i c a t i o n s A p p l i c a t i o n F r a m e w o r k h o m e d i a l e r im S m s / m m s c l o c ka l b u m s c a l c u l a t o ra l a r mc a m e r ab r o w s e r c o n t a c t s e - m a i l c a l e n d a r … A c t i v i t y M a n a g e r M e d i a p l a y e r V o i c e d i a l W i n d o w s M a n a g e r C o n t e n t P r o v i d e r s N o t i f i c a t i o n M a n a g e r V i e w S y s t e m P a c k a g e M a n a g e r T e l e p h o n e M a n a g e r R e s o u r c e M a n a g e r lo c a t i o n M a n a g e r X m p p S e r v i c e S u r f a c e M a n a g e r M e d i a F r a m e w o r k O p e n G L - E S L i b W e b C o r eF r e e T y p e S Q L i t e L i b r a r i e s L i b cS S LS G L A n d r o i d R u n t i m e C o r e L i b r a r i e s D a l v i k V i r t u a l M a c h i n e D i s p l a y D r i v e r B lu e t o o t h D r i v e r K e y p a d D r i v e r A u d i o D r i v e r s F l a s h M e m o r y D r i v e r C a m e r a D r i v e r U S B D r i v e r W i - F i D r i v e r B in d e r ( I P C ) D r i v e r P o w e r M a n a g e m e n t L i n u x K e r n e l Şekil 1: Android yazılım yığını 3.2. SİSTEM VE ÇEKİRDEK GÜVENLİK DÜZEYİ İşletim sistemi düzeyinde Android platformu, işlemler arası güvenli bir iletişim kolaylığının yanısıra, farklı süreçlerde çalışan uygulamalar arasında güvenli iletişimi sağlamak için Linux çekirdeğinin güvenliğini sağlar. Bu güvenlik özellikleri, işletim sistemi düzeyinde Sandbox Uygulama tarafından yerel kodun bile kısıtlanmasını sağlar. Kod, uygulama davranışının dahili bir sonucu veya bir uygulamanın güvenlik açığının sömürüsü olsa da olmasa da Sistem; cihazın kendisi, Android sistemi veya diğer uygulamalardan gelen zararlı sahte uygulamayı önleyebilecektir [3]. 3.2.1. LINUX GUVENLİK Android platformunun temeli Linux çekirdeğidir. Linux çekirdeğinin kendisi yıllardır yaygın olarak kullanılmaktadır, aynı zamanda güvenlik duyarlı ortamlarda milyonlarca kez kullanılmıştır. Tarihi boyunca binlerce geliştirici tarafından sürekli araştırılmış, saldırılmış ve düzeltilmiştir. Linux, birçok şirket ve güvenlik uzmanı tarafından istikrarlı ve güvenli bir çekirdek haline gelmiştir [3].
  • 40. 27 Bir mobil bilgi işlem ortamı için temel olarak Linux çekirdeği, Android ile çeşitli anahtar güvenlik özellikleri sağlar. Bunlar; * Kullanıcı tabanlı izinler modeli * İşlem yalıtımı * Güvenli IPC için genişletilebilir mekanizma * Çekirdeğin gereksiz ve potansiyel olarak güvenli olmayan parçalarını kaldırma yeteneği Çok kullanıcılı bir işletim sistemi olarak Linux çekirdeğinin temel güvenlik amacı kullanıcı kaynaklarını birbirinden izole etmektir. Böylece Linux; * a kullanıcısının b kullanıcısının dosyalarını okumasını önler. * a kullanıcısının b kullanıcısının belleğini tüketmemesini sağlar * a kullanıcısının b kullanıcısının cpu kaynaklarını tüketmemesini sağlar * a kullanıcısının b kullanıcısının telefon, GPS, Bluetooth cihazlarını tüketmemesini sağlar. 3.2.2. APPLICATION SANDBOX Android platformu, uygulama kaynaklarını belirlemek ve izole etmek için bir araç olarak Linux kullanıcı tabanlı korumadan faydalanır. Android sistemi, her Android uygulama için UID atar ve ayrı bir işlemde kullanıcı gibi çalışır. Bu yaklaşım, geleneksel Linux yapılandırma da dahil olmak üzere birden fazla uygulamanın aynı kullanıcı izinleriyle çalıştığı diğer işletim sistemlerinden farklıdır [7]. Çekirdek, kullanıcı ve uygulamalar için atanmış olan grup kimlikleri gibi standart Linux imkanları aracılığıyla işlem düzeyinde sistem ve uygulamalar arasındaki güvenliği zorlar. Varsayılan olarak, uygulamalar birbirleriyle etkileşemez ve işletim sistemine sınırlı erişim hakkına sahiptirler. Eğer, A uygulaması B uygulamasının izni olmaksızın telefonu veya verilerini okumak gibi zararlı birşey yapmaya çalışırsa , işletim sistemi bunu korur. Çünkü, A uygulaması uygun kullanıcı ayrıcalıklarına sahip değildir.
  • 41. 28 Sandbox; basit, denetlenebilir ve dosya izinleri ile onlarca yıldır süren UNIX stili kullanıcı ayırma işlemlerine dayanmaktadır. Application Sandbox, çekirdekte olduğundan bu güvenlik modeli yerel kod ve işletim sistemi uygulamalarına genişler. Şekil 1'deki çekirdek üzerinde yazılımın tümü; işletim sistemi kütüphaneleri, uygulama çerçevesi ve uygulama zamanı dahil tüm uygulamalar Application Sandox içinde çalışır. Bazı platformlarda geliştiriciler belirli bir geliştirme çerçevesi, API'lerin dizisi veya dil güvenliğini sağlamak için sınırlandırılmıştır. Android'te güvenlik sağlamak için gerekli bir uygulamanın nasıl yazılmış olduğuyla ilgili herhangi bir kısıtlama yoktur; bu bağlamda yerel kod sadece güvenli olarak yorumlanır. Bazı işletim sistemlerinde bellek bozulması hataları genellikle tamamen cihazın güvenliğini tehlikeye sokar. Bu durum, kendi kaynakları işletim sistemi seviyesinde korumalı alan olan tüm uygulamalar için Android'te böyle değildir. Bir bellek bozulması hatası, işletim sistemi tarafından kurulan izinler ile sadece belirli bir uygulama bağlamında rastgele kod yürütülmesine izin verecektir. 3.2.3. SİSTEM BÖLÜMÜ VE GÜVENLİ MOD Sistem bölümü; uygulamalar, işletim sistemi kütüphaneleri, uygulama çalışma zamanı ve uygulama çerçevesinin yanı sıra Android çekirdeğini de içerir. Bu bölüm salt okunur olarak ayarlanır. Bir kullanıcı cihaza güvenli modda önyükleme yaptığında yalnızca çekirdek Android uygulamaları mevcuttur. Bu 3.parti bir yazılımın ücretsiz olduğu bir ortamda kullanıcının kendi telefonuna önyükleme yapabilmesini sağlar. 3.2.4. DOSYA SİSTEMİ İZİNLERİ UNIX tarzı bir ortamda, dosya sistemi izinleri bir kullanıcının, bir başka kullanıcının dosyalarını değiştirememesini veya okuyamamasını sağlar. Android'in durumunda ise her bir uygulama kendi kullanıcı olarak çalışır. Geliştirici, diğer uygulamalar için dosyaları ortaya çıkarmadıkça bir uygulama tarafından oluşturulan dosyalar, başka bir uygulama tarafından değiştirilemez veya okunamaz.
  • 42. 29 3.2.5. ŞİFRELEME Android, uygulamalar tarafından kullanılmak üzere bir kriptografik API dizisi sağlar. Bu AES, RSA, DSA ve SHA gibi standart ve yaygın olarak kullanılan ilkel şifreleme uygulamalarını içerir. İlaveten API'ler, SSL ve HTTPS gibi yüksek seviyeli protokoller sağlar [4]. 3.2.6. BELLEK YÖNETİMİ GÜVENLİK GELİŞTİRMELERİ Android, yaygın bellek sorunlarını önemli ölçüde zorlaştıran birçok özellik içerir. Android SDK, derleyiciler ve işletim sistemi yaygın bellek sorunlarını önemli ölçüde zorlaştırmak için aşağıdaki araçları kullanır. ANDROID 1.5. * Yığın ( öbek ) arabellek taşmalarını önlemek için ProPolice (f-stack-protector) * Tamsayı taşmalarını azaltmak için safe_iop * Serbest çift güvenlik açıklarını ve yığın birleştirme ( sağlamlaştırma ) saldırılarını önlemek için OpenBSD dlmalloc uzantıları * Bellek tahsisi sırasında tamsayı taşmalarını önlemek için OpenBSD calloc ANDROID 2.3. * Biçim dizesi güvenlik açığı koruması * Donanım tabanlı yığın ve üzerinde kod yürütülmesini engellemek için No eXecute * Boş işaretçi etkisini azaltmak ve ayrıcalık yükseltmek için Linux mmap_min_addr KQUEUE ANDROID 4.0. * Hafızada anahtar yerleri rastgele seçmek için ASLR ANDROID 4.1. * Konumdan bağımsız yürütülebilir destek ( PIE ) * Salt okunur yer değiştirmeler / anında bağlanma (-Wl,-z,relro -Wl,-z,now ) * Etkin dmesg_restrict ( çekirdek adreslerinin sızmaması ) * Etkin kptr_restrict ( çekirdek adreslerinin sızmaması ) [8]. ANDROID 4.2. Uygulama Doğrulama: Zararlı olabilecek bir uygulama yüklemeye çalışırsanız uygulama doğrulama kullanıcıyı uyarabilir. Eğer bir uygulama özellikle kötüyse yüklemeyi engelleyebilir.
  • 43. 30 FORTIFY_SOURCE: Bellek bozulmasını önlemek için sistem kütüphaneleri ve uygulamalar tarafından kullanılır. Daha fazla hediye SMS kontrolü: Android, bir uygulama için ek masrafa neden olabilecek premium servislerden kısa sms gönderme girişiminde bir bildirim sağlayacak. Kullanıcı uygulama izni için mesaj göndermeyi / engellemeyi seçebilir. Her zaman açık VPN: Uygulamalar, VPN bağlantısı kuruluncaya kadar ağa erişemez. Böylece, VPN yapılandırılabilir. Bu uygulamalar diğer ağlar arasında veri göndermesini engeller. Sertifika Sabitleme: Android çekirdek kütüphaneleri sertifika tutturmayı destekler. Eğer sertifika beklenen sertifika zincir kümesi değilse tutturulmuş sertifika doğrulama hatası alırsınız. Bu sertifika yetkililerini olası uzlaşmasına karşı korur. Android İzinlerin Geliştirilmiş Ekranı: İzinler kullanıcı tarafından daha kolay anlaşılır gruplar halinde organize edilmiştir. İzinlerin incelenmesi sırasında kullanıcı izni hakkında daha detaylı bilgi izni için tıklayabilirsiniz. Installd Sabitleme: Installd komutu kök ayrıcalık yükseltmek için potansiyel saldırı alanını azaltarak kök kullanıcısı olarak çalışmaz. Init Komut Sabitleme: Semantik saldırıları ile ilgili sembolik koruma için O_NOFOLLOW Inıt komutunu şimdi uygula ContentProvider Varsayılan Yapılandırma: API seviyesindeki 17 uygulamanın her biri için varsayılan olarak her içerik sağlayıcının hedefi hatalıyı dışa çıkararak uygulamalar için varsayılan saldırı alanın azaltılmasıdır. Kriptografi: SecureRandom ve Cipher'ın varsayılan uygulamaları modifiye etmek. RSA,OpenSSL kullanacak. OpenSSL 1.0.1 kullanılarak TLSv1.1 ve TLSv1.2 için SSL Socket eklendi. Güvenlik Düzeltmeleri: Güvenlik düzeltmeleri açık kaynak kütüphaneleri ile Webkit , libpng , OpenSSL ve LibXML'de dahil olmak üzere yükseltilmiştir [6]. ANDROID 4.3. Selinux ile güçlendirilmiş Android Sandbox: Selinux güçlendirme kullanıcılara ve geliştiriciye görünmez. Mevcut uygulamalar ile uyumluluğu korurken mevcut android güvenlik modeline sağlamlık ekler. Uyumluluğun devamını sağlamak için Selinux'un kullanıma izin verir. Bu mod kurallara aykırı kayıtları tutar ama uygulamaları kesmez / bölmez ve sistemin davranışını etkilemez.
  • 44. 31 No setuid / setgid programları: Android sistem dosyalarında dosya sistemi kabiliyeti desteği eklendi. Tüm setuid / setguid programları kaldırıldı. Bu kök saldırı yüzeysel ve olası güvenlik açıkları olasılığını azaltır. ADB Kimlik Doğrulama: Android 4.2.2'den beri, ADB bağlantıları bir RSA keypair ile doğrulanır. Bu, saldırganın bir cihaza fiziksel erişimi olan ADB yetkisiz kullanımını önler. Android uygulamalarından gelen setuid sınırlama: zigot proces, android sisteminin setuid programının çalışmasını önlüyor. Yetenek sınırlayıcı: Android, zigot ve ADB önceki gereksiz uygulamaları kaldırmak için artık PR_CAPBSET_DROP'u kullanıyor. Bu, kabuktan gelen ayrıcalıklı özelliğe sahip Android uygulamaların ve uygulamaların başlamasını engeller. Android şifre deposu sağlayıcısı: API'li Android uygulamalarında özel kullanım tuşları imkanı veren şifre deposu vardır. Bu şifre deposu API'li uygulamalara kendine özel şifre tanımlamalarına izin verir ve bu şifre başka uygulama tarafından kullanılamaz. KeyChain isBoundKeyAlgorithm: Şimdi keychain API şimdi isbound keytype isimli bir method sunuyor. Bu method uygulamaya sistem genelinde cihaz için güvenliğin bir donanım köküne bağlı olduğunu doğrulamak için izin veren bir yöntemdir. Bu da kök uzlaşma durumunda dahi cihaz dışına çıkmaması için özel anahtarı oluşturmak veya saklamak için bir yer sağlar. NO_NEW_PRIVS.: Android zigot, ilaveten kullanılan bir önceki kod uygulayıcıyı engellemek için PR_SET_NO_NEW_PRIVS kullanır. FORTIFY_SOURCE geliştirmeleri: Potansiyel zayıf noktaları ya da bitirilmemiş dizilerin kayıt hatalarını tespit eder. Yer Değiştirme korumaları: Yalnızca statik haldeki yer değişimini okumasına izin verir ve Android kodundaki yeri değiştirilmiş tüm metinler kaldırıldı. Geliştirilmiş EntropyMixer: Kapatma yeniden başlatma ve ek olarak karışık zamanlardaki düzensizlik. Tüm cihazlar açıkken entropy yapmasına izin verir ve özellikle hemen yeniden başlattan sonra hazır olan cihazlar için yararlıdır [9].
  • 45. 32 ANDROID 4.4. Selinux ile güçlendirilmiş Android Sandbox: Android, şimdi güçlendirme modunda Selinux kullanır. Selinux, mevcut isteğe bağlı erişim denetim tabanlı güvenlik modelini arttırmada kullanılan linux çekirdeğindeki zorunlu bir erişim kontrol sistemidir. Bu potansiyel güvenlik açıklarına karşı ek koruma sağlar. Kullanıcı başına VPN: Çok kullanıcılı cihazlarda, VPN şimdi kullanıcı başına uygulanır. Böylelikle kullanıcı cihaz üzerinde diğer kullanıcıları etkilenmeden VPN üzerinden tüm ağ trafiğini yönlendirmek için izin verebilir. AndroidKeyStore'da ECDSA Destek Sağlayıcı: Android'te şimdi ECDSA ve DSA algoritmalarının kullanımını sağlayan bir şifre deposu sağlayıcısı vardır. Cihaz İzleme Uyarıları: Herhangi bir sertifika şifreli ağ trafiğini izlemek için cihaz sertifika deposuna eklenmişse Android bir uyarı ile kullanıcılara bunu bildirir. FORTIFY_SOURCE: Android, 2.ci seviyeyi destekler. Tüm kod bu uygulamalarla derlenmiştir. FORTIFY_SOURCE C için bir derleyici olan Clang ile çalışmak için geliştirilmiştir. Sertifika Sabitleme: Android, güvenli SSL / TLS iletişimlerinde kullanılan Google sertifikalarının hileli kullanımını algılar ve önler. Güvenlik Düzeltmeleri: 4.4 aynı zamanda Android'e özel güvenlik açıkları için düzeltmeler içerir. 3.2.7. CİHAZLARIN KÖKLEŞMESİ Varsayılan olarak, Android üzerinde sadece çekirdek ve çekirdek uygulamaların küçük bir alt kümesi kök izinleri ile çalıştırılır. Android; kök izinleri ile işletim sistemi, çekirdek ve herhangi diğer bir uygulamayı değiştirerek bir kullanıcı veya uygulamayı engellemez. Genel olarak, kök tüm uygulamalara ve tüm uygulama verilerine tam erişime sahiptir. Kullanıcılar, uygulamalara kök erişimi vermek için Android cihaz üzerinde izinleri değiştirir, kötü niyetli uygulamalar ve potansiyel uygulama kusurları için güvenlik arttırır. Sahip oldukları bir Android cihaz değiştirme yeteneği, Android platformu ile çalışan geliştiriciler için önemlidir. Birçok Android cihaz kullanıcısı, alternatif bir işletim sisteminin kurulumunu sağlamak için bootloader kilidini açma yeteneğine sahiptir. Bu alternatif işletim sistemleri, hata ayıklama uygulamaları ve sistem bileşenleri veya Android API'leri tarafından uygulamalara sunulmamış özelliklere erişmek için sahibinin kök erişim sağlamasına izin verebilir [7].
  • 46. 33 Bazı cihazlarda, fiziksel bir cihaz kontrolü ve bir USB kablosu ile bir kişinin kullanıcıya kök ayrıcalıkları sağlayan yeni bir işletim sistemi yüklemek mümkündür. Varolan herhangi bir kullanıcı verisini korumak için, kilit açma adımın bir parçası olarak önyükleme yükleyicisi varolan herhangi bir kullanıcı verisini silmeyi gerektirir. Kök, bir çekirdek hatasından faydalanarak veya güvenlik açığı bu korumayı atlayarak erişim kazanabilir. Cihaz üzerinde saklı bir anahtar ile veri şifrelemek, kök kullanıcılardan gelen uygulama verisine koruma sağlamaz. Uygulamalar, bir kullanıcı parolası veya bir sunucu üzerindeki gibi kapalı cihazda saklı bir anahtar ile şifreleme kullanarak veri koruma katmanı ekleyebilir. Bu yaklaşım , anahtar halihazırda değilse geçici koruma sağlayabilir ancak eninde sonunda uygulama için anahtar sağlanmalıdır, ancak o zaman kök kullanıcılar erişilebilir olur. Donanım çözümlerinin kullanımı yoluyla kök kullanıcılardan veri korumak daha sağlam bir yaklaşımdır. OEM'ler, Google cüzdan için NFC ile ilgili güvenilir depolama veya video oynatımı için DRM gibi belirli içerik türlerine erişimi sınırlandıran donanım çözümleri uygulamayı seçebilir. Bir kayıp yada çalıntı cihaz durumunda, tam dosya sistemi şifreleme Android cihazlarda şifreleme anahtarını korumak için cihaz parolasını kullanır, bu yüzden kullanıcının cihaz parolası olmadan önyükleme yükleyicisini veya işletim sistemini değiştirmek kullanıcı verisine erişmek için yeterli değildir. 3.2.8. KULLANICI GÜVENLİK ÖZELLİKLERİ 3.2.8.1. DOSYA SİSTEMİ ŞİFRELEME Android 3.0 ve sonraki sürümler tam dosya sistemi şifreleme sağlar, bu yüzden tüm kullanıcı verileri ESSIV:SHA256 ve CBC ile AES128'in dmcrypt uygulamasını kullanarak çekirdekte şifreli olabilir. Şifreleme anahtarı, kullanıcı cihaz parolası olmadan depolanmış verilere yetkisiz erişimi engelleyen ve kullanıcı parolasından türetilen bir anahtar kullanarak AES128 ile korunur. Sistematik parola tahmin saldırılarına karşı direnç sağlamak için, parola rastgele bir "salt" ile birleştirilir ve dosyasistemi anahtarının şifresini çözmek için daha önce kullanılan standart PBKDF2 algoritmasını kullanarak SHA1 ile defalarca "hash" edilir.
  • 47. 34 Sözlük parola tahmin saldırılarına karşı direnç sağlamak için, Android tarafından zorunlu ve cihaz yöneticisi tarafından ayarlanabilir karmaşık parola kuralları sağlar [4]. Dosyasistemi şifreleme, bir kullanıcı parolasının kullanımını gerektirir. Örnek tabanlı ekran kilidi desteklenmez. * hash: bir hashing algoritmasının ( md5, sha1, sha2 ) şifrelenmiş çıktısıdır. Bir hashing algoritmasında açık metin ve şifrelenmiş metin arasında tek yönlü bir ilişki vardır. Yani herhangi bir açık metin şifrelenmiş metine dönüştürüldüyse, şifrelenmiş bir metin açık bir metine dönüştürülemez. Hashing algoritmasında girdinin boyutu standart dışında büyük olsa bile şifrelenmiş çıktısı sabit değerdedir. Bu sayede girdinin boyutu veya türü belirlenemez. * salt: rastgele üretilmiş ve oluşturulmuş değerdir. Şifre ve salt birleştirilerek ortaya çıkan metin bir hash fonksiyonuna gönderilir. Sonra ortaya çıkan bu hash veri, salt ile birlikte kaydedilir. Büyük boyutlardaki salt değer, her şifreyi eşsiz hashleyerek önceden hesaplanmış saldırıları engeller. Örneğin; X ve Y' ye ait aynı veritabanında saklanan aynı şifreler, salt değerleri farklı hash değerlerine sahip olacakları için bir saldırgan veritabanına erişse bile bu ikisinin şifresinin aynı olduğu bilemeyecektir. Saldırganın başarılı olabilmesi için her salt değerinin ayrı ayrı hesaba katılması gerekir. Salt kullanılmasının amacı şifrelerdeki entropi seviyesini arttırarak daha iyi bir koruma sağlamaktır. 3.2.8.2. PAROLA KORUMASI Android, bir cihaza erişim sağlamadan önce kullanıcı tarafından sağlanan parolayı doğrulamak için yapılandırabilir. Cihazın yetkisiz kullanımını önlemeye ek olarak, bu parola tam dosyasistemi şifrelemesi için şifreleme anahtarını korur. Bir parola veya karmaşık parola kurallarının kullanımı bir cihaz yöneticisi tarafından gerekli olabilir. 3.2.8.3. CİHAZ YÖNETİMİ Android 2.2 ve sonraki sürümler sistem düzeyinde Android cihaz yönetim özellikleri sağlayan API sağlar. Örneğin; Yerleşik Android E-posta uygulaması, Exchange desteği arttırmak için API'leri kullanır.
  • 48. 35 E-posta uygulaması sayesinde, Exchange yöneticileri cihazlar arasında sayısal PIN'ler ve alfasayısal parolalar dahil parola politikalarını uygulayabilir. Yöneticiler, ayrıca kayıp veya çalıntı telefonları uzaktan silebilir. Android sistemiyle birlikte dahili uygulamalarda kullanmaya ek olarak, bu API'ler Aygıt yönetimi çözümlerinin 3.taraf sağlayıcıları için kullanışlıdır. 3.3. ANDROID UYGULAMA GÜVENLİĞİ 3.3.1. UYGULAMANIN UNSURLARI Android, mobil cihazlar için açık kaynak platformu ve uygulama ortamı sağlar. Çekirdek işletim sistemi, Linux çekirdeğe dayalıdır. Android uygulamaları en çok Java programlama dilinde yazılmıştır ve Dalvik sanal makinesinde çalıştırılır. Ancak, uygulamalar yerel kodda da yazılmış olabilir. Uygulamalar, .APK dosya uzantısına sahip tek bir dosyadan yüklenir. Ana Android uygulama yapı taşları: AndroidManifest.xml: AndroidManifest.xml dosyası, bir uygulama içindeki tüm üst düzey bileşenler ile sisteme ne yapacağını söyleyen denetim dosyasıdır. Bu aynı zamanda hangi izinlerin gerekli olduğunu belirtir. Etkinlikler: Genellikle tek bir kullanıcı odaklı görev için koddur ve kullanıcı için bir UI görüntülenmesini içerir ancak zorunda değildir ( bazı etkinlikler kullanıcı arabirimlerini asla görüntüleyemez ). Tipik olarak, uygulamanın etkinliklerinin biri uygulama için bir giriş noktasıdır. Hizmetler: Bir hizmet, arka planda çalışan bir kod parçasıdır. Bu kendi işleminde veya başka bir uygulama süreci bağlamında çalıştırılabilir. Diğer bileşenler bir hizmete engel olur ve uzaktan prosedür çağrıları ile üzerindeki yöntemleri çağırır. Bir medya oynatıcı bir hizmet örneğidir: kullanıcı, medya seçimi kullanıcı arabirimini sonlandırdığında bile kullanıcı muhtemelen hala müzik çalmaya devam etme niyetindedir. Yayın Alıcısı: Başka bir uygulama veya işletim sistemi tarafından verilen, amacı bilinen IPC mekanizmasında örnek bir nesnedir. Bir uygulama, düşük pil mesajı için veya bu bilgilere dayanarak onun davranışını değiştirmek için bir alıcıya kaydolabilir.
  • 49. 36 3.3.2. ANDROID İZİN MODELİ: ERİŞİM KORUMALI API'LER Android üzerindeki tüm uygulamalar, bir Application Sandbox içinde çalışır. Varsayılan olarak bir Android uygulaması sadece sistem kaynaklarının sınırlı bir alanına erişebilir. Sistem, kaynakların yanlış veya kötü niyetle kullanılması halinde olumsuz kullanıcı deneyimi, ağ veya cihazdaki verileri etkileyebilecek Android uygulamaya erişimi yönetir [7]. Bu kısıtlamalar birçok farklı biçimde uygulanır. Bazı yetenekler, hassas işlevselliği için API'lerin kasıtlı bir eksikliği tarafından kısıtlıdır ( Sim kartı doğrudan değiştirmek için bir Android API yoktur ). Bazı durumlarda, uygulama başına depolama yalıtımı gibi rollerin ayrılması bir güvenlik önlemi sağlar. Diğer durumlarda hassas API'ler, izinler olarak bilinen bir güvenlik mekanizması sayesinde korunmak ve güvenilir uygulamalar tarafından kullanılmak için amaçlanmıştır. Bu korumalı API'lerin içerdikleri: * Kamera İşlevleri * Konum İşlevleri * Bluetooth İşlevleri * Telefon İşlevleri * SMS / MMS İşlevleri * Ağ / Veri Bağlantıları Bu kaynaklar, yalnızca işletim sistemi üzerinden erişilebilirdir. Cihaz üzerinde korumalı API'lerin kullanımını sağlamak için, bir uygulama onun bildiriminde ihtiyacı olan yetenekleri tanımlamalıdır. Bir uygulama yüklemeye hazırlanırken, sistem kullanıcıya istenen izinleri gösteren bir iletişim kutusu görüntüler ve yüklemeye devam etmek isteyip istemediğinizi sorar. Kullanıcı yüklemeye devam ederse, sistem kullanıcıya istenen tüm izinlerin verilmiş olduğunu kabul eder. Kullanıcı, izinleri tek tek red veya kabul edemez. Hepsini bir bütün olarak red veya kabul edebilir. Bir kez verilen izinler, uygulamaya yüklü olduğu müddetçe uygulanır. Kullanıcı karışıklığını önlemek için; sistem, uygulamaya verilen izinlerin tekrarı için kullanıcıya bildirimde bulunmaz. Çekirdek işletim sisteminde bulunan veya bir OEM ile paketlenmiş uygulamalar, kullanıcıdan izin istemez.
  • 50. 37 Eğer bir uygulama kaldırılırsa izinleri de kaldırılır bu yüzden bir sonraki yeniden yükleme için yeni izin ekranlarına ihtiyaç olacaktır. Cihaz ayarları içinde, kullanıcılar daha önceden yüklü uygulamaları için izinleri görüntüleyebilecek, GPS, radyo veya Wi-Fi gibi bazı küresel işlevleri seçerek devre dışı bırakabilecektir. Bir uygulama; uygulamanın beyanında bildirilmemiş korumalı özelliği kullanmak için çalıştığında, izin hatası uygulamaya geri atılan bir güvenlik istisnasına tipik sonuç olacaktır. Korumalı API izin denetimi, tuzakları önlemek için mümkün olan en düşük seviyede uygulanır. Bir uygulama yüklendiğinde kullanıcı mesajlaşma örneği korumalı API'lere erişim talep ederken Şekil 2 'de gösterilmiştir. Uygulama Yükleme İzinleri & G. Maps Yüklenmiş Uygulama İzinleri & Gmail Şekil 2: Uygulama için izinlerin gösterimi
  • 51. 38 OEM tarafından önceden yüklenmiş uygulamalar ile kullanılıyor olabilen, 3.parti uygulamalar için geçerli olmayan ama SMS yayın amaçları gönderme yeteneği gibi bazı cihaz yetenekleri vardır. 3.3.3. KULLANICILAR 3. PARTİ UYGULAMALARI NASIL ANLAR? Android, 3.parti uygulamalar ile etkileşime girdiğinde kullanıcılara açık hale getirmek için çaba harcar ve bu uygulamalar kullanıcıyı bilgilendirme yeteneklerine sahiptir. Herhangi bir uygulama yüklemeden önce, uygulamanın istediği farklı izinler hakkında kullanıcıya net bir mesaj gösterilir. Yüklendikten sonra, herhangi bir izin için kullanıcıya onay sorulmaz [7]. Yükleme zamanından önce, izinleri göstermek için pek çok sebep vardır. Bu olduğunda kullanıcı etkin olarak uygulama hakkındaki bilgileri, onların ihtiyaç ve beklentilerinin uyumlu olup olmadığını belirlemek için işlevsellik ve geliştiriciyi gözden geçirir. Diğer bazı platformlar, kullanıcı bildirimi için uygulamalar kullanımdayken veya her oturumun başında izin isteyen farklı bir yaklaşım kullanır. Android'in vizyonu, kullanıcılar için uygulamalar arasında sorunsuz geçiştir. Her defasında teyit sağlanması, kullanıcıyı yavaşlatacak ve harika bir kullanıcı deneyimi sunan Androd'i engelleyecektir. Kullanıcı, yükleme zamanında eğer onlar rahatsız ediyorsa kullanıcıya uygulamayı yüklememe seçeneği sunan inceleme izinlerine sahiptir. Ayrıca, birçok kullanıcı arabirimi üzerindeki çalışmalar kullanıcının gösterilen herhangi bir iletişimi "tamam" diyerek başlatması için bazı sebeplere sahip olduğunu göstermiştir. Android'in güvenlik hedeflerinden birisi, kullanıcıya kendisinin görmezden gelindiği yok sayıldığı iletişimleri kullanarak yapılamayan önemli güvenlik bilgilerini etkin bir şekilde iletmektir. Bir kez ve yalnızca önemli olduğunda önemli bilgileri sunarak, onların kabul ettiğinin hakkında kullanıcının ne düşündüğü daha olasıdır. Bazı platformlar, tüm uygulama işlevselliği hakkında herhangi bir bilgi göstermeyi tercih etmez. Bu yaklaşım, kullanıcıları uygulama yeteneklerini tartışmaktan ve kolayca anlamaktan engeller. Tüm kullanıcıların her zaman tam bilinçli kararlar alması mümkün değilken, Android kullanıcının geniş bir yelpazesindeki kolayca erişilebilir uygulamalar hakkında izinleri model bilgi haline getirir.
  • 52. 39 Örneğin; beklenmedik izin istekleri, uygulama işlevselliği hakkında kritik sorular sormak için daha sofistike yani çok yönlü gelişmiş kullanıcıları isteyebilir ve onlar tüm kullanıcılar tarafından görülebilen Google Play gibi yerlerde kaygılarını paylaşabilir. 3.3.4. İŞLEMLERARASI İLETİŞİM İşlemler, geleneksel UNIX tipi mekanizmalardan birini kullanarak iletişim kurabilir. Dosya sistemi, yerel yuva ve sinyaller gibi örnekleri içerir. Ancak, yine de Linux izinleri geçerliliğini korur. Android, ayrıca yeni IPC mekanizmaları sağlamaktadır: Binder ( bağ ): Hafif bir yetenek tabanlı yordam çağrı mekanizması, süreç ve süreç dışı çapraz aramalar gerçekleştirilirken yüksek performans için tasarlanmıştır. Binder, özel bir Linux sürücüsü kullanılarak uygulanır. Services: Hizmetler, Binder kullanarak doğrudan erişilebilir arabirimleri sağlar. Niyetler ( Girişimler ): Bir niyet, birşey yapmak için bir "niyeti" temsil eden basit bir mesaj nesnesidir. Örneğin; uygulama bir web sayfasını görüntülemek istiyorsa, bir "niyet örneği" oluşturarak URL'yi görüntülemek için bir "niyet" ifade edilerek kapalı sisteme teslim edilir. Sistem, kodun bazı diğer parçalarının "niyeti" nasıl koruduğunu bulur ve onu çalıştırır. Niyetler, ayrıca sistem genelinde ilginç olayların yayını için kullanılabilir. Content Providers ( İçerik Sağlayıcılar ): Bir İçerik Sağlayıcı, cihazdaki verilere erişimi sağlayan bir veri deposudur ve kullanıcının kişiler listesine erişmek için kullanılan klasik bir örnektir. Bir uygulama, İçerik Sağlayıcı yoluyla diğer uygulamaların ortaya çıkardığı verilere erişebilir ve ayrıca bir uygulama kendi verilerini ortaya çıkarmak için kendi İçerik Sağlayıcılarını tanımlayabilir. Ağ yuvaları veya herkes tarafından yazılabilir dosyalar gibi diğer mekanizmaları kullanarak IPC uygulamak mümkün olsa da, bunlar önerilen Android IPC çerçeveleridir.
  • 53. 40 3.3.5. MALİYET DUYARLI API'LER Maliyet duyarlı bir API'nin herhangi bir işlevi, kullanıcı veya ağ için bir maliyet oluşturabilir. Android platformu, işletim sistemi tarafından kontrol edilen korumalı API'lerin listesindeki maliyet duyarlı API'leri yerleştirmiştir. Kullanıcı, maliyet duyarlı API'leri kullanmak isteyen 3. parti uygulamalara açık izin vermelidir. Android 4.2. SMS kullanımı üzerinde daha fazla denetim sağlar. Eğer, bir uygulama ek ücrete neden olacak kaliteli hizmeti kullanarak kısa koda SMS göndermeye çalışırsa Android bir bildirim sağlar. Kullanıcı, mesaj göndermek ve engellemek için uygulamaya izin vermeyi seçebilir. Bu API'ler şunları içerir: * Telefon * Ağ / Veri * In-App Billing * SMS/MMS * NFC Access 3.3.6. SIM KART ERİŞİM Sim karta düşük seviye erişim, 3.parti uygulamalar için geçerli değildir. İşletim sistemi, tüm iletişimi Sim kart hafızasındaki kişisel bilgilere erişim de dahil olmak üzere Sim kart ile yönetir. Uygulamalar, RIL tarafından özel olarak yönetildiği için ayrıca AT komutlarına erişemeyebilir. RIL, bu komutlar için yüksek seviyeli API 'ler sağlar. 3.3.7. KİŞİSEL BİLGİLER Android, korumalı API'lerin dizisinin içindeki kullanıcı verilerine erişim sağlayan API yerleştirmiştir. Normal kullanımlar ile Android cihazlar aynı zamanda kullanıcılar tarafından yüklenen 3.parti uygulamalar içindeki verileri de biriktirecektir. 3.parti uygulamalardan gelen verileri korumak için Android izin kontrollerini kullanabilir, bu bilgileri paylaşmak için uygulamalar seçilebilir. Sistem içerik sağlayıcıların, açıkça tanımlanmış izinler ile oluşturulmuş rehber ve takvim gibi kişisel olarak tanımlanabilir kişisel bilgileri içermesi muhtemeldir. Bu parçalı yapı, uygulamaya sağlanabilir bilgi türlerinin açık göstergesi ile kullanım sağlar. Yükleme sırasında bir 3.cü taraf uygulama bu kaynaklara erişim için izin isteyebilir. Eğer izin verilirse, uygulama yüklenebilir ve yüklü olduğu herhangi bir zamanda istenen verilere erişebilecektir.
  • 54. 41 Şekil 3: Hassas kullanıcı verilerine erişim yalnızca korumalı API'ler aracılığıyla kullanılabilir. Herhangi bir uygulama kişisel bilgileri toplayacak, varsayılan olarak bu bilgiler sadece özel uygulama için sınırlı olacak. Eğer bir uygulama, IPC'ye rağmen diğer uygulamalar için verileri kullanılabilir duruma getirmeyi seçerse IPC mekanizması için uygulama erişim verme izinleri uygulayabilirsiniz. 3.3.8. HASSAS VERİ GİRİŞ CİHAZLARI Android cihazlar sıklıkla, uygulamaların çevre ile etkileşimine izin vermek için kamera, mikrofon veya GPS gibi hassas veri giriş cihazları sağlamaktadır. Bir 3.parti uygulamanın bu cihazlara erişmesi için, Android İşletim Sistemi izinleri aracılığıyla kullanıcı tarafından ilk olarak açıkça erişim sağlanmalıdır. Yükleme sonrasında yükleyici, algılayıcı ( sensör ) için kullanıcı adı isteyen izni isteyecektir. Bir uygulama kullanıcının konumunu bilmek isterse, uygulama kullanıcının konumuna erişmek için bir izin gerekir. Yükleme sonrasında yükleyici, uygulama kullanıcının konumuna erişirse kullanıcıya soracaktır. Herhangi bir zamanda, kullanıcı herhangi bir uygulamanın kendi konumuna erişmesini istemiyorsa, o zaman "ayarlar" uygulamasını çalıştırabilir, "konum ve güvenlik"'e gider, "kablosuz ağları kullan" seçeneğinin işaretini kaldırır ve "GPS uydularını etkinleştir"'ir. Bu, kullanıcının cihaz üzerindeki tüm uygulamalar için konum bazlı servisleri devre dışı bırakacaktır.