5.5. セキュリティーポリシーリファレンス
ポリシーカテゴリーを使用してポリシーを管理できます。セキュリティー基準は、カスタムポリシーの構築に使用できます。ポリシーのライフサイクルステージに応じて、さまざまな基準が利用できます。デフォルトのセキュリティーポリシー、つまりシステムにデフォルトで含まれるポリシーのリストが提供され、重大度別に整理されています。
5.5.1. ポリシーカテゴリー リンクのコピーリンクがクリップボードにコピーされました!
RHACS はポリシーカテゴリーを使用して、タイプおよび機能別にポリシーをグループ化します。これらのカテゴリーを使用して、ポリシーを整理および検索できます。
RHACS は、次のデフォルトポリシーカテゴリーを提供します。
- Anomalous Activity
- Cryptocurrency Mining
- DevOps Best Practices
- Docker Center for Internet Security (CIS)
- Kubernetes
- Kubernetes Events
- Network Tools
- Package Management
- Privileges
- Security Best Practices
- Supply Chain Security
- System Modification
- Vulnerability Management
- Zero Trust
Policy Management ウィンドウの Policy Categories タブを使用して、既存のカテゴリーを表示し、RHACS ポータルで独自のポリシーカテゴリーを作成できます。
5.5.2. ポリシー基準 リンクのコピーリンクがクリップボードにコピーされました!
RHACS でルールをセットアップし、ポリシーをトリガーするデータを設定できます。このデータは、ポリシー基準 または ポリシーフィールド とも呼ばれます。
以下の表に記載されている属性に基づいてポリシーを設定できます。
この表では、以下のようになります。
正規表現、AND、OR、および NOT 列は、特定の属性とともに正規表現およびその他の論理演算子を使用できるかどうかを示します。
-
Regex の
!(正規表現) は、リストされたフィールドに正規表現のみを使用できることを示します。 -
AND の
!、または OR は、属性に前述の論理演算子のみを使用できることを示します。 - Regex / NOT / AND, OR 列の「いいえ」は、属性がこれらのいずれもサポートしていないことを示します (正規表現、否定、論理演算子)。
-
Regex の
- RHACS バージョン 列は、属性を使用する必要がある Red Hat Advanced Cluster Security for Kubernetes のバージョンを示します。
論理組み合わせ演算子の
ANDおよびORは、以下の属性には使用できません。-
ブール値:
trueおよびfalse 最小値セマンティクス。たとえば、以下のようになります。
- 最小 RBAC パーミッション
- イメージ作成からの日数
-
ブール値:
NOT論理演算子は、以下の属性に使用できません。-
ブール値:
trueおよびfalse -
<、>、<=、>=演算子など、比較をすでに使用している数値。 複数の値を指定できる複合条件。たとえば、以下のようになります。
- Dockerfile 行: 命令と引数の両方が含まれます。
- 環境変数: 名前と値の両方で構成されます。
- Add Capabilities、Drop Capabilities、Days since image was created、Days since image was last scanned などの他の意味。
-
ブール値:
5.5.2.1. イメージ基準 リンクのコピーリンクがクリップボードにコピーされました!
- Image registry
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Image registry | イメージレジストリーの名前。 | イメージレジストリー | String |
正規表現、 |
Build、 |
| Image Name |
| イメージリモート | String |
正規表現、 |
Build、 |
| Image Tag | イメージの識別子。 | イメージタグ | String |
正規表現、 |
Build、 |
| Image Signature | イメージの署名を検証するために使用できる署名統合のリスト。署名がないか、提供された署名統合の少なくとも 1 つによって署名が検証できないイメージに関するアラートを作成します。 | Image Signature Verified By | すでに設定されているイメージ署名統合の有効な ID |
! |
Build、 |
- イメージの内容
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Image age | イメージの作成日からの最小日数。 | イメージの経過時間 | 整数 | いいえ |
Build、 |
| Image user | Dockerfile の USER ディレクティブと一致します。詳細は、https://docs.docker.com/engine/reference/builder/#user を参照してください。 | Image User | String |
正規表現、 |
Build、 |
| Dockerfile line | 命令と引数の両方を含む、Dockerfile の特定の行。 | Dockerfile Line | LABEL、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD のいずれか |
! 値 (AND、OR) の正規表現のみ |
Build、 |
| Image component | イメージに存在する特定のソフトウェアコンポーネントの名前とバージョン番号。 | Image Component |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
| Image OS |
イメージのベースオペレーティングシステムの名前およびバージョン番号。たとえば、 | Image OS | String |
正規表現、 |
Build、 |
| Require image label |
Docker イメージラベルが存在することを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがない場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。 | Required Image Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
| Disallow image label | 特定の Docker イメージラベルが使用されていないことを確認します。このポリシーは、デプロイメントのイメージに指定されたラベルがある場合にトリガーされます。キーおよび値フィールドの両方に正規表現を使用して、ラベルを照合できます。'Disallow Image Label policy' 条件は、Docker レジストリーと統合する場合にのみ適用されます。Docker ラベルの詳細は、Docker のドキュメント (https://docs.docker.com/config/labels-custom-metadata/) を参照してください。 | Disallowed Image Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
Build、 |
- イメージスキャン
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Image scan age | イメージが最後にスキャンされた後の最小日数。 | イメージのスキャン期間 | 整数 | いいえ |
Build、 |
| Image scan status | イメージがスキャンされたかどうかを確認します。 | スキャンされていないイメージ | ブール値 | いいえ |
Build、 |
| Common Vulnerability Scoring System (CVSS) |
CVSS: 指定の CVSS よりスコアが大きい ( | CVSS |
<、>、<=、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
Build、 |
| National Vulnerability Database (NVD) CVSS |
Scanner V4 が必要です。NVD CVSS: NVD によって報告された脆弱性を持ち、その CVSS スコアが、指定した CVSS に対して「より大きい | CVSS |
<、>、<=、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
Build、 |
| Severity | CVSS またはベンダーに基づく脆弱性の重大度。Low、Moderate、Important、Critical のいずれかです。 | Severity |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
Build、 |
| Fixable | この基準は、評価しているデプロイメント内のイメージに修正可能な CVE がある場合にのみ違反となります。 | Fixable | ブール値 | いいえ |
Build、 |
| Fixed by | イメージのフラグ付きの脆弱性を修正するパッケージのバージョン文字列。この基準は、CVE 基準などを使用して脆弱性を特定する他の基準に加えて使用される場合があります。 | Fixed By | String |
正規表現、 |
Build、 |
| CVE | Common Vulnerabilities and Exposures。特定の CVE 番号で使用。 | CVE | String |
正規表現、 |
Build、 |
| Days since CVE was published | この基準は、RHACS が最初に公開されてから指定された日数を超えた場合にのみ違反となります。 | CVE が初めて公開されてからの日数 | Integer | いいえ |
Build、 |
| Days since CVE was first discovered in image | この基準は、RHACS が特定のイメージ内で CVE を検出してから、指定された日数を超えた場合にのみ違反となります。 | Days Since CVE Was First Discovered In Image | 整数 | いいえ |
Build、 |
| Days since CVE was first discovered in system | この基準は、RHACS が監視するすべてのクラスター内にデプロイされた全イメージから CVE を検出してから、指定された日数を超えた場合にのみ違反となります。 | Days Since CVE Was First Discovered In System | 整数 | いいえ |
Build、 |
5.5.2.2. ワークロード設定基準 リンクのコピーリンクがクリップボードにコピーされました!
- コンテナーの設定
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Environment variable |
名前または値で環境変数を確認します。環境変数属性を含むポリシーを作成するときに、ポリシーを照合する環境変数のタイプを選択できます。たとえば、デプロイメント YAML で raw 値を直接指定したり、config map、シークレット、フィールド、リソース要求や制限から値への参照を指定したりできます。デプロイメント YAML で直接指定された raw 値以外のタイプの場合、ポリシールールの対応する | Environment Variable |
RAW=key=value により、デプロイメント YAML で直接指定された環境変数を、特定のキーおよび値と照合します。キーのみを照合する場合は、
環境変数が設定 YAML で定義されていない場合は、
上記のリストでは、API オブジェクトのラベルを指定してから、括弧内でユーザーインターフェイスのラベルを指定しています。 |
! キーと値の正規表現 (RAW を使用している場合) |
デプロイ、 |
| Container CPU Request | 特定のリソース用に予約されているコア数を確認します。 | Container CPU Request |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: | AND, OR |
デプロイ、 |
| Container CPU limit | リソースが使用できるコアの最大数を確認します。 | Container CPU Limit | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
| Container Memory Request | 要求される MB 数 (小数値を含む)。 | Container Memory Request | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
| Container Memory Limit | リソースが使用できるメモリーの最大量を確認します。 | Container Memory Limit | (コンテナーの CPU 要求と同じ) | AND, OR |
デプロイ、 |
| Privileged container |
デプロイメントが特権モードで設定されているかどうかを確認します。この条件は、各 Pod セキュリティーコンテキスト 内の | Privileged Container |
ブール値: 各 | いいえ |
デプロイ、 |
| Root filesystem writeability |
デプロイメントが | Read-Only Root Filesystem |
ブール値: 各 | いいえ |
デプロイ、 |
| Seccomp Profile Type |
デプロイメントに定義された | Seccomp Profile Type |
以下のいずれかになります。
UNCONFINED | いいえ |
デプロイ、 |
| Privilege escalation | デプロイメントでコンテナープロセスが親プロセスよりも多くの権限を取得できる場合にアラートを出します。 | Allow Privilege Escalation | ブール値 | いいえ |
デプロイ、 |
| Drop Capabilities |
コンテナーからドロップする必要がある Linux 機能。指定された機能がドロップされない場合にアラートを発行します。たとえば、 |
Drop Capabilities |
以下のいずれかになります。
ALL | AND |
デプロイ、 |
| Add Capabilities |
Raw パケットを送信したり、ファイルパーミッションをオーバーライドする機能など、コンテナーには追加できない Linux 機能。指定された機能が追加されたときにアラートを出します。たとえば、 | Add Capabilities |
AUDIT_CONTROL | OR |
デプロイ、 |
| Container Name | コンテナーの名前。 | Container Name | String |
正規表現、 |
デプロイ、 |
| AppArmor Profile | コンテナーで使用されるアプリケーション Armor ("AppArmor") プロファイル。 | AppArmor Profile | String |
正規表現、 |
デプロイ、 |
| Liveness Probe | コンテナーが liveness プローブを定義するかどうか。 | Liveness Probe | ブール値 | いいえ |
デプロイ、 |
| Readiness Probe | コンテナーが readiness プローブを定義するかどうか。 | Readiness Probe | ブール値 | いいえ |
デプロイ、 |
- デプロイメントメタデータ
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Disallowed annotation | 指定された環境の Kubernetes リソースには存在できないアノテーション。 | Disallowed Annotation |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
| Required label | Kubernetes で必要なラベルが存在するかどうかを確認します。 | Required Label |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
| Required annotation | Kubernetes に必要なアノテーションの有無を確認します。 | Required Annotation |
key=value
value はオプションです。 値が見つからない場合は、"key=" の形式にする必要があります。 |
正規表現、 |
デプロイ、 |
| Runtime class |
デプロイメントの | Runtime Class | String |
正規表現、 |
デプロイ、 |
| Host network |
| Host Network | ブール値 | いいえ |
デプロイ、 |
| Host PID | Process ID (PID) namespace がコンテナーとホスト間で分離されているかどうかを確認します。これにより、異なる PID namespace 内のプロセスが同じ PID を持つことができます。 | Host PID | ブール値 | いいえ |
デプロイ、 |
| Host IPC | ホスト上の IPC (POSIX/SysV IPC) namespace (名前付き共有メモリーセグメント、セマフォ、メッセージキューを分離する namespace) が、コンテナーと共有されているかどうかを確認します。 | Host IPC | ブール値 | いいえ |
デプロイ、 |
| Namespace | デプロイメントが属する namespace の名前。 | Namespace | String |
正規表現、 |
デプロイ、 |
| Replicas |
デプロイメントレプリカの数。 | Replicas |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: |
NOT、 |
デプロイ、 |
- ストレージ
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Volume name | ストレージの名前。 | Volume Name | String |
正規表現、 |
デプロイ、 |
| Volume source path | ホスト上のボリュームのパス。 | Volume Source | String |
正規表現、 |
デプロイ、 |
| Volume destination path | ボリュームがマウントされるパス。 | Volume Destination | String |
正規表現、 |
デプロイ、 |
| Volume type |
ボリュームがプロビジョニングされるフォームを示します。たとえば、 | Volume Type | String |
正規表現、 |
デプロイ、 |
| Mounted volume writability | 書き込み可能な状態でマウントされるボリューム。 | Writable Mounted Volume | ブール値 | いいえ |
デプロイ、 |
| Mount propagation |
コンテナーが | Mount Propagation |
以下のいずれかになります。
NONE |
NOT、 |
デプロイ、 |
| Host mount writability | リソースが、書き込み権限のあるホストにパスをマウントしている。 | Writable Host Mount | ブール値 | いいえ |
デプロイ、 |
| セクション: ネットワーク | |||||
| Exposed port protocol | 公開されたポートによって使用される TCP や UDP などのプロトコル。 | Exposed Port Protocol | String |
正規表現、 |
デプロイ、 |
| Exposed node port | デプロイメントによって外部に公開されるポート番号。 | Exposed Node Port | (公開ポートと同じ) |
NOT、 |
デプロイ、 |
| Exposed port | デプロイメントによって公開されるポート番号。 | Exposed Port |
<、>、⇐、>=、または何もなし (等しいことを意味します)
例: |
NOT、 |
デプロイ、 |
| Port exposure method | ロードバランサーやノードポートなど、サービスの公開方法。 | Port Exposure Method |
以下のいずれかになります。
Route |
NOT、 |
デプロイ、 |
| Ingress network policy | イングレス Kubernetes ネットワークポリシーの有無を確認します。 | Has Ingress Network Policy | ブール値 |
正規表現、 |
デプロイ、 |
| Egress network policy | エグレス Kubernetes ネットワークポリシーの有無を確認します。 | Has Egress Network Policy | ブール値 |
正規表現、 |
デプロイ、 |
- アクセス制御
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Service account | サービスアカウントの名前 | Service Account | String |
正規表現、 |
デプロイ、 |
| Automount service account token | デプロイメント設定がサービスアカウントトークンを自動的にマウントするかどうかを確認します。 | Automount Service Account Token | ブール値 | いいえ |
デプロイ、 |
| Minimum RBAC permissions |
デプロイメントの Kubernetes サービスアカウントに、指定のレベル以上 ( | Minimum RBAC Permissions |
以下のいずれかになります。
DEFAULT | NOT |
デプロイ、 |
5.5.2.3. ワークロードアクティビティー基準 リンクのコピーリンクがクリップボードにコピーされました!
- プロセスアクティビティー
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Process Name | デプロイメントで実行されるプロセスの名前。 | Process Name | String |
正規表現、 | ランタイム のみ - プロセス |
| Process ancestor | デプロイメントで実行されるプロセスの親プロセスの名前。 | Process Ancestor | String |
正規表現、 | ランタイム のみ - プロセス |
| Process arguments | デプロイメントで実行されるプロセスのコマンド引数。 | Process Arguments | String |
正規表現、 | ランタイム のみ - プロセス |
| Process UID | デプロイメントで実行されるプロセスの UNIX ユーザー ID。 | Process UID | 整数 |
NOT、 | ランタイム のみ - プロセス |
- ベースラインからの逸脱
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Unexpected network flow detected | 検出されたネットワークトラフィックがデプロイメントのネットワークベースラインの一部であるかどうかを確認します。 | Unexpected Network Flow Detected | ブール値 | いいえ | Runtime ONLY - Network |
| Unexpected process executed | デプロイメントにあるロックされたプロセスベースラインで、プロセス実行がリスト表示されていないデプロイメントを確認します。 | Unexpected Process Executed | ブール値 | いいえ | ランタイム のみ - プロセス |
- ユーザーが発行したコンテナーコマンド
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Kubernetes action |
| Kubernetes Resource |
以下のいずれかになります。
PODS_EXEC |
! | Runtime ONLY - Kubernetes Events |
| Kubernetes API verb | 使用しないでください。ランタイムポリシーでは無効です。 | Kubernetes API Verb | 該当なし | 該当なし | 該当なし |
| Kubernetes user name | リソースにアクセスしたユーザーの名前。 | Kubernetes User Name | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
| Kubernetes user group | リソースにアクセスしたユーザーが属するグループの名前。 | Kubernetes User Groups | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
5.5.2.4. 監査ログ: Kubernetes リソース操作 リンクのコピーリンクがクリップボードにコピーされました!
- リソース操作 (必須)
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Kubernetes API verb |
| Kubernetes API Verb |
以下のいずれかになります。
CREATE |
! | Runtime ONLY - Audit Log |
| Kubernetes Resource Type | アクセスされた Kubernetes リソースのタイプ。 | Kubernetes Resource |
以下のいずれかになります。
CONFIGMAPS |
! | Runtime ONLY - Audit Log |
- resource 属性
| 属性 | 説明 | JSON 属性 | 許可される値 | Regex、NOT、AND, OR | フェーズ |
|---|---|---|---|---|---|
| Kubernetes resource name | アクセスされた Kubernetes リソースの名前。 | Kubernetes Resource Name | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Audit Log |
| Kubernetes user name | リソースにアクセスしたユーザーの名前。 | Kubernetes User Name | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
| Kubernetes user groups | リソースにアクセスしたユーザーが属するグループの名前。 | Kubernetes User Groups | ハイフン (-) とコロン (:) のみを含む英数字 |
正規表現、 | Runtime ONLY - Kubernetes Events |
| User agent |
ユーザーがリソースへのアクセスに使用したユーザーエージェント。例: | User Agent | String |
正規表現、 | Runtime ONLY - Audit Log |
| Source IP address | ユーザーがリソースにアクセスした IP アドレス。 | Source IP Address | IPV4 または IPV6 アドレス |
正規表現、 | Runtime ONLY - Audit Log |
| Is impersonated user | サービスアカウントまたは他のアカウントで権限を偽装ユーザーによって要求が行われたかどうかを確認します。 | Is Impersonated User | ブール値 | いいえ | Runtime ONLY - Audit Log |
5.5.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 の重大度レベルの詳細は、重大度のレベル を参照してください。
5.5.3.1. 重大度のセキュリティーポリシー リンクのコピーリンクがクリップボードにコピーされました!
以下の表に、Red Hat Advanced Cluster Security for Kubernetes のデフォルトの重大度のセキュリティーポリシーを示します。ポリシーはライフサイクルのステージ別に整理されています。
| ライフサイクルステージ | Name | 説明 | ステータス |
|---|---|---|---|
| ビルドまたはデプロイ | 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 |
5.5.3.2. 重大度の高いセキュリティーポリシー リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Red Hat Advanced Cluster Security for Kubernetes の重大度の高いデフォルトのセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
| ライフサイクルステージ | Name | 説明 | ステータス |
|---|---|---|---|
| ビルドまたはデプロイ | 修正可能な 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 |
| ビルドまたはデプロイ | Red Hat イメージは Red Hat Release Key で署名されている必要がある | Red Hat イメージが公式の Red Hat 製品署名キー「Release Key 3」 によって署名されていない場合にアラートを出します。これらのアラートは、次のレジストリーおよびリモートからのイメージに適用されます。
| Disabled |
| デプロイ | 緊急デプロイメントのアノテーション | デプロイメントで 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 |
5.5.3.3. 重大度が中程度のセキュリティーポリシー リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、Red Hat Advanced Cluster Security for Kubernetes のデフォルトの重大度が中程度のセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
| ライフサイクルステージ | Name | 説明 | ステータス |
|---|---|---|---|
| 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 |
5.5.3.4. 重大度の低いセキュリティーポリシー リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、重要度が低い Red Hat Advanced Cluster Security for Kubernetes のデフォルトのセキュリティーポリシーを示しています。ポリシーはライフサイクルのステージ別に整理されています。
| ライフサイクルステージ | Name | 説明 | ステータス |
|---|---|---|---|
| ビルドまたはデプロイ | イメージの 90 日間経過 | デプロイメントが 90 日間更新されていない場合にアラートを出します。 | Enabled |
| ビルドまたはデプロイ | COPY の代わりに使用される 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 が指定されている | デプロイでコマンドに '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 |