SBクラウド株式会社logo

Alibaba CloudのWeb Application Firewall(WAF)を使ってみよう

f:id:sbc_shimizu_m:20211012154120j:plain (2021年5月31日掲載)

こんにちは。SBクラウドの吉村です。
この記事ではAlibaba CloudのWeb Application Firewall(WAF)について解説します。

Alibaba Cloud WAFとは

いまさら説明は不要かもしれませんが、WAFとはWeb Application Firewallの略で、Webアプリケーション特有の攻撃、例えばSQLインジェクションやXSSなどから攻撃を守るためのソリューションです。

Alibaba Cloud WAFはAibaba Cloudが開発するWAF防御ルールを適用するセキュリティプロダクトで、Alibabaグループの様々なWebサービスを保護している実績があります。
また、中国リージョンにWAFインスタンスを設置出来るという点が他社クラウドと比べた際の特徴と言えるでしょう。 www.alibabacloud.com

Alibaba Cloud WAFを購入する

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

リージョン

まずはリージョンの選択です。
リージョンといっても、仮想サーバの購入をするように細かく別れているわけではなく、中国本土か中国本土以外から選択します。 こちらのリージョン選択は中国向けにWeb配信するかどうかが選択のポイントです。
ご存知の通り中国でWebコンテンツを配信するにはICP登録が必要なため、WAFでも中国リージョンの選択時にはICP登録が必要です。
この点は中国リージョンを購入する前に気を付けてください。 f:id:sbc_yoshimura:20210531185152p:plain:w720

f:id:sbc_yoshimura:20210531185227p:plain:w720

また、WAF購入時のリージョンは2択ですが、購入後にWAF保護設定をするタイミングで、どこかのリージョンでWAFインスタンスノードが作成されます。
このWAFノードは中国本土、日本、香港、シンガポール、マレーシア、シリコンバレー、オーストラリア、ドイツ、インド、インドネシア、ドバイにあります。
保護するWebサービスに近いリージョンが自動的に選択されることなっています。このあたりは後のステップでもう少し詳しく見ていきます。

エディションとオプション

複数のエディションがあり、Pro・Business・Enterprise・Exclusiveから選択します。
どの機能・スペックを要求するかがバージョン選択のポイントとなります。
基本的には、"Pro", "Business", "Enterprise"から選択をし、更に細かい部分でオプションを付けたい場合にはExtra Domain, Exclusive IP, Extra Trafficなどを追加していくことができます。
そして、保護するドメイン数が大量にある場合には"Exclusive"を検討しましょう。

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

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

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

その他にもWAFのログをLogServiceで分析や長期保存したり、Bot対策としてAnti-Bot機能を選べたりできます。

f:id:sbc_yoshimura:20210531193205p:plain:w720

WAF ドメインを設定する

WAFの購入が完了したらドメインの設定を行っていく必要があります。
保護するオリジンのWebサーバは予め作成しておき、パブリックにアクセスできる状態にしておく必要があるので注意です。
これは、保護するオリジンのWebサーバがAlibab Cloud 上にあろうが、Alibab Cloud 以外にあろうが同様でして、Alibab Cloud WAFはインターネット経由でオリジンサーバにHTTPリクエストを送信します。
WAFのドメイン設定が完了するとCNAMEが発行されます。
このCNAMEは重要なのでコピーしておきましょう。 あとでDNSの設定に利用していきます。 f:id:sbc_yoshimura:20210531193826p:plain:w720

CNAMEを手に入れたら、お使いのDNSサービスに登録しましょう。
保護対象のFQDNがWAF経由のアクセスになれば基本設定はOKです。
これでもうWAFを利用したWebサイトの構築は完了です。 一般的なクラウドWAFと操作感は変わらずとても導入しやすいです。

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

さっそくまずは普通にアクセスしてみます。
これは普通にアクセスできます。
f:id:sbc_yoshimura:20210531194318p:plain:w720

WAFということで、まずは適当にSQLをパラメータに仕込んだURLにアクセスしてみます。
例えばこんなURL(URLエンコードは今は無視してください。)
https://waftesturl.sbcloud.ne.jp/?ver=../../../../../../../../../../../../../../../../etc/passwd
でアクセスします。
HTTP 405で弾かれること確認できました。 f:id:sbc_yoshimura:20210531200257p:plain:w720

攻撃情報もリアルタイムで確認できるダッシュボード。 f:id:sbc_yoshimura:20210531200637p:plain:w720

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

デフォルトのWAFの設定を試してみましたが、Alibaba CloudではカスタムでURLポリシーを設定することも可能です。
今回は一例として、
/wp-login.php
を含むURL PATHのアクセスするとCaptchaが実行されるようにしたいと思います。
f:id:sbc_yoshimura:20210531201024p:plain:w720

Matching fieldはURL PATHのほかにIPやReferer、User-Agentなどが指定できます。
/wp-login.php
を含むURL PATHにアクセスすると、以下のCaptchaが表示されました。

f:id:sbc_yoshimura:20210531201245p:plain:w720

さいごに

一般的なクラウドWAFと操作感も変わらずとても導入しやすいです。
また、独特の概念が少しありつつも、かなり高機能な印象もあります。
大抵のWAF要件は満たせそうで活用の幅は広そうで楽しみです。