InterScan MSS 9.1 Linux版 および IMSVA 9.1 はローカル SPS (Smart Protection Server) に対応するなど、スマートスキャン (ファイルレピュテーション) の設定や動作が従来のバージョンと一部異なります。
ここではインターネット上のスマートスキャンサーバ (グローバル SPS) を使用することを前提にスマートスキャンの設定や動作について説明します。
スマートスキャン機能の概要
従来のウイルス検索 (従来型スキャン) では通常1日1回アップデートされるウイルスパターンファイルとのパターンマッチングでマルウェアを検出します。
一方、スマートスキャンサーバでは最新のパターン (スマートスキャンパターン) が1日に頻繁に更新されます。そのため、スマートスキャンによるウイルス検索ではマルウェアの亜種など、従来型スキャンでは検出できない脅威を早期に検出することが可能となります。
スマートスキャンサーバ (グローバル SPS) の接続先
スマートスキャンサーバには HTTPS (ポート 443) で接続し、以下で始まる URL でクエリします。
- (InterScan MSS 9.1 Linux版) https://imss91-lnx-jp.icrc.trendmicro.com
- (IMSVA 9.1) https://imsva91-jp.icrc.trendmicro.com
IPアドレスは随時変更されるため、開示していません。
スマートスキャンエージェントパターン
スマートスキャンではウイルス検索時のパターンファイルとしてスマートスキャンエージェントパターンファイルが使用されます。
スマートスキャンエージェントパターンは 管理 > アップデート > コンポーネント > スケジュール の設定にしたがって定期的に (通常 1日1回) アップデートされます。 スマートスキャン機能を利用する場合、予約アップデートの対象となるコンポーネントに「スマートスキャンエージェントパターンファイル」が選択されていることを確認してください。
Trend Micro Control Manager (Control Manager) と連携して Control Manager からコンポーネントを配信している場合、Control Manager 側でスマートスキャンエージェントパターンファイルが配信対象となっていることを確認してください。
スマートクエリフィルタ (Smart Query Filter)
検索エンジンはスマートスキャンエージェントパターンで検索して脅威が検出されなければ、次にローカルに保存されているスマートクエリフィルタをチェックします。スマートクエリフィルタの最新バージョンは15分ごとにチェックされ、最新のバージョンがあればスマートスキャンサーバからダウンロードします。
スマートスキャン有効時のウイルス検索の流れ
スマートスキャンが有効な場合にウイルス検索がどのように行われるか、簡単に説明します。
-
ウイルス検索時、検索エンジンはまずスマートスキャンエージェントパターンファイルを使用して検索します。マルウェアとして検出されれば、従来型の検索と同様、添付ファイルを削除するなど、ウイルス対策ルールの処理設定にしたがってメッセージは処理されます。
-
スマートスキャンエージェントパターンファイルでマルウェアが検出されなければ、検索エンジンは疑わしいファイルをスマートクエリフィルタでチェックします。スマートクエリフィルタに該当しなければウイルス検索は終了しますが、スマートクエリフィルタに該当すれば次にスマートスキャンサーバに問い合わせます。
-
スマートスキャンサーバへのクエリにより、スマートスキャンパターンでマルウェアが検出されなければ、ウイルス検索は終了します。スマートスキャンパターンでマルウェアが検出されれば、添付ファイルを削除するなど、ウイルス対策ルールの処理設定にしたがってメッセージは処理されます。
スマートスキャンのクエリ時にスマートスキャンサーバにファイル自体を送信することはありません。クエリ時に送信するのは個々のファイルに対して検索エンジンが計算して算出した値です。
スマートスキャン機能の有効化と無効化
InterScan MSS 9.1 Linux版 および IMSVA 9.1 では、管理コンソールの ポリシー > Smart Protection > セキュリティリスク検索 の画面でスマートスキャンを設定します。
設定が保存されたタイミングで検索サービスが再起動します。
スマートスキャンを有効化する
スマートスキャンを有効にするには以下の手順を実施します。
-
ポリシー > Smart Protection > セキュリティリスク検索 の画面において、「スマートスキャン - ファイルレピュテーションサービス」および「Smart Protection Server」を選択します。
-
次に、「Trend Micro Smart Protection NetworkまたはSmart Protection Serverに接続できない場合は従来型スキャンに切り替える」をチェックするかどうかを決定します。詳しくは スマートスキャンから従来型スキャンへの自動切り替え のセクションを参照してください。
-
インターネット上のスマートスキャンサーバに接続するためにプロキシサーバを経由する必要があれば、プロキシ設定において「有効」にチェックを入れ、適切なプロキシサーバとプロキシポートを入力します。
-
最後に [保存] ボタンをクリックして、設定を保存します。
スマートスキャンサーバに接続できれば、「変更内容が保存されました。」と赤字で表示され、設定が保存されます。
スマートスキャンサーバに接続できなければ、「ファイルレピュテーションサービスを提供するサーバに接続できません。設定を確認して、再度実行してください。」と赤字で表示され、設定を保存することができません。プロキシやファイアウォール等、ネットワークを見直してください。
スマートスキャンを無効化する
初期設定ではスマートスキャンは有効となっていますが、スマートスキャンを無効化するには「従来型スキャン」を選択して [保存] ボタンをクリックします。
スマートスキャンのクエリに失敗した場合の動作
ウイルス検索時、スマートスキャンサーバにクエリした際、スマートスキャンサーバに接続できなかったり、クエリに時間がかかりクエリ結果をスマートスキャンサーバから取得できなければ、検索サービスは接続元メールサーバ (IMSVA では製品内部の Postfix、InterScan MSS では通常、ローカルの Postfix) に "451 Email rejected for a scanning error." の応答を返し、メッセージの受信を一時的に拒否します。そのため、メッセージはキュー (IMSVA であれば遅延キュー) にいったん保存されます。
2019/12/16 18:56:50 GMT+09:00 [14911:889412464] [NORMAL][iCRC] ICRC_QUERY_ERR_NETWORK_TIMEOUT (/home/autobuild/IMSVA-Patch3-TW_9.1/Application/src/filter/vsapi/src/VirusFilter.cpp:1076) 2019/12/16 18:56:50 GMT+09:00 [14911:4152063728] [NORMAL]Abort Scanning due to SmartScan query error (/home/autobuild/IMSVA-Patch3-TW_9.1/Application/src/filter/vsapi/src/VirusFilter.cpp:4240) 2019/12/16 18:56:50 GMT+09:00 [14911:4152063728] Error: scan module internal error for 03D90B10-99CF-3A05-BD41-77908A2BE468
Dec 16 18:56:50 imsva91 postfix/smtp[24101]: C47066A03B: to=, relay=localhost[127.0.0.1]:10025, delay=4.1, delays=1.7/0.05/0.04/2.2, dsn=4.0.0, status=deferred (host localhost[127.0.0.1] said: 451 Email rejected for a scanning error. (in reply to end of DATA command))
キューに保存されたメッセージは MTA の再送設定 (IMSVA に関しては こちら を参照してください) にしたがって再送が試みられます。再送時にスマートスキャンサーバのクエリに問題がなければウイルス検索が実行され、メッセージは処理されます。
スマートスキャンから従来型スキャンへの自動切り替え
初期設定では「Trend Micro Smart Protection NetworkまたはSmart Protection Serverに接続できない場合は従来型スキャンに切り替える」にチェックが入っているため、スマートスキャンが有効な状態でスマートスキャンのクエリやスマートクエリフィルタのバージョンチェックに失敗した場合、検索方法がスマートスキャンから従来型スキャンに自動的に切り替わる可能性があります。
失敗のカウント (Fail count)
InterScan MSS 9.1 Linux版 および IMSVA 9.1 では、Smart Protection ローカルサーバ管理サービス (localservermgmt) がスマートスキャンのクエリやスマートクエリフィルタのバージョンチェックに失敗した数をカウントしています。
Fail count はスマートスキャンのクエリに成功するなど、スマートスキャンサーバに問題なく接続できるようになればリセットされます。
また、Smart Protection ローカルサーバ管理サービスが再起動されたタイミングでもリセットされます。Smart Protection ローカルサーバ管理サービスは検索サービスの再起動に応じて再起動されるため、コンポーネントのアップデート時など、検索サービスが再起動したタイミングでも Fail count がリセットされます。
無効なスマートスキャンサーバのキャッシュ登録
Fail count がしきい値 (初期設定では10回) を越えると、無効なスマートスキャンサーバとして 5分間 (300秒間)、キャッシュに登録され、登録されているあいだ、そのスマートスキャンサーバにはクエリしません。
管理コンソールの ログ > ログクエリ の画面で「システムイベント」「エラー」を選択して検索すると、「Smart Protection Serverのファイルレピュテーションサービス (imsva91-jp.icrc.trendmicro.com) が300秒間利用できません。」というログから、キャッシュに登録されたことを確認できます。
また、管理 > 通知 > イベント の画面で「お使いのサーバではSmart Protectionサービスが利用できません」の通知が有効であれば、メールや SNMP で管理者に通知されます (初期設定ではメール通知が有効となっています)。
InterScan MSS 9.1 Linux版 と IMSVA 9.1 ではローカル SPS に複数の SPS を登録することができるようになったため、このキャッシュ機能が実装されています。しかし、インターネット上のスマートスキャンサーバ (グローバル SPS) が選択されている場合、スマートスキャンサーバはグローバル SPS (imsva91-jp.icrc.trendmicro.com) のみとなるため、無効なスマートスキャンサーバとしてキャッシュに登録されれば、5分間、実際の接続可否に関係なく常にスマートスキャンのクエリに失敗します。
従来型スキャンへの切り替え
無効なスマートスキャンサーバとしてキャッシュに登録されている状況でメッセージを受信した場合、スマートスキャンサーバへの接続を試みて接続できなければ、スマートスキャンから従来型スキャンに検索方法を切り替えます。
管理コンソールの ログ > ログクエリ の画面で「システムイベント」「エラー」を選択して検索すると、「従来型スキャンへのフェイルオーバー」というログから、従来型スキャンに切り替わったことを確認できます。
また、管理 > 通知 > イベント の画面で「従来型スキャンに切り替えました」の通知が有効であれば、メールや SNMP で管理者に通知されます (初期設定ではメール通知が有効となっています)。
「Trend Micro Smart Protection NetworkまたはSmart Protection Serverに接続できない場合は従来型スキャンに切り替える」にチェックが入っていれば、スマートスキャンサーバに接続できない状況が続く場合に検索方法をスマートスキャンから従来型スキャンに自動的に切り替えすることでスマートスキャンは無効化されるものの、従来型スキャンでウイルス検索が実行し、メッセージの遅延を最小限に留めることができます。
一方、「Trend Micro Smart Protection NetworkまたはSmart Protection Serverに接続できない場合は従来型スキャンに切り替える」のチェックを外して自動的に切り替わらないように設定した場合、スマートスキャンサーバに接続できない状況が続く場合でも検索方法が従来型スキャンに切り替わることはないため、スマートスキャンサーバに問題なく接続できるようになるまでメッセージは配送されず、長期にわたってメッセージが遅延する可能性があります。
頻繁に従来型スキャンに切り替わる場合の対処
検索方法が頻繁にスマートスキャンから従来型スキャンに切り替わる場合、クエリのタイムアウト値 (query_timeout_ms) および、無効なスマートスキャンサーバとしてキャッシュに登録される Fail count のしきい値 (cache_threshold_count) を引き上げることで改善される可能性があります。
-
InterScan MSS のインストールディレクトリは初期設定では /opt/trend/imss です。InterScan MSS インストール時にインストールディレクトリを変更している場合には /opt/trend/imss を置き換えて作業を実施してください。
-
状況によっては、設定値の引き上げがパフォーマンスに大きく影響する可能性があります。
(A) クエリのタイムアウト値の引き上げ
クエリのタイムアウト値 (query_timeout_ms) は初期設定で 1500 ms (1.5秒) が設定されています。例えば、この値を 30000 ms (30秒) に引き上げるには以下の手順を実施します。
-
設定ファイル imss.ini をvi で開き、[smart_scan] セクションにパラメータ「query_timeout_ms」を追加して、ファイルを上書きで保存します。
/opt/trend/imss/config/imss.ini:[smart_scan] query_timeout_ms = 30000
初期設定では [smart_scan] セクションは存在しないため、設定ファイルの末尾に追加してください。また、設定可能な最大値は 60000 (60秒) です。
-
設定ファイル変更後、以下のコマンドを実行して検索サービスを再起動します。
# /opt/trend/imss/script/S99IMSS restart
(B) Fail count のしきい値の引き上げ
Fail count のしきい値は初期設定で 10回 です。例えば、この値を 30回 に引き上げるには以下の手順を実施します。
-
設定ファイル imss.ini を vi で開き、[smart_protection] セクションに 「cache_threshold_count」のパラメータを追加し、上書きでファイルを保存します。
/opt/trend/imss/config/imss.ini:[smart_protection] cache_threshold_count = 30
初期設定では [smart_protection] セクションは存在しないため、設定ファイルの末尾に追加してください。
-
設定ファイル変更後、以下のコマンドを実行して検索サービスを再起動します。
# /opt/trend/imss/script/S99IMSS restart