Örnek sorular
Mobile Security StorageZorluk 1
Mobil bir cihazda "secure storage" (güvenli depolama) ile düz bir yerel dosya/preferences deposu arasındaki temel fark nedir?
- aSecure storage uygulama kaldırıldığında da kalıcı kalır, düz depolama hiçbir zaman kalmaz
- bŞifrelidir ve işletim sistemi kısıtlar, düz depolama şifresizdir✓
- cSecure storage yalnızca ücretli geliştirici hesabıyla derlenen uygulamalarda kullanılabilir
- dSecure storage veriyi yalnızca bellekte tutar, diske hiç yazmaz
Açıklama:İşletim sistemi düzeyindeki güvenli depolama veriyi diskte şifreler ve erişimi anahtar yönetimi + uygulama kimliğine bağlar; bu yüzden root/jailbreak ile dosya taramasıyla okumak çok zordur. Düz preferences dosyası genelde okunabilir düz metin olarak durur.
Mobile Security StorageZorluk 1
Mobil bir cihazda kimlik doğrulama bilgileri saklanırken access token'ı refresh token'dan ayrı tutmak neden önerilir?
- aÇünkü iki token'ın her zaman farklı bir metin kodlaması kullanması gerekir
- bÇünkü yalnızca birinin string değer olmasına izin verilir
- cRefresh token uzun ömürlüdür, sızması çok daha kötüdür✓
- dÇünkü mobil işletim sistemleri birden fazla token saklayan uygulamaları reddeder
Açıklama:Refresh token uzun süre boyunca yeni access token üretebildiği için ele geçirilmesi çok daha zararlıdır. Ayrı tutmak, refresh token'a daha sıkı depolama/rotasyon kuralları uygularken access token'ın API çağrılarında daha rahat kullanılmasını sağlar.
Mobile Security StorageZorluk 2
Mobil kimlik doğrulama bağlamında biyometrik bir "gate" (kapı) tipik olarak ne için kullanılır?
- aZaten saklanan bir sırra erişimi parmak izi/yüz kontrolüyle kilitlemek✓
- bSunucu tarafı kimlik doğrulamanın tamamen yerini almak, böylece backend kullanıcıyı bir daha hiç doğrulamaz
- cKullanıcının şifresini parmak izi desenden üretmek
- dHam biyometrik görüntüyü saklanmak üzere backend'e göndermek
Açıklama:Biyometri, zaten saklanan bir şeye erişimi kilitler (ör. cihazda tutulan bir kimlik bilgisinin kilidini açmak) — biyometrik veri cihazda kalır, korunan sır ya da başka bir yere gönderilen veri değildir.
Mobile Security StorageZorluk 2
Bir junior geliştirici kullanıcının oturum token'ını uygulamanın normal (şifresiz) yerel preferences dosyasına düz metin olarak kaydediyor ve "uygulama sandbox'ı zaten koruyor" diye düşünüyor. Burada gözden kaçırılan temel risk nedir?
- aDüz preferences dosyaları hiçbir şekilde string değer tutamaz
- bUygulama sandbox'ı her dosyayı otomatik olarak yeniden şifreler, bu yüzden bu aslında güvenlidir
- cToken bu şekilde saklanırsa anında sona erer
- dRoot/jailbreak yapılmış cihazda şifresiz dosyalar sandbox dışından okunabilir✓
Açıklama:Sandbox normal işletim sistemi koşullarında yardımcı olur ama tek tehdit modeli bu değildir: root/jailbreak yapılmış cihazlar, güvensiz yedekler ya da yükseltilmiş yetkiye sahip zararlı yazılım şifresiz uygulama dosyalarını doğrudan okuyabilir.
Mobile Security StorageZorluk 1
Kavramsal düzeyde, bir mobil uygulamanın ağ katmanında "certificate pinning" (sertifika sabitleme) nedir?
- aSunucu yanıt gövdesini çevrimdışı kullanmak üzere diske kaydetmek
- bSunucu sertifikasının belirli bir beklenen değerle eşleştiğini doğrulamak✓
- cAğ çağrıları yapmadan önce cihaza fiziksel bir güvenlik anahtarı takmak
- dUygulamanın arayüz ekran görüntülerini saklamadan önce şifrelemek
Açıklama:Sertifika sabitleme güveni daraltır: güvenilir bir kök CA'nın imzaladığı herhangi bir sertifika zincirini kabul etmek yerine, uygulama sunucunun sertifikasını/anahtarını önceden bildiği bir değerle karşılaştırır; bu, bir CA ele geçirilse bile bazı araya girme saldırılarını engeller.
Mobile Security StorageZorluk 2
Hassas değerlerin (token, şifre) debug/console log ifadelerinde genellikle kaçınılması gereken bir şey olmasının nedeni nedir, bir geliştirme build'inde bile?
- aLoglar çökme raporlama araçları ya da paylaşılan debug çıktısı tarafından toplanabilir✓
- bLog ifadeleri otomatik olarak app store inceleme ekibine gönderilir
- cLog'da hassas metin görünürse işletim sistemi uygulamayı siler
- dBir string değeri loglamak onu depoda kalıcı olarak şifresiz hale getirir
Açıklama:"Sadece debug" loglar bile sistem log tamponları, çökme/analitik SDK'ları ya da paylaşılan logcat/console çıktısı tarafından toplanabilir; bu yüzden oraya yazılan hassas değerler geliştiricinin korunduğunu sandığı depolama katmanının dışına sızar.