iOS App Extensions

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

アプリ拡張機能は、他のアプリやシステムとやり取りすることで、カスタム機能やコンテンツを提供することで、アプリの機能を拡張します。これらの拡張機能には次のものがあります:

  • カスタムキーボード:デフォルトのiOSキーボードを置き換え、すべてのアプリでユニークなキーボードを提供します。

  • 共有:ソーシャルネットワークや他の人と直接共有を可能にします。

  • Today(ウィジェット):通知センターのTodayビューから素早くコンテンツを提供したり、タスクを実行したりします。

ユーザーがこれらの拡張機能を利用すると、ホストアプリからテキストを共有するなど、拡張機能はそのコンテキスト内でこの入力を処理し、共有された情報を活用してタスクを実行します。これについては、Appleのドキュメントに詳細が記載されています。

セキュリティに関する考慮事項

主なセキュリティアスペクトは次のとおりです:

  • 拡張機能とそれを含むアプリは、直接ではなく、プロセス間通信を介して通信します。

  • Todayウィジェットは、特定の方法でそのアプリに開くように要求できる点がユニークです。

  • 共有データへのアクセスは、プライベートコンテナ内で許可されていますが、直接アクセスは制限されています。

  • HealthKitなどの特定のAPIはアプリ拡張機能にはオフリミットであり、iMessage拡張機能を除いて、長時間実行されるタスクを開始したり、カメラやマイクにアクセスしたりすることはできません。

静的解析

アプリ拡張機能の特定

ソースコード内でアプリ拡張機能を見つけるには、XcodeでNSExtensionPointIdentifierを検索するか、拡張機能を示す.appexファイルをアプリバンドルで調査します。ソースコードがない場合は、grepやSSHを使用して、アプリバンドル内でこれらの識別子を見つけます。

サポートされるデータタイプ

拡張機能のInfo.plistファイルをチェックして、NSExtensionActivationRuleがサポートされるデータタイプを特定します。このセットアップにより、ホストアプリでのみ互換性のあるデータタイプが拡張機能をトリガーするようになります。

データ共有

アプリとその拡張機能間のデータ共有には、"App Groups"を介して設定された共有コンテナが必要であり、NSUserDefaultsを介してアクセスされます。この共有スペースは、拡張機能によって開始されるバックグラウンド転送に必要です。

拡張機能の制限

アプリは、特にカスタムキーボードなどの特定の拡張機能タイプを制限することができ、機密データの処理がセキュリティプロトコルと一致するようにします。

動的解析

動的解析には次のものが含まれます:

  • 共有アイテムの検査NSExtensionContext - inputItemsにフックして、共有されたデータタイプと起源を確認します。

  • 拡張機能の特定NSXPCConnectionなどの内部メカニズムを観察して、どの拡張機能がデータを処理しているかを発見します。

frida-traceなどのツールは、特にプロセス間通信の技術的な詳細に興味を持つ人々に、基礎プロセスの理解に役立ちます。

参考文献

htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricksをサポートする他の方法:

Last updated