メインコンテンツへスキップ
ABBYY FlexiCapture 12 を展開すると、既定の IIS セキュリティ構成設定が使用されます。また、特定のリクエストに対して追加のルールを設定することで、Web サーバーのセキュリティをさらに強化できます。
Content Security Policy (CSP) は、クロスサイト スクリプティング (XSS) などのデータ挿入攻撃から保護するために、最新のブラウザーで使用されているセキュリティ標準です。CSP ではホワイトリストを使用して、安全にロードできるリソースを判定し、検証されていないソースは無視します。また、セキュリティポリシーを回避しようとする試行も記録します。このポリシーを利用するには、1 つ以上のディレクティブが設定された Content-Security-Policy HTTP ヘッダーがサーバーに必要です。各ディレクティブは特定のリソース型に対応します。ディレクティブは、リソースに対するルールを宣言することでセキュリティポリシーを定義します。ブラウザー用に CSP を設定するには、次のコードを web.config ファイルに追加します。
<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="Content-Security-Policy" value="default-src https: data: 'unsafe-inline' 'unsafe-eval'" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
ABBYY FlexiCapture をサードパーティ システムと統合する必要があり、他のホストへのアクセスが必要な場合は、それらを web.config ファイルに指定してください。セキュリティ構成設定を変更するたびに、必ずソフトウェアが正しく動作することを確認してください。
Content-Security-Policy ヘッダーの詳細については、こちらの Web サイトを参照してください。
HTTP Strict-Transport-Security (HSTS) は、ブラウザーと Web サイトの間のすべての通信を、SSL プロトコルを使用した安全な接続に限定する Web サイト保護の仕組みです。HSTS が設定された Web サーバーには、HTTPS のみを使用し、HTTP の使用を禁止するようブラウザーに指示する情報が含まれます。HSTS は主に、リクエストとレスポンスを傍受する攻撃、たとえば MITM (Man-In-The-Middle) 攻撃を防ぐために使用されます。このセキュリティポリシーを使用するには、URL アドレス書き換えルールを使用して、HTTP 応答に Strict-Transport-Security (STS) ヘッダーを追加する必要があります。これは、不要な HTTP リクエストを防ぎ、すべての HTTP トラフィックを HTTPS にリダイレクトするために必要です (ルールで定義されたロジックに基づきます)。ルールを設定するには、URL Rewrite モジュールをインストールする必要があります。詳細については、Microsoft の Web サイトを参照してください。ブラウザー用に 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 の Web サイトを参照してください。
Web サーバーのセキュリティ強化に不可欠な HTTP ヘッダーのほかに、省略可能なヘッダーもあります。こうした省略可能なヘッダーは標準で規定されていないことが多く、使用すると各 HTTP 要求で生成されるトラフィック量が増えるため、悪意のある攻撃を実行しやすくなります。以下は、そのような省略可能なヘッダーの 2 つの例です:
  • X-Powered-By は、Web サーバーで使用されているさまざまなテクノロジーに関する情報を含む HTTP ヘッダーです。
  • X-AspNet-Version は、Web サーバー上でアプリケーションのデプロイに使用されている 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 は、クロスサイト スクリプティング攻撃を防ぐためにブラウザーで使用される HTTP ヘッダーです。このヘッダーは XSS フィルターを有効にすることで機能し、ブラウザーで開かれた Web ページに悪意のあるサードパーティ製コードを挿入しようとする不正な試みを遮断します。X-XSS-Protection は、次のブラウザーと互換性があります: Internet Explorer 8+、Chrome、Safari。ただし、最近のほとんどのブラウザーでは、より厳格なセキュリティ ポリシー (例: Content-Security-Policy) が使用されているため、このヘッダーが必要になるのは、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 は、MIME (Multipurpose Internet Mail Extensions) の脆弱性を悪用する攻撃を防ぐためにブラウザーで使用される HTTP ヘッダーです。MIME は、インターネット接続を介して送信されるコンテンツに関するインターネット標準です。Web サーバーによって配信されるすべてのファイルは、それぞれのファイルの MIME 型に応じた方法でブラウザーに処理されます。ブラウザーは、Content-Type レスポンスを使用するか、またはリソースの内容を検査することによってリソース型を判定するため、攻撃者が HTML ファイルを別の型のファイルに見せかけることが可能になります。このヘッダーで使用できるディレクティブは nosniff のみです。これは、Web サーバーで指定された MIME 型のみを使用するようブラウザーに指示します。ブラウザーで X-Content-Type-Options ヘッダーを有効にするには、次のコードを web.config ファイルに貼り付けます:
<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-Content-Type-Options" value="nosniff" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
Server Header は、送信元サーバーが request を処理するために使用したアプリケーションに関する情報 (例: アプリケーションのバージョン番号) を含むレスポンス ヘッダーです。この種の情報が第三者に知られることは、セキュリティ上の脅威となります。そのため、Server Header の内容を削除することをお勧めします。Server Header の内容を削除するには、次のコードを 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 以降を使用している場合は、代わりに次のコードを使用します:
Set-WebConfigurationProperty  
-pspath 'MACHINE/WEBROOT/APPHOST'   
-filter "system.webServer/security/requestFiltering"  
-name "removeServerHeader"  
-value "True"
上記の設定には、URL Rewrite モジュールがインストールされている必要があります。詳細については、Microsoft のドキュメントを参照してください。
既定では、ABBYY FlexiCapture Web Stations は iFrame を介して他社の Web サイトに埋め込むことができます。ただし、framesniffing が確認された場合は、コンテンツがクロスドメインの iFrame でホストされるのを防ぐために、次の操作を行ってください。
  1. 左側の Connections ペインで Sites フォルダーを展開し、保護するサイトを選択します。
  2. 中央の機能一覧で HTTP Response Headers アイコンをダブルクリックします。
  3. 右側の 操作 ペインで Add をクリックします。
  4. 開いたダイアログで、Name フィールドに X-Frame-Options と入力し、Value フィールドに SAMEORIGIN または DENY と入力します。
詳細については、Microsoft のドキュメントを参照してください。
Slow HTTP POST の脆弱性は、Slowloris HTTP 攻撃とも呼ばれる低速 HTTP サービス拒否 (DoS) 攻撃の一種です。低速 HTTP POST 攻撃では、攻撃者は HTTP POST リクエストで大量のデータを送信すると宣言し、その後、そのデータを非常に低速で送信します。顧客側で Slow HTTP POST の脆弱性に対処するには、Application Server がインストールされているマシンの IIS 構成で Web Limits を設定する必要があります。制限は、次のパラメーターに対して設定する必要があります。
  • ConnectionTimeout
  • MinFileBytesPerSec.
Web Limits の詳細については、Microsoft のドキュメントを参照してください。
HTTP プロトコルにはデータを暗号化するためのセキュリティ機構がありませんが、HTTPS では SSL または TLS のデジタル証明書によって、サーバーとクライアント間の通信を保護できます。ユーザーのブラウザーと Web サーバー間のすべてのトラフィックが、HTTPS を使用した暗号化チャネル経由で強制されるようにしてください。HTTP は既定でポート 80 を使用します。HTTP の使用を防ぐため、このポートを閉じてください。
TLSv1.1 は脆弱な暗号化プロトコルと見なされています。攻撃者はこのプロトコルの弱点を悪用して、保護された通信を盗み見たり、メッセージを悪意を持って改ざんしたりする可能性があります。常に利用可能な限り最新の TLS バージョンを使用し、強力な暗号のみを使用することをお勧めします (適切な暗号の一覧は https://wiki.mozilla.org/Security/Server_Side_TLS を参照してください) 。グループ ポリシーを使用して SSL Cipher を構成するには、次の手順を実行します。
  1. コマンド プロンプトで gpedit.msc と入力します。Group Policy Object Editor が表示されます。
  2. Computer ConfigurationAdministrative TemplatesNetwork の順に展開し、SSL Configuration Settings をクリックします。
  3. SSL Configuration Settings で、SSL Cipher Suite Order 設定をクリックします。
  4. SSL Cipher Suite Order ペインで、ペインの一番下までスクロールします。
  5. How to modify this setting というラベルの手順に従います。
変更を有効にするには、コンピューターを再起動する必要があります。
分散型サービス拒否 (DDoS) 攻撃では、HTTPリクエストによってアプリケーションに過大な負荷をかけ、トラフィック量を大幅に増加させることで、正規のユーザーがアプリケーションにアクセスできない状態を引き起こします。この種の攻撃は、正当なトラフィックと悪意のあるトラフィックを見分けるのが難しいことが多いため、検出が容易ではありません。WebサーバーをDDoS攻撃から保護するには、一定時間内のリクエスト数、または同時リクエスト数が許容値を超えた場合に、IISサーバーがアプリケーションへのアクセスをブロックするよう設定することをお勧めします。上記のように IIS で DDoS 保護を設定するには、次の手順に従います。
  1. IIS Manager を起動します。
  2. ツリービューで Web サイトを選択し、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
  3. 操作 ペインで Edit Dynamic Restriction Settings をクリックします。
  4. 表示されたダイアログで、使用する方法を選択します: Deny IP Address based on the number of concurrent requests または Deny IP Address based on the number of requests over a period of time
  5. OK をクリックします。
IIS サーバーの設定では、特定の IP アドレスからアプリケーションへのアクセスを制限したり、制限された IP アドレスからアプリケーションへのアクセスが試行されたときにサーバーが実行する操作の種類を指定したりすることもできます。
  1. IIS Manager を起動します。
  2. ツリービューで Web サイトを選択し、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
  3. 操作 ペインで Edit Dynamic Restriction Settings をクリックします。
  4. 表示されたダイアログで、Deny Action Type ドロップダウンリストから目的の操作の種類を選択します。
  5. OK をクリックします。
複数のユーザーから 1 つの IP アドレス経由で複数の HTTP リクエストが送信される場合に備えて、IIS サーバーの設定でプロキシ モードを有効にします。これにより、プロキシサーバーが x-forwarded-for ヘッダーを Web サーバーに渡せるようになり、ユーザーの識別に役立ちます。プロキシ モードを有効にするには、次の手順に従います。
  1. IIS Manager を起動します。
  2. ツリービューで Web サイトを選択し、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
  3. 操作 ペインで Edit Feature Settings をクリックします。
  4. Edit IP and Domain Restriction Settings ダイアログで、Enable Proxy Mode を選択します。
  5. OK をクリックします。
IIS を使用して特定の IP アドレスからアプリケーションへのアクセスを制限する方法の詳細については、Microsoft のドキュメントを参照してください。
大量のトラフィックを処理するためにプロキシ モードを使用すると、システム パフォーマンスに影響し、正規のユーザーがアプリケーションにアクセスしにくくなる可能性があります。