hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md
2024-02-10 13:03:23 +00:00

5.6 KiB

Estensioni delle app iOS

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Le estensioni delle app migliorano la funzionalità delle app consentendo loro di interagire con altre app o con il sistema, fornendo funzionalità o contenuti personalizzati. Queste estensioni includono:

  • Tastiera personalizzata: Offre una tastiera unica in tutte le app, sostituendo la tastiera predefinita di iOS.
  • Condivisione: Consente di condividere su social network o con altre persone direttamente.
  • Oggi (Widget): Fornisce contenuti o esegue rapidamente attività dalla vista Oggi del Centro notifiche.

Quando un utente interagisce con queste estensioni, ad esempio condividendo testo da un'app ospite, l'estensione elabora questo input nel suo contesto, sfruttando le informazioni condivise per eseguire il suo compito, come dettagliato nella documentazione di Apple.

Considerazioni sulla sicurezza

Gli aspetti chiave della sicurezza includono:

  • Le estensioni e le app che le contengono comunicano tramite comunicazione tra processi, non direttamente.
  • Il widget Oggi è unico nel senso che può richiedere all'app di aprirsi tramite un metodo specifico.
  • L'accesso ai dati condivisi è consentito all'interno di un contenitore privato, ma l'accesso diretto è limitato.
  • Determinate API, tra cui HealthKit, sono fuori limite per le estensioni delle app, che non possono avviare attività a lungo termine, accedere alla fotocamera o al microfono, ad eccezione delle estensioni di iMessage.

Analisi statica

Identificazione delle estensioni delle app

Per trovare le estensioni delle app nel codice sorgente, cerca NSExtensionPointIdentifier in Xcode o ispeziona il bundle dell'app per i file .appex che indicano le estensioni. Senza il codice sorgente, utilizza grep o SSH per individuare questi identificatori all'interno del bundle dell'app.

Tipi di dati supportati

Controlla il file Info.plist di un'estensione per NSExtensionActivationRule per identificare i tipi di dati supportati. Questa configurazione garantisce che solo i tipi di dati compatibili attivino l'estensione nelle app ospiti.

Condivisione dei dati

La condivisione dei dati tra un'app e la sua estensione richiede un contenitore condiviso, configurato tramite "Gruppi app" e accessibile tramite NSUserDefaults. Questo spazio condiviso è necessario per i trasferimenti in background avviati dalle estensioni.

Limitazione delle estensioni

Le app possono limitare determinati tipi di estensioni, in particolare le tastiere personalizzate, garantendo che la gestione dei dati sensibili sia conforme ai protocolli di sicurezza.

Analisi dinamica

L'analisi dinamica coinvolge:

  • Ispezione degli elementi condivisi: Collegati a NSExtensionContext - inputItems per vedere i tipi di dati condivisi e le origini.
  • Identificazione delle estensioni: Scopri quali estensioni elaborano i tuoi dati osservando i meccanismi interni, come NSXPCConnection.

Strumenti come frida-trace possono aiutare a comprendere i processi sottostanti, specialmente per coloro interessati ai dettagli tecnici della comunicazione tra processi.

Riferimenti

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: