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:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository di HackTricks e HackTricks Cloud su GitHub.
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
- https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/
- https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository di HackTricks e HackTricks Cloud su GitHub.