iOS Custom URI Handlers / Deeplinks / Custom Schemes
Ovo je sažetak povezanih informacija sa https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
Osnovne informacije
Prilagođene URL šeme omogućavaju aplikacijama da komuniciraju koristeći prilagođeni protokol, kako je detaljno opisano u Apple Developer dokumentaciji. Ove šeme moraju biti deklarisane od strane aplikacije, koja zatim obrađuje dolazne URL-ove koji slede te šeme. Važno je validirati sve parametre URL-a i odbaciti bilo kakve neispravne URL-ove kako bi se sprečili napadi putem ovog vektora.
Dato je primer gde URI myapp://hostname?data=123876123
pokreće određenu akciju aplikacije. Primećena ranjivost bila je u Skype Mobile aplikaciji, koja je omogućavala neovlaštene pozive putem skype://
protokola. Registrovane šeme mogu se pronaći u Info.plist
datoteci aplikacije pod CFBundleURLTypes
. Zlonamerne aplikacije mogu iskoristiti ovo tako što će ponovo registrovati URI-jeve kako bi presrele osetljive informacije.
Registracija šema upita aplikacije
Od iOS 9.0, da bi se proverilo da li je aplikacija dostupna, canOpenURL:
zahteva deklarisanje URL šema u Info.plist
datoteci pod LSApplicationQueriesSchemes
. Ovo ograničava šeme koje aplikacija može koristiti za upite na 50, poboljšavajući privatnost sprečavanjem enumeracije aplikacija.
Testiranje obrade i validacije URL-ova
Razvojni programeri trebaju pregledati određene metode u izvornom kodu kako bi razumeli konstrukciju i validaciju putanje URL-a, kao što su application:didFinishLaunchingWithOptions:
i application:openURL:options:
. Na primer, Telegram koristi različite metode za otvaranje URL-ova:
Testiranje URL zahteva drugim aplikacijama
Metode poput openURL:options:completionHandler:
su ključne za otvaranje URL-ova i interakciju sa drugim aplikacijama. Identifikacija korišćenja ovih metoda u izvornom kodu aplikacije je ključna za razumevanje spoljnih komunikacija.
Testiranje zastarelih metoda
Zastarele metode za obradu otvaranja URL-ova, poput application:handleOpenURL:
i openURL:
, treba identifikovati i pregledati zbog bezbednosnih implikacija.
Fuzziranje URL šema
Fuzziranje URL šema može identifikovati greške u memoriji. Alati poput Fride mogu automatizovati ovaj proces otvaranjem URL-ova sa različitim payload-ima kako bi se pratili padovi, kao što je manipulacija URL-ovima u iGoat-Swift aplikaciji:
Reference
Last updated