T2.microです。
AmazonLinuxにModSecurityをインストールした際のメモを記載します。
環境
OS
AmazonLinux
・amzn-ami-hvm-2015.03.0.x86_64-gp2
web
Apache
・httpd-2.2.29-1.5.amzn1.x86_64
WAF
mod_security
・mod_security-2.8.0-5.27.amzn1.x86_64
・mod_security_crs-2.2.8-2.5.amzn1.noarch
注意点
1.ルールの適用については必ずテスト環境で導入試験を行うこと
これはWAF導入の際はもちろんのこと、
WAF自体とルールのアップデートを行う際にも必ず実施する。
2.性能面での考慮
適用するルールが増えるとその分レスポンスが遅くなることに注意する。
導入
ModSecurity本体をインストールする
#yum install mod_security
OWASP Core Rule Set(セキュリティールール)をインストールする
#yum install mod_security_crs
Apacheを再起動する
/etc/init.d/httpd restart
設定ファイルを修正
● /etc/httpd/conf.d/mod_security.conf
<IfModule mod_security2.c> # Default recommended configuration SecRuleEngine On #On → DetectionOnly
DetectionOnly にすることで攻撃を検知しても
アクションを行わずにログに出力するのみとなる。
● /etc/httpd/conf.d/mod_security.conf
# Include modsecurity.d/activated_rules/*.conf Include modsecurity.d/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf
たとえばSQLインジェクションのルールのみを使用する場合は上記のように、
Include modsecurity.d/activated_rules/*.confをコメントアウトし、
modsecurity_crs_41_sql_injection_attacks.confのみをIncludeする。
ログの確認
デフォルトでは以下のファイルにログが出力される。
(ログの出力先は/etc/httpd/conf.d/mod_security.confに書いてある)
/var/log/httpd/modsec_audit.log
正常なリクエストが攻撃と判定されている可能性があるかを事前に確認しましょう。
参考
http://dev.classmethod.jp/cloud/ec2-wafweb-application-firewall/
http://dev.classmethod.jp/cloud/aws/ec2-amazon-linux-waf-modsecurity-install/
http://j-caw.co.jp/blog/?p=1331