📚

読書感想文「コンテナセキュリティ」

に公開

概要

書籍「コンテナセキュリティ」を読了しました。

読書感想文を書いてみます。

読もうと思った背景

以前から、業務にてコンテナを扱う機会が増えており、この本に目をつけておりました。
本格的にコンテナを扱うことになる前に、コンテナに対するセキュリティについて知識を身に着けたいと思い、読書に踏み切りました。

本文概要

コンテナセキュリティの方針とその背景の説明を中心に解説し、具体的な打ち手として、必須レベルのベストプラクティスを中心に取り上げています。
一般的なセキュリティ対策がコンテナでも必要であることを示しつつ、コンテナ特有のセキュリティ対策についても述べています。
その際、オンプレや仮想化との違いを通して説明しています。

続いて、多くのコンテナが稼働する Linux を前提に、OS 全般に適用可能なセキュリティ対策を紹介したうえで、コンテナ固有の仕組みやリスクに焦点を当てます。
具体的には、コンテナがホストとリソースをどのように分離しているかを解説し、その理解を踏まえて運用上のベストプラクティスを提示しています。

さらに、セキュリティ強化の実践的アプローチとして「イミュータブルなコンテナ」という概念を取り上げ、これが複数のベストプラクティスに適合し、セキュリティ上の価値を持つことを紹介しています。

教訓・学び・感想

今までは、「コンテナは強力に分離されたプロセス」程度の認識でした。
読了に当たり、コンテナがホストから分離される仕組みについて、解像度が上がりました。

  • capability によって、最低限必要なシステムコール権限を与える
  • chroot によって、ホストのファイルシステムから隔離する
  • cgroup によって、ハードウェアリソースを制限する
  • 各種 namespace によって、プロセス、ネットワークといった各種リソースのスコープを制限する

コンテナの解像度が上がったことで、各種設定の解像度も上がりました。
以前のような「なんとなく設定する」「なんとなくデフォルト値にしておく」から脱却できそうな気がします。

◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇

「最小権限の原則に従う」、「職務分掌する」、「防御層を多層に設ける」、「アタックサーフェスを可能な限り小さくするよう努める」というように、基本方針は従来と変わらない事に安心しました。
言い換えると、それだけ従来から提唱されている基本方針が重要であることを再確認できました。

悪用できる具体的なケースの紹介もあり、以下のようないままで当たり前のようにやっていたことも、これまで以上に意識して取り組めそうです。

  • root ユーザーで実行しない
  • クレデンシャルをビルド時に挿入しない

◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇ ◆ ◇

「イミュータブルなコンテナ」という考え方について。
どちらかというと、負荷分散を目的としたステートレス性を目指して(つまり、アプリケーション側の都合で)コンテナイメージを構築していました。
「イミュータブルなコンテナ」という言葉で、ステートレス性を更に深堀して言語化されています。
イミュータブル性がセキュリティ向上につながる...という視点は無かったので非常に勉強になりました。

Discussion