ServersMan@VPS:WAF(Web Application Firewall)の導入【ModSecurity編】

インターネット上に公開されたサイトである以上、外部から脆弱性を狙う攻撃の脅威は避けられません。WAF(Web Application Firewall) を導入することで、プログラムを修正することなく透過的に脅威からサーバーを守ることが期待できます。今回は、Apacheモジュールとして動作する「ModSecurity」をServersMan@VPSにインストールします。ModSecurity はオープンソースで開発されている WAFであり、無償で利用することができます。(2015/04/11作成)

WAF(Web Application Firewall)とは…

Webサーバー上にアプリケーションを作り込んでデータを更新したり最新の状況を表示したりするタイプのサイトを,不正な攻撃から守るための装置やソフトウエアのこと。 こうしたサイトにはオンライン・バンキング・やショッピング・サイトなどがある。

0.環境

※本インストールには、EPEL(エンタープライズ Linux 用の拡張パッケージ)のリポジトリを有効化にしておく必要があります。

1.導入

2.設定

ModSecurityで「SQLインジェクション」や「クロスサイトスクリプティング」に関するチェックのみ行う場合。

SecRuleEngine 設定を “DetectionOnly” に設定。攻撃を検知した場合に、リクエストをブロックせずに、検知内容をログ出力します。

3.設定反映(試験運用)

4.偽陽性判定がある場合

auditログを確認しid ( [id “XXXXXX”] ) をチェックします。

※Wordpress固有の対応

WordPressのインストールされた環境に「ModSecurity」 を導入する場合、問題のないリクエストであってもデフォルトでは偽陽性判定がされます。”SecRuleRemoveById” を用いて、偽陽性判定のあるリクエストを除外します。以下の「ModSecurity」用ファイルを作成し「Apache」のコフィグレーション(httpd.conf)に読み込ませます。

※「/var/lib/mod_security」ディレクトリについて

auditログ確認時、下記のパーミッションエラーが出力される場合は、対象ディレクトリが「httpd」の動作ユーザーの権限ではない可能性があります。「chown」にて適切に権限付与する必要があります。

5.本番運用

SecRuleEngine 設定を “DetectionOnly” → “On” に設定します。

以上

Pocket

コメントを残す