Alibaba CloudのWAFを使ってみよう

エンジニアの森(@mosuke5)です。
このブログでも過去にWAFについてはいくつか投稿させていただいてますが、今日はAlibaba CloudのプロダクトであるAlibaba Cloud WAFについてです。まだ日本サイトに来ていないプロダクトですが、先取りでご紹介します。

Alibaba Cloud WAFとは

いまさら説明は不要かもしれませんが、WAFとはWeb Application Firewallの略で、Webアプリケーション特有の攻撃、例えばSQLインジェクションやXSSなどから攻撃を守るためのソリューションです。
弊社ではWAFを提供するパートナーと提携しておりいくつかのサードパーティWAFを利用できるようにしているのですが、Alibaba Cloud自身でもWAFのプロダクトを持っているのでご紹介します。
執筆時点(2017/12/06)では、まだ日本サイトで購入はできないのですが、近い将来利用できるようになる予定なので、少し先取りしてAlibaba Cloud WAFをご紹介します。

Alibaba Cloud WAFを購入する

では早速、WAFのコンソールを開いて購入してみたいと思います。
以下が購入画面のキャプチャですが、いくつかポイントがあるのでみていきます。

Region

まずはRegionの選択です。リージョンといっても、仮想サーバの購入をするように細かく別れているわけではありません。ポイントは中国で配信するかどうかのポイントです。ご存知の通り中国でコンテンツを配信するには政府の許可が必要なため、まず中国で稼働させるかどうかがポイントになります。
WAFノード自体は現在は中国本土を除き、Hongkong, Singapore, US East, US West, Australia, Germanyにあります。ユーザに近いノードにアクセスされ処理される仕組みとなっています。このあたりは後のステップでもう少し詳しく見ていきます。

PlanとSpec

あとは基本的にどの機能・スペックを要求するかがポイントとなります。
大きな枠組みとして、”Pro”, “Business”, “Enterprise”の選択をし、更に細かい部分でオプションを付けたい場合にはExtra Domain, Exclusive IP, Extra Trafficを追加していくことができます。

Extra Domainは、購入したWAFに設定できるドメインの数を増やすことのできるオプションです。例えば、Proプランを選択するとデフォルトで1つのドメインを設定できます。しかし、aaa.comとbbb.comの2つのドメインを防御したい場合にはExtra Domainで1つ追加することで対応が可能です。

続いてExclusive IPですが、こちらは少し概念が難しいものになります。複数ドメインでWAFを運用している場合に利用します。片方のドメインにDosアタックしてきたクライアントはもう片方のドメインにも攻撃ができなくなるというものです。あまりユースケースはすくないかもしれませんが、複数ドメイン運用していて同じ攻撃元から両方のドメインに攻撃が来る場合には有効です。

最後にExtra Trafficですが、こちらはクリーンするパケットの量を追加することができます。システムの通信トラフィック量に応じて調整するといいです。

ドメインを設定する

購入が完了したらドメインの設定を行っていく必要があります。オリジンのWebサーバは予め作成しておき、グローバルのIPアドレスを確認しておく必要があるので注意です。ドメインの設定が完了するとCNAMEが発行されます。このCNAMEは重要なのでコピーしておきましょう。あとでDNSの設定に利用していきます。

この画面でCNAMEが発行されるのコピーを忘れずに。(もちろん後でも確認できる)

CNAMEを手に入れたら、お使いのDNSサービスに登録しましょう。
今回は以下のように登録しています。基本設定は以上です。これでもうWAFを利用したWebサイトの構築は完了です。一般的なクラウドWAFと操作感は変わらずとても導入しやすいです。

WAF経由でWebサイトにアクセスする

さっそくまずは普通にアクセスしてみます。これは普通にアクセスできます。digで対象のドメインを引くときちんとCNAMEが返されていることも確認できます。

WAFということで、まずは適当にSQLをパラメータに仕込んだURLにアクセスしてみます。例えばこんなURL(URLエンコードは今は無視してください。)https://waftest.sbcloud.ne.jp/q=select * from users;でアクセスします。HTTP 405で弾かれること確認できました。

攻撃情報もリアルタイムで確認できるダッシュボード。

カスタムポリシーを設定する

デフォルトのWAFの設定を試してみましたが、Alibaba CloudではカスタムでURLポリシーを設定することも可能です。今回は一例として、/adminを含むURLのアクセスを禁止するようにしたいと思います。
HTTP ACL Policyという設定があるのでそこで今回下記のように設定します。Matching fieldはURLのほかにIPやReferer、User-Agentなどが指定できます。正規表現が使えないのがすこし惜しい?気もしますが以下でこれで設定するときちんと/adminを含むURLにアクセスできなくなりました。

さいごに

一般的なクラウドWAFと操作感も変わらずとても導入しやすいです。また、独特の概念が少しありつつも、かなり高機能な印象もあります。まだ、日本サイトでは利用できませんが、これがオープンすれば大抵のWAF要件は満たせそうで活用の幅は広そうで楽しみです。
みなさんが、これを読む頃にはオープンしているよう我々もがんばります。

この記事をシェアする