ウェブアプリケーションファイアウォール(ModSecurity)の導入について
先日、GMOクラウドさんのセミナー登壇で、参加者の皆さんが熱心に聞いていた ModSecurity の導入について、記事を書いてみました。すしぱくです。
ModSecurity の導入をターミナルから行うのは非常に敷居が高いので、ワンクリックから導入できるPlesk12(バージョン12から導入されています)は本当に素晴らしいのひとことです。そんなわけで、悪意ある攻撃からブロックしてくれるModSecurity の導入を考えてみましょう。
ModSecurityとは、導入まで
不正なリクエストを弾いて、その監視したログを吐き出してくれるという優れものです。詳しい仕様は下記Webサイトを確認してください。
・mod_securityでWebサーバを守る(第1回) | ソフテック
・OWASP AppSec USA 2013 レポート(後編):無償かつ高機能な「ModSecurity」をもっと活用しよう! (1/2) - @IT
Plesk公式サイトでは以下のように書かれています。
"ModSecurity とは、ウェブサイトやウェブアプリケーションを標的とする攻撃を検知および防止するウェブアプリケーションファイアウォール(WAF)です。
Odin は Atomicorp 社の業界エキスパートと協力し、同社の ModSecurity ルールを Plesk 12 エディションと統合しました。Atomicorp 社の ModSecurity ルールは、業界で最も歴史があり、最大規模で、最も広く利用されている商用 ModSecurity ルールです。"
Pleskのデフォルトでは、インストールされていません。下記追加コンポーネントから導入する必要があります。
インストールが完了すると、ウェブアプリケーションファイアウォールという項目が追加されています。
ここを選択して、各種ModSecurityの設定を行います。
Plesk でModSecurityの設定を行う
次は肝心なセキュリティ設定を行います。まずはこちらの設定について、下記リンクを紹介しておきます。
Plesk 12.0 管理者ガイド(日本語)
Plesk 12: Installing and Configuring ModSecurity • Conetix(英語)
それでは、設定をすすめていきましょう。構成するために、オフ・検出のみ・オンを設定することができます。
検出のみはブロックせず、監視ログのみ出力される形です。
ちなみに、オン(イベントログに記録しない)はありません。('A')、、
検出のみ もしくは、オン に設定するとルールを選ぶ事ができます。
通常は、実稼働推奨の Atomic Basicルール を選択しましょう。(契約)は事前にサービスの登録が必要となります。
その後、構成の設定にすすみます。
高速から完全を選びますが、定義される項目が増えるごとにCPU・メモリの負荷が増えるとのことです。
これらすべての設定が完了したら、OKを押してApacheを再起動しましょう。
監査ログの解析など
設定が完了したら、監査ログを確認です。
上記のように、ログファイルについて書かれております。また、セキュリティルールが厳しい場合は、正規表現を指定してくださいなどの注釈も書いているように、ある程度ModSecurity を理解した上で利用しないと正常のリクエストまでも弾いてしまう恐れがあるかもしれませんね。
ログファイルの解析についても、どの部分が不正なリクエストなのか判断するのは至難の業です。
・WAF(Web Application Firewall)でWebサイトを脆弱性から守る : アジャイル株式会社
・modsecurityの設定方法と設定例 | VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで
このログですが、一定期間になったら過去のログが消されたり、一定のサイズになったらリセットされるような仕様がありませんので、忘れてしまって容量圧迫させないように気をつけましょう。ぱくたそのサイトを30分だけ監視してみたら、あっという間に数メガ溜まったので、これは危険だと現在様子です。
とはいえ、オンにするだけで自動的に不正リクエストは弾いてくれているModSecurityは意外と優秀そうですね。