少し前のことになりますが、InfoCage SiteShellというNEC製のWAFがAWSに対応しました。

国内初!「アマゾン ウェブ サービス」にWAFソフトとクラスタリングソフト提供開始

実際に下記のページでもAWSに対応していることが確認できます。

国内主要クラウド基盤サービス(IaaS)での動作

そして、この製品はトライアル版も用意されており、試しに以前作成したAMI「SUZ-LAB謹製 CentOS AMI (6.3.3 ap-northeast-1)」で動作確認してみました。

トライアル版のダウンロードは下記より可能です。

ダウンロード : Webアプリケーションファイアウォール製品 InfoCage SiteShell

上記より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'

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら