SNORTシグネチャー対応
SNORTは、オープンソースのネットワーク侵入検知システム(NIDS)として広く普及しています。SNORTの詳細については、snort.orgを参照してください。
チェック・ポイントは、SNORT ルール 通信セッションに対して指定されたアクションが実行されるようにする、ルールベース内のトラフィックパラメータおよびその他の条件のセット。の使用を GUI と SmartDomain Manager API の両方のオプションでサポートしています。
SNORTルールをインポートすると、そのルールはIPS さまざまなタイプのリスクについてパケットとデータを検査および分析するセキュリティゲートウェイ上のCheck Point Software Blade(侵入防止システム)。データベースの一部となります。

ステップ |
手順 |
---|---|
1 |
既存のSNORTルールをファイルからインポートすることができます。 |
2 |
重要と変換後。
|
3 |
既存のSNORTルールを削除します。 |
SNORT保護規則をSecurity Management Serverへインポート
SNORTルールファイルがあることを確認してください。SNORTのルールを保持するもので、通常、.rules
という拡張子を持っています。
マルチドメインセキュリティ管理環境では、SNORTルールをセキュリティ管理サーバにインポートしてください。次に、ドメイン管理サーバにグローバルポリシーを割り当てます。これにより、新しいSNORT保護機能がDomain管理サーバにダウンロードされます。

ステップ |
手順 |
||
---|---|---|---|
1 |
SmartConsole |
||
2 |
SmartConsoleで、「セキュリティポリシー |
||
3 |
最下部のセクションCustom Policy Tools で、IPS Protections をクリックします。 |
||
4 |
上部のツールバーから、Actions > Snort Protections > Import Snort rules をクリックします。 |
||
5 |
SNORT ルールが記述されたファイルを選択し、「Open」をクリックしてください。 このツールは、ルールをチェック・ポイントの構文に変換し、プロテクション・データベースを更新します。
|
||
6 |
SmartConsoleセッションを公開する。 |
||
7 |
該当するセキュリティゲートウェイまたはセキュリティクラスタにThreat Preventionポリシーをインストールします。 |
特定のSNORTプロテクションのプロファイル設定を上書きするには、「SNORTSNORT保護規定への対応アクション」を参照してください。
Security Management ServerからSNORT保護規則を削除する。

ステップ |
手順 |
---|---|
1 |
SmartConsoleで、該当するセキュリティゲートウェイまたはセキュリティクラスタを管理するセキュリティ管理サーバに接続します。 |
2 |
左側のナビゲーションパネルから、Security Policies > Threat Prevention> Custom Policy にアクセスします。 |
3 |
最下部のセクションCustom Policy Tools で、IPS Protections に移動してください。 |
4 |
上部のツールバーから、Actions > Snort protections > Delete all snort protections をクリックします。 |
5 |
SmartConsoleセッションを公開する。 |
6 |
該当するセキュリティゲートウェイまたはセキュリティクラスタにThreat Preventionポリシーをインストールします。 |
SNORT保護規則をマルチドメインサーバにインポートする
SNORTルールファイルがあることを確認してください。SNORTのルールを保持するもので、通常、.rules
という拡張子を持っています。
マルチドメインセキュリティ管理環境では、マルチドメインサーバにSNORTルールをインポートしてください。次に、ドメイン管理サーバにグローバルポリシーを割り当てます。これにより、新しいSNORT保護機能がDomain管理サーバにダウンロードされます。

ステップ |
手順 |
||
---|---|---|---|
1 |
マルチドメインサーバにSmartConsoleで接続すると、MDS のコンテキストになります。 |
||
2 |
左側のナビゲーションパネルでMulti-Domain > ドメインをクリックします。 |
||
3 |
Global Domain を右クリックし、Connect to domain を選択します。 |
||
4 |
左側のナビゲーションパネルでSecurity Policiesをクリックします。 |
||
5 |
該当するグローバルポリシーを開きます。 |
||
6 |
トップセクションで、Threat Prevention> Custom Policy にアクセスします。 |
||
7 |
最下部のセクションCustom Policy Tools で、IPS Protections をクリックします。 |
||
8 |
上部のツールバーから、Actions > Snort Protections > Import Snort rules をクリックします。 |
||
9 |
SNORT ルールを含む必要なファイルを選択し、Open をクリックしてください。 このツールは、ルールをチェック・ポイントの構文に変換し、プロテクション・データベースを更新します。
|
||
10 |
SmartConsoleセッションを公開する。 |
||
11 |
グローバルドメインに接続されているSmartConsoleを閉じます。 |
||
12 |
左側のナビゲーションパネルでMulti Domain > Global Assignmentsをクリックします。 |
||
13 |
グローバルポリシーをローカルドメインに再割り当てします。 |
||
14 |
SmartConsoleで、該当するセキュリティゲートウェイまたはセキュリティクラスタを管理するドメイン管理サーバに接続します。 |
||
2346 |
該当するセキュリティゲートウェイまたはセキュリティクラスタにThreat Preventionポリシーをインストールします。 |
特定のSNORT保護に対するプロファイル設定を上書きするには、「SNORT保護規定への対応」)を参照してください。
マルチドメインサーバからSNORT保護規則を削除する

ステップ |
手順 |
---|---|
1 |
マルチドメインサーバにSmartConsoleで接続すると、MDS のコンテキストになります。 |
2 |
左側のナビゲーションパネルで Multi Domain > ドメインをクリックします。 |
3 |
Global Domainを右クリックして、Collect to domain を選択します。 |
4 |
左側のナビゲーションパネルでSecurity Policiesをクリックします。 |
5 |
該当するグローバルポリシーを開きます。 |
6 |
一番上のThreat Preventionセクションで、Policyをクリックします。 |
7 |
最下部のセクションCustom Policy Tools で、IPS Protections をクリックします。 |
8 |
上部のツールバーから、Actions > Snort Protections > Delete all Snort protections をクリックします。 |
9 |
セッションを公開する。 |
10 |
グローバルドメインに接続されているSmartConsoleを閉じます。 |
11 |
左側のナビゲーションパネルでMulti Domain > Global Assignmentsをクリックします。 |
12 |
グローバルポリシーをローカルドメインに再割り当てします。 |
13 |
SmartConsoleで、該当するセキュリティゲートウェイまたはセキュリティクラスタを管理する該当するマルチドメインサーバに接続します。 |
14 |
該当するセキュリティゲートウェイまたはセキュリティクラスタにThreat Prevention Policyをインストールします。 |
SNORT保護規定への対応
Security Gateway は、Security Gateway にインストールされているプロファイルに基づいて SNORT の保護ルールを適用する。たとえば、Security GatewayにインストールされているプロファイルがOptimized の場合、デフォルトではSNORT保護ルールは適用されません。これは、そのパフォーマンス影響がHigh であり、Optimized プロファイルに定義されている許容パフォーマンス影響がMedium またはそれ以下であることが理由です。

|
注:ここでの画像は、上記の例に準じています。別のプロファイルを使用している場合、または別のアクションを実行したい場合は、手順2または4を適宜変更してください。 |
ステップ |
手順 |
---|---|
1 |
IPS Protections で、SNORT プロテクションを右クリックし、Edit を選択します。 注- SNORTプロテクション名は、"Snort imported"で始まります。 |
2 |
プロファイルを右クリックし、Edit を選択します。 |
3 |
Main Action 領域で、Override with を選択します。 |
4 |
ドロップダウンメニューから、必要なアクションを選択します。 |
5 |
OKをクリックします。 |
6 |
Closeをクリックします。。 |
7 |
SmartConsoleセッションを公開する。 |
8 |
Threat Preventionポリシーをインストールします。 |
SNORT保護ルールの追加と削除の代替方法
SNORT保護ルールの追加と削除は、管理サーバ上でこれらの代替方法を使用します。
-
mgmt_cli
道具 -
SmartConsole CLI
-
POST リクエスト
SNORTルールの追加
該当するコマンドは、2つの引数を受け取ります。
-
package-format "は、常に "snort "という文字列を取ります。
-
「パッケージパス: プロテクションのパッケージへのパスを指定します。
コマンドが返される。
成功した場合。 |
0 |
失敗時。 |
1 と、失敗時のエラーを記述するいくつかのパラメータを含む |

-
mgmt_cli
ツールから、次のコマンドを実行します。mgmt_cli add threat-protections package-path "/path/to/community.rules" package-format "snort" --version 1.2 --format json
-
SmartConsole CLIから、次のコマンドを実行します。
add threat-protections package-path "/path/to/community.rules" package-format "snort" --version 1.2 --format json
-
Gaia Clishから、次のコマンドを実行します。
mgmt add threat-protections package-path "/path/to/community.rules" package-format "snort" --version 1.2 --format json
注---format json の部分は省略可能です。デフォルトでは、出力はプレーンテキストで表示されます。
-
POST リクエストメソッド
ポストリクエストは必須です。
-
以下のURLにアクセスしてください。
https://<ip-address-of mgmt-server>:<port>/web_api/v1.2/add-threat-protections
-
リクエストヘッダContent-Type にapplication/json を、X-chkp-sid にログインリクエストで返された一意のセッション識別子を設定させる。
-
リクエストボディにContent-Type引数package-format とpackage-path を持たせる。
-
サーバから返送される。
成功した場合。 |
ステータスコード 200 |
失敗時。 |
適切なステータスコード |
SNORT プロテクションの削除
このコマンドは1つの引数 "package-format "を受け取り、常に "snort "という文字列値を取ります。
コマンドが返される。
成功した場合。 |
0 |
失敗時。 |
1 と、失敗時のエラーを記述するいくつかのパラメータを含む |

-
mgmt_cli
ツールから、次のコマンドを実行します。mgmt_cli delete threat-protections package-format "snort" --version 1.2
-
SmartConsole CLIから、次のコマンドを実行します。
delete threat-protections package-format "snort" --version 1.2
-
Gaia Clishから、次のコマンドを実行します。
mgmt delete threat-protections package-format "snort" --version 1.2
-
POST リクエストメソッド
この URL に POST リクエストを送信する必要があります。
https://<IP-address-of-mgmt-server>:<port>/web_api/v1.2/delete-threat-protections
リクエストヘッダには、Content-Type にapplication/json を、X-chkp-sid にはログインリクエストで返された一意のセッション識別子を設定します。引数package-format は、リクエストボディで送信する必要があります。
サーバから返送される。
成功した場合。 |
ステータスコード 200 |
失敗時。 |
適切なステータスコード |

Content-Type: application/json X-chkp-sid: {{session}} { "package-format" : "snort" } |
SNORTルールファイルの作成
SNORT ルールを独自に作成し、それをチェック・ポイントの管理サーバにインポートすることで、IPS の保護機能として利用することができます。
SNORTの詳細については、snort.orgを参照してください。
Check Pointは、SNORT2.9バージョン以下をサポートしています。
SNORTのルールは、シグネチャを使用して攻撃を定義します。SNORT規則は、規則ヘッダと規則オプションから構成される。
インポートされたSNORT保護の名前は、元のSNORTルールのmsg フィールドの値です。
-
1つのSNORTルールに同じ値を持つ複数のメッセージ文字列がある場合、管理サーバはこれらの値を1つのIPS SNORT保護に集約します。
-
SNORTルールを異なる時期にインポートし、同じmsg 文字列を持つ場合、最新のインポートが既存のIPS SNORT保護機能を上書きします。
SNORTルールの構文
<Action> <Protocol> <Source IP Address> <Source Port> <Direction> <Destination IP Address> <Destination Port> (msg:"<Text>"; <Keyword>:"<Option>";)
|
SNORTのルールは、2つの論理的な部分を持っています。ルールヘッダーとルールオプション。
-
SNORTルールヘッダ。
<Action> <Protocol> <Address> <Port> <Direction> <Address> <Port>
-
SNORTルールオプション。
<keyword>:"<option>"
例:
alert tcp any any -> any 1:65535 (msg:"Possible exploit"; content:"|90|";)
|
各変数の意味は以下のとおりです。
-
アクション =
alert
-
プロトコル =
TCP
-
ソース IP アドレス =
any
-
送信元ポート =
any
-
方向 =
->
-
宛先IPアドレス =
any
-
デスティネーションポート(範囲)=1:65535
-
IPSにおける保護ルールの名称 =
Possible exploit
-
キーワード =
content
-
オプション =
|90|
対応するSNORT構文
これらは、一般的にサポートされている構文コンポーネントです。いくつかの制限事項があります(「サポートされていないSNORT構文構文」参照)。

キーワード |
説明 |
|
---|---|---|
|
protected_content ルールのダイジェストで指定されたコンテンツの元の長さを指定する。 |
|
|
Perl互換の正規表現でルールを記述することができます。 ![]()
|
|
|
ルールがトランスポートプロトコルセッション中の状態を追跡できるようにします。Sessionプリプロセッサーによる会話トラッキングと組み合わせて使用します。 ![]()
|
|
|
バイトフィールドに特定の値(演算子あり)をテストします。 ![]()
|
|
|
長さエンコードされたプロトコルの特定の部分をスキップして、非常に特定の場所で検出 ![]()
|
|
|
ペイロードが指定された場所にデータを持つかどうかを確認する。 ![]()
|
|
|
ルールが一致しても、トラフィックをブロック ![]()
|
-
対応するコンテンツキーワード修飾子: "
nocase
", "rawbytes
", "depth
", "offset:
", "distance:
", "within
", "urilen
". -
サポートされるしきい値ルールの種類 - しきい値、両方(Limitはサポートされていません。)
-
対応マクロ - HTTP_PORTS (80, 8080 ポートと解釈されます)
|
注:同じflowbitsフラグを持つSNORTルールは、msgフィールドの内容が同じであることを確認してください。そうでなければ、同じように保護されることはないでしょう。 |
デバッグを行う。
管理サーバ上の$FWDIR/log/SnortConvertor.elg
ファイルには、SNORTルールの最後のSnortConvertor実行インポートからのデバッグ メッセージが更新されています。
このファイルで失敗したルールのデバッグを見つけるには、次のように検索します。 Failed to convert rule
サポートされていないSNORT構文

-
PCREモディファイア: '
G
', 'O
', 'A
'. -
ルックアヘッド・アサーション付きの PCRE 正規表現。
?!
-
byte_test
キーワードを演算子 not in で使用しています。<
,>
,=
,&
,^
-
http_method
は、SNORT規則の中で唯一のhttp修飾子タイプである場合、サポートされません。 -
プロトコルです。
icmp
,ip
("all
" は UDP および TCP プロトコルと解釈されます。) -
SNORT コンテンツキーワードのないルール
-
を除く全ての
PORT
マクロはHTTP_PORTS
-
送信元ポートの指定("
any
"のみ対応) -
送信先ポートの指定 "
any
" (正確な送信先ポート番号、または送信先ポート番号の範囲を指定する必要があります)。

-
IPアドレスの指定 -all IPアドレスに強制適用
-
HOME_NET
マクロ - "any
" IP アドレスとして解釈されます。 -
EXTERNAL_NET
マクロ - "any
" IP アドレスとして解釈されます。 -
HTTP_SERVERS
マクロ - "any
" IP アドレスとして解釈されます。
これらのキーワードと修飾語の組み合わせは、IPSブレードではSNORT保護ルールとして、SNORTルールとは異なる形で実装されます。
|
ベストプラクティス- 本番環境でアクティブ化する前にテストしてください。 |

-
rawbytes
コンテンツ -
"
B
"http_uri
の内容を持つPCRE修飾子。 -
"
U
" PCREモディファイア
-
HTTPコンテンツまたはPCREモディファイアを含む
-
http_raw_uri
内容または "I
" PCRE修飾子 -
http_stat_msg
内容または "Y
" PCRE修飾子 -
http_stat_code
内容または "S
" PCRE修飾子
-
-
HTTPコンテンツやPCREモディファイアがない場合
-
http_header
コンテンツまたは "H
" PCRE修飾子が2つ以上使用されている。 -
http_raw_header
コンテンツまたは "D
" PCRE修飾子が2つ以上使用されている。
-
-
depth
またはoffset
のコンテンツと、同じコンテンツキーワードにこれらのいずれかを持つ http コンテンツ、またはpcre
の ^ (ニンジン) と、同じpcre
キーワードにこれらの httppcre
修飾を持つ。-
http_header
内容または "H
" PCRE修飾子 -
http_raw_header
内容または "D
" PCRE修飾子 -
http_stat_msg
内容または "Y
" PCRE修飾子 -
http_stat_code
内容または "S
" PCRE修飾子 -
http_uri
内容または "U
" PCRE修飾子
-
-
depth
またはoffset
のコンテンツ、または PCRE の ^ (carrot) を、http コンテンツなしで、宛先ポートがHTTP_PORTS
マクロでない場合に使用します。 -
http_client_body
内容または "P
" PCRE修飾子 -
PCREキーワードに
{}
(中括弧)量化子をつけたもの。 -
コンテンツキーワードと
byte_test
キーワードの両方を使用する -
http_header
content modifiers または "H
" PCRE modifiers は生の http データにのみ適用されます (デコードおよび正規化されたヘッダデータではありません)。 -
http_uri
および "U
" PCRE修飾子のみを持つSNORT規則、またはhttp_raw_uri
コンテンツ修飾子およびI
PCRE修飾子を持つSNORT規則を除き、urilen
キーワードを使用すること。-
SNORT規則が
http_uri
コンテンツまたは"U
" PCRE修飾子のみを持つ場合、サイズはデコードされ正規化されたバッファのサイズとなる。 -
SNORT Ruleが
http_raw_uri
のコンテンツまたは "I
" PCRE修飾子のみを持つ場合、サイズは生のURIバッファのサイズになります。
-
SSLサービス
チェック・ポイントは、従来のメタデータ・サービス・オプションに加えて、SSL トラフィックに特化した追加キーワードをサポートしています。
SSLトラフィックのSNORTルールは、metadataキーワードを使用して定義することができます。
Snort rule オプションで追加します。
metadata: service <ssl service>;
例
alert tcp any any -> any 443 (msg: "Fake SSL Certificate"; content:"|08 e4 98 72 49 bc 45 07 48 a4 a7 81 33 cb f0 41 a3 51 00 33|"; metadata: service sslHello;) |
<ssl サービス用オプション>
サービス |
説明 |
---|---|
|
sslHelloサービスは、フローに応じてClient HelloまたはSever Helloを検索します。 |
|
sslCertificateサービスは、フローに応じて、Client CertificateまたはSever Certificateを検索します。 |
|
sslKeyx サービスは、フローに応じて Client Key Exchange または Sever Key Exchange を検索します。 |
|
sslHeartbeatは、SSLハートビートを検索します。 |
|
sslCiphersuiteは、クライアントから送信されたCipher Suiteを検索します。 |
sslHello
,sslCertificate
,sslKeyx
のサービスを利用する場合、フロー方向を "flow: to_server
" または "flow: from_server
" のどちらかに定義する必要があります。
|
注:これらのサービスおよびコンテンツ修飾子はチェック・ポイント独自のものであり、他の SNORT エンジンではサポートされていません。 |