モバイルアプリのサンドボックス
モバイルアプリのサンドボックス とは何ですか?
モバイルアプリのサンドボックスOS が強制する境界で、モバイルアプリがアクセスできるファイル・IPC・API を制限し、侵害されたアプリが他アプリのデータに容易に到達できないようにする仕組み。
iOS では App Sandbox がアプリごとのコンテナディレクトリ、強制アクセス制御、コード署名、エンタイトルメントの組み合わせでアプリを閉じ込めます。Android では各アプリに 1 つの Linux UID を割り当て、SELinux ポリシー、スコープドストレージ、権限で守られたプラットフォーム API を用います。Verified Boot や Secure Enclave/TrustZone と合わせて、サンドボックスはモバイルセキュリティの土台です。アプリでリモートコード実行が起きても、攻撃者がカーネルやドライバの脆弱性を連鎖させない限り影響はそのコンテナ内に閉じ込められます。脱獄・root・一部のフッキングツールはサンドボックスを意図的に弱体化するため、銀行や業務アプリの多くはそのような環境での起動を拒否します。
● 例
- 01
iOS では、メッセージアプリは Documents ピッカーでユーザーが明示的に選ばない限り、自分のコンテナ内のファイルしか読めない。
- 02
Android のスコープドストレージにより、懐中電灯アプリが他アプリのプライベートディレクトリの写真を読み取れない。
● よくある質問
モバイルアプリのサンドボックス とは何ですか?
OS が強制する境界で、モバイルアプリがアクセスできるファイル・IPC・API を制限し、侵害されたアプリが他アプリのデータに容易に到達できないようにする仕組み。 サイバーセキュリティの モバイルセキュリティ カテゴリに属します。
モバイルアプリのサンドボックス とはどういう意味ですか?
OS が強制する境界で、モバイルアプリがアクセスできるファイル・IPC・API を制限し、侵害されたアプリが他アプリのデータに容易に到達できないようにする仕組み。
モバイルアプリのサンドボックス はどのように機能しますか?
iOS では App Sandbox がアプリごとのコンテナディレクトリ、強制アクセス制御、コード署名、エンタイトルメントの組み合わせでアプリを閉じ込めます。Android では各アプリに 1 つの Linux UID を割り当て、SELinux ポリシー、スコープドストレージ、権限で守られたプラットフォーム API を用います。Verified Boot や Secure Enclave/TrustZone と合わせて、サンドボックスはモバイルセキュリティの土台です。アプリでリモートコード実行が起きても、攻撃者がカーネルやドライバの脆弱性を連鎖させない限り影響はそのコンテナ内に閉じ込められます。脱獄・root・一部のフッキングツールはサンドボックスを意図的に弱体化するため、銀行や業務アプリの多くはそのような環境での起動を拒否します。
モバイルアプリのサンドボックス からどのように防御しますか?
モバイルアプリのサンドボックス に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
モバイルアプリのサンドボックス の別名は何ですか?
一般的な別名: App Sandbox, アプリサンドボックス。
● 関連用語
- appsec№ 516
iframe の sandbox 属性
iframe の内容に追加の制限を課す HTML 属性。明示的に許可しない限り、スクリプト・フォーム・遷移・同一オリジンアクセスをすべて禁止する。
- mobile-security№ 694
モバイルアプリのセキュリティ
iOS および Android アプリのライフサイクル全体でユーザーデータを保護し、リバースエンジニアリングや実行時改ざんに耐えられるよう設計・実装・検証する取り組み。
- mobile-security№ 692
モバイルアプリの権限
位置情報、マイク、カメラ、連絡先、写真、SMS、バックグラウンドセンサーなどの機微なリソースへアクセスする前に、ユーザーの同意を求める OS の制御。
- mobile-security№ 562
iOS の脱獄 (ジェイルブレイク)
iPhone や iPad 上で Apple のコード署名検証とサンドボックス制限を回避し、Apple が承認していないソフトウェアを導入できるようにする操作。
- mobile-security№ 948
Android の root 化
Android 端末で Linux カーネル・SELinux・Android Verified Boot による保護を回避し、無制限の管理者 (root) 権限を取得すること。
- appsec№ 056
アプリケーションセキュリティ(AppSec)
ソフトウェアのライフサイクル全体を通じて、悪用・改ざん・不正アクセスに耐えられるように設計・構築・テスト・運用する分野。