IBM の研究者は、Docker や同様の共有カーネル コンテナ システムよりも安全なコードを作成するために、新しい種類のソフトウェア コンテナを開発しました。
Dockerなどの類似製品は、共有カーネルの侵害が関連するすべてのコンテナを危険にさらすため、VMよりも安全性が低いと考えられています。VMでは、カーネルがホストカーネルから分離されているため、付随的な被害のリスクが軽減されます。
大企業はコンテナ化の利点を理解し、この技術の導入に関心を示していますが、開発と展開のスピードと引き換えにセキュリティを犠牲にすることに躊躇する企業も多くあります。
そのため、エンタープライズ市場へのサービス提供に関心のあるテクノロジー企業は、コンテナのセキュリティ上の欠陥に対処する方法を模索してきました。
この目標達成に向けて、OpenStack Foundationは最近、Intelが支援するKata Containersのバージョン1.0をリリースしました。これは、VMのセキュリティとコンテナのスピードを融合させる試みです。また、Googleは独自のアプローチであるgVisorについて説明しました。
今度は IBM が Nabla Containers と呼ばれるソフトウェアを発表します。
Nabla ContainersとKata Containersはどちらも、潜在的な攻撃経路を減らすことを目的としています。Kata Containersのアプローチでは、各コンテナまたはポッドに独自の軽量VMとミニカーネルを提供することでこれを実現します。
Azure Dev Spaces がパブリックプレビューになったので、El Reg が試してみました
続きを読む
Nabla Containers のアプローチは異なります。Solo 5 ミドルウェアと組み合わせてユニカーネル (ライブラリ オペレーティング システム) 技術を利用することで、Linux システム コールが少なくなります。
「Nabla コンテナは 9 つのシステム コールのみを使用し、その他はすべて Linux seccomp ポリシーによってブロックされます」とプロジェクトの Web サイトでは説明されています。
最終的な効果は、カーネルとの通信が減り、攻撃対象となる領域が減ることです。
Google は、gVisor は Linux システムコールインターフェースを Go で書き直すことでコンテナの欠点を克服しようとしていると主張している。
しかし、IBMリサーチの著名なエンジニアであり、Linuxカーネルの貢献者でもあるジェームズ・ボトムリー氏は、GoogleのエンジニアがGoランタイムでのシステムコールの多用を考慮に入れていなかったため、システムコールの数の点ではDockerと同等かそれ以下になっていると主張している。
Bottomley 氏は最近の一連のブログ投稿で、Nabla Containers は、封じ込めの失敗によって攻撃者が基盤となるコンテナ ホストまたはそのホスト上の他のテナント仮想マシンにアクセスできるようになるという、水平方向の脅威を軽減する試みであると説明しています。
同氏が説明するテストでは、「Nabla は、Docker に比べてパフォーマンスの犠牲を最小限に抑えて封じ込めを実現し、公開された結果ではハイパーバイザー ベースの封じ込めを使用する場合よりも 2 倍安全であることを考えると、安全なワークロードのための封じ込めテクノロジーとしては群を抜いて優れています。」
gVisor を使っている場合を除いて、状況は異なる可能性があります。Bottomley 氏によると、「gVisor は ptrace がシステムコールをサンドボックスに接続する非常に非効率的な方法であるため、使い物になりません。」®