ABBYY FlexiCapture 12 を展開すると、既定の IIS セキュリティ構成設定が使用されます。また、特定のリクエストに対して追加のルールを設定することで、Web サーバーのセキュリティをさらに強化できます。
Content Security Policy (CSP) は、クロスサイト スクリプティング (XSS) などのデータ挿入攻撃から保護するために、最新のブラウザーで使用されているセキュリティ標準です。CSP ではホワイトリストを使用して、安全にロードできるリソースを判定し、検証されていないソースは無視します。また、セキュリティポリシーを回避しようとする試行も記録します。
このポリシーを利用するには、1 つ以上のディレクティブを含む Content-Security-Policy HTTP ヘッダーをサーバーに設定します。各ディレクティブは特定のリソース型に対応します。ディレクティブは、リソースに対するルールを宣言することでセキュリティポリシーを定義します。
ブラウザー用に CSP を設定するには、次のコードを web.config ファイルに追加します。
ABBYY FlexiCapture を他のホストへのアクセスが必要なサードパーティ システムと統合するには、それらのホストを web.config ファイルに指定してください。
セキュリティ構成設定を変更するたびに、ソフトウェアが正しく動作することを確認してください。
Content-Security-Policy ヘッダーの詳細については、こちらの Web サイトを参照してください。
HTTP Strict-Transport-Security (HSTS) は、ブラウザーと Web サイトの間のすべての通信を、安全な SSL 接続に限定します。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 ファイルに追加します:
max-age ディレクティブは、ルールが適用される期間を秒単位で指定します。値 31536000 は 1 年に相当します。
詳細については、Microsoft Documentation の HSTS in IIS 10 version 1709を参照してください。
X-Powered-By および X-AspNet-Version ヘッダー
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 ファイルに貼り付けます:
IIS 構成から X-AspNet-Version ヘッダーを削除するには、次のコードを web.config ファイルに貼り付けます:
X-XSS-Protection は、クロスサイト スクリプティング攻撃を防ぐためにブラウザーで使用される HTTP ヘッダーです。このヘッダーは XSS フィルターを有効にすることで機能し、ブラウザーで開かれた Web ページに悪意のあるサードパーティ製コードを挿入しようとする不正な試みを遮断します。
X-XSS-Protection は、次のブラウザーと互換性があります: Internet Explorer 8+、Chrome、Safari。最近のほとんどのブラウザーでは、Content-Security-Policy など、より厳格なセキュリティ ポリシーが適用されます。したがって、このヘッダーが必要なのは、CSP をサポートしていない古いブラウザーの場合のみです。
ブラウザーで X-XSS-Protection ヘッダーを有効にするには、次のコードを web.config ファイルにコピーします:
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 ファイルに貼り付けます:
Server ヘッダー は、送信元サーバーが request を処理するために使用したアプリケーションとそのバージョン番号を示すレスポンス ヘッダーです。この情報を第三者に公開することはセキュリティ上の脅威となるため、Server ヘッダー の内容を削除してください。
Server ヘッダー の内容を削除するには、次のコードを web.config ファイルに追加します:
IIS 10.0、Windows Server 2016 以降を使用している場合は、代わりに次のコードを使用します:
これらの設定には、URL Rewrite モジュールが必要です。
詳細については、Microsoft Documentation の URL Rewrite モジュールの使用を参照してください。
既定では、他社の Web サイトは ABBYY FlexiCapture Web Stations を iFrame に埋め込むことができます。framesniffing が懸念される場合は、クロスドメインでのフレーミングをブロックしてください。
サイトを選択する
左側の Connections ペインで Sites フォルダーを展開し、保護するサイトを選択します。
HTTP Response Headers を開く
中央の機能一覧で HTTP Response Headers アイコンをダブルクリックします。
ヘッダーを追加する
右側の 操作 ペインで Add をクリックします。
X-Frame-Options の値を設定する
開いたダイアログで、Name フィールドに X-Frame-Options と入力し、Value フィールドに SAMEORIGIN または DENY と入力します。
詳細については、Microsoft のドキュメントの X-Frame-Options ヘッダーによる framesniffing の軽減を参照してください。
Slow HTTP POST の脆弱性は、Slowloris HTTP 攻撃とも呼ばれる低速 HTTP サービス拒否 (DoS) 攻撃の一種です。低速 HTTP POST 攻撃では、攻撃者は HTTP POST リクエストで大量のデータを送信すると宣言し、その後、そのデータを非常に低速で送信します。
脆弱性を解消するには、Application Server を実行しているすべてのマシンの IIS 構成で Web Limits を設定します。次のパラメーターに制限を設定します。
ConnectionTimeout
MinFileBytesPerSec
詳細については、Microsoft のドキュメントの weblimits 要素を参照してください。
HTTP にはデータを暗号化する仕組みがありません。HTTPS では SSL または TLS のデジタル証明書により、サーバーとクライアント間の通信を保護します。
ユーザーのブラウザーと Web サーバー間のすべてのトラフィックに HTTPS を強制します。HTTP はデフォルトでポート 80 を使用するため、このポートを閉じて使用を防止します。
TLSv1.1は脆弱な暗号化プロトコルです。攻撃者によって悪用されると、安全な通信が傍受されたり、メッセージが改ざんされたりするおそれがあります。
常に、利用可能な最新バージョンのTLSと、強力な暗号のみを使用してください。適切な暗号の一覧については、Mozilla Wikiのserver side TLSを参照してください。
グループ ポリシー エディターを開く
コマンド プロンプトで gpedit.msc と入力します。Group Policy Object Editor が表示されます。
SSL 構成設定を開く
Computer Configuration、Administrative Templates、Network の順に展開し、SSL Configuration Settings をクリックします。
暗号スイートの順序を開く
SSL Configuration Settings で、SSL Cipher Suite Order 設定をクリックします。
手順までスクロールする
SSL Cipher Suite Order ペインで、ペインの一番下までスクロールします。
設定を変更する
How to modify this setting というラベルの手順に従います。
変更を適用するには、コンピューターを再起動します。
分散型サービス拒否 (DDoS) 攻撃では、HTTPリクエストによってアプリケーションに過大な負荷がかかります。トラフィック量が急増し、正規のユーザーがアプリケーションにアクセスできなくなります。この種の攻撃は、正当なトラフィックと悪意のあるトラフィックを見分けるのが難しいことが多いため、検出が容易ではありません。
一定期間内のリクエスト数、または同時リクエスト数が許容値を超えたクライアントを IIS がブロックするよう設定します。
IP Address and Domain Restrictions を開く
IIS Manager を起動し、ツリービューで Web サイトを選択して、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
動的制限設定を編集する
操作 ペインで Edit Dynamic Restriction Settings をクリックします。
拒否方法を選択する
表示されたダイアログで、次の 2 つの方法のいずれかを選択します:
- Deny IP Address based on the number of concurrent requests
- Deny IP Address based on the number of requests over a period of time
IIS では特定の IP アドレスをブロックすることもでき、制限されたアドレスがアプリケーションへのアクセスを試みた場合にサーバーが実行する操作を選択できます。
IP Address and Domain Restrictions を開く
IIS Manager を起動し、ツリービューで Web サイトを選択して、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
動的制限設定を編集する
操作 ペインで Edit Dynamic Restriction Settings をクリックします。
拒否アクションを選択する
表示されたダイアログで、Deny Action Type ドロップダウンリストから操作の種類を選択します。
共有 IP アドレスのプロキシ モードを有効にする
複数のユーザーが 1 つの IP アドレスから HTTP リクエストを送信する場合は、IIS サーバーの設定でプロキシ モードを有効にします。これにより、プロキシサーバーが x-forwarded-for ヘッダーを Web サーバーに渡せるようになり、個々のユーザーの識別に役立ちます。
IP Address and Domain Restrictions を開く
IIS Manager を起動し、ツリービューで Web サイトを選択して、サイトのホームページで IP Address and Domain Restrictions アイコンをダブルクリックします。
機能設定を編集する
操作 ペインで Edit Feature Settings をクリックします。
プロキシ モードを有効にする
Edit IP and Domain Restriction Settings ダイアログで、Enable Proxy Mode を選択します。
IIS を使用して特定の IP アドレスからアプリケーションへのアクセスを制限する方法の詳細については、Microsoft のドキュメントを参照してください。
トラフィックが集中すると、プロキシ モードによってシステム パフォーマンスが低下し、正規のユーザーがアプリケーションにアクセスできなくなる可能性があります。