mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
55 lines
3.9 KiB
Markdown
55 lines
3.9 KiB
Markdown
# iOS App Extensions
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
アプリ拡張は、他のアプリやシステムと相互作用することにより、アプリの機能を強化し、カスタム機能やコンテンツを提供します。これらの拡張には以下が含まれます:
|
|
|
|
- **カスタムキーボード**: デフォルトのiOSキーボードを置き換え、すべてのアプリでユニークなキーボードを提供します。
|
|
- **共有**: ソーシャルネットワークや他のユーザーと直接共有することを可能にします。
|
|
- **今日(ウィジェット)**: 通知センターの今日ビューから迅速にコンテンツを提供したり、タスクを実行したりします。
|
|
|
|
ユーザーがホストアプリからテキストを共有するなど、これらの拡張に関与すると、拡張はそのコンテキスト内でこの入力を処理し、共有された情報を活用してタスクを実行します。これはAppleのドキュメントに詳述されています。
|
|
|
|
### **セキュリティ考慮事項**
|
|
|
|
主なセキュリティの側面には以下が含まれます:
|
|
|
|
- 拡張とその含まれるアプリは、直接ではなく、プロセス間通信を介して通信します。
|
|
- **今日ウィジェット**は、特定の方法でアプリを開くよう要求できる点でユニークです。
|
|
- 共有データへのアクセスはプライベートコンテナ内で許可されていますが、直接アクセスは制限されています。
|
|
- HealthKitを含む特定のAPIはアプリ拡張には使用できず、iMessage拡張を除いて、長時間実行されるタスクを開始したり、カメラやマイクにアクセスしたりすることはできません。
|
|
|
|
### 静的分析
|
|
|
|
#### **アプリ拡張の特定**
|
|
|
|
ソースコード内でアプリ拡張を見つけるには、Xcodeで`NSExtensionPointIdentifier`を検索するか、拡張を示す`.appex`ファイルをアプリバンドル内で検査します。ソースコードがない場合は、grepやSSHを使用してアプリバンドル内のこれらの識別子を見つけます。
|
|
|
|
#### **サポートされているデータタイプ**
|
|
|
|
拡張の`Info.plist`ファイルを確認して`NSExtensionActivationRule`を特定し、サポートされているデータタイプを確認します。この設定により、ホストアプリで拡張をトリガーするのは互換性のあるデータタイプのみとなります。
|
|
|
|
#### **データ共有**
|
|
|
|
アプリとその拡張間のデータ共有には、"App Groups"を介して設定された共有コンテナが必要で、`NSUserDefaults`を通じてアクセスされます。この共有スペースは、拡張によって開始されるバックグラウンド転送に必要です。
|
|
|
|
#### **拡張の制限**
|
|
|
|
アプリは特定の拡張タイプ、特にカスタムキーボードを制限でき、機密データの取り扱いがセキュリティプロトコルに沿うようにします。
|
|
|
|
### 動的分析
|
|
|
|
動的分析には以下が含まれます:
|
|
|
|
- **共有アイテムの検査**: `NSExtensionContext - inputItems`にフックして、共有データタイプとその起源を確認します。
|
|
- **拡張の特定**: `NSXPCConnection`のような内部メカニズムを観察することで、どの拡張がデータを処理しているかを発見します。
|
|
|
|
`frida-trace`のようなツールは、プロセス間通信の技術的詳細に興味がある人々にとって、基盤となるプロセスを理解するのに役立ちます。
|
|
|
|
## 参考文献
|
|
|
|
- [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
|
- [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|