プロセスのサンドボックス化
Chromium の重要なセキュリティ機能の一つは、プロセスをサンドボックス内 で実行できることです。 サンドボックスは、ほとんどのシステムリソースへのアクセスを制限することで悪意のあるコードが引き起こす被害を制限します。サンドボックスのプロセスは、CPU サイクルとメモリのみを自由に使用できます。 サンドボックス化したプロセスで追加の特権を必要とする操作を実行するには、専用の通信チャンネルを使用してより特権のあるプロセスにタスクを委譲します。
Chromium では、メインプロセス以外のほとんどのプロセスにサンドボックス化が適用されます。 これにはレンダラープロセスのほか、オーディオサービス、GPU サービス、ネットワークサービスなどのユーティリティプロセスも含まれます。
詳しい情報は Chromium の サンドボックスデザインのドキュメント をご参照ください。
Electron 20 から、サンドボックスは追加設定なしでレンダラープロセスに対して有効です。 プロセスのサンドボックスを無効化する場合は、単一のプロセスでのサンドボックス無効化 の節をご参照ください。
Electron でのサンドボックスの動作
Electron のサンドボックス化したプロセスは ほぼ Chromium と同じように動作しますが、Electron は Node.js とのインターフェイスであるために更に考慮すべき概念がいくつかあります。
レンダラープロセス
Electron のレンダラープロセスをサンドボックス化すると、通常の Chrome レンダラーと同じように動作します。 サンドボックス化したレンダラーは Node.js 環境が初期化されません。
そのため、サンドボックスを有効にすると、レンダラープロセスはプロセス間通信 (IPC) を介したメインプロセスへのタスクの委譲によってのみ、特権的なタスク (ファイルシステムとのやりとり、システムへの変更、サブプロセスの生成など) を実行できます。
プロセス間通信に関する詳細は、IPC ガイド をご確認ください。