iOS Custom URI Handlers / Deeplinks / Custom Schemes
Bu, https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/ adresindeki ilgili bilgilerin bir özetidir.
Temel Bilgiler
Özel URL şemaları, uygulamaların özel bir protokol kullanarak iletişim kurmasını sağlar ve ayrıntıları Apple Geliştirici Belgelerinde açıklanmıştır. Bu şemalar, uygulama tarafından bildirilmeli ve ardından bu şemalara uygun gelen URL'leri işlemlemelidir. Bu vektör aracılığıyla gerçekleşebilecek saldırıları önlemek için tüm URL parametrelerini doğrulamak ve hatalı URL'leri reddetmek önemlidir.
Örneğin, myapp://hostname?data=123876123
URI'si belirli bir uygulama eylemini çağırır. Skype Mobile uygulamasında bir zafiyet, skype://
protokolü aracılığıyla izin verilmeyen çağrı eylemlerine izin veriyordu. Kayıtlı şemalar, uygulamanın Info.plist
dosyasının CFBundleURLTypes
bölümünde bulunabilir. Kötü niyetli uygulamalar, hassas bilgileri ele geçirmek için URI'leri yeniden kaydederek bunu istismar edebilir.
Uygulama Sorgu Şemalarının Kaydedilmesi
iOS 9.0'dan itibaren bir uygulamanın mevcut olup olmadığını kontrol etmek için canOpenURL:
işlevi, URL şemalarının Info.plist
dosyasının LSApplicationQueriesSchemes
bölümünde bildirilmesini gerektirir. Bu, bir uygulamanın sorgulayabileceği şemaları 50 ile sınırlayarak gizliliği artırır ve uygulama numaralandırmasını engeller.
URL İşleme ve Doğrulama Testi
Geliştiriciler, URL yolunun oluşturulması ve doğrulanması hakkında bilgi edinmek için kaynak koddaki belirli yöntemleri incelemelidir, örneğin application:didFinishLaunchingWithOptions:
ve application:openURL:options:
. Örneğin, Telegram, URL'leri açmak için çeşitli yöntemler kullanır:
Diğer Uygulamalara Yönelik URL İsteklerini Test Etme
openURL:options:completionHandler:
gibi yöntemler, diğer uygulamalarla etkileşim için URL'leri açmak için önemlidir. Bu tür yöntemlerin uygulamanın kaynak kodunda kullanımını belirlemek, harici iletişimi anlamak için önemlidir.
Kullanımdan Kaldırılan Yöntemleri Test Etme
application:handleOpenURL:
ve openURL:
gibi URL açma işlemlerini yöneten kullanımdan kaldırılan yöntemler, güvenlikle ilgili sonuçları değerlendirmek için belirlenmeli ve incelenmelidir.
URL Şemalarını Fuzzing Yapma
URL şemalarını fuzzing yapmak, bellek bozulma hatalarını belirleyebilir. Frida gibi araçlar, değişen yüklerle URL'leri açarak çökme durumlarını izlemek için bu süreci otomatikleştirebilir. Bu, iGoat-Swift uygulamasındaki URL'lerin manipülasyonuyla örneklenir:
Referanslar
Last updated