ModSecurityとは

Breach Security, Inc.は9月24日(米国時間)、ModSecurityの最新版であるModSecurity v2.5.10をリリースした。

ModSecurityはWebアプリケーションファイアウォール(WAF)のひとつで、Apacheのモジュールとして動作する。リクエストヘッダや引数・表示するコンテンツなどから攻撃や脆弱性を検出し、悪意あるユーザの攻撃からWebアプリケーションを守ることができる。セキュリティフィルタは最初から用意されているもの以外にも、Luaを使用して自分で作成することもでき、柔軟な設定をおこなうことが可能だ。

v2.5.10でのおもな変更点は次のとおり(CHANGES_2.5.10.txtより一部を抜粋)

  • Windowsビルドでのmlogcをクリーンアップ
  • フィルタ中の詳細なメッセージを"Unknown error"に置きかえ
  • SecUploadFileModeの実装をクリーンアップ
  • ビルドスクリプトのクリーンアップ
  • コンフィグ中でSecMarkerがほかのルールより前に使われていた場合、クラッシュする不具合を修正
  • ルールチェーン中でのSecRuleUpdateActionByIdの動作を修正
  • ほか約20項目の修正

同プロダクトはGNU General Public License Version 2およびコマーシャルライセンスのデュアルライセンスのもとで公開されているオープンソースソフトウェア。本稿では、このModSecurityの使い方を簡単に紹介しよう。

Hello, ModSecurity! - インストール手順

ここでの動作環境は次のとおり。

  • OS: FreeBSD 9.0-CURRENT amd64
  • Webサーバ: Apache/2.2.13 (FreeBSD)
  • ドメイン: mintia.localhost
  • IPアドレス: 192.168.33.112

ModSecurityはPortsに登録されているので、ここからインストールをおこなう。執筆時点でのPortsに登録されているバージョンは2.5.9。

# cd /usr/ports/www/mod_security/
# make install clean

インストールが完了すると、次のメッセージが表示される。

chmod 755 /usr/local/libexec/apache22/mod_security2.so

The modsecurity 2 Core Rules have been installed in

  /usr/local/etc/apache22/Includes/mod_security2/

and run in "DetectionOnly" mode as not to disturb operatings.

Please read http://www.modsecurity.org/projects/rules/index.html

ModSecurity requires mod_unique_id to be actived.
This line must be present in your apache configuration file.

LoadModule unique_id_module libexec/apache22/mod_unique_id.so

You must add the following to your Apache configuration file for
activate mod_security:

LoadModule security2_module libexec/apache22/mod_security2.so

Logging is done to /var/log/httpd-modsec2*.log
===>   Registering installation for mod_security-2.5.9_1
===>  Cleaning for mod_security-2.5.9_1

指示にしたがい、mod_unique_id.soがロードされていない場合はmod_unique_id.soを。そしてmod_security2.so本体をロードするようにhttpd.confに追記する。

LoadModule unique_id_module libexec/apache22/mod_unique_id.so
LoadModule security2_module libexec/apache22/mod_security2.so

追記後、Apacheを再起動する。

# apachectl restart

これでModSecurityのインストールは完了だ。