CSP)では、コンテナとクラウドネイティブアプリケーションに対して、フルライフサイクルなセキュリティを提供する製品となります。今回は、その中でもなぜ必要なのかわかりにくい、ランタイムポリシーについて説明したいと思います。CSPのランタイムポリシーは、実行中のコンテナを監視し、ポリシーに従ってコンテナの動作を制御・制限を行うことが出来ます。Enforcerになります。ランタイムポリシーの必要性Dockerでは、1Dockerイメージで1サービスが動作することが推奨されています。別プロセスを起動したりすることは普通にあることです。動作が異常かどうかは、まず正常な動作を定義することから始まります。EnforceモードをAuditモードにすることでコンテナ内のプロセス動作を記録することが可能です。この状態で動作試験を行い、どのプロセスが起動するのかを確認したり、負荷試験を行ってどのくらいプロセス数が多くなるかを確認することが可能です。CSPでは、起動するコマンドを制限したり、起動するプロセス数を制限することが出来ます。Linuxではスレッドもプロセス扱いされるので、スレッド数も制限できることになります。試験の結果を反映して、コマンドの動作を制限することが可能です。起動するコマンドを制限することは、仮にコンテナに対する攻撃が成功して想定外のコマンド(wgetやrootkitなど)を動作させようとしても、その実行を停止することが出来ます。Dockerなどのコンテナ内では、Linux上のSELinuxやAppArmorでの権限制御を行いにくい環境にあります。CSPで検知できるので、K8sなどのコンテナマネージャーなどと連携して該当コンテナをサービスから排除・再生成することで、システム全体の健全性を保つことが可能です。スコープ(どのコンテナにどのポリシーを割り当てるか)、制御モード(ポリシー違反時の動作)の3つで構成されます。コントロールコントールには以下のような種類があります。指定した(LinuxまたはWindows)名前付きユーザー・グループのホスト認証要求をブロックし、他ユーザーからの認証要求を全て許可します。ADグループを指定できますスコープスコープは、どのコンテナにどのランタイムポリシーを割り当てるかを定義します。ポリシーは名前などで指定したコンテナにのみ適用したり、Kubernetes環境では特定のDeployment/Podに適用することができます。ランタイムポリシーのスコープ属性のリストは以下のとおりです。グループ、ホストIPアドレス、ホスト名、ユーザコンテナが起動されると、その起動期間中Aquaはそのコンテナのスコープで指定されたすべての有効なランタイムポリシーを適用します。各ポリシーは、コンテナの起動時に設定されたコントロールと制御モードに従って適用されます。いずれかのコンテナに適用されているポリシーに矛盾する設定またはコントロールがある場合、Aquaはより厳密な設定またはコントロールを適用します。制御モードランタイムポリシーは、次のいずれかのモードを設定できます。Enforce(制御)モードAquaはランタイムポリシーで定義された通りに防止を実施します。Eventイベントタイプの監査イベントのみをログに記録します。Aquaはコンテナのデプロイを妨げたり、禁止された活動の発生を防止したりはしません。CSPでは、上記のように実行中のコンテナに対して、不正なコマンド・通信の制限を実施したり、コンテナ実行前に不正な実行を防止することが出来ます。コンテナを使用することにより容易にマイクロサービス化することができるため、コンテナを利用する環境が増えてきました。CI/CDツール等によりセキュリティが担保されていない状態で本番環境にデプロイされてしまう危険性も増加しています。CSPの導入をご検討ください。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。LABの情報を逃さずチェックしよう!メールアドレスを登録すると記事が投稿されるとメールで通知します。※登録後メールに記載しているリンクをクリックして認証してください。