Street Workoutを日本に広めたい、高橋(技術1課)です。近頃は鉄棒のある公園が限られていて寂しい限りです。
さて今回はクラウド対応型WAFサービスの、Imperva社のSecureSphereをご紹介します。
訂正
Imperva社の"SecureSphere"を、誤ってImperva社と同じ"Imperva"と紹介しておりました。失礼いたしました。 2015.05.01(Fri)
Impervaとは何か
SecureSphereは、Imperva社が提供しているクラウド型Webアプリケーションファイアウォールです。
以前からハードウェア版の製品のみありましたが、新しいバージョンよりAWSプラットフォームに対応しました。
Gartner社が2014年に発表した"Magic Quadrant for Web Application Firewalls"においては、業界を牽引する"LEADERS"の位置付けに、Imperva社のみが選ばれています。
(参考:http://blog.imperva.com/2014/06/the-gartner-web-application-firewalls-magic-quadrant-is-out.html)
WAFとは何か
そもそもWAFとは何のでしょう。WAFとはアプリケーションレベルで管理を行うサービスです。
アプリケーションの脆弱性を保護するものではなく、攻撃の影響を低減するものです。
詳しくはIPAの出している資料を御覧ください。
サービスのタイプ
SecureSphereには、AWSの個別のVPC内にデプロイするものと、SaaS版の2つのタイプがあります。
今回はVPC内にデプロイするタイプをご紹介します。
提供形態
VPC内にデプロイするタイプには、BYOLとOn-Demandの2つ提供形態があります。
特徴はそれぞれ以下の通りです。
BYOL | On-Demand | |
課金体系 | 年単位 | 1時間単位 |
Auto-Scaling対応 | 事前購入 | 事後精算 |
サポートレベル | 選択可能 | 選択不可能 |
サポート窓口 | 国内代理店(日本語) | Imperva社窓口(英語) |
ディスカウント | ◯ | ✕ |
対応機能 | 違いなし | |
ライセンスの混在 | 未対応 |
BYOL版ではまず、国内代理店からライセンスを購入し、CloudFormationからデプロイを行います。Auto-Scaling使用のためには事前にライセンスを購入する必要があります。
対してOn-Demand版では、Amazon MarketplaceからAMIを取得し、既存の環境に手作業でデプロイを行います。Auto-Scaling時には事前作業は不要で、インスタンス増加分を後日精算します。
どちらがより良いとは一概には言えませんが、デプロイがCloudFormationで自動化されており、日本語でサポートを受けることができるBYOL版をオススメします。
デプロイ
ではさっそくSecureSphereを構築してみましょう。BYOL版をご紹介します。構成図はこちらです。
MXインスタンスは管理用のサーバであり、各種サービスの設定はこのサーバで行います。GWはゲートウェイであり、実際にトラフィックを検査するのはこちらのサーバで行います。
ELBによって振り分けられたユーザからのリクエストはGWの検査を受け、パスしたパケットのみがアプリケーションサーバへ向かいます。
GWはオートスケールすることができるので、処理の負荷に応じてインスタンスの台数を自動で増減してくれます。
VPCやサブネット,ELB等は手動で作成する必要がありますが、MX,GWのインスタンス、セキュリティグループ、Auto Scalingの構築は全てCloudFormationから行います。
VPCを作成する
まずVPC,各サブネット,NATインスタンス,ELBを作成してください。
MX,GWを配置するサブネットのルーティングは、一旦デフォルトゲートウェイをNATに向けてください。MX,GWの構築時には外部との疎通が必要となり、NATを経由しないとエラーが発生します。
MXを構築する
まず管理用サーバのMXを構築しましょう。CloudFormationのメニューから"Create Stack"を選び、構築用のJSONファイルをアップロードします。
ファイルが読み込まれたら各種パラメータを埋めていきます。先ほど作成したMX用のサブネットID,ライセンスキー等を埋めていきます。
パラメータを埋め終わったら"Create"を押してください。
以下の画面がでて、ゴリゴリとMXサーバやセキュリティグループが作成されます。
アカウント設定
スタックが"CREATE_COMPLETE"になったら、サブネットのデフォルトゲートウェイをインターネットゲートウェイにし、MXサーバのPublic IPのポート番号8083にアクセスしてください。
するとadminユーザ作成の画面が表示されるので、パスワードを入力します。
最後に再びライセンスコードをアップロードすれば完了です。
GWの構築
次にGWを構築しましょう。MXと同じようにCloudFormationから作成します。MXと異なるのは、GWの場合は複数サブネットを指定できます。Zone-A,Cごとに1つずつ記入することで、2つのサブネット上でGWが起動します。
MX上での設定
GWが構築できたらMXで設定を行います。
MXのメニュー画面から、[セットアップ]-[サイト]-[アプリケーション]へ移り、アプリケーションサーバのIPアドレスを記入します。
記入が済んだら「保存」を押して設定を保存してください。次に[リバースプロキシ]へ移り、各ゾーンごとにアプリケーションサーバのIPを記入してください。
ELBの設定
最後にELBのヘルスチェックの"Ping Target"を"TCP:80"に設定してください。
これにてデプロイは完了です。少し経つとGWサーバが"InService"になります。
GWはCloudFormationによって自動的にAuto Scalingグループに追加され、追加されたインスタンスは自動的にELBに追加されます。
デプロイが終わったところでブラウザから、ELB経由でアプリケーションにアクセスしてみましょう。
攻撃してみる
SecureSphereの動作確認をしてみましょう。下記の通りアクセスし、WordPressのログイン画面にXSSを行ってみます。
http://[ELB DNS Name]/wp-login.php?id=<script>alert('XSS');</script>
アクセス後に [モニター]-[アラート]を見てみます。すると先ほどのXSSが検知され、ブロックされたことが分かります。
まとめ
今回の記事では、AWSのVPC内にImpervaをデプロイし、SecureSphereがどのように動作するかを見てみました。
デプロイ方法もCloudFormationで自動化されているので、パラメータを入力するだけで構築を行うことができます!AWSに対応したL7レベルのセキュリティは数少ないので、今後大きな武器になると言えましょう。
今後はより詳細な運用方法についてご紹介します。
Imperva社のSecureSphereに興味のある方がいましたら是非お問い合せください。
ごきげんよう!