IIS 観点でアンチウイルス スキャン対象から除外したいフォルダ

こんにちは。Internet Information Services (IIS) サポートです。

 

今回は IIS の観点より、アンチウイルス スキャン対象から除外すべきフォルダについてご紹介します。

 

アンチ ウィルス ソフトのようなセキュリティ関連ソフトや、バックアップソフト等の予期しない動作によって、IIS が動作するために必要なモジュールやファイルの処理時に影響が発生し、後述の事例のような現象が発生する場合があります。

そのため、IIS に関する以下のフォルダに対し、各種ソフトウェアの除外設定を実施いただく事を推奨しております。

 

IIS の観点でスキャン対象から除外を推奨するフォルダ

----------------------------------------------

IIS のインストールフォルダ

  %SystemRoot%\System32\inetsrv およびその配下

 

IIS のログ、圧縮、構成ファイル格納フォルダ

  %SystemDrive%\inetpub およびその配下

 

HTTPERR ログフォルダ

  %SystemRoot%\System32\LogFiles\HTTPERR およびその配下

 

.NET Framework フォルダ

  %SystemRoot%\Microsoft.NET\Framework\<.NET Framework のバージョン> およびその配下

  %SystemRoot%\Microsoft.NET\Framework64\<.NET Framework のバージョン> およびその配下

   ※前者が 32bit アプリケーション用のディレクトリ、後者が 64bit アプリケーション用のディレクトリです

 

・アプリケーションが配置されているフォルダ

Web アプリケーション格納フォルダーおよびWeb アプリケーションにて、ログの出力や一時的なファイルを保存するフォルダなどが存在する場合は、あわせてウィルススキャンの対象から除外することを推奨しております

----------------------------------------------

 

以下、各フォルダについて記載します。

----------------------------------------------

IIS のインストールフォルダ

IIS が動作するために必要なモジュールや、構成ファイルなどの情報が当該フォルダに含まれております。必要なモジュールや構成ファイルへのアクセスが阻害されるようなことがあった場合、IIS が正常に動作しない可能性があるため、除外をお勧めしております。

 

・IIS のログ、圧縮、構成ファイル格納フォルダ

IIS が処理をする上で利用する一時的なファイルの保管場所として利用するフォルダとなります。当該フォルダへのアクセスが阻害されるようなことがあった場合、同様に IIS が正常に動作しない可能性があるため、除外をお勧めしております。

 

HTTPERR ログフォルダ

HTTP の要求を受け付ける、http.sys がエラーを出力するフォルダです。エラーの内容がトラブルシュート時に利用できることがあるため、アクセスが阻害されてエラーが記録されないことを避けるために、除外をお勧めしております。

 

ASP.NET コンパイルフォルダ (ASP.NET をご利用の場合)

ASP.NET がアプリケーションをコンパイルして生成されたアセンブリ (dll) を保持するためのフォルダになります。該当のフォルダ内のファイルがウィルス スキャン等によって何らかの変更が加えられた場合、アプリケーションの再起動が発生するため、除外をお勧めしております。

 

・アプリケーションが配置されているフォルダ

IIS で公開されるコンテンツへのアクセス時に阻害されるようなことがあった場合、コンテンツが正常に応答できず、クライアント側でエラーとなる可能性があるため、除外をお勧めしております。

----------------------------------------------

 

 

セキュリティ関連ソフトの影響により発生する事例

====================================

1) アプリケーション ドメインの再起動

アプリケーションドメインの再起動は、web.config などの構成ファイルの変更や、binフォルダ配下のファイルの編集をトリガーとして行われ、再起動されると次回アクセス時にアセンブリのロード等が再度行われるため、他のタイミングよりリクエストの処理に時間がかかることがあります。

ASP.NET にてヘルスモニタリングのイベントを有効にしている場合、以下のイベント ID : 1305 が記録されます。

 

へルスモニタリングを有効にする構成

----------------------------------------------

<healthMonitoring>

  <rules>

    <add name="myLifeTimeLogs"

             eventName="Application Lifetime Events"

             provider="EventLogProvider" />

  </rules>

</healthMonitoring>

----------------------------------------------

 

イベント ログ

----------------------------------------------

ログの名前:         Application

ソース:           ASP.NET
4.0.30319.0

日付:
2018/08/17 11:34:21

イベント ID:       1305

タスクのカテゴリ:      Web Event

レベル:           情報

キーワード:         クラシック

説明:

Event code: 1002 Event message: アプリケーションをシャットダウンしています。

原因: 構成が変更されました。

----------------------------------------------

 しかしながら、セキュリティ関連ソフトの影響により、構成ファイルの変更が誤検知され、アプリケーション ドメインが意図せず再起動してしまう場合がございます。

そのような場合、何もアプリケーションに変更を加えていないにも関わらず、たまにアクセスに時間がかかることがあるといった現象として見えることがあります。

 

 

2) 構成ファイル作成の際にアクセス拒否が発生

IIS や OS を再起動した後の初回アクセス等のタイミングで、普段は問題ないものの、たまに以下のイベント ID : 5189 が記録され、構成ファイルを作成しようとした際にアクセス拒否が発生する場合があります。 

----------------------------------------------

ログの名前:         System

ソース:
Microsoft-Windows-WAS

日付:
2018/08/17 11:34:21

イベント ID:       5189

タスクのカテゴリ:      なし

レベル:           エラー

キーワード:         クラシック

ユーザー:          N/A

コンピューター:       contoso.local

説明:

Windows プロセス アクティブ化サービスが、アプリケーション プール 'DefaultAppPool' 用のアプリケーション プール構成ファイルを生成できませんでした。エラーの種類は '7' です。この問題を解決するには、applicationhost.config ファイルが正しいことを確認し、最近行った構成の変更を再度確定してください。データ フィールドには、エラー番号が表示されています。

----------------------------------------------

アプリケーション プール用の構成ファイル (既定では %SystemDrive%\inetpub\temp\appPools フォルダ) を作成しようとしたものの、アクセスが拒否されたために失敗したことで、該当のイベントが記録されます。

アクセス拒否は一般的に当該ファイルにアクセス権がない場合に発生し、アクセス権がない場合は常時エラーとなります。

しかしながら、本エラーが単発で記録される場合には一時的にアクセスが阻害された可能性があり、そのような場合にはセキュリティ関連ソフトの影響が考えられます。

 

 

3) アプリケーション プールのプロセスが突然終了

普段は問題なく動作しているものの、たまに以下のイベント ID : 5009 が記録され、プロセスが予期せず終了する場合があります。

----------------------------------------------

ログの名前:         System

ソース:
Microsoft-Windows-WAS

日付:
2018/08/17 11:34:21

イベント ID:       5009

タスクのカテゴリ:      なし

レベル:           警告

キーワード:         クラシック

ユーザー:          N/A

コンピューター:       contoso.local

説明:

アプリケーション プール 'DefaultAppPool' を提供しているプロセスが突然終了しました。プロセス id は '1660' でした。プロセス終了コードは '0xfffffffe' でした。

----------------------------------------------

イベントに記録されている終了コード 0xfffffffe は "CLEAN_WORKER_PROCESS_EXIT_CODE" を示し、異常終了を示すものではなく、正常にワーカー
プロセスが終了された場合に記録されます。

Application Error イベント等も特に記録されていない場合、IIS
にロードされているモジュールが何らかの要因により自発的に停止した、と考えられます。

このような場合、セキュリティ関連ソフトの動作によって IIS が動作するために必要なモジュールやファイルの処理に影響が発生し、プロセスの突然終了につながる可能性があります。

 

 

上記事例以外にも、セキュリティ関連ソフトの影響により、予期しない動作となる可能性がありますため、除外設定についてご検討いただけますと幸いです。

※ただし、アンチ ウィルスソフトの種類によってはスキャンの除外対象のフォルダやファイルに対してもアクセスが発生してしまう場合もあり、アンインストールを行わなければそのアプリケーションの動作の影響を抑えることができなかったという事例もあります。除外や停止のみでは改善されない場合は、アンインストールにより事象が改善されるかもご確認いただけますと幸いです。

 

■ 参考情報

ASP.NET アプリケーションでのウイルス対策スキャンから除外するフォルダー

https://support.microsoft.com/ja-jp/help/3126034/folders-to-exclude-from-antivirus-scanning-in-asp-net-apps

 

fltmc.exe の使い方

https://blogs.msdn.microsoft.com/jpwdkblog/2013/02/27/fltmc-exe/

※fltmc.exeを用いてセキュリティ関連ソフト等のフィルター ドライバーのインストール状況を確認できます。