作業環境
- FortiGate 60E
- version 7.0.5
IPS(侵入防止)機能の概要
IPS 機能ではネットワークへの攻撃を検出し、それらの攻撃をブロックしたりログに記録したりすることができます。
IPS センサー、IPS シグネチャ、IPS フィルタ
FortiGate において IPS を動作させるためには、「IPS センサー
」と呼ばれるプロファイルを作成して、それをポリシーに適用します。
IPS センサーは「IPS シグネチャ
」と「IPS フィルタ
」によって構成されます。
- IPS センサー
- IPS 機能の動作内容を定義するプロファイル
- IPS シグネチャとIPS フィルタから構成される
- ポリシーに適用して使用する
- IPS シグネチャ
- ネットワークへの攻撃のパターン、およびそのパターンのリスト
- 攻撃パターンに一致した通信を検知した場合、定義されたアクション(ブロック、ロギングなど)を実行する
- IPS フィルタ
- IPS シグネチャを絞り込む条件
- 検知対象として FortiGate が持つ IPS シグネチャのすべてではなく、一部のシグネチャのみを対象としたい場合に使用される
- 条件としては以下の項目がある
- ターゲット(サーバ、クライアント)
- 重大度
- プロトコル
- OS
- アプリケーション
IPS シグネチャのアクション
各 IPS シグネチャには、そのシグネチャに該当する通信を検知した際の FortiGate の動作を示す「アクション」が定義されています。
アクションには、許可、ブロック、モニタなどがあります。
IPS センサーの設定において、この IPS シグネチャのアクションをオーバーライド(上書き)設定して攻撃検知時の FortiGate の動作を変更することもできます。
デフォルトの IPS センサー
FortiGate にはデフォルトでいくつかの IPS センサーが存在し、これらをそのまま使用することが可能です。
例えば以下のようなものがあります。
- all_default
- すべての IPS シグネチャを対象にし、アクションはシグネチャのデフォルト
- all_default_pass
- すべての IPS シグネチャを対象にし、アクションをモニタとしてオーバーライド
- default
- 重大度が [クリティカル/高/中] のシグネチャを対象にし、アクションはシグネチャのデフォルト
- high_security
- 重大度が [クリティカル/高/中] のシグネチャについては、アクションをブロックとしてオーバーライド
- 重大度が [低] のシグネチャについては、アクションはシグネチャのデフォルト
IPS に関するオプション設定
基本的な設定である IPS シグネチャと IPS フィルタの設定に加えて、個別の IPS センサーに対する、または IPS センサー全体に関わるグローバルレベルでのオプション設定があります。
ここでは項目のみ紹介します。各項目の詳細は公式マニュアルを確認してください。
グローバルレベルでのオプション設定
- フローベースのセキュリティプロファイルのハードウェアアクセラレーション(NTurbo および IPSA)
- 拡張 IPS データベース
- IPS エンジン数
- インダストリアル・シグネチャ・データベース
- フェールオープン
- IPS バッファサイズ
- セッションカウントの精度
- プロトコルデコーダー
個別の IPS センサーに対するオプション設定
- ドライブバイエクスプロイト検出用の悪意のある URL データベース
- IPS シグニチャレートカウントしきい値
- ボットネット C&C
IPS の設定例と動作確認
検証構成
検証構成は以下の通りです。
- クライアントからインターネットへの Web 通信を検査する想定
- FortiGate では、クライアントからインターネットへの Web 通信を許可するポリシーに対して IPS センサーを適用
- 適用する IPS センサーはデフォルトで存在する default

FortiGate での IPS 設定
IPS センサーの設定内容確認
※デフォルトの IPS センサーを使うため、ここでは設定内容の確認だけをしています
デフォルトで存在する IPS センサーである default
の設定内容は以下の通りです。

IPS フィルタの内容は以下の通りです。

ポリシーへの IPS センサーの適用
ポリシー編集画面の、[セキュリティプロファイル > IPS] を有効にして、IPS センサーのリストから default
を選択します。

※ポリシーのインスペクションモードはフローにしています
動作確認
ここでは、HTTP によってサーバのユーザリストを盗み取ろうとする攻撃に対するシグネチャである Web.Server.Password.Files.Access を利用してテストしてみます。

テストの方法としては、クライアントでブラウザにて以下の URL にアクセスを試みます。
- Web.Server.Password.Files.Access のテスト時のアクセス先 URL
http://<任意のドメイン>/etc/passwd
ここでは例として http://google.com/etc/passwd にアクセスを試みてみます。
まず、ポリシーに対して IPS センサーを設定していない場合は以下のように 404 エラー画面になります。

次に、ポリシーに対して IPS センサーを設定した後、再度対象 URL にアクセスすると以下のように画面表示が変わります。

FortiGate の侵入防止ログを確認すると、IPS によってブロックされたことを確認できます。


ちなみに、/etc/passwd にアクセスを試みたときの画面表示はアクセス先や FortiGate の設定状況により異なるようです。
例えば対象ポリシーのインスペクションモードをプロキシにし、かつディープインスペクション(SSL インスペクション)の設定を追加的にした上で当ブログのドメインに対して https
でアクセスを試みた場合、以下の表示になりました。

ただし、http
でアクセスした場合は上画面にならず、「このサイトにアクセスできません」の画面になりました。
IPS 関係のコンフィグ
IPS センサーに該当するコンフィグ項目は config ips sensor
です。
config ips sensor
edit "default"
set comment "Prevent critical attacks."
set replacemsg-group ''
set block-malicious-url disable
set scan-botnet-connections disable
set extended-log disable
config entries
edit 1
set location all
set severity medium high critical
set protocol all
set os all
set application all
set status default
set log enable
set log-packet disable
set log-attack-context disable
set action default
set quarantine none
next
end
next
end
この他、IPS 関係のコンフィグには以下があります。
FW01 # show ips
custom Configure IPS custom signature.
decoder Configure IPS decoder.
global Configure IPS global parameter.
rule Configure IPS rules.
rule-settings Configure IPS rule setting.
sensor Configure IPS sensor.
settings Configure IPS VDOM parameter.
IPS に関する注意点
- HTTPS などの暗号化された通信を検査するためには、SSL インスペクション(ディープインスペクション)を併せて利用する必要があります
- ポリシーへ IPS センサーを適用する設定をした後、実際の FortiGate の動作に反映されるまでにタイムラグがある場合があります