Interstage HTTP Server 2.4のセキュリティ対策について以下に説明します。
■アクセス時の注意
WebブラウザからWebサーバにアクセスする際、ネットワーク上の悪意のある人(またはマシン)が、正当なアクセス権限をもつ人(またはマシン)になりすまし、Webサーバにアクセスする脅威があります。
アクセスしたユーザが本人であるかを確認するために、SSLプロトコルとして脆弱性のない信頼性の高いバージョンのクライアント認証によるSSL通信を使用することをお勧めします。
SSLの設定については、「3.9 SSLの設定」を参照してください。
■通信データについての注意
ネットワーク上の悪意のある人(またはマシン)が、正当にアクセスする権限を持つ人(またはマシン)とサーバとの間の通信データをのぞき見する脅威があります。または、サーバとの間の通信データを改ざんし、それが正当なデータとしてやりとりされる脅威があります。
暗号化によるセキュリティ保護を行うため、SSL通信を使用することをお勧めします。
SSLの設定については、「3.9 SSLの設定」を参照してください。
■資源ファイルへの不正アクセス
Interstage HTTP Server 2.4では、以下のような資源ファイルを保持しています。
コンテンツ
アクセスログファイル
エラーログファイル
トレースログファイル
CGI
ディレクトリごとの環境定義ファイル(.htaccess)
これらのファイルは悪意のある人(またはマシン)による不正アクセスという脅威にさらされる可能性があります。
これらのファイルを脅威にさらさないためには、そのファイルを一般ユーザからはアクセスできないようにするという対策があります。このために、それらのファイルに対して管理者権限をもつユーザ(Solaris/Linuxシステムではスーパユーザ、Windows(R)システムではAdministrator)だけがアクセス可能となる設定をすることをお勧めします。
■パスワード情報の漏洩
Interstage HTTP Server 2.4には、パスワードファイルがあり、悪意のある人(またはマシン)がそのファイルをのぞき見る脅威があります。
パスワードファイル内のパスワードデータは暗号化されていますが、一般ユーザからアクセスできないようにするため、管理者がhtpasswdコマンドを使用してパスワードファイルを作成することをお勧めします。パスワードファイルの作成方法については、「3.7 ユーザ認証の設定」を参照してください。
■Denial of Service attack (DoS)の脅威
ネットワーク上の悪意のある人(またはマシン)が、標的とするサーバに対してサービスを不能にする脅威があります。
Denial of Service attack (DoS)の脅威に備え、以下のような機能を使用することをお勧めします。
ユーザ認証
登録したユーザからのアクセスだけを許可するように設定します。
ユーザ認証機能については、「3.7 ユーザ認証の設定」を参照してください。
IPアクセスコントロール
特定のクライアントだけのアクセス許可/拒否を設定します。
IPアクセスコントロール機能については、「3.8 IPアクセスコントロールの設定」を参照してください。
SSL通信の使用
クライアントの正当性を確認できる高度なセキュリティ保護を行います。
SSLの設定については、「3.9 SSLの設定」を参照してください。
クライアントからのリクエストメッセージのサイズ制限
バッファオーバフローに備えて、リクエストメッセージの最大サイズを設定します。リクエストメッセージの最大サイズは、環境定義ファイル(httpd.conf)の以下のディレクティブで設定してください。
LimitRequestBody
LimitRequestFields
LimitRequestFieldsize
LimitRequestLine
■HTTP TRACEメソッド悪用による脅威
ネットワーク上の悪意のある人(またはマシン)が、HTTPリクエストデータ内に存在する個人情報を盗み見たり、任意のコードを実行する脅威があります。
このような脅威に備え、環境定義ファイル(httpd.conf)のTraceEnableディレクティブに「off」を指定して、HTTP TRACEメソッドを無効にすることをお勧めします。
なお、TRACEメソッドは、ネットワーク上の診断を行うためなどに使用され、クライアント側から送出したデータをそのままレスポンスデータとして受信するHTTP/1.1のメソッドです。通常、使用されないため、無効にしてもWebサーバ運用上の影響はありません。
TraceEnable off
■ユーザアカウント名発見の脅威
ネットワーク上の悪意のある人(またはマシン)により、Webサーバマシン上のユーザアカウント名が発見される脅威があります。
このような脅威に備え、環境定義ファイル(httpd.conf)に以下を設定し、ユーザアカウントのホームディレクトリ配下のドキュメントに対する要求を無効にすることをお勧めします。
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir disabled
ポイント
LoadModuleおよびUserDirディレクティブの先頭にハッシュマーク(#)を追加して、コメント行としてもよいです。
ユーザアカウントのホームディレクトリ配下のドキュメントを公開する場合は、以下のように設定してください。
公開するホームディレクトリには、Webサーバからアクセス可能な権限を設定します。
公開しないユーザに対しては、ユーザディレクトリの設定を無効とします。
ユーザディレクトリの設定を無効とする設定例を以下に示します。
例
ユーザ名「user1」および「user2」のホームディレクトリ/public_html配下のドキュメントを公開する場合
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir public_html UserDir disabled UserDir enabled user1 user2
ユーザ名「user3」および「user4」以外のすべてのユーザのホームディレクトリ/public_html配下のドキュメントを公開する場合
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir public_html UserDir disabled user3 user4
注意
「UserDir public_html」だけを設定し、「http://ホスト名[:ポート番号]/~user」のリクエストを受けた場合、指定されたユーザ名「user」がWebサーバマシン上に存在するかどうかで、以下のように異なるステータスコードを返すことがあるため、Webサーバマシン上のユーザアカウント名が発見される可能性があります。
指定されたユーザ「user」が存在しない場合:
ステータスコード「404」(Not Found)を返します。
指定されたユーザ「user」が存在する場合:
ステータスコード「403」(Forbidden)を返します。
これは、指定されたユーザ「user」が存在するが、ユーザのホームディレクトリに、Webサーバからアクセス可能な権限が設定されていない場合に発生します。Webサーバの実行ユーザは、Userディレクティブで指定します。
useraddコマンドでユーザのホームディレクトリを作成すると、ディレクトリの権限は所有者だけに設定され、そのユーザだけがアクセス可能となるため、本現象が発生します。
■クリックジャッキングによる脅威
Webページの透過表示機能などが悪用されて、ユーザが意図しないクリック動作が行われる脅威があります。このような脅威に備え、HTTPレスポンスヘッダーにX-FRAME-OPTIONSヘッダーを含めるように設定して、Webページのフレーム(frame/iframe)内でコンテンツの表示を禁止することにより、クリックジャッキングを防止することをお勧めします。
HTTPレスポンスヘッダーにX-FRAME-OPTIONSヘッダーを含めるように設定するには、Webサーバの環境定義ファイル(httpd.conf)に以下を設定してください。
すべてのWebページのフレーム(frame/iframe)内で、コンテンツの表示を禁止する場合
Headerディレクティブで、X-Frame-Optionsヘッダーに「DENY」を設定します。
LoadModule headers_module "C:/Interstage/F3FMahs/modules/mod_headers.so" Header always append X-FRAME-OPTIONS "DENY"
LoadModule headers_module "/opt/FJSVahs/modules/mod_headers.so" Header always append X-FRAME-OPTIONS "DENY"
異なるサイトのWebページのフレーム(frame/iframe)内でのみ、コンテンツの表示を禁止する場合
Headerディレクティブで、X-Frame-Optionsヘッダーに「SAMEORIGIN」を設定します。
LoadModule headers_module "C:/Interstage/F3FMahs/modules/mod_headers.so" Header always append X-FRAME-OPTIONS "SAMEORIGIN"
LoadModule headers_module "/opt/FJSVahs/modules/mod_headers.so" Header always append X-FRAME-OPTIONS "SAMEORIGIN"
■クロスサイトスクリプティングによる脅威
Webブラウザによるコンテンツタイプの自動判別機能が悪用されて、クロスサイトスクリプティングが行われる脅威があります。このような脅威に備え、HTTPレスポンスヘッダーに「X-Content-Type-Options: nosniff」ヘッダーを含めるように設定して、コンテンツタイプの自動判別を無効にすることにより、クロスサイトスクリプティングを防止することをお勧めします。
HTTPレスポンスヘッダーに「X-Content-Type-Options: nosniff」ヘッダーを含めるように設定するには、Webサーバの環境定義ファイル(httpd.conf)に以下を設定してください。
LoadModule headers_module "C:/Interstage/F3FMahs/modules/mod_headers.so" Header always append X-Content-Type-Options "nosniff"
LoadModule headers_module "/opt/FJSVahs/modules/mod_headers.so" Header always append X-Content-Type-Options "nosniff"
上記と合わせて、WebブラウザのXSSフィルター機能を使って有害スクリプトを検出し、クロスサイトスクリプティングによる脅威を減らすために、HTTPレスポンスヘッダーに「X-XSS-Protection 1; mode=block」ヘッダーを含めるように設定することをお勧めします。
HTTPレスポンスヘッダーに「X-XSS-Protection 1; mode=block」ヘッダーを含めるように設定するには、Webサーバの環境定義ファイル(httpd.conf)に以下を設定してください。
LoadModule headers_module "C:/Interstage/F3FMahs/modules/mod_headers.so" Header always append X-XSS-Protection "1; mode=block"
LoadModule headers_module "/opt/FJSVahs/modules/mod_headers.so" Header always append X-XSS-Protection "1; mode=block"
■不要なHTTPメソッドからのアクセスによる脅威
意図しないHTTPメソッドからのアクセスによる脅威を避けるため、不要なHTTPメソッドのアクセス制御を制限することをお勧めします。
特定のHTTPメソッドにアクセスを制限・許可するには、Webサーバの環境定義ファイル(httpd.conf)に以下のディレクティブを設定してください。
<Limit>
<LimitExcept>
■Webサーバの情報漏洩対策
Webサーバがクライアントに送り返すHTTPレスポンスヘッダー内に、不要なサーバの情報が含まれないように対策をすることをお勧めします。
HTTPレスポンスヘッダー内に、不要なサーバの情報が含まれないように設定するには、Webサーバの環境定義ファイル(httpd.conf)に以下を設定してください。
ServerTokens Prod
上記はインストール時に設定されます。
■リクエストを受け付けるプロセスのアクセス制御についての注意
Webブラウザ経由でプログラムが 必要以上のアクセスを行わないように、リクエストを受け付けるプロセスのユーザIDとグループIDを制限することをお勧めします。
リクエストを受け付けるプロセスのユーザIDとグループIDを設定するには、Webサーバの環境定義ファイル(httpd.conf)に以下を設定してください。
User daemon Group daemon
上記はインストール時に設定されます。
■ディレクトリリスティングによる脅威
Webブラウザ経由でWebサーバのディレクトリの一覧を採取されないように防止することをお勧めします。ディレクトリの一覧を取得されないためには、Webサーバの環境定義ファイル(httpd.conf)に、<Directory>ディレクティブや<Location>ディレクティブに対し、Options指定で「Indexes」を指定しないことをお勧めします。
■SSLダウングレードによる脅威
暗号化通信を確立する際に弱い暗号スイートを強制することにより、脆弱性のある暗号化通信を行わせようとする脅威があります。このような脅威に備え、SSLHonorCipherOrderディレクティブは、「On」を設定してください。
「Off」の場合、ダウングレードされる可能性があります。