さくらのクラウドでSiteGuard Lite(WAF)を試してみて気づいたこと

さくらのクラウドでは、ホスト型のWeb Application Firewall(WAF)である、JP-Secure社が開発する「SiteGuard Lite」を無料で使用することができます。

・さくらのクラウド SiteGuard Lite(WAF)
http://cloud-news.sakura.ad.jp/siteguard-litewaf/

今回、初めてこの「SiteGuard Lite on さくらのクラウド」をちょっとだけ試してみて、主にWAF機能以外の動作仕様や性能面で気づいたことを記載します。

なお、さくらのクラウドにおける「SiteGuard Lite」のインストール方法やWAF機能については、上記のオフィシャルサイトにある「JP Secure SiteGuard Lite ご利用ガイド(PDF)」や、以下の「さくらのナレッジ」の記事を参照してください。
ドキュメントがわかりやすいですし、インストールはとても簡単です。

・さくらのナレッジ WAFの基礎から、SiteGuard Liteのセットアップまで ~SiteGuardシリーズでセキュリティ強化(その1)~
http://knowledge.sakura.ad.jp/tech/4056/

isd気づいたこと

サーバー作成時にSiteGuard Liteを含むアーカイブ(OSテンプレート)を指定する必要がある

サーバー作成時のアーカイブ選択はこんな感じです。↓
(クリックすると大きく表示されます。)

201609sakura_waf_archive

このため、起動中のサーバーに無料版のSiteGuard Liteを追加インストールすることはできません。
また、提供されているOSはCentOS 6,7のみで、Debian/Ubuntu, FreeBSD, CoreOSには適用できません。

Apacheモジュールである

これは今回一番「そうだったのか!Nginx使えないのか。」と思ったポイントでした。
どうしてもNginx(+ FastCGI)を使用したい場合は、バックエンドにNginxをたてて、Apache→Nginx→FastCGIという不思議な構成となるでしょうか。

SiteGuard Lite管理画面にアクセス制限の強化が必要

管理者向けにSiteGuard LiteのGUI管理画面が用意されていますが、このURLはデフォルトでは、
https://<サーバーのIPアドレス>:9443/
となっています。

このページは、第三者がアクセスできないよう、以下の方法などでアクセス制限を強化すべきでしょう。

  • ファイアウォール(パケットフィルタ)でTCP/9443へのアクセス元IPアドレスを限定する。
  • ポート番号をデフォルトの9443から変更する。
  • Digest認証またはBASIC認証を追加する。

なお、SiteGuard Lite管理画面用のApache Configは
/opt/jp-secure/siteguardlite/conf/httpd.conf.siteguardlite_admin_ssl
ですので、ポート番号の変更時やDigest認証またはBASIC認証を追加する場合は、このConfigに追記することになります。
ポート番号は、SiteGuard Liteの初期設定ツール内でも指定できます。

Java製の管理アプリがメモリを500MBぐらい使用する

SiteGuard Liteの管理アプリケーションはJava製、Tomcatによるアプリケーションサーバープロセスが起動しています。
このプロセスの使用メモリは、「SiteGuard Lite Linux版 管理者用ガイド(PDF)」では、約200MBと記載されていますが、僕が試した環境では、起動直後で約380MB、アクセステストを行って1時間後には500MB弱となっていました。

# ps aux | grep tomcat

root      1919  2.1 48.4 2394884 493812 pts/1  Sl   15:06   1:34 /opt/jp-secure/siteguardlite/java/bin/java -client -Xms256m -Xmx256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/jp-secure/siteguardlite/tomcat/conf/logging.properties -Djava.endorsed.dirs=/opt/jp-secure/siteguardlite/tomcat/endorsed -classpath /opt/jp-secure/siteguardlite/tomcat/bin/bootstrap.jar:/opt/jp-secure/siteguardlite/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/jp-secure/siteguardlite/tomcat -Dcatalina.home=/opt/jp-secure/siteguardlite/tomcat -Djava.io.tmpdir=/opt/jp-secure/siteguardlite/tomcat/temp org.apache.catalina.startup.Bootstrap start

 

※↑最大ヒープサイズを256MBに指定しているのに、それ以上メモリを使用しているのはなぜだろう。。

このため、サーバーのメモリサイズは、SiteGuard Liteを使用しない場合に比べて、1GB以上は大きめのものを選択すると安心です。

Webアクセス性能が少し落ちる

Apache 2.2/CentOS 6のデフォルトのテストページ「Apache 2 Test Page powered by CentOS」に対して、ab (Apache Bench)コマンドでHTTPリクエストを実行する、シンプルなWebアクセス負荷テストを行ってみました。

abコマンドの実行条件は次のとおりです。

  • abコマンドは同じサーバー上で実行。
  • 同時接続10で合計5000リクエストを実施。
  • SiteGuard Liteあり/なし、KeepAlive有効/無効で実施。
  • それぞれ3回ずつ実施し、Request per Second(1秒あたりのリクエスト数)の平均値を確認。

abコマンドは次のとおりです。

 // KeepAlive有効
 $ ab -n 5000 -c 10 -k http://localhost/

 // KeepAlive無効
 $ ab -n 5000 -c 10 http://localhost/

 

結果は以下のようになりました。

Request per Second
KeepAlive有効  KeepAlive無効 
SiteGuard Liteなし  6809.45 4750.58
SiteGuard Liteあり  3870.93 3179.58

 
 
 
 
 

SiteGuard Liteがないときに比べて、SiteGuard Liteを使用したときは、KeepAlive有効の場合は約43%、KeepAlive無効の場合は約33%ほど、値が落ちています。
アプリケーションレイヤのデータを、リアルタイムで登録済みの攻撃パターンと照合して検査するのですから、その分1リクエストあたりの処理時間が増えるということですね。
おそらく、CPU負荷も少し増えるのでしょう。
サーバーのCPU数も、SiteGuard Liteを使用しない場合に比べて、1つ増やすと安心ですね。

isdおわりに

さくらのクラウドで「SiteGuard Lite」を試してみて、主にWAF機能以外の動作仕様や性能面で気づいたことを挙げてみました。

「SiteGuard Lite」の正規の使用料金は、

  • 新規: 252,000円/年
  • 更新: 126,000円/年

です。これがさくらのクラウドで、無料で使用できるのはすごいことですね。

(参考)
・JP-Secure「SiteGuard」シリーズの価格情報
http://www.jp-secure.com/cont/products/common/price.html

通常のファイアウォール(さくらのクラウドでは「パケットフィルタ」)やiptablesでは、アプリケーションレイヤの脆弱性は防御できません。

無料で使用できてアプリケーションレイヤも防御してくれるツールとしては、ModSecurityやSnort(IPS)等もありますが、基本的にはGUIがなく、カスタマイズ、運用が大変です。
それに比べると、日本語GUIの管理画面があって初期設定が簡単で、ルールや通知設定等のカスタマイズが容易な「SiteGuard Lite」を無料で使用できるのは、低構築・運用コストでセキュリティ強化が実現できるのでありがたいですね。

やむをえず、脆弱性のある古いバージョンのWordPress, Movable Type等のCMSツールやEC-Cube等のECツールを使用継続せざるを得ないケースは、案外多いと思います。
そういったケースで(そうではないケースでも)、さくらのクラウドを利用する場合は、CPU負荷やメモリ使用量が少し増えることを考慮しつつ、「SiteGuard Lite」を採用して、少しでもセキュリティを強化したいところです。

なお、「SiteGuard Lite」の「トラステッド・シグネチャ」(攻撃ルール・パターン)の一部はこんな感じです。↓
(クリックすると大きく表示されます。)

201609sakura_waf_signature

WordPress, Movable Type, JoomlaといったCMSツールの脆弱性にも対応していることがわかります。
 

Follow me!