iOS Custom URI Handlers / Deeplinks / Custom Schemes
Hierdie is 'n opsomming van die verwante inligting vanaf https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
Basiese Inligting
Aangepaste URL-skemas stel programme in staat om te kommunikeer deur middel van 'n aangepaste protokol, soos beskryf in die Apple Developer Documentation. Hierdie skemas moet deur die toepassing verklaar word, wat dan inkomende URL's volgens daardie skemas hanteer. Dit is noodsaaklik om alle URL-parameters te valideer en enige verkeerd geformuleerde URL's te verwerp om aanvalle deur hierdie vektor te voorkom.
'n Voorbeeld word gegee waar die URI myapp://hostname?data=123876123
'n spesifieke toepassingsaksie aanroep. 'n Opmerklike kwesbaarheid was in die Skype Mobile-toep, wat ongemagtigde oproepaksies via die skype://
-protokol toegelaat het. Die geregistreerde skemas kan gevind word in die toep se Info.plist
onder CFBundleURLTypes
. Kwaadwillige toepassings kan hiervan misbruik maak deur URI's te herregistreer om sensitiewe inligting te onderskep.
Registrasie van Toepassingsnavraagskemas
Vanaf iOS 9.0, om te kontroleer of 'n toepassing beskikbaar is, vereis canOpenURL:
dat URL-skemas verklaar word in die Info.plist
onder LSApplicationQueriesSchemes
. Dit beperk die skemas wat 'n toepassing kan ondersoek tot 50, wat privaatheid verbeter deur toepassingsopnoeming te voorkom.
Toetsing van URL-hantering en validering
Ontwikkelaars moet spesifieke metodes in die bronkode ondersoek om URL-padkonstruksie en validering te verstaan, soos application:didFinishLaunchingWithOptions:
en application:openURL:options:
. Byvoorbeeld, Telegram maak gebruik van verskeie metodes om URL's te open:
Toetsing van URL-aanvragen aan andere apps
Metodes soos openURL:options:completionHandler:
is noodsaaklik vir die oopmaak van URL's om met ander apps te kommunikeer. Die identifisering van die gebruik van sulke metodes in die bronkode van die app is sleutel tot die verstaan van eksterne kommunikasie.
Toetsing vir verouderde metodes
Verouderde metodes wat URL-oopmakings hanteer, soos application:handleOpenURL:
en openURL:
, moet geïdentifiseer en nagegaan word vir sekuriteitsimplikasies.
Fuzzing van URL-skemas
Fuzzing van URL-skemas kan geheueversteuringsfoute identifiseer. Hulpmiddels soos Frida kan hierdie proses outomatiseer deur URL's met verskillende ladinge oop te maak om te monitor vir ongelukke, soos geïllustreer deur die manipulasie van URL's in die iGoat-Swift-app:
Verwysings
Last updated