iOS App Extensions
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Розширення додатків покращують функціональність додатків, дозволяючи їм взаємодіяти з іншими додатками або системою, надаючи користувацькі функції або контент. Ці розширення включають:
Користувацька клавіатура: Пропонує унікальну клавіатуру для всіх додатків, замінюючи стандартну клавіатуру iOS.
Поділитися: Дозволяє ділитися в соціальних мережах або з іншими безпосередньо.
Сьогодні (Віджети): Швидко надає контент або виконує завдання з центру сповіщень у вигляді "Сьогодні".
Коли користувач взаємодіє з цими розширеннями, такими як обмін текстом з основного додатку, розширення обробляє цей ввід у своєму контексті, використовуючи спільну інформацію для виконання свого завдання, як зазначено в документації Apple.
Ключові аспекти безпеки включають:
Розширення та їхні додатки спілкуються через міжпроцесорну комунікацію, а не безпосередньо.
Віджет "Сьогодні" є унікальним тим, що може запитати свій додаток про відкриття через певний метод.
Доступ до спільних даних дозволено в межах приватного контейнера, але прямий доступ обмежений.
Деякі API, включаючи HealthKit, заборонені для розширень додатків, які також не можуть запускати тривалі завдання, отримувати доступ до камери або мікрофона, за винятком розширень iMessage.
Щоб знайти розширення додатків у вихідному коді, шукайте NSExtensionPointIdentifier
в Xcode або перевірте пакет додатку на наявність файлів .appex
, що вказують на розширення. Без вихідного коду використовуйте grep або SSH для знаходження цих ідентифікаторів у пакеті додатку.
Перевірте файл Info.plist
розширення на наявність NSExtensionActivationRule
, щоб визначити підтримувані типи даних. Ця настройка забезпечує, що лише сумісні типи даних активують розширення в основних додатках.
Обмін даними між додатком і його розширенням вимагає спільного контейнера, налаштованого через "Групи додатків" і доступного через NSUserDefaults
. Цей спільний простір необхідний для фонових передач, ініційованих розширеннями.
Додатки можуть обмежувати певні типи розширень, особливо користувацькі клавіатури, забезпечуючи, щоб обробка чутливих даних відповідала протоколам безпеки.
Динамічний аналіз включає:
Перевірка спільних елементів: Підключіться до NSExtensionContext - inputItems
, щоб побачити типи та джерела спільних даних.
Визначення розширень: Визначте, які розширення обробляють ваші дані, спостерігаючи за внутрішніми механізмами, такими як NSXPCConnection
.
Інструменти, такі як frida-trace
, можуть допомогти зрозуміти основні процеси, особливо для тих, хто цікавиться технічними деталями міжпроцесорної комунікації.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)