ネットワークルール
ポリシー:ネットワークルール
SUSE® Securityは、ディスカバリーモードで実行中のアプリケーションからネットワークルールを自動的に作成します。ディスカバー、モニター、またはプロテクトのいずれのモードでも手動で追加することもできます。ルールはCLIまたはREST APIから追加または編集できます。
SUSE® Securityは、許可されたアプリケーション層接続と拒否された接続を管理するルールから成る宣言型ポリシーを使用します。SUSE® Securityは、IPアドレスとポートだけでなく、アプリケーションプロトコルに基づいて実際のネットワーク動作を判断することによって分析および保護します。これにより、SUSE® SecurityはIPアドレスとポートに関係なく、新しいアプリケーションコンテナを自動的に保護できます。
ネットワークルールは、アプリケーションの許可されたまたは拒否された動作を指定します。これらのルールは、サービスにとって正常な接続と違反を決定します。自動的に'`learned’ルールを削除することも、新しいルールをポリシーに追加することもできます。
|
ネットワークルールは、リストに表示される順序、上から下へと適用されます。ルールの順序を変更するには、移動したいルールを選択し、上部に表示される「移動先」ボックスを使用して、指定したルールの前または後の位置に選択したルールを移動できます。 |
|
ルールを編集(追加、削除、変更)すると、上部の保存ボタンをクリックするまで変更は適用されません。変更をデプロイせずにこのページを退出すると、変更内容は失われます。 |
新しいルールの追加
'`+’を使用して、右の列の別のルールの下にルールを追加するか、右下のボタンを使用して追加します。
-
ID
(オプション) 数字を入力してください。ネットワークルールは最初は低い順から高い順に並べられますが、リスト内でドラッグアンドドロップすることでルールの順序を変更できます。
-
From
接続が発生するグループを指定してください。入力を開始すると、SUSE® Securityは以前に発見されたグループや新しく定義されたグループに一致します。
-
宛先
接続が許可または拒否される宛先グループを指定してください。
-
アプリケーション
SUSE® Securityに対して許可または拒否するアプリケーションを入力してください。SUSE® Securityは深いアプリケーションの動作を理解し、ペイロードを分析してアプリケーションプロトコルを特定します。プロトコルには、HTTP、HTTPS、SSL、SSH、DNS、DNCP、NTP、TFTP、ECHO、RTSP、SIP、MySQL、Redis、Zookeeper、Cassandra、MongoDB、PostgresSQL、Kafka、Couchbase、ActiveMQ、ElasticSearch、RabbitMQ、Radius、VoltDB、Consul、Syslog、Etcd、Spark、Apache、Nginx、Jetty、NodeJS、Oracle、MSSQL、Memcached、gRPCが含まれます。
Any/Allを選択するには、このフィールドを空白のままにしてください。
-
ポート
このルールを制限する特定のポートがある場合は、ここに入力してください。ICMPトラフィックの場合は、icmpと入力してください。
Any/Allを選択するには、このフィールドを空白のままにしてください。
-
拒否/許可
このルールがこのタイプの接続を許可するか、拒否するかを示してください。
拒否が選択されている場合、SUSE® Securityは監視モードで違反としてログを記録し、保護モードでブロックします。デフォルトのアクションは、ルールが一致しない場合に接続を拒否することです(監視モードの場合のみ違反をログに記録します)。
|
変更を加えた場合は、デプロイ/更新を忘れないでください! |
出口制御:他のネットワーク上の信頼できる内部サービスへの接続を許可する
ルールをカスタマイズする一般的な使用例は、コンテナサービスがSUSE® Security管理クラスターのネットワーク外のネットワークに接続できるようにすることです。多くの場合、SUSE® Securityがこのネットワークを認識しないため、内部ネットワークであっても'`External’ネットワークとして分類されます。
コンテナが他の内部ネットワーク上のサービスに接続できるようにするには、まずグループを作成し、その後ルールを作成します。
-
グループを作成します。ポリシー→グループで新しいグループを追加するにはクリックします。グループに名前を付け(例:internal)、次にグループの基準を指定します。例えば、内部サービスのDNS名、IPアドレス、またはアドレス範囲を指定します。新しいグループを保存します。
-
ルールを作成します。ポリシー→ルールで、新しいルールを追加するにはクリックします。接続が発生するコンテナを表すグループを選択し、次に宛先グループ(例:内部)を選択します。特定のプロトコルやポートでルールをさらに絞り込むことができますが、空白のままにしておくこともできます。セレクタが許可(緑)に設定されていることを確認してください。
新しいルールを保存するために、必ずデプロイをクリックしてください。
最後に、ルールのリストを確認して、新しいルールが希望する順序と優先順位にあることを確認してください。ルールは上から下に適用されます。
X-FORWARDED-FORに基づくインバウンドIPポリシー
Kubernetesクラスターでは、アプリケーションはNodePort、LoadBalancer、またはIngressサービスによってクラスターの外部に公開できます。これらのサービスは通常、パケットのソースNAT(SNAT)を行う際にソースIPを置き換えます。元のソースIPがマスカレードされるため、これにより SUSE® Security が接続が実際には「外部」からであることを認識できなくなります。
元のソースIPアドレスを保持するために、ユーザーは公開サービスの「spec」セクションに次の行を追加する必要があります(外部向けのロードバランサーまたはIngressコントローラーの場合)。(参照: https://kubernetes.io/docs/tutorials/services/source-ip/))
"externalTrafficPolicy":"Local"
多くのLoadBalancerサービスおよびIngressコントローラーの実装では、HTTPリクエストヘッダーにX-FORWARDED-FOR行を追加して、実際のソースIPをバックエンドアプリケーションに伝えます。この製品はこのHTTPヘッダーのセットを認識し、元のソースIPを特定し、それに応じてポリシーを適用できます。
この改善により、一部の設定で予期しない問題が発生しました。上記の行が公開されたサービスに追加され、SUSE® Security ネットワークポリシーが内部プロキシ/Ingressサービスからのネットワーク接続を期待するように作成されている場合、接続がクラスターの「外部」からであると識別されるため、通常のアプリケーショントラフィックがアラートを引き起こしたり、アプリケーションが「保護」モードに置かれている場合はブロックされる可能性があります。
この機能を無効にするためのスイッチがあります。無効にすると、SUSE® Securityは接続が「外部」からのものであることをX-FORWARDED-FORヘッダーを使用して識別しないようになります。デフォルトではこれが有効になっており、ポリシーの適用にはX-FORWARDED-FORヘッダーが使用されます。これを無効にするには、設定→設定に移動し、「X-Forwarded-Forに基づくポリシーマッチ」設定を無効にします。
Istio ServiceEntry宛先に対する特別な適用
Egressネットワークポリシーの適用機能は、Istioで宣言されたServiceEntry宛先へのポッドのためにバージョン5.1.0で追加されました。通常、ServiceEntryはDNS名で参照される外部サービスが宛先IPに解決される方法を定義します。v5.1以前は、SUSE® SecurityはServiceEntryへの接続のルールを検出して適用することができなかったため、すべての接続は外部として分類されていました。5.1では、特定のServiceEntry宛先に対してルールを適用できるようになりました。許可ルールが存在しない場合、新たに可視化されたトラフィックに対して暗黙の違反が報告されます。これらのルールは、発見モードで学習され、自動的に作成されることがあります。このトラフィックを許可するには、グループを発見モードにするか、宛先アドレス(またはDNS名)を持つカスタムグループを作成し、この宛先に新しいネットワークルールを追加してトラフィックを許可します。
仮想ホストベースのネットワークポリシー
カスタムグループは、仮想ホストベースのアドレスグループをサポートできます。これにより、2つの異なるFQDNアドレスが同じIPアドレスに解決されるユースケースが可能になりますが、各FQDNに対して異なるルールを適用する必要があります。'`address=vh:xxx.yyy’を使用して、この保護を有効にするための新しいカスタムグループを'`vh:’インジケーターを使用して作成できます。ネットワークルールは、その後、仮想ホスト名(解決されたIPアドレスではなく)に基づいてカスタムグループを'`From’ソースとして使用し、仮想ホストに対して異なるルールを適用できます。
スプリットモードネットワーク保護
コンテナグループは、ネットワークルールとは異なるモードでプロセス/ファイルルールを持つことができます。詳しくはこちらをご参照ください。
ビルトインネットワーク脅威検出
SUSE® Securityは、保護モードに関係なく、特定のネットワーク攻撃を自動的に検出します。発見および監視モードでは、これらの脅威が警告され、通知 → セキュリティイベントに表示されます。保護モードでは、これらも警告され、ブロックされます。脅威検出に基づいて応答ルールを作成することもできます。
カスタマイズされたネットワーク脅威検出は、WAFルールセクションを通じて設定できますのでご注意ください。
SUSE® Security には、以下の脅威検出が含まれています:
-
Apache Struts RCE攻撃
-
Cipher Overflow攻撃
-
HTTPの負のコンテンツ長バッファオーバーフローを検出
-
MySQLアクセス拒否を検出
-
SSHバージョン1、2または3を検出
-
SSL TLS v1.0、v1.1を検出(有効にするために環境変数が必要です)
-
DNSバッファオーバーフロー攻撃
-
DNSフラッドDDoS攻撃
-
DNSヌルタイプ攻撃
-
DNSトンネリング攻撃
-
DNSゾーン転送攻撃
-
HTTP Slowloris DDoS攻撃
-
HTTPスマグリング攻撃
-
ICMPフラッド攻撃
-
ICMPトンネリング攻撃
-
IPティアドロップ攻撃
-
Kubernetes中間者攻撃(CVE-2020-8554による)
-
PINGデス攻撃
-
SQLインジェクション攻撃
-
SSLハートブリード攻撃
-
SYNフラッド攻撃
-
TCPスモールウィンドウ攻撃
-
TCPスプリットハンドシェイク攻撃
-
TCPスモールMSS攻撃