仮想マシン(VM)はコンテナよりもセキュアなのだろうか?言うまでもなく答えはVMだと思うかもしれないが、IBM ResearchによるとコンテナはVMと同等に、さらにはVMよりもずっとセキュアになり得るのだという。
IBM Researchのディスティングイッシュト・エンジニアであり、Linuxカーネルの主要開発者であるJames Bottomley氏は以下のように記している。
セキュリティという観点で、コンテナとハイパーバイザのいずれが勝っているのかという現在の議論が抱える最大の問題の1つは、セキュリティの評価手段を誰も作り出していないため、議論が定性的な言葉(インターフェースの幅広さという点で、コンテナよりもハイパーバイザの方がセキュアに「感じられる」など)になるにもかかわらず、誰も定量的な比較を実際にしてこなかったというところにある。
こういったニーズを満足させるためにBottomley氏は、客観的にシステムのセキュリティを測定するための新たな概念「水平型攻撃プロファイル」(Horizontal Attack Profile:HAP)を作り出した。同氏は、「(想定していないシステムコールをブロックする)seccompプロファイルを適切に作り上げておけば、Dockerコンテナはハイパーバイザとほぼ同等のセキュリティを実現できる」という事実を見出した。
Bottomley氏はまず、「垂直型攻撃プロファイル」(Vertical Attack Profile:VAP)という概念を定義した。あるサービスを提供するうえで実行される、入力からデータベースの更新、出力に至るまでに通過するあらゆるパス上のコードは、プログラムを構成するすべてのコードと同様に、バグを含んでいる可能性を否定できない。バグの密度は、パスを構成するコンポーネントによってさまざまだが、通過するパス上のコードが多ければ多いほど、脆弱性を外部にさらけ出す可能性も高くなる。同氏は、これらのコードをスタックのVAPと定義した。ただ、こういった切り口では、主体がクラウドのテナントとサービスプロバイダー(CSP)にまたがり、全貌をつかみ損ねてしまう可能性がある。IaaSの場合、VAPの一部はテナント(ゲストカーネルやゲストOS、アプリケーション)の管理下に、それ以外(ハイパーバイザやホストOS)はCSPの管理下に置かれる。しかし、スタックに潜む脆弱性を悪用し、ホスト自体や、該当ホスト上で稼働している他のテナントの仮想マシンに制御を移すという付加的な問題がCSPのVAPには存在している。同氏は、こうした隔離性の破壊を引き起こす脆弱性をHAPと定義した。