サンドボックス
コードを、本当に必要なものにしか手が届かない厳しく制限された環境で実行すること。前提は、そのコードは侵害されるということで、問題はそのとき何を失うかだけである。
最も分かりやすい例はブラウザだ。各タブは独立したプロセスで動き、ファイルシステムにはアクセスできず、ネットワークと直接やりとりする権利もない。そうした要求はすべて制御役の親プロセスを経由する。Linuxではseccomp-bpf、名前空間、cgroups、Landlockでサンドボックスを組む。macOSにはエンタイトルメントファイルを使うApp Sandbox、WindowsにはAppContainerがある。さらに進むと、アプリケーションと実カーネルの間に独自のカーネル実装を挟むgVisorや、FirecrackerのようなマイクロVMがある。サンドボックスからの脱出はそれ自体が一つの脆弱性クラスで、バグバウンティでは最も報奨金が高い分類になっている。