iOS Custom URI Handlers / Deeplinks / Custom Schemes
Це підсумок відповідної інформації з https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/
Основна інформація
Спеціальні URL-схеми дозволяють додаткам спілкуватися за допомогою спеціального протоколу, як описано в Документації розробника Apple. Ці схеми повинні бути оголошені додатком, який потім обробляє вхідні URL-адреси за цими схемами. Важливо перевіряти всі параметри URL та відкидати будь-які некоректні URL-адреси, щоб запобігти атакам через цей вектор.
Наводиться приклад, де URI myapp://hostname?data=123876123
викликає певну дію додатка. Зазначена уразливість була в додатку Skype Mobile, який дозволяв неповідомлені дії з дзвінками через протокол skype://
. Зареєстровані схеми можна знайти в Info.plist
додатка під CFBundleURLTypes
. Зловмисні додатки можуть використовувати це, повторно реєструючи URIs для перехоплення чутливої інформації.
Реєстрація схем запитів додатків
Починаючи з iOS 9.0, для перевірки доступності додатка, canOpenURL:
вимагає оголошення URL-схем в Info.plist
під LSApplicationQueriesSchemes
. Це обмежує схеми, які додаток може запитувати до 50, підвищуючи конфіденційність шляхом запобігання переліку додатків.
Тестування обробки та перевірки URL-адрес
Розробники повинні перевірити конкретні методи в початковому коді, щоб зрозуміти конструкцію та перевірку шляху URL-адрес, такі як application:didFinishLaunchingWithOptions:
та application:openURL:options:
. Наприклад, Telegram використовує різні методи для відкриття URL-адрес:
Тестування запитів URL до інших додатків
Методи, такі як openURL:options:completionHandler:
, є важливими для відкриття URL-адрес для взаємодії з іншими додатками. Виявлення використання таких методів у вихідному коді додатка є ключовим для розуміння зовнішніх комунікацій.
Тестування застарілих методів
Обробка застарілих методів відкриття URL, таких як application:handleOpenURL:
та openURL:
, повинна бути виявлена та переглянута з точки зору наслідків для безпеки.
Fuzzing URL-схем
Fuzzing URL-схем може виявити помилки корупції пам'яті. Інструменти, такі як Frida, можуть автоматизувати цей процес, відкриваючи URL-адреси з різними навантаженнями для моніторингу аварій, як це показано на прикладі маніпулювання URL-адресами у додатку iGoat-Swift:
Посилання
Last updated