23章Process Containment(プロセス封じ込め)
この章では、プロセスの実行のために最低限必要な権限のみが強制され、最小権限の原則が適用できるようにする方法を説明します。Process Containment(プロセス封じ込め)パターンは、攻撃対象領域(attack surface)を限定し、防御線を作ることでアプリケーションをよりセキュアにするのに役立ちます。また、問題のあるプロセスが定められた境界を超えて実行されることがないようにもできます。
23.1 問題
Kubernetesのワークロードへの主な攻撃ベクトルの1つは、アプリケーションコードを通じたものです。コードセキュリティを改善するのを助けるにはたくさんの方法があります。例として、静的コード解析ツールはセキュリティ欠陥がないかソースコードをチェックします。動的スキャンツールは、SQLインジェクション(SQLi)、クロスサイトリクエストフォージェリ(CSRF)、クロスサイトスクリプティング(XSS)などのよく知られたサービス攻撃手法を通じてシステムに侵入することをゴールとした悪意ある攻撃をシミュレーションします。また、セキュリティ脆弱性に関してアプリケーションの依存関係を定期的にスキャンするツールもあります。イメージビルドプロセスの一部として、コンテナの既知の脆弱性がスキャンされます。このスキャンは通常、脆弱性のあるパッケージを追うデータベースに対して、ベースイメージとその中の全パッケージをチェックすることで実行します。セキュアなアプリケーションを作り、悪意ある攻撃者、侵害されたユーザ、安全でないコンテナイメージ、脆弱性のある依存関係などから守るには、数ステップしかありません。
いつチェックがあろうとも、新しいコードと新しい依存関係は新しい脆弱性を連れて来る可能性があり、リスクが全くないことを保証する方法はありません。実行時のプロセスレベルのセキュリティ制御がないと、悪意ある攻撃者はアプリケーションコードを破ってホストやKubernetesクラスタ全体の制御権を握ろうとします。この章で見ていく仕組みは、コンテナが実行に必要なパーミッションのみを持つよう制限し、最小権限の原則を適用する方法を実現するものです。Kubernetesの設定は1つの防御線として振る舞い、問題のあるプロセスを封じ込め、そのようなプロセスが定められた境界を越えて実行されないようにします。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access