IISセキュリティ特徴

ABBYY FlexiCapture 12は標準のセキュリティ設定を使ってお客様の環境で展開されます。必要ならば、インターネットインフォメーションサービス(IIS)を使って、特定のリクエストに対する追加ルールを設定することで、ウェブサーバーのセキュリティを改善することができます。

重要! If you encounter the "Due to browser policy restrictions, this URL cannot be opened using the insecure HTTP protocol. Please use the secure HTTPS protocol or change your browser policy." error while working with a web station, it means that you are using the product in iFrame over the unsecured HTTP protocol. For more information about the causes of the error and possible workarounds, see iFrame restrictions.

コンテンツセキュリティポリシーヘッダー

コンテンツセキュリティポリシー(CSP)はクロスサイトスクリプティング(XSS)のようなデータインジェクション攻撃からブラウザを守るために、現在使われているさまざまなブラウザが採用している標準的な安全ポリシーです。CSPはどのリソースにロードするのが安全か判断するのにホワイトリストを使ったり、虚偽のソースのリソースを無視したり、セキュリティポリシーを回避しようとすることに関するデータを集めたりすることで作動します。

このポリシーを活用するためにはサーバーは1つ以上ディレクティブをコンテンツセキュリティポリシーHTTPヘッダーに設定しなければなりません。それぞれのディレクティブは特定のシングルリソースタイプに対して責任を負います。ディレクティブは、リソースに採用される特定のルールによってセキュリティポリシーを設計します。

CSPをインターネットブラウザに設定するには、次に挙げるコードをweb-configファイルに加えてください:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="Content-Security-Policy" value="default-src https: 'unsafe-inline' 'unsafe-eval'" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
    

注:ABBYY FlexiCaptureの第三者システム統合機能を使って、他のホストのアクセスを求めているならweb-configファイルで他のホストの指定もしてください。セキュリティの設定に変更を加えた後も、ソフトウェアが作動するか、常に検証してください。

コンテンツセキュリティポリシーに関する詳細は こちらのサイトをご覧ください

HTTP Strict-Transport-Security ヘッダー

HTTP Strict-Transport-Security (HSTS)は、ブラウザとウェブサイト間のすべてのやりとりをSSLプロトコルを使用して安全な接続に制限するウェブサイト保護メカニズムです。HSTSが設定されているウェブサーバーには、ブラウザがHTTPSだけを使用するようにとの指示が含まれており、HTTPの使用を禁止しています。HSTS は主に、MITM(中間者)攻撃など、クエリやレスポンスを含む傍受攻撃を回避するために使用されます。

このセキュリティポリシーを使用できるようにするには、URL アドレスの書き換えルールを使用して、HTTP レスポンスに Strict-Transport-Security (STS) ヘッダーを追加する必要があります。これは、不要な HTTP クエリを防ぎ、すべての HTTP トラフィックを HTTPS にリダイレクトするために必要です (ルールに設定された ロジックに基づいて)。ルールを設定するには、URL Rewriteモジュールをインストールする必要があります。詳しくは、Microsoftのウェッブサイトをご覧ください

ブラウザにHSTSを設定するには、以下のコードをweb.configファイルに追加します:

<rule name="Add the STS header in HTTPS responses">
<match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule> 
    

注:Max-age指示は、ルールが適用される期間(秒単位)を指定します。上記のコードスニペットで指定された値は、1年の期間になります。

HSTSの詳細については、Microsoftのウェッブサイトをご覧ください。

X-Powered-By と X-AspNet-Version ヘッダー

ウェブサーバーのセキュリティを向上させるために不可欠のHTTPヘッダーの他に、オプションのヘッダもあります。多くの場合、このようなオプションのヘッダーは標準に準拠しておらず、その使用により、各HTTPクエリによって生成されるトラフィックの量が増加し、悪意のある攻撃を実行しやすくします。

以下は、そのような2つのオプションのヘッダーです:

  • X-Powered-Byは、ウェブサーバーが使用する様々な技術に関する情報を含むHTTPヘッダです。
  • X-AspNet-Versionは、ウェブサーバー上にアプリケーションを配置するために使用されるASP.NETのバージョンに関する情報を含むHTTPヘッダーです。

初期設定では、X-Powered-By と X-AspNet-Version の両方がサーバーの応答に含まれます。これらのヘッダーを無効にすることをお勧めします。識別情報を提供するとセキュリティ上の脅威を生じる可能性があるためです。

IIS 構成から X-Powered-By ヘッダーを削除するには、次のコードを web.config ファイルに貼り付けます:

<httpProtocol> 
<customHeaders> 
<remove name="X-Powered-By" />   
</customHeaders></httpProtocol> 
    

IIS構成から X-AspNet-Version ヘッダーを削除するには、次のコードを web.config ファイルに貼り付けます:

<httpRuntime enableVersionHeader="false" />
    

X-XSS-Protection ヘッダー

X-XSS-Protectionは、ブラウザがクロスサイトスクリプティング攻撃を防ぐために使用するHTTPヘッダーです。ヘッダーは、ブラウザ上で開いたウェブページに悪意のあるサードパーティのコードを挿入しようとする不要な試行から守るXSSフィルタを有効にすることで動作します。

X-XSS-Protectionは、以下のブラウザと互換性があります:Internet Explorer 8+、Chrome、およびSafari。しかし、ほとんどの最新のブラウザは厳しいセキュリティポリシー(コンテンツセキュリティポリシーなど)を使用しているため、CSPをサポートしていない古いブラウザを使用している場合にのみ、このヘッダーが必要になります。

X-XSS-Protectionヘッダーをブラウザで有効にするには、以下のコードをweb.configファイルにコピーします:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-XSS-Protection" value="1; mode=block" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
    

X-Content-Type-Options ヘッダー

X-Content-Type-Optionsは、MIME(多目的インターネットメール拡張)の脆弱性を悪用する攻撃を防ぐためにブラウザが使用するHTTPヘッダです。MIMEは、インターネット接続を介して送信されるコンテンツのインターネット規格です。ウェブサーバーが提供するすべてのファイルは、それらの特定のファイルの MIME タイプによって決まる方法でブラウザによって処理されます。ブラウザは、 Content-Type レスポンスを使用するか、リソースの内容を調べることでリソースタイプを決定します。これにより、攻撃者にはHTMLファイルを別のタイプのファイルとして紛らわすことができます。

このヘッダで利用可能な指示は nosniff 指示だけです。これは、ウェブサーバーによって指定された MIME タイプのみを使用するようにブラウザに指示します。

X-Content-Type-Options ヘッダーをブラウザで有効にするには、以下のコードをweb.configファイルに貼付けます:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-Content-Type-Options" value="nosniff" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer> 
    

サーバーヘッダー

サーバーヘッダーは、リクエストを処理するためにソースサーバーが使用するアプリケーションに関する情報(アプリケーションのバージョン番号など)を含む応答ヘッダーです。この種の情報が第三者に提供される可能性があることは、セキュリティ上の脅威です。そのため、サーバーヘッダーの内容を削除することをお勧めします。

サーバーヘッダーの内容を削除するには、以下のコードをweb.configファイルに追加します:

<rewrite>  
     <outboundRules rewriteBeforeCache="true"> 
    <rule name="Remove Server header"> 
      <match serverVariable="RESPONSE_Server" pattern=".+" /> 
      <action type="Rewrite" value="" /> 
    </rule>   
</outboundRules> 
</rewrite> 
    

IIS 10.0、Windows Server 2016、またはWindows Server 2019を使用している場合は、代わりに以下のコードを使用してください:

Set-WebConfigurationProperty  
-pspath 'MACHINE/WEBROOT/APPHOST'   
-filter "system.webServer/security/requestFiltering"  
-name "removeServerHeader"  
-value "True" 
    

注:上記の設定では、URL Rewriteモジュールをインストールする必要があります。詳しくは、Microsoftのドキュメンテーションをご覧ください。

DDoS攻撃からの保護

DDoS 攻撃は、HTTP リクエストでアプリケーションに過負荷をかけ、トラフィック量を大幅に増加させ、正当なユーザーがアプリケーションにアクセスできないようにすることがあります。このような攻撃は、正当なトラフィックと悪意のあるトラフィックの識別が難しいことが多いので、検出するするのが簡単ではない場合があります。

DDoS 攻撃から ウェブサーバーを保護するには、IIS サーバーを設定して、一定期間に許可されたリクエスト数を超えた人、または許可された同時リクエスト数を超えた人に、アプリケーションへのアクセスをブロックすることをお勧めします。

上記のようにIISでDDoS保護を設定するには、以下のようにします:

  1. IIS マネージャを起動します。
  2. ツリービューでウェブサイトを選択し、サイトのホームページのIPアドレスとドメイン制限アイコンをダブルクリックします。
  3. アクションペインで、Edit Dynamic Restriction設定をクリックします
  4. 開いたダイアログ ボックスで、推奨する方法を選択します:同時リクエスト数に基づいて IP アドレスを拒否するか、一定期間の要求数に基づいて IP アドレスを拒否するかを選択します
  5. OK をクリックします。

IIS サーバー設定では、特定の IP アドレスからのアプリケーションへのアクセスを制限したり、制限された IP アドレスからアプリケーションにアクセスしようとしたときにサーバーが実行すべきアクションの種類を指定したりすることもできます:

  1. IIS マネージャを起動します。
  2. ツリービューでウェブサイトを選択し、サイトのホームページのIPアドレスとドメイン制限アイコンをダブルクリックします。
  3. アクションペインで、Edit Dynamic Restriction設定をクリックします
  4. 開いたダイアログ ボックスで、拒否アクションタイプ ドロップダウン リストから必要なアクションの種類を選択します。
  5. OK をクリックします。

1 つの IP アドレスから複数のユーザーが複数の HTTP 要求を送信する場合は、IIS サーバーの設定でプロキシ モードを有効にします。そうすることで、プロキシサーバーはx-forward-forwarded-forヘッダーを ウェブサーバーに渡して、ユーザーの識別を助けることができるようになる。

プロキシモードを有効にするには、以下のようにします:

  1. IIS マネージャを起動します。
  2. ツリービューでウェブサイトを選択し、サイトのホームページのIPアドレスとドメイン制限アイコンをダブルクリックします。
  3. アクションペインEdit Feature 設定をクリックします。
  4. Edit IP and Domain Restriction 設定ダイアログボックスで、プロキシモードを有効にするを選択します
  5. OK をクリックします。

IIS を使用して特定の IP アドレスからのアプリケーションへのアクセスを制限する方法の詳細については、Microsoftのドキュメンテーションを参照してください。

注:大量のトラフィックを処理するためにプロキシモードを使用すると、システムパフォーマンスに影響を与え、正当なユーザーがアプリケーションにアクセスしにくくなる可能性があります。

02.03.2021 8:10:49


Please leave your feedback about this article