WAFの基礎から、SiteGuard Liteのセットアップまで ~SiteGuardシリーズでセキュリティ強化(その1)~

編集部注:SiteGuard Liteについて
本記事にて紹介しております「SiteGuard Lite」は、名称が「SiteGuard Server Edition」に変更されています。適宜読み替えてください。(機能は同じです)

はじめに

はじめまして。株式会社ジェイピー・セキュアの齊藤です。

皆様、「さくらの専用サーバさくらのクラウド」では、ウェブアプリケーションファイアウォール(Web Application Firewall。以下、WAF)が標準で利用できることをご存知でしょうか?

「さくらの専用サーバ/さくらのクラウド」をご利用の場合、対応OSのイメージに、弊社のWAF製品「SiteGuard Lite」が組み込まれているため、セキュアなWebサイトの構築が可能です。

この連載では、急速に普及が進んでいるWAFの基本について紹介するほか、「さくらの専用サーバ/さくらのクラウド」をご利用の皆様向けに、「SiteGuard Lite」の設定・運用イメージを紹介していきたいと思います。
連載は、全3回を予定しており、第3回では、CMS(Content Management System。以下、CMS)のセキュリティ対策についても紹介します。

第1回

WAFの概要と「SiteGuard Lite」について紹介します。また、「SiteGuard Lite」のセットアップと動作確認の方法を紹介していきます。

第2回

検査機能のコアとなるシグネチャ検査・シグネチャ更新設定のほか、通知設定など、「SiteGuard Lite」の詳細設定について紹介します。

第3回

CMSのセキュリティ対策について説明したのち、人気のWordPressについて、SiteGuardシリーズを活用したセキュリティ対策を紹介します。

WAFとは、どのような製品なのだろうか?Webサイトのセキュリティ対策に有効なのか?設定が難しいのではないか?
そのような疑問を解決できるよう、連載を通して、できるだけ分かりやすく紹介していきますので、どうぞ宜しくお願いいたします。

WAFとは

ご存知のことと思いますが、個人情報の窃取やサイト改ざんなど、Webサイトを狙った攻撃による事件・事故が後を絶たず、Webサイトのセキュリティ対策が求められています。
これらの事件・事故の原因は、SQLインジェクションやクロスサイトスクリプティングといったウェヴアプリケーションの脆弱性を悪用した攻撃によるものが代表的であり、その脅威は、Webサイトの規模や企業・個人に関係なく、身近なこととして意識する必要があります。
攻撃による被害を受けないようにするだけでなく、改ざんによるマルウェア配布サイトへの悪用など、加害者とならないように努めることも重要です。

安全なWebサイト・アプリケーションの構築は、セキュア設計・セキュアプログラミングが基本であり、それを完璧に行うことができれば何の心配もありません。
しかしながら、間違った対策や対策漏れが生じるケースもあり、現実問題として、脆弱性をゼロにするのは簡単なことではありません。
脆弱性診断によって、脆弱性が見つかった場合には、修正が不可欠ですが、運用上の理由(サイトを停止できない、バージョンアップできないなど)により修正が困難であったり、修正までに長い時間が必要になることもあります。

そこで、効果的にWebサイトのセキュリティを強化する一つの方法として、WAFを紹介させていただきます。
WAFは、ウェブアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護するための有力なソリューションとして注目を集めています。

WAFを導入することで、SQLインジェクションやクロスサイトスクリプティングなど、ウェブアプリケーションの脆弱性を悪用する攻撃を効率良く防御することができます。
それだけでなく、不完全な対策や対策漏れに備えるセーフティネットとしての活用、2014年に大きく取り上げられたApache Strutsやbashの深刻な脆弱性への対策などにも、WAFが有効活用されています。
前述の運用上の理由に該当しますが、Apache Strutsやbashの深刻な脆弱性が発見されたときは、すぐに対策を実施することができないWebサイトを救済するために、WAFが大きな役割を果たしました。
2015年には、WordPressやJoomla!といったCMSの脆弱性を狙った攻撃も大きな話題になるなど、WAFの必要性は益々高まっています。

「さくらの専用サーバ/さくらのクラウド」では、標準でWAFを利用することができます。
この機会に、"ワンランク上のWebセキュリティ"を実現する一つの手段として、WAFの利用を検討してみてはいかがでしょうか。

ホスト型WAF「SiteGuard Lite」

WAFには、ゲートウェイ型やホスト型、サービス型のようにいくつかの形態があります。
「さくらの専用サーバ/さくらのクラウド」で標準利用できるWAFは、ホスト型WAF「SiteGuard Lite」です。
ホスト型のWAFは、ウェブサーバー上にインストールして利用しますので、各サーバー毎にインストールする必要がありますが、最もシンプルな構成で、ネットワークの変更が不要であるという利点があります。
そして、「SiteGuard Lite」は、ウェブサーバーApacheのモジュールとして動作するWAFです。
攻撃パターンを定義したシグネチャをもとに、HTTP/HTTPSのリクエストを検査するシグネチャ検査機能を主としています。

製品の主な特長は、

  • 高品質なシグネチャによる防御性能
  • シンプルで直観的なGUIで、かんたん設定

です。
業態を問わず、導入実績が豊富なWAF製品で、特にホスティング環境での実績と安定稼働には定評があります。

通常、製品のインストールは、RPMパッケージによるインストールとセットアップスクリプト実行の2ステップとなりますが、「さくらの専用サーバ/さくらのクラウド」をご利用の場合、対応OSのイメージに「SiteGuard Lite」が組み込まれた状態で提供されていますので、セットアップスクリプトを実行するだけで、「SiteGuard Lite」の利用を開始することができます。※

※すでにご利用中のサーバーに追加導入することはできません。
「専用サーバ:新規、OS再インストール」「クラウド:インストール済みアーカイブからのサーバ作成」でご利用いただくことができます。

セットアップスクリプトの実行

それでは、「さくらの専用サーバ/さくらのクラウド」の環境で、「SiteGuard Lite」のセットアップスクリプトを実行してみましょう。
ターミナルで、「SiteGuard Lite」のインストールディレクトリにあるsetup.shを実行します。
setup.shは、root権限で実行してください。

# cd /opt/jp-secure/siteguardlite/
# ./setup.sh

セットアップでは、Apacheの設定ファイルや実行コマンドの指定、「SiteGuard Lite」のウェブ管理画面で使用するポート番号の指定、ウェブ管理画面のアクセス制限などを行います。
難しそうに思われるかもしれませんが、ご安心ください。対話形式のスクリプトで簡単に設定できるようになっています。
Apacheの設定ファイルや実行コマンドなども自動的に検出しますので、基本的には[Enter]を押していくだけです。
あっと言う間にセットアップが完了するのですが、一つだけ、ウェブ管理画面のアクセス制限に関する項目については、適切に設定していただくことを推奨しています。

please enter the addresses allowed to access the web console for https.
ex:192.168.1. 10.0.0.0/24
please enter allowed addresses. [ALL] -->192.168.1.100(例)

デフォルト値は[ALL]で、ウェブ管理画面について、全ての接続元からのアクセスを許可します。
一般的な管理ページへのアクセス制限と同様、アクセスを許可する接続元を登録しておきましょう。

セットアップスクリプトの最後の処理で、Apacheの再起動を行い、セットアップ完了です。

Apache restart. Are you sure? [yes]|no -->Enter押下
stopping apache ...
starting apache ...
apache restart done.
-----------------------------------------------------
+ finished SiteGuard Lite setup +
-----------------------------------------------------
Please access following URL for starting service.
https://hostname:9443/
(default user:admin, default password:admin)

SELinuxを有効にした環境でご利用いただく場合は、「SELinux 環境での事前設定」が必要です。
設定方法につきましては、製品マニュアル(管理者用ガイド)を参照してください。
(専用サーバの場合は、技術ドキュメントのページで、クラウドの場合は、さくらのクラウド ニュースのSiteGuard Lite(WAF)のページで、製品マニュアルをダウンロードすることができます。)

基本動作の確認

初期設定

セットアップ完了後は、ウェブ管理画面を使用して「SiteGuard Lite」の設定を行います。
ブラウザを起動して、ウェブ管理画面に接続してみましょう。

https://[サーバーホスト名(またはIPアドレス)]:9443 にアクセスすると、「SiteGuard Lite」のログイン画面が表示されます。

ログイン画面が表示されたら、初期ID・パスワードで、ウェブ管理画面にログインします。
ログイン画面が表示されない場合は、ポート9443への接続が許可されているかiptablesなどの設定を確認してみてください。

初回ログイン時に、管理パスワードの変更画面が表示されますので、新しいパスワードを設定してからご利用ください。
管理ユーザ名の変更も同じ画面で行うことができます。
(初期パスワードの変更は必須です。変更するまで他の操作を行うことはできません。)

初期パスワードの変更が完了したら、検査機能を有効にしてみましょう。(初期値:無効)
稼働中のWebサイトにWAFを導入するときは、設定内容や手順を検討してから検査機能を有効にしますが、ここでは「さくらの専用サーバ/さくらのクラウド」での「SiteGuard Lite」の提供形態に合わせて、新規構築のイメージで、順に設定と確認方法を紹介していきます。

モジュール設定の[ウェブ攻撃検査]で有効を選択し、画面下の[適用]ボタンを押します。

緑色のチェックと「設定を保存しました。」のメッセージを確認してください。

これで、初期設定は完了です。

動作確認

初期設定が完了しましたので、動作確認を行います。
ブラウザを起動して、Webページを表示してみましょう。

http://[サーバーホスト名(またはIPアドレス)]

まずは、Webサイトのページが正しく表示されることを確認してください。

次に、「SiteGuard Lite」の検査機能が有効になっていることを確認します。
URLのパスに、"WAF-TEST-SIGNATURE"という文字列が含まれている場合に検出するテスト用のシグネチャが用意されていますので、検出テストパスにアクセスしてみましょう。

http://[サーバーホスト名(またはIPアドレス)]/WAF-TEST-SIGNATURE/

今度は、検査機能によって検出したことを示す[検出メッセージ]が表示されます。

該当のリクエストは拒否(BLOCK)となり、HTTPの応答コードは「403 Forbidden」です。

表示される検出メッセージの内容は、[検出メッセージの編集]画面で変更することができます。
(9000バイトまで)
なお、Apacheの設定で、"ErrorDocument 403"を指定している場合は、ErrorDocumentで指定したメッセージが表示されます。
オリジナルエラーページの表示をご希望の場合は、必要に応じてErrorDocumentの使用を検討してみてください。

検出ログの確認

検出内容の詳細は、動作ログの[検出ログ]で確認します。

ログの表示アイコンにカーソルをあてると、ポップアップが表示され、検出した日時や動作・接続元・メソッド・URL・検出したシグネチャなどの情報を見やすいかたちで確認することができます。以上で、初期設定と基本的な動作確認は完了です。

おわりに

今回は、WAFの概要と「さくらの専用サーバ/さくらのクラウド」で、ホスト型WAF「SiteGuard Lite」の利用を開始するまでの手順を紹介しました。
基本的な内容が中心となりましたが、まずは、ウェブ管理画面の操作方法を含めて、簡単な手順でスタートできるというイメージが伝われば幸いです。
次回は、「SiteGuard Lite」のシグネチャ検査やシグネチャの更新設定、管理者への通知設定、統計グラフの見方など、詳細設定や運用について紹介させていただく予定です。