コンテナセキュリティの謎を解く

This post is also available in: English (英語)

かつての私はデータセンターを訪れるのが好きでした。埃をかぶらないようにするための粘着性のある床シートも、1,000台ものファンのホワイトノイズも、年中いつでも最適な温度を保つ空調管理も好きでした。ずらりとラックの並ぶ廊下を歩くたび、ここにあるマシンがインターネットを動かしているんだと感嘆したものでした。皆さんのデータセンターへの思い入れはこれほど感傷的なものではないかもしれませんが、私たちの多くはもう二度とデータセンターに足を踏み入れることはないのでしょう。思い出話はさておき、コンテナセキュリティについて話し合うには今がちょうどよい時期ではないでしょうか。マルチコンピューティングがいまや全盛期ですし、それが何を意味するのかについて実践的知識を持つことも重要です。

私が初めてコンテナ環境に触れたのは、攻撃演習の一環で脆弱なアプリケーションを悪用してシェルアクセスを奪取し、気づいたらコンテナ内に入ってしまっていたときでした。それはちょうど、chroot jail(プロセスをサンドボックス化し、より高いパーミッションで安全に実行できるようにする*nixのコマンド)の中にいるような感覚でした。コンテナを使った仮想化という観点からいえば、もちろんそれ以外の要素もたくさんあるのですが、私はこの喩えがコンテナ環境というものを理解する上で参考になるのではないかと考えています。この喩えを使って、私はよくコンテナを「封じ込められた定義済み環境」と表現します。コンテナはコンテナレジストリに保存され、そこでコンテナランタイムの要求に応じて立ち上げられたり取り壊されたりします。

ここから、DockerかKubernetesかという重要な議論にいたります。Dockerは、コンテナイメージのビルド、コンテナレジストリとコンテナランタイムの提供など、ここまで紹介してきたすべてをサポート可能です。Kubernetesは、複数のデバイスに分散したコンテナランタイムを提供することで、より高い可用性とスケーラビリティを実現するもので、これはクラウドのパラダイムにうまくフィットしています。きちんと実行さえされていれば、それがどこで実行されているのかを気にする必要はないのです。コンテナを使用する際には、これら両方の技術を活用するのが一般的です。CI/CD(継続的インテグレーション/継続的デプロイメント)パイプラインでは、コンテナイメージのビルドや保存にDockerを使用し、実行にはKubernetesランタイムを使用します。

コンテナセキュリティのセキュリティ懸案事項とは

コンテナ環境の特殊性は、数多くの興味深い結末をもたらします。ゼロトラストの原則を適用することで、コンテナ環境保護へのアプローチが理解しやすくなります。

  • すべてのユーザー、デバイス、アプリケーションを検証する: 皆さんはよく「コンテナはコードである」という言葉を耳にしているのではないでしょうか。これはコンテナを自社の開発者が定義していて、内部で開発されたコードとサードパーティのコードを組み合わせたものであることが多いことからきています。これらコンテナイメージの脆弱性や設定ミスに皆さんの組織は責任を負うのですが、そのさいこれらの事前定義されたコンテナイメージをオフラインでコンテナレジストリにてソフトウェアコンポジション分析(SCA)やその他の目的に応じて作られたコンテナセキュリティツールを実行してスキャンすることができます。
  • コンテキストベースのアクセスを適用する: ラテラルムーブとデータ流出、この両方からの保護対策を行います。環境内で発生するコネクションはすべて、コンテキストに基づいて認証されていることを確認します。コンテナ環境はその一時的性質から、資産管理やアクセスコントロールリストの管理が課題となります。コネクションの認証を動的に行うことで、手作業を減らし、セキュリティ対策を強化できます。
  • すべてのコンテンツを保護する: クラウドワークロードの場合、クラウドアプリがモジュラー式であることから、コンテンツ検証を行ってコンテンツの正当性や安全性を確認することができます。従来、IPC(プロセス間通信)や関数の戻り値などを介して配信されていたトランザクションデータは、検査が容易なソケットを介して配信されるようになりました。これにより、これまでセキュリティチームがこれまでアクセスしていたものとは別のレベルでの検査が可能になります。
  • すべてのセキュリティインフラを継続的に監視・分析する: コンテナは軽量なワークロードとして設計されていますが、やはり環境の一部として悪用される可能性は残っていることから、ランタイム監視は必要です。エンドユーザーコンピューティング(EUC)やサーバー環境で活用されている従来のEDRタイプのエージェントとは異なり、仮想化環境では、コンテナ自体にエージェントをインストールするかわりに、コンテナのランタイム経由でフックすることができます。これによりパフォーマンスが向上し、コンテナのコードとコンテナのセキュリティ監視との間で好ましくない相互作用が発生する心配がなくなります。

皆さんがすべきこととパロアルトネットワークスからの支援

皆さんの組織がまだクラウドジャーニーの端緒についたばかりなら、インフラとアプリケーションのセキュリティを確保する必要があります。VM-Series仮想次世代ファイアウォール(NGFW)や、Kubernetes環境に特化したCN-Seriesのコンテナ型NGFWを使用することで、コンテンツやアクセス方法を確実にエンフォースできます。Prisma Cloudは、レジストリのスキャン、構成や態勢の管理、フルスタックのランタイム保護、インシデント対応など、CI/CDセキュリティの基礎となる機能を提供可能です。

皆さんの組織のセキュリティ部門が成熟し、セキュリティ運用チームのために追加でテレメトリを収集したいなら、クラウドのためのCortex XDRがコンテナランタイム環境からのコンテナ実行を監視する上で重要な役割を果たします。Cortex XDRなら、エンドポイントと非エンドポイントの両方のイベントをつなぎ合わせて、環境の全体像を包括的に提供してくれます。最後に、資産管理はセキュリティにおいて最も困難な課題です。ここではCortex Xpanseが、組織のクラウド導入による攻撃対象領域の変化を把握する上で重要な役割を果たしてくれます。

弊社の各製品・サービスについての詳細は、こちらの連絡先までお問い合わせください。専門知識をもつ担当者がサポートいたします。