iOS App Extensions

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

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

  • Користувацька клавіатура: Пропонує унікальну клавіатуру для всіх додатків, замінюючи стандартну клавіатуру iOS.
  • Поділитися: Дозволяє ділитися в соціальних мережах або з іншими безпосередньо.
  • Сьогодні (Віджети): Швидко надає контент або виконує завдання з перегляду "Сьогодні" Центру сповіщень.

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

Безпекові аспекти

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

  • Розширення та їхні додатки спілкуються через міжпроцесорну комунікацію, а не безпосередньо.
  • Віджет "Сьогодні" є унікальним тим, що може запитати свій додаток про відкриття через специфічний метод.
  • Доступ до спільних даних дозволено в приватному контейнері, але прямий доступ обмежений.
  • Деякі API, включаючи HealthKit, недоступні для розширень додатків, які також не можуть запускати тривалі завдання, отримувати доступ до камери або мікрофона, за винятком розширень iMessage.

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

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

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

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

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

Обмін даними

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

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

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

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

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

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

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

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks