6.3. デフォルトのセキュリティーポリシー
Red Hat Advanced Cluster Security for Kubernetes のデフォルトのセキュリティーポリシーは、セキュリティーの問題を特定し、環境内のセキュリティーのベストプラクティスを確保するための幅広い範囲を提供します。これらのポリシーを設定することで、環境内でのリスクの高いサービスのデプロイを自動的に防止し、ランタイムのセキュリティーインシデントに対応できます。
Red Hat Advanced Cluster Security for Kubernetes のポリシーの重大度レベルは、Red Hat Product Security が割り当てる重大度レベルとは異なります。
Red Hat Advanced Cluster Security for Kubernetes ポリシーの重大度レベルは Critical、High、Medium、および Low です。Red Hat Product Security の脆弱性の重大度レベルは、重大、重要、中程度、低度の影響となります。
ポリシーの重大度レベルと Red Hat Product Security の重大度レベルは関連していますが、これらを区別することが重要です。Red Hat Product Security の重大度レベルの詳細は、重大度のレベル を参照してください。
6.3.1. 重大度のセキュリティーポリシー
以下の表に、Red Hat Advanced Cluster Security for Kubernetes のデフォルトの重大度のセキュリティーポリシーを示します。ポリシーはライフサイクルのステージ別に整理されています。
ライフサイクルステージ | 名前 | 説明 | ステータス |
---|---|---|---|
ビルドまたはデプロイ | Apache Struts: CVE-2017-5638 | CVE-2017-5638 Apache Struts の脆弱性を含むイメージがデプロイメントに含まれている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | Log4Shell: log4j リモートコード実行の脆弱性 | CVE-2021-44228 および CVE-2021-45046 Log4Shell 脆弱性を含むイメージがデプロイメントに含まれている場合にアラートを出します。バージョン 2.0-beta9 から 2.15.0 (バージョン 2.12.2 を除く) の Apache Log4j Java ロギングライブラリーに欠陥が存在します。 | Enabled |
ビルドまたはデプロイ | Spring4Shell (Spring Framework Remote Code Execution) および Spring Cloud Function の脆弱性 | Spring MVC に影響を与える CVE-2022-22965 脆弱性と、Spring Cloud に影響を与える CVE-2022-22963 脆弱性のいずれかを含むイメージがデプロイメントに含まれている場合にアラートを出します。バージョン 3.16、3.2.2、およびサポートされていない古いバージョンでは、Spring Cloud に欠陥が含まれています。バージョン 5.3.0 ~ 5.3.17、バージョン 5.2.0 ~ 5.2.19、およびサポートされていない古いバージョンの Spring Framework に欠陥があります。 | Enabled |
ランタイム | 特権コンテナーで実行される iptables | 特権 Pod が iptables を実行するときにアラートを出します。 | Enabled |
6.3.2. 重大度の高いセキュリティーポリシー
以下の表は、Red Hat Advanced Cluster Security for Kubernetes の重大度の高いデフォルトのセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
ライフサイクルステージ | 名前 | 説明 | ステータス |
---|---|---|---|
ビルドまたはデプロイ | 修正可能な 7 以上の Common Vulnerability Scoring System (CVSS) | 修正可能な脆弱性を含むデプロイメントの CVSS が 7 以上の場合にアラートを出します。ただし、Red Hat は、CVSS スコアではなく、Common Vulnerabilities and Exposures (CVE) の重大度を使用してポリシーを作成することを推奨します。 | Disabled |
ビルドまたはデプロイ | 修正可能な重要度が少なくとも重要 | 修正可能な脆弱性のあるデプロイメントの重大度評価が少なくとも重要になった場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | Rapid Reset: HTTP/2 プロトコルにおけるサービス拒否の脆弱性 |
HTTP/2 サーバーのサービス拒否 (DoS) 脆弱性の影響を受けやすいコンポーネントを含むイメージのデプロイメントに関するアラート。これは、HTTP/2 での多重化ストリームの処理における不具合に対処します。クライアントはリクエストを迅速に作成し、すぐにリセットできます。これにより、サーバー側の制限に達することを回避しながらサーバーに余分な作業が発生し、サービス拒否攻撃が発生する可能性があります。このポリシーを使用するには、ポリシーを複製し、有効にする前に | Disabled |
ビルドまたはデプロイ | イメージで公開されているセキュアシェル (ssh) ポート | 一般に SSH アクセス用に予約されているポート 22 がデプロイで公開されたときにアラートを出します。 | Enabled |
デプロイ | 緊急デプロイメントのアノテーション | デプロイメントで StackRox アドミッションコントローラーのチェックを回避するために "admission.stackrox.io/break-glass":"ticket-1234" などの緊急アノテーションが使用される場合にアラートを出します。 | Enabled |
デプロイ | 環境変数に Secret が含まれています | デプロイメントに 'SECRET' を含む環境変数がある場合にアラートを出します。 | Enabled |
デプロイ | 修正可能な CVSS >= 6 および特権 | デプロイが特権モードで実行され、CVSS が 6 以上の修正可能な脆弱性がある場合にアラートを出します。ただし、Red Hat は、CVSS スコアではなく CVE の重大度を使用してポリシーを作成することを推奨します。 | バージョン 3.72.0 以降ではデフォルトで Disabled |
デプロイ | 重要かつ重大な修正可能な CVE を含む特権コンテナー | 特権モードで実行されるコンテナーに重要または重大な修正可能な脆弱性がある場合にアラートを出します。 | Enabled |
デプロイ | 環境変数としてマウントされた Secret | 環境変数としてマウントされた Kubernetes シークレットがデプロイメントに含まれている場合にアラートを出します。 | Disabled |
デプロイ | セキュアシェル (ssh) ポートの公開 | 一般に SSH アクセス用に予約されているポート 22 がデプロイで公開されたときにアラートを出します。 | Enabled |
ランタイム | 暗号通貨マイニングプロセスの実行 | 暗号通貨マイニングプロセスを生成します。 | Enabled |
ランタイム | iptables の実行 | 誰かが iptables を実行したことを検出します。これは、コンテナー内のネットワーク状態を管理する非推奨の方法です。 | Enabled |
ランタイム | Kubernetes アクション: Exec into Pod | コンテナーでコマンドを実行する要求を Kubernetes API が受信したときにアラートを出します。 | Enabled |
ランタイム | Linux グループ追加の実行 | 誰かが addgroup または groupadd バイナリーを実行して Linux グループを追加したことを検出します。 | Enabled |
ランタイム | Linux ユーザー追加の実行 | 誰かが useradd または adduser バイナリーを実行して Linux ユーザーを追加したことを検出します。 | Enabled |
ランタイム | ログインバイナリー | 誰かがログインを試みたことを示します。 | Disabled |
ランタイム | ネットワーク管理の実行 | ネットワークの設定と管理を操作できるバイナリーファイルが誰かによって実行されたことを検出します。 | Enabled |
ランタイム | nmap の実行 | ランタイム中に誰かがコンテナー内で nmap プロセスを開始したときにアラートを出します。 | Enabled |
ランタイム | OpenShift: Kubeadmin Secret へのアクセス | 誰かが kubeadmin Secret にアクセスしたときにアラートを出します。 | Enabled |
ランタイム | パスワードバイナリー | 誰かがパスワードを変更しようとしたことを示します。 | Disabled |
ランタイム | クラスター Kubelet エンドポイントを対象とするプロセス | healthz、kubelet API、または heapster エンドポイントの誤用を検出します。 | Enabled |
ランタイム | プロセスターゲットクラスター Kubernetes Docker Stats エンドポイント | Kubernetes docker stats エンドポイントの誤用を検出します。 | Enabled |
ランタイム | プロセスターゲティング Kubernetes サービスエンドポイント | Kubernetes サービス API エンドポイントの誤用を検出します。 | Enabled |
ランタイム | UID 0 のプロセス | デプロイメントに UID 0 で実行されるプロセスが含まれている場合にアラートを出します。 | Disabled |
ランタイム | セキュアシェルサーバー (sshd) の実行 | SSH デーモンを実行するコンテナーを検出します。 | Enabled |
ランタイム | SetUID プロセス | エスカレートされた特権で特定のプログラムを実行できるようにする setuid バイナリーファイルを使用します。 | Disabled |
ランタイム | シャドウファイルの変更 | 誰かがシャドウファイルを変更しようとしたことを示します。 | Disabled |
ランタイム | Java アプリケーションによって生成されたシェル | bash、csh、sh、zsh などのシェルが Java アプリケーションのサブプロセスとして実行されるタイミングを検出します。 | Enabled |
ランタイム | 不正なネットワークフロー | "異常な違反に関するアラート" 設定のベースラインから外れたネットワークフローに対して違反を生成します。 | Enabled |
ランタイム | 不正なプロセス実行 | Kubernetes デプロイメントのコンテナー仕様のロックされたプロセスベースラインによって明示的に許可されていないプロセス実行に対して違反を生成します。 | Enabled |
6.3.3. 重大度が中程度のセキュリティーポリシー
以下の表は、Red Hat Advanced Cluster Security for Kubernetes のデフォルトの重大度が中程度のセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
ライフサイクルステージ | 名前 | 説明 | ステータス |
---|---|---|---|
Build | Docker CIS 4.4: セキュリティーパッチを含むイメージのスキャンと再構築の確認 | イメージがスキャンされず、セキュリティーパッチを含むように再構築されていない場合に警告します。イメージを頻繁にスキャンして脆弱性を見つけ、イメージを再構築してセキュリティーパッチを含め、イメージのコンテナーをインスタンス化することが重要です。 | Disabled |
デプロイ | 30 日間のスキャン期間 | デプロイメントが 30 日間スキャンされていない場合にアラートを出します。 | Enabled |
デプロイ | CAP_SYS_ADMIN 機能が追加されました | デプロイに CAP_SYS_ADMIN でエスカレートしているコンテナーが含まれている場合にアラートを出します。 | Enabled |
デプロイ | 読み書き可能なルートファイルシステムを使用するコンテナー | デプロイに読み取り/書き込みルートファイルシステムを持つコンテナーが含まれている場合にアラートを出します。 | Disabled |
デプロイ | 権限のエスカレーションが許可されたコンテナー | コンテナーが意図しない権限で実行され、セキュリティーリスクが発生している可能性がある場合にアラートを出します。この状況は、親プロセスよりも多くの権限を持つコンテナープロセスが、意図しない権限でコンテナーを実行できる場合に発生する可能性があります。 | Enabled |
デプロイ | デプロイメントには、1 つ以上のイングレスネットワークポリシーが必要 | デプロイメントにイングレスネットワークポリシーが欠落している場合にアラートします。 | Disabled |
デプロイ | 外部に公開されたエンドポイントを使用したデプロイメント | 何らかの方法で外部に公開されているサービスがデプロイメントに含まれているかどうかを検出します。クラスター外に公開されるサービスを使用するデプロイメントは、クラスター外から到達できるため、侵入を試みるリスクが高くなります。このポリシーは、クラスター外にサービス公開する必要があるか検証できるように、アラートを提供します。サービスがクラスター内の通信のみに必要な場合は、サービスタイプ ClusterIP を使用します。 | Disabled |
デプロイ | Docker CIS 5.1: 該当する場合は、AppArmor プロファイルが有効になっていることを確認します | AppArmor プロファイルと呼ばれるセキュリティーポリシーを適用することで、AppArmor を使用して Linux オペレーティングシステムとアプリケーションを保護します。AppArmor は、Debian や Ubuntu などの一部の Linux ディストリビューションでデフォルトで利用できる Linux アプリケーションセキュリティーシステムです。 | Enabled |
デプロイ | Docker CIS 5.15: ホストのプロセス namespace が共有されていないことを確認する | コンテナーとホストの間にプロセスレベルの分離を作成します。プロセス ID (PID) namespace はプロセス ID 空間を分離します。つまり、異なる PID namespace のプロセスが同じ PID を持つことができます。 | Enabled |
デプロイ | Docker CIS 5.16: ホストの IPC namespace が共有されていないことを確認する | ホスト上の IPC namespace がコンテナーと共有されている場合にアラートを出します。IPC (POSIX/SysV IPC) namespace は、名前付き共有メモリーセグメント、セマフォ、およびメッセージキューを分離します。 | Enabled |
デプロイ | Docker CIS 5.19: マウント伝播モードが有効になっていないことを確認する | マウント伝搬モードが有効になっている場合にアラートを出します。マウント伝達モードが有効になっている場合、コンテナーボリュームを双方向、ホストからコンテナー、およびなしモードでマウントできます。明示的に必要な場合を除き、双方向マウント伝搬モードを使用しないでください。 | Enabled |
デプロイ | Docker CIS 5.21: デフォルトの seccomp プロファイルが無効になっていないことを確認する | seccomp プロファイルが無効になったときに警告します。seccomp プロファイルは、許可リストを使用して一般的なシステムコールを許可し、その他すべてをブロックします。 | Disabled |
デプロイ | Docker CIS 5.7: 特権ポートがコンテナー内にマップされていないことを確認する | 特権ポートがコンテナー内でマップされたときにアラートを出します。1024 未満の TCP/IP ポート番号は特権ポートです。セキュリティー上の理由から、通常のユーザーとプロセスはそれらを使用できませんが、コンテナーはそれらのポートを特権ポートにマップする場合があります。 | Enabled |
デプロイ | Docker CIS 5.9 および 5.20: ホストのネットワーク namespace が共有されていないことを確認する | ホストのネットワーク namespace が共有されている場合に警告します。HostNetwork が有効な場合、コンテナーは別のネットワークスタック内に配置されず、コンテナーのネットワークはコンテナー化されません。その結果、コンテナーはホストのネットワークインターフェイスに完全にアクセスでき、共有 UTS namespace が有効になります。UTS namespace は、ホスト名と NIS ドメイン名を分離し、その namespace で実行中のプロセスから認識されるホスト名とドメインを設定します。コンテナー内で実行されるプロセスは通常、ホスト名またはドメイン名を知る必要がないため、UTS namespace をホストと共有しないでください。 | Enabled |
デプロイ | スキャンなしのイメージ | デプロイメントにスキャンされていないイメージが含まれている場合にアラートを出します。 | Disabled |
ランタイム | Kubernetes アクション: Pod へのポート転送 | Kubernetes API がポート転送リクエストを受信したときにアラートを出します。 | Enabled |
デプロイ | コンテナーランタイムソケットのマウント | デプロイでコンテナーランタイムソケットにボリュームマウントがある場合にアラートを出します。 | Enabled |
デプロイ | 重要なホストディレクトリーのマウント | デプロイメントが機密性の高いホストディレクトリーをマウントするときにアラートを出します。 | Enabled |
デプロイ | リソース要求または制限が指定されていません | リソースの要求と制限がないコンテナーがデプロイメントに含まれている場合にアラートを出します。 | Enabled |
デプロイ | 自動的にマウントされる Pod サービスアカウントトークン | アプリケーションが Kubernetes API との対話を必要とする Pod のみにデフォルトサービスアカウントトークンのマウントを最小限に抑えることで、Pod のデフォルトサービスアカウントトークンが侵害されないように保護します。 | Enabled |
デプロイ | Privileged Container | デプロイメントに特権モードで実行されるコンテナーが含まれている場合にアラートを出します。 | Enabled |
ランタイム | crontab の実行 | crontab スケジュールジョブエディターの使用を検出します。 | Enabled |
ランタイム | Netcat の実行が検出されました | netcat がコンテナー内で実行されるタイミングを検出します。 | Enabled |
ランタイム | OpenShift: Advanced Cluster Security Central Admin Secret へのアクセス | 誰かが Red Hat Advanced Cluster Security Central Secret にアクセスしたときにアラートを出します。 | Enabled |
ランタイム | OpenShift: なりすましユーザーがアクセスする Kubernetes Secret | 誰かがユーザーになりすましてクラスター内の Secret にアクセスしたときにアラートを出します。 | Enabled |
ランタイム | リモートファイルコピーバイナリー実行 | デプロイメントでリモートファイルコピーツールが実行されたときにアラートを出します。 | Enabled |
6.3.4. 重大度の低いセキュリティーポリシー
以下の表は、重要度が低い Red Hat Advanced Cluster Security for Kubernetes のデフォルトのセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
ライフサイクルステージ | 名前 | 説明 | ステータス |
---|---|---|---|
ビルドまたはデプロイ | イメージの 90 日間経過 | デプロイメントが 90 日間更新されていない場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | COPY の代わりに使用される ADD コマンド | デプロイメントで ADD コマンドが使用されたときにアラートを出します。 | Disabled |
ビルドまたはデプロイ | イメージ内の Alpine Linux Package Manager (apk) | デプロイに Alpine Linux パッケージマネージャー (apk) が含まれている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | イメージの curl | デプロイメントに curl が含まれている場合にアラートを出します。 | Disabled |
ビルドまたはデプロイ | Docker CIS 4.1: コンテナーのユーザーが作成されていることを確認する | コンテナーが非 root ユーザーとして実行されていることを確認します。 | Enabled |
ビルドまたはデプロイ | Docker CIS 4.7: 更新指示に関するアラート | Dockerfile で更新命令が単独で使用されないようにします。 | Enabled |
ビルドまたはデプロイ | CMD で指定された安全でない | デプロイでコマンドに 'insecure' が使用されている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | latest タグ | 'latest' タグを使用するイメージがデプロイメントに含まれている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | イメージの Red Hat Package Manager | デプロイメントに Red Hat、Fedora、または CentOS パッケージ管理システムのコンポーネントが含まれている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | Required Image Label | 指定されたラベルがないイメージがデプロイメントに含まれている場合にアラートを出します。 | Disabled |
ビルドまたはデプロイ | Ubuntu パッケージマネージャーの実行 | Ubuntu パッケージ管理システムの使用状況を検出します。 | Enabled |
ビルドまたはデプロイ | イメージの Ubuntu パッケージマネージャー | デプロイメントのイメージに Debian または Ubuntu パッケージ管理システムのコンポーネントが含まれている場合にアラートを出します。 | Enabled |
ビルドまたはデプロイ | イメージ内の Wget | デプロイメントに wget が含まれている場合にアラートを出します。 | Disabled |
デプロイ | すべての機能を削除する | デプロイメントですべての機能が削除されない場合に警告します。 | Disabled |
デプロイ | Orchestrator Secrets ボリュームの不適切な使用 | デプロイメントで 'VOLUME /run/secrets' を含む Dockerfile が使用されている場合にアラートを出します。 | Enabled |
デプロイ | Kubernetes ダッシュボードがデプロイされました | Kubernetes ダッシュボードサービスが検出されたときにアラートを出します。 | Enabled |
デプロイ | 必須のアノテーション: Email | デプロイメントに 'email' アノテーションが欠落している場合にアラートを出します。 | Disabled |
デプロイ | 必要なアノテーション: Owner/Team | デプロイメントに 'owner' または 'team' アノテーションがない場合にアラートを出します。 | Disabled |
デプロイ | 必要なラベル: Owner/Team | デプロイメントに 'owner' または 'team' ベルがない場合にアラートを出します。 | Disabled |
ランタイム | Alpine Linux パッケージマネージャーの実行 | 実行時に Alpine Linux パッケージマネージャー (apk) が実行されたときにアラートを出します。 | Enabled |
ランタイム | chkconfig の実行 | 通常、コンテナーでは使用されない ckconfig サービスマネージャーの使用を検出します。 | Enabled |
ランタイム | コンパイラーツールの実行 | ソフトウェアをコンパイルするバイナリーファイルが実行時に実行されると警告します。 | Enabled |
ランタイム | Red Hat Package Manager の実行 | 実行時に Red Hat、Fedora、または CentOS パッケージマネージャープログラムが実行されたときにアラートを出します。 | Enabled |
ランタイム | シェル管理 | シェルを追加または削除するコマンドが実行されたときに警告します。 | Disabled |
ランタイム | systemctl の実行 | systemctl サービスマネージャーの使用状況を検出します。 | Enabled |
ランタイム | systemd の実行 | systemd サービスマネージャーの使用状況を検出します。 | Enabled |
6.3.5. デフォルトのセキュリティーポリシー
Red Hat Advanced Cluster Security for Kubernetes には、セキュリティーの問題を特定して、お使いの環境でセキュリティーのベストプラクティスを実行できるように、幅広く対応する、デフォルトポリシーのセットが含まれています。RHACS ポータルを使用して、デフォルトポリシーを表示したり、複製したり、複製されたデフォルトポリシーを編集したりできます。
デフォルトのポリシーは、policies as code 機能ではサポートされません。
デフォルトのポリシーを表示するには、以下を実行します。
-
RHACS ポータルで、Platform Configuration
Policy Management に移動します。
Policies ビューで、ポリシーを設定することもできます。
ポリシー情報は次のグループに分かれています。
- Policy: ポリシーの名前。
- Description: ポリシーのアラートの詳細な説明。
- Status: ポリシーの現在のステータス (Enabled または Disabled のいずれか)。
- Notifiers: ポリシーに設定された通知機能のリスト
- Severity: 必要な注意の程度について、クリティカル、高、中、低のいずれかのポリシーのランク付け。
- Lifecycle: このポリシーが適用されるコンテナーライフサイクル (ビルド、デプロイ、またはランタイム) のフェーズと、ポリシーが有効な場合に適用されるフェーズ。
- Policy categories: カテゴリーがリスト表示されます。これを使用して、ポリシーのカテゴリーを管理できます。デフォルトでは、すべてのカテゴリーがリスト表示されます。必要に応じて、カテゴリー名を使用してカテゴリーをフィルタリングできます。
デフォルトのポリシーを削除したり、デフォルトポリシーのポリシー条件を編集したりすることはできません。