ウェブアプリケーションファイアウォール(ModSecurity)
ウェブアプリケーションに対する攻撃を検出して防御するために、ウェブアプリケーションファイアウォール(ModSecurity)は、御社のウェブサーバへのすべての要求およびサーバからの関連する応答をルールセットに対してチェックします。チェックが成功すると、コンテンツを取得するために HTTP 要求がウェブサイトに渡されます。チェックが失敗すると、定義済みのアクションが実行されます。
ModSecurity は Plesk for Linux と Plesk for Windows の両方でサポートされ、ウェブサーバ(Apache または IIS)のモジュールとして機能します。
注釈: Plesk 11.5 からアップグレードした後でウェブアプリケーションファイアウォール(ModSecurity)を使用するには、Plesk Onyx の新規ライセンスキーを Plesk または販売業者から取得する必要があります。
ModSecurity を有効にする
ウェブアプリケーションファイアウォールを有効にするには:
-
[ツールと設定]>[ウェブアプリケーションファイアウォール(ModSecurity)]([セキュリティ]グループ内)に進みます。
このリンクが表示されない場合、 [ツールと設定]> [アップデートとアップグレード]> [コンポーネントを追加または削除]> [Web hosting] グループから ModSecurity コンポーネントをインストールします。
-
ウェブアプリケーションファイアウォールモードを[オン]または[検出のみ]に設定します。それぞれの受信 HTTP 要求および関連する応答がルールセットに対してチェックされます。チェックが成功すると、コンテンツを取得するために HTTP 要求がウェブサイトに渡されます。チェックが失敗すると、イベントがログに記録されます。[検出のみ]モードの場合、それ以外のアクションは行われません。[オン]モードの場合、HTTP 応答にエラーコードが割り当てられます。
注釈: ウェブアプリケーションファイアウォールは、サーバレベルでもドメインレベルでも設定可能です。ただし、サーバレベルより高いモードをドメインレベルで設定することはできません。たとえば、ウェブアプリケーションファイアウォールがサーバレベルで[検出のみ]モードに設定されている場合、ドメインレベルで[オン]に設定することはできず、[オフ]および[検出のみ]モードのみが表示されます。
-
受信 HTTP 要求ごとにウェブアプリケーションファイアウォールエンジンでチェックされるルールセットを選択するか、カスタムルールセットをアップロードします。以下のルールセットを選択できます。
-
Atomic Basic ModSecurity:Plesk にバンドルされている Atomic ModSecurity ルールのスターターバージョンです。重要なセキュリティ機能と不具合の修正が毎月リリースされます。このルールセットに含まれるルールについては、「Atomic ModSecurity ルールセット」を参照してください。
-
OWASP ModSecurity Core Rule Set(CRS):CRS は、ウェブアプリケーションでしばしば検出される未知の脆弱性に対する包括的な保護を実現します。このルールセットは無料で付属しています。非常に厳格なルールセットとして知られており、本番環境で使用する場合は、追加調整が必要になります。このルールセットを選択すると、WordPress の一部が機能しなくなり、ウェブメールとファイル共有も機能しません。代わりに、Atomic または Comodo ルールセットを使用できます。
-
Advanced ModSecurity Rules by Atomicorp:最新バージョンのルールです。パフォーマンスが向上しており、Atomicorp GotRoot から新しいセキュリティ機能や不具合の修正が定期的にリリースされています。フルサポートされる商用ルールセットであり、本番環境での使用をお勧めします。Plesk は、このルールセットを有効化するための Security Core Complete by Atomicorp 追加機能を提供しています。この追加機能は、以下の方法で入手できます。
- Plesk オンラインストア で Advanced ModSecurity Rules by Atomicorp を購入する。
- Plesk ライセンスを既にお持ちのお客様は、Plesk Partner Central の UI またはパートナー API を経由して追加機能を追加できます(詳しくは『上級管理者ガイド』を参照してください)。
- Plesk ライセンスを既にお持ちのお客様が Plesk Partner Central へのアクセス権をお持ちでない場合には、プロバイダまでお問い合わせください。
既に Atomic サイトのアカウントをお持ちの場合、ユーザ名とパスワードを指定してこのルールセットを有効にすることができます。
注釈: この追加機能を取得すると、Plesk ユーザインターフェースには Atomic Basic ModSecurity ではなく Advanced ModSecurity Rules by Atomicorp が表示されます。これは実際には、完全な Atomic ModSecurity ルールセットです。
注釈: Atomicorp はまだ Ubuntu 18.04 に対応していません。従って、Ubuntu 18.04 を使用する Plesk サーバの ModSecurity で Atomic ルールセット(basic と advanced の両方)を有効化することはできません。
このルールセットに含まれるルールについては、「Atomic ModSecurity ルールセット」を参照してください。
注(Linux):Atomic ルールセットを選択する場合、次の手順を行って、ModSecurity が正しく機能することを確認してください。サーバで
aum -u
コマンドを実行します。Plesk modsecurity パッケージが Atomic リポジトリからのパッケージに置き換えられます。次に、以下のコマンドを実行します。plesk sbin modsecurity_ctl --disable
plesk sbin modsecurity_ctl --enable
service httpd restart
-
Comodo ModSecurity ルールセット(Linux):このルールセットは、カスタマイズ可能で使いやすいルールベースのトラフィック制御システムであり、ウェブベースのアプリケーションを保護し、ルールデータベースの高頻度の更新によって最新のハッキング技術にも対応します。このルールセットは無料で付属しています。Plesk でこのルールセットを有効にするには、Comodo サイト で登録を行い、このサイトでユーザ名およびパスワードを提供してください。
-
カスタム:Atomic の評価版パッケージや Comodo の無償パッケージなど、カスタムウェブアプリケーションファイアウォールルールセットをアップロードできます。サポートされるフォーマット:zip、tar.gz、tgz、tar.bz2、conf
-
-
特定のルールセットを自動更新にするには、[ルールセットを更新]チェックボックスをオンにして、更新周期を選択します。
-
定義済みのパラメータセットを選択するか、カスタム ModSecurity ディレクティブを指定します。以下の定義済みのパラメータセットを選択することができます。
-
高速:HTTP 要求の URI およびヘッダ部分を解析する場合。このモードでは、CPU の消費が最少になります。
-
トレードオフ:HTTP 要求の URI、ヘッダ、および要求の POST データを解析する場合。このモードは、品質とパフォーマンスのバランスに優れています。
-
完全:HTTP 要求のヘッダ全体、要求の POST データ、および HTTP 応答の本文を解析する場合。このモードは、CPU リソースの消費が最大になりますが、特別なセキュリティ対策を必要とするサイトに対して推奨されます。たとえば、カード払いが可能なオンラインショップが該当します。
注釈: パフォーマンスを最大化するために、ウェブアプリケーションファイアウォールは、要求キャッシュが有効なローカル DNS サーバを必要とします。これがないと、ウェブアプリケーションファイアウォールがオンになっている場合にウェブサイトの読み込みに時間がかかります。
-
ログファイル(Linux)
Linux で、ModSecurity がログの保存に使用するのは次の 2 つの場所です。
- ModSecurity 監査ログ(
/var/log/modsec_audit.log
)は、非常に詳細な情報を記録し、Plesk サーバ全体に使用されます。ModSecurity が何らかのイベントの発生を検知すると、監査ログファイルにエントリが生成されます。ModSecurity 監査ログを表示するには、[ツールと設定]>[ウェブアプリケーションファイアウォール(ModSecurity)]を選択し、[ModSecurity 監査ログ]セクションの[ログアーカイブ]リンクをクリックします。ここで、ModSecurity ログファイルとその変更日付を表示したり、ログファイルをダウンロードしたりすることができます。 - ドメインの Apacheエラーログ(
/var/www/vhosts/DOMAIN.TLD/logs/error_log
)には、ウェブサイトエラーに関する簡潔な情報だけが記録されます。特定のウェブサイトのエラーログを表示するには、顧客パネルで[ウェブサイトとドメイン]> <ドメイン名> >[ログ]に進み、右上で[すべてのログ]ではなく[Apache エラー]と[nginx エラー]のみを選択してください。
ログファイル(Windows)
Windows での ModSecurity 監査ログはドメイン固有であり、%plesk_dir%\ModSecurity\vhosts\<ドメインの GUID>\logs
に保存されます(ここで %plesk_dir%
は Plesk のデフォルトインストールディレクトリ)。
ルールをオフにする
ウェブアプリケーションファイアウォールモードを[オフ]または[検出のみ]から[オン]に変更した後で、ウェブサイトの機能が停止することがあります。ウェブサイトエラーログで、403
、404
、500
などのエラーコードが見つかりますが、ウェブアプリケーションファイアウォールモードを[検出のみ]または[オフ]に変更すると、こうしたエラーコードは表示されなくなります。この場合、ModSecurity 監査ログを参照し、何が起こっているのかを確認してください。厳格すぎるセキュリティルールをオフにしたり、ウェブサイトを調整することができます。
あるウェブサイトに対し、HTTP リクエストが完了しない理由を確認するには:
-
ウェブサイトの監査ログファイルを表示します。
Plesk for Linux では、Plesk の UI からログを表示できます。[ツールと設定]>[ウェブアプリケーションファイアウォール(ModSecurity)]にアクセスし、[ModSecurity ログファイル]リンクをクリックして監査ログをダウンロードし、新しいブラウザウィンドウで開きます。
-
検索機能(大半のブラウザでは
Ctrl+F
)を使用して、問題が発生したウェブサイト(ドメイン名)のイベントを探します。たとえば、your_domain.tld
を探します。ブラウザでHOST:your_domain.tld
のようなエントリがハイライトされます。ハイライトされたエントリの 3 行上に「--eece5138-B--
」のようなエントリがあります。ハイフンの間の 8 文字(この例では「eece5138
」)は、HTTP 要求でトリガされたイベントの ID です。 -
さらに、同じイベント ID を持つエントリを探します。イベント ID の後に
H
という文字が付いたエントリ(この例ではeece5138-H--
)を探します。このエントリには、HTTP 要求のチェック時にトリガされたセキュリティルールの ID と説明が含まれています。セキュリティルール ID とは、引用符に囲まれた3
から始まる整数であり、プレフィックスid
付きで角括弧に囲まれています(例:[id "340003"]
)。 -
[id "3
という文字列の一部を使用して、イベント内でセキュリティルール ID を探します。この ID は、ルールをオフにするときに使用できます。
ルールをオフにする:
- [ツールと設定]>[ウェブアプリケーションファイアウォール(ModSecurity)]に進みます。
-
[セキュリティルールをオフにする]セクションで、ID(
340003
など)、タグ(CVE-2011-4898**など)、または正規表現(``XSS`` など)に基づいてセキュリティルールを選択して、**[OK]をクリックします。
nginx および ModSecurity についての注記(Linux)
Linux では、ModSecurity は Apache のモジュールです。従って、チェックが可能なのは Apache が受信した HTTP 要求のみです。Apache は、別のウェブサーバ nginx で補完できます。ウェブサイトの動的コンテンツのために nginx ウェブサーバの[PHP を nginx で処理]オプションをオンにすると(ウェブサイトの Apache と nginx の設定)、Apache が HTTP 要求を受信しないため、ウェブアプリケーションファイアウォールで HTTP 要求をチェックすることはできません。静的コンテンツについては、[静的ファイルを nginx で直接処理]オプションがオンになっている場合、Apache がHTTP 要求を受信しないため、ModSecurity によってチェックされません。
アップグレードノート(Linux)
Plesk Onyx へアップグレードする前にサーバに ModSecurity をインストールしていた場合に役に立つヒント:
- Plesk は独自の ModSecurity パッケージをインストールしますが、アップグレード前チェックにおいて、Plesk インストーラから、既存のインストールを上書きして Plesk ModSecurity をインストールすることに同意するかどうか問われる場合があります。
- 既存の ModSecurity 構成はそのまま残ります。ただし、ModSecurity には多数のディストリビューションや構成があるため、古い構成と新しい構成にどのようなコンフリクトが生じるか予測するのは困難です。問題を回避するには、Plesk Onyx へのアップグレードまたは Plesk の ModSecurity のインストールを行う前に、既存の構成を保存して ModSecurity をアンインストールしてください。