iOS App Extensions

Support HackTricks

Розширення додатків покращують функціональність додатків, дозволяючи їм взаємодіяти з іншими додатками або системою, надаючи користувацькі функції або контент. Ці розширення включають:

  • Користувацька клавіатура: Пропонує унікальну клавіатуру для всіх додатків, замінюючи стандартну клавіатуру iOS.

  • Поділитися: Дозволяє ділитися в соціальних мережах або з іншими безпосередньо.

  • Сьогодні (Віджети): Швидко надає контент або виконує завдання з центру сповіщень у вигляді "Сьогодні".

Коли користувач взаємодіє з цими розширеннями, такими як обмін текстом з основного додатку, розширення обробляє цей ввід у своєму контексті, використовуючи спільну інформацію для виконання свого завдання, як зазначено в документації Apple.

Безпекові міркування

Ключові аспекти безпеки включають:

  • Розширення та їхні додатки спілкуються через міжпроцесорну комунікацію, а не безпосередньо.

  • Віджет "Сьогодні" є унікальним тим, що може запитати свій додаток про відкриття через певний метод.

  • Доступ до спільних даних дозволено в межах приватного контейнера, але прямий доступ обмежений.

  • Деякі API, включаючи HealthKit, заборонені для розширень додатків, які також не можуть запускати тривалі завдання, отримувати доступ до камери або мікрофона, за винятком розширень iMessage.

Статичний аналіз

Визначення розширень додатків

Щоб знайти розширення додатків у вихідному коді, шукайте NSExtensionPointIdentifier в Xcode або перевірте пакет додатку на наявність файлів .appex, що вказують на розширення. Без вихідного коду використовуйте grep або SSH для знаходження цих ідентифікаторів у пакеті додатку.

Підтримувані типи даних

Перевірте файл Info.plist розширення на наявність NSExtensionActivationRule, щоб визначити підтримувані типи даних. Ця настройка забезпечує, що лише сумісні типи даних активують розширення в основних додатках.

Обмін даними

Обмін даними між додатком і його розширенням вимагає спільного контейнера, налаштованого через "Групи додатків" і доступного через NSUserDefaults. Цей спільний простір необхідний для фонових передач, ініційованих розширеннями.

Обмеження розширень

Додатки можуть обмежувати певні типи розширень, особливо користувацькі клавіатури, забезпечуючи, щоб обробка чутливих даних відповідала протоколам безпеки.

Динамічний аналіз

Динамічний аналіз включає:

  • Перевірка спільних елементів: Підключіться до NSExtensionContext - inputItems, щоб побачити типи та джерела спільних даних.

  • Визначення розширень: Визначте, які розширення обробляють ваші дані, спостерігаючи за внутрішніми механізмами, такими як NSXPCConnection.

Інструменти, такі як frida-trace, можуть допомогти зрозуміти основні процеси, особливо для тих, хто цікавиться технічними деталями міжпроцесорної комунікації.

Посилання

Support HackTricks

Last updated