少し前のことになりますが、InfoCage SiteShellというNEC製のWAFがAWSに対応しました。
実際に下記のページでもAWSに対応していることが確認できます。
そして、この製品はトライアル版も用意されており、試しに以前作成したAMI「SUZ-LAB謹製 CentOS AMI (6.3.3 ap-northeast-1)」で動作確認してみました。
トライアル版のダウンロードは下記より可能です。
上記よりApache Linux 版をダウンロードしたら、下記のようにインストールします。
(JavaがインストールされておりApacheも起動している必要があります)
# cd /opt/SiteShell/src/ # ls SiteShell_ApacheLinux_Trial.zip # unzip SiteShell_ApacheLinux_Trial.zip # ls Apache(Linux)_Trial SiteShell_ApacheLinux_Trial.zip # cd Apache(Linux)_Trial/Apache/Linux/x64 # ls SiteShell_Apache-1.6.0.0-1.x86_64.rpm # rpm -Uvh SiteShell_Apache-1.6.0.0-1.x86_64.rpm
RPMで簡単にインストールできます。
インストールができたら、次のように設定スクリプトを実行します。
# cd /opt/SiteShell_Apache/ # ./setup.sh Please enter JDK/JRE install path for SiteShell or enter [q] to quit:/usr/lib/jvm/jre Please enter license ID or enter [i] to ignore or enter [q] to quit:i The following versions can be selected: 1. Apache1.3.x 2. Apache1.3.x(EAPI) 3. Apache2.0.x 4. Apache2.2.x Please enter a number from '1' to '4' to select the apache version which siteshell will be installed into :4 The selected apache version : 4. Apache2.2.x Please enter [r] to reset, to continue, or [q] to quit:c Please enter apache configuration file or enter [q] to quit:/etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf Please enter [s] to setup or [q] to quit:s Run SiteShell in test mode? [y/n]:y Enable all protection automatically? [y/n]:y SiteShell is being setuped... Setup successfully ! SiteShellServiceForApache installed. Starting SiteShellServiceForApache SiteShellServiceForApache was started SiteShell has been installed successfully, you must restart apache server to enable the installation! Do you want to restart apache server right now? [y/n] :y httpd を停止中: [ OK ] httpd を起動中: httpd: apr_sockaddr_info_get() failed for ip-10-0-0-166 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName 7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,1 CPU) Processing archive: /opt/SiteShell_Apache/config/SiteShell_logic.jar Extracting recipe/OSC.xml Extracting recipe/PT.xml Extracting recipe/SF.xml Extracting recipe/SQL.xml Extracting recipe/XSS.xml Everything is Ok Files: 5 Size: 57218 Compressed: 89995 7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,1 CPU) Processing archive: /opt/SiteShell_Apache/config/SiteShell_logic.jar Extracting CSC.properties Extracting LogicVersion.properties Everything is Ok Files: 2 Size: 823 Compressed: 89995 [ OK ]
設定が完了したら下記のSQLを使って、SQLインジェクションを試してみます。
SELECT * FROM user WHERE uid='suz-lab' AND pwd='' OR 'A'='A'
下記のフォームに上記のSQLを入力します。
送信ボタンを押すと、次のような成功ページに遷移します。
success
本来ならばSiteShellのエラーページが表示されるのですが、トライアル版は防御まではできず、検知のみとなっています。
そして、、下記のログを確認するとSQLインジェクションとして検知されていることが確認できます。
# cat /opt/SiteShell_Apache/logs/audit/audit.log [2012/10/08 15:59:23][SQL][SQL-0015-03][replace(noaction)][xxx.xxx.xxx.xxx][/success.html][paramValues]sql=SELECT * FROM user WHERE uid='suz-lab' AND pwd='' OR 'A'='A'