グループ
ポリシー:グループ
このメニューは、セキュリティルールを表示および管理し、ルールで使用するためのグループをカスタマイズするための重要なエリアです。また、グループのモードを発見、監視、保護の間で切り替えるためにも使用されます。コンテナグループは、ネットワークルールとは異なるモードでプロセス/ファイルルールを持つことができます。詳細はこちらをご覧ください。カスタムコンプライアンスチェック、ネットワークルール、プロセスおよびファイルアクセスルール、DLP/WAF検出の説明については、以下の各セクションをご覧ください。注意:ネットワークルールは、任意のグループのグループメニューで表示できますが、ネットワークルールメニューで別々に編集する必要があります。
SUSE® Securityは、実行中のアプリケーションから自動的にグループを作成します。これらのグループは、プレフィックス’nv.'で始まります。CRDまたはREST APIを使用して手動で追加することもでき、発見、監視、または保護のいずれかのモードで作成できます。ネットワークおよびレスポンスルールは、これらのグループ定義を必要とします。自動的に作成されたグループ('nv’で始まる’学習済み’グループ)については、SUSE® Securityがネットワークおよびプロセスルールを学習し、発見モードで追加します。カスタムグループは自動的にルールを学習してポピュレートしません。注意:'nv.'グループは、プロセス/ファイル保護のためにデフォルトでゼロドリフトが有効になっています。

コンテナのグループを表示し、各グループにルールを適用するのは便利です。SUSE® Securityは、コンテナイメージに基づいてグループのリストを作成します。例えば、1つのWordpressイメージから起動されたすべてのコンテナは、同じグループに属します。ルールは自動的に作成され、コンテナのグループに適用されます。
グループ画面には、右上に’Scorable’アイコンが表示され、学習したグループを選択し、Scorableチェックボックスを有効または無効にできます。これにより、ダッシュボードでセキュリティリスクスコアを計算するために使用されるコンテナが制御されます。詳細については、セキュリティリスクスコアの改善をご覧ください。
グループ画面は、「コードとしてのセキュリティポリシー」のためのCRD yamlファイルをインポートおよびエクスポートできる場所でもあります。1つ以上のグループを選択し、「グループポリシーをエクスポート」ボタンをクリックしてyamlファイルをダウンロードします。CRDの使用方法についての詳細は、CRDセクションを参照してください。重要:選択されたグループおよびネットワークルールを通じてリンクされたすべてのグループがエクスポートされます(つまり、そのグループと、ホワイトリストネットワークルールを介して接続されている他のすべてのグループ)。
未使用グループの自動削除
学習したグループ(予約済みまたはカスタムグループではない)は、グループ内にメンバー(コンテナ)がいない場合にSUSE® Securityによって自動的に削除される可能性があります。この期間は、設定→で構成可能です。
ホスト保護 - 'ノード’グループ
SUSE® Securityは、クラスター内の各ノード(ホスト)を表す「ノード」と呼ばれるグループを自動的に作成します。SUSE® Securityは、疑わしいプロセス(ポートスキャン、リバースシェルなど)や特権昇格に対してホストの基本的な自動監視を提供します。さらに、SUSE® Securityは、発見モード中に各ノードのプロセスの動作を学習し、それらのプロセスをホワイトリストに登録します。これは、コンテナプロセスと同様に行われます。 「ローカル」(学習した)プロセスルールリストは、発見モード中のクラスター内のすべてのノードからのすべてのプロセスの組み合わせです。
ノードは、モニターまたは保護モードに設定でき、SUSE® Securityはモニターモード中にプロセスが開始されると警告し、保護モード中にそのプロセスをブロックします。

プロセスプロファイルルールでホスト保護を有効にするには、「ノード」グループを選択し、ノード上の学習したプロセスを確認します。必要に応じて、プロセスルールを追加、削除、または編集してカスタマイズします。次に、モードをモニターまたは保護に切り替えます。
|
ノードのネットワークルールに表示されるルールのネットワーク接続違反は、保護モードでもブロックされることはありません。ノードの保護モードでは、プロセス違反のみがブロックされます。 |
カスタムグループ
グループは、グループの基準を入力することによって手動で追加できます。注意:カスタム作成されたグループには保護モードがありません。これは、異なる基盤グループからのコンテナを含む可能性があり、それぞれが異なるモードにあるため、動作についての混乱を引き起こす可能性があるためです。
グループは次の方法で作成できます:
-
画像ファイル
イメージ名でコンテナを選択します。例:image=wordpress、image@redis
-
ノード
実行中のノードでコンテナを選択します。例:node=ip-12-34-56-78.us-west-2
-
個別のコンテナ
インスタンス名でコンテナを選択します。例:container=nodejs_1、container@nodejs
-
サービス
サービスでコンテナを選択します。コンテナがDocker Composeによってデプロイされる場合、そのサービスタグの値は「project_name:service_name」になります。コンテナがDocker Swarmモードサービスによってデプロイされる場合、そのサービスタグの値はSwarmサービス名になります。
-
ラベル
ラベルでコンテナを選択します。例:com.docker.compose.project=wordpress、location@us-west
-
アドレス
DNS名またはIPアドレス範囲でグループを作成します。例:address=www.google.com、address=10.1.0.1、address=10.1.0.0/24、address=10.1.0.1-10.1.0.25。DNS名は解決可能な任意の名前にできます。アドレス基準は!=演算子を受け付けません。特別な仮想ホスト「vh」アドレスグループについては、以下を参照してください。
グループは、他の基準と一緒に使用できない「アドレス」タイプを除いて、混合基準タイプで作成できます。混合基準は、基準間の'`AND’操作を強制します。例えば、label service_type=data AND image=mysql。1つまたは複数の基準の複数のエントリはORとして扱われます。例えば、address=google.com OR address=yahoo.com。注意:Ingress/Egress接続の分析を支援するために、ダッシュボードの→ Ingress/Egress詳細セクションから、IngressおよびEgress IPのリストをエクスポートレポートとしてダウンロードできます。
イメージ、ノード、コンテナ、サービス、およびラベルの基準に対して部分一致がサポートされています。例えば、image@redisは、イメージ名に’redis’という部分文字列を含むコンテナを選択します。image^redisは、イメージ名が’redis’で始まるコンテナを選択します。
内部IPやサブネットに一致させるためにアドレス基準を使用することは推奨されません。特に、エンフォーサーによって保護されているものについては、イメージ、サービス、またはラベルなどのメタデータを使用することが推奨されます。アドレスグループの典型的な使用ケースは、管理されたコンテナと外部IPサブネット間のポリシーを定義することです。例えば、インターネット上で実行されているサービスや別のデータセンターです。アドレスグループにはグループメンバーがありません。
ワイルドカード''は基準で使用できます。例えば、'address=.google.com’のように。より柔軟な一致を実現するために、チルダ'~'を使用して正規表現の一致が望ましいことを示します。例えば、ラベルポリシーに対して 'policy~public.*-ext1' と一致させる場合の例です。
|
基準の後に等号'='を使用している特殊文字は、正しく一致しない場合があります。例えば、ドット'.'です。'policy=public.'は正しく一致せず、正規表現の一致を使用する必要があります。例えば、'policy~public.'のように。 |
新しいグループを保存した後、SUSE® Securityはそのグループのメンバーを表示します。これらのグループを使用してルールを作成できます。
仮想ホスト('vh')ベースのネットワークポリシー
カスタムグループは、仮想ホストベースのアドレスグループをサポートできます。これにより、2つの異なるFQDNアドレスが同じIPアドレスに解決されますが、各FQDNに対して異なるルールが適用されるユースケースが可能になります。この保護を有効にするために、'`vh:’インジケーターを使用して、'`address=vh:xxx.yyy’を含む新しいカスタムグループを作成できます。ネットワークルールは、仮想ホスト名(解決されたIPアドレスの代わりに)に基づいてカスタムグループを'`From’ソースとして使用し、仮想ホストに対して異なるルールを適用できます。
カスタムグループの例
一般的な基準
-
すべてのコンテナを選択するには(以下のいずれかの例が機能します)
container=∗ service=∗
-
ネームスペース 'default' のすべてのコンテナを選択するには(v2.2以降でネームスペースがサポートされています)
namespace=default
-
サービス名が 'nginx' で始まるすべてのコンテナを選択するには
service=nginx∗
-
サービス名に 'etcd' を含むすべてのコンテナを選択するには
service=∗etcd∗
-
ネームスペース 'apache1' または 'apache2' のすべてのコンテナを選択するには(各エントリの後にエンターを押してください)
namespace=apache1 namespace=apache2
-
ネームスペース 'apache1' および 'apache2' に含まれないすべてのコンテナを選択するには(各エントリの後にエンターを押してください)
namespace!=apache1 namespace!=apache2
-
ネームスペース 'apache1~9' のすべてのコンテナを選択するには
namespace~apache[1-9]