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

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

・さくらのクラウド SiteGuard Lite(WAF)
https://manual.sakura.ad.jp/cloud/os-packages/siteguard-firewall.html

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

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

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

isd気づいたこと

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

サーバー作成時のアーカイブ選択はこんな感じです。↓


 

このため、起動中のサーバーに無料版の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で合計5,000リクエストを実施。
  • 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」シリーズの価格情報
https://www.jp-secure.com/product/price/

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

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

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

なお、「SiteGuard Lite」の「トラステッド・シグネチャ」(攻撃ルール・パターン)の一部はこんな感じです。↓


 

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

Follow me!