"Sysdig 2021 container security and usage report"で強調されているのは、コンテナセキュリティの"シフトレフト(shift left)"傾向だ。分析対象となったイメージの多くは、いまだ基本的なセキュリティプロビジョンが欠如している状況にある。
Sysdigでは、同社ユーザの一部で使用されている数百万のコンテナを日々解析することによって、データを収集している。対象となっているのはNGINX、Go、PostgreSQL、その他多くの公開イメージをベースとしたコンテナだ。
セキュリティ分野における"シフトレフト"とは、開発サイクルのより早い段階において、セキュリティへの影響を考慮したアーキテクチャおよび設計上の選択を行う、という意味である。
当社の分析で顕著であった点のひとつとして、多くの企業において、シフトレフトの傾向がKubernetesのセキュリティに拡張されている点があります。4分の3の組織がデプロイメントに先立って、CI/CDビルドフェーズでコンテナイメージのスキャンを実施しています。
イメージソースが何であるかに関わらず、イメージのスキャンはセキュリティの上で重要だ、とSysdigは言う。事実、今回のレポートのために同社がスキャンしたイメージの55パーセントには、少なくともひとつの高深刻度(high severity)ないしそれ以上の脆弱性が存在していた。
この前向きな傾向は、残念なことに、不適切なイメージ設定によって相殺されている。具体的には、コンテナの58パーセントが、実際にはそのレベルの権限が必要でないにも関わらず、いまだrootで運用されている、とSysdigは述べている。
コンテナ環境の完成度が高まると、スキャンでは不十分だという認識を持つようになります。目前の脅威に対処するために、実行時のセキュリティも必要なのです。
コンテナのroot運用の他に、頻繁に見られる実行時ポリシ違反としてSysdigが指摘するのは、/
や/etc
などの下にあるファイルへの書き込み、コンテナへのエントリポイントとしてshellを使用する、機密性の高いファイルの操作、などである。
採用が増加傾向にある、とSysdigが見ているランタイムセキュリティ用ツールのひとつは、>Cloud Native Computing Foundation(CNCF)のFalcoプロジェクトだ。Sysdigが開発した後にCNCFに寄贈されたFalcoは、Linuxのシステムコールを分析して、特権コンテナを使用した権限のエスカレーション、オーナシップやモードの変更、execve
やshellやSSHの使用など、不審な動作を検出する。しかしながら、多くのコンテナは実行時間が極めて限られており、監視ツールに詳細な情報を提供する十分な時間のないことが、実行時分析を難しいものにしている。例えば、コンテナの約49パーセントは実行時間が5分未満であり、21パーセントは10秒未満なのだ。
Sysdigが注目するもうひとつの傾向は、コンテナランタイムがDockerからcontainerdやCRI-Oに移行していることだ。この傾向は、Dockerエンジンの進化が分かっていれば驚くことではない。
以前のDockerエンジンは、高レベルと低レベルのランタイム機能の両方を実装していました。現在これらは、containerdとruncという2つのプロジェクトに分離されています。
Dockerを離れる傾向は、Kubernetesが今年後半、Dockerを非推奨にすると公式に発表したことからも確認できる。一方でKubernetesは、オーケストレータのリーダとして、選択の上でOpenShiftに大差を保っている。