ポリシーリスクを可視化。自然な言葉でポリシーに関する疑問を解決します。 デモを申し込む →

Published:

ファイアウォールポリシーの基本 – ステルスルールを検証する方法

by FireMon

更新 – 2017年1月

ファイアウォールのステルスルールとは、デバイスの管理に必要な範囲を超えたファイアウォールへのアクセスを拒否する、ポリシーの上位に配置される明示的なルールです。次のように定義してください。

Source = ANY

Destination = [self]

Service / Application = ANY

Action = DROP

Logging = Enabled

これは、ファイアウォールポリシーではなくインターフェイスレベルの設定で管理アクセスを定義する Juniper Netscreen などの一部のファイアウォールには、そのままは当てはまりません。ただし、そうした場合でも、監査人が慣例としてステルスルールを求めることがあります。

ステルスルールを定義する理由

ステルスルールは、ポリシーの後半で定義されるルールによってファイアウォールへのアクセスが意図せず許可されることを防ぎます。たとえば、ファイアウォールが Web-DMZ ゾーンにインターフェイスを持っているとします。Web 開発チームから、Web-DMZ 内のすべてのシステムへの SSH アクセスを求める申請が出されるかもしれません。深く考えなければ、Web-DMZ に定義されたシステムの唯一の所有者が同チームであるなら、それらすべてのサーバーへの SSH アクセスが必要というのは妥当に思えます。しかし、ステルスルールが適切に定義されていない場合、SSH アクセスは Web-DMZ 内のサーバーだけでなく、ファイアウォール自体に対しても許可されてしまいます。これが不適切であることは明らかですが、ファイアウォール管理者に何年も気づかれないまま放置されるおそれがあります。

この単純ながら重大な誤りを避けるため、ファイアウォールポリシーにはステルスルールを定義すべきです。

ステルスルールの有無を確認する方法

この手順は非常に単純です。すべてのポリシーを確認し、必要な管理用ルールの後、ポリシーの上位にファイアウォールへのすべてのトラフィックを拒否するルール(Any、Self、Any、Drop、Log)が存在することを検証してください。

FireMon による支援

FireMon は、各ポリシーにステルスルールが存在することを検証するための事前定義済みコントロールを提供します。このコントロールは事前定義済みアセスメントに含まれており、ユーザー定義のアセスメントに追加することもできます。

もう一つの強力な方法は、SiCL を使ってご自身でルールを検索することです。この場合、検索は非常に単純です。ポリシーの上位に、ファイアウォールへのすべてのトラフィックを破棄する明示的なルールが存在することを検証します。事前定義済み変数 self を使用すれば、すべてのデバイスに適用できる SiCL クエリを作成できます。この検索の SiCL 構文は次のとおりです。

rule{ POSITION < 5 and source.any=true and destination is superset of self and SERVICE.any=true and action=’DROP’}

上記の例では、そのルールがポリシーの最初の 4 つのルールのいずれかであること、および宛先がファイアウォールのアドレス空間を完全に包含すること(destination is superset of self)を指定しました。Superset には、等しい場合とより大きい場合が含まれます。Self はファイアウォールオブジェクトそのものです。

ファイアウォールポリシーの基本:ステルスルールの検証 | FireMon