公開日:2022年4月11日最終更新日: 2023年2月14日
標的型攻撃やサービス妨害攻撃など、インターネット上でのWebサービスを対象にした不正攻撃が数多く報告されています。今ではシステムを構築する上でセキュリティ対策を考えることは必須と言えます。
そんなセキュリティ対策を実施する上で良く耳にするのがWeb Application Firewall (WAF) です。今回はWAFについての基本と、クラウドサービスであるAzureでどのような仕組みが用意されているのか、利用できるサービスを紹介しつつ解説いたします。
目次 <Contents>
Azure Web Application Firewall (WAF) の概要
WAFとはWeb Application Firewallの略で、主にWebサーバーなどで提供されているインターネットアプリケーションサービスを、高いレイヤーで防御する仕組みです。
ここで言う高いレイヤーとは、OSI参照モデルのレイヤー7(アプリケーション層)を指しており、通常の利用アクセスと見分けがつかない不正な通信や攻撃を、その挙動や内容から脆弱性を悪用した攻撃かどうかを判断して防いでくれます。
様々な提供形態があり、オンプレミスのアプライアンス製品として導入されたり、Webサーバーに直接インストールするソフトウェアの形で導入されたりしています。もちろんクラウドサービスのWAFもあり、クラウド事業者やセキュリティベンダーが提供しています。
WAFとFirewallの違いについて
通常のFirewallとの大きな違いは、防御する範囲(レイヤー)になります。一般的なFirewallはレイヤー3(ネットワーク層)とレイヤー4(トランスポート層)を防いでくれるもので、送信元や送信先IP、扱う通信プロトコルによってのみ制御します。
これだけでも大きなセキュリティの効果は得られますが、攻撃者の送信元IPが偽装されているか踏み台攻撃によって一般利用者と区別ができなかったり、通常のWeb閲覧などで扱うHttp/Https通信で脆弱性を悪用するような攻撃の場合には防ぐことができません。
そのため、通常のFirewallはインターネットとの境界に設置され、Web Application FirewallはWebサーバーなどアプリケーションを提供している側の傍に設置されていることが多いです。
Azure Web Application Firewallとは
ボット攻撃や一般的なWeb脆弱性(SQLインジェクション、クロスサイトスクリプティングなど)からWebアプリケーションを保護するWAFで、Azure Application Gatewayというロードバランサーの機能の中に組み込まれています。
WAFを使わずにロードバランサー単体で利用することもできますが、インターネットに公開するWebサーバーであれば有効にしない手はないでしょう。
参考:Web Application Firewall の価格(Basic Application Gatewayにすると利用できない)
WAFの価格
価格は利用時間と処理したトラフィック量による従量課金制です。 公式ドキュメントにもチュートリアルがありますが、簡単にAzureのポータル画面での利用・設定方法を紹介します。
参考:Azure portal を使用して Web アプリケーション ファイアウォールのあるアプリケーション ゲートウェイを作成する
Web Application Firewall (WAF) の設定
1. アプリケーションゲートウェイの作成
1Azure Portalの「リソースの作成」をクリックします。
2「ネットワーキング」から「Application Gateway」をクリックします。
3「基本」タブで以下設定を入力していきます。
- リソースグループ:既存のものを選択します(なければ「新規作成」で作成)。
- アプリケーションゲートウェイ名:任意の名称
- レベル:WAF V2
4アプリケーションゲートウェイ用とバックエンドサーバー用に2つのサブネットを作成します。
「仮想ネットワークの構成」で「新規作成」をクリックして作成ウィンドウで、以下を入力します。
- 名前:任意の名称
- サブネット名1つ目:任意(初期値default)
10.0.0.0/24 - サブネット名2つ目:任意
10.0.1.0/24
入力後「OK」をクリックします。
5基本タブ画面に戻ったら「次:フロントエンドの数」をクリックし、「フロントエンドIPの種類:パブリック」になっていることを確認します。
「パブリックIPアドレス」として「新規追加」をクリックし、任意のアドレス名を入力し「OK」をクリックします。
下部の「次:バックエンド」をクリックします。
6「バックエンドプールの追加」をクリックし、以下を入力します。
- 名前:任意の名称
- ターゲットを持たないバックエンドプールを追加します:はい(後ほどターゲットを追加)
入力後に「追加」をクリックして、「次:構成」をクリックします。
7「ルーティング規則の追加」をクリックし、以下を入力します。
- ルール名:任意の名称
- リスナー名:任意の名称
- フロントエンドIP:パブリック
8「バックエンドターゲット」タブをクリックします。
バックエンドターゲットで作成した「myBackendPool」を選択、HTTP設定の「新規追加」をクリックします。
9HTTP 設定名として任意の名前を入力します。
「追加」をクリックして、ルーティング規則の追加に戻ります。
10「構成」に戻ったら、「次:タグ」をクリックします。
11タグを追加してリソースを分かりやすく分類できます。
必要なければ「次:確認および作成」をクリックします。
12設定した内容が表示されますので、確認して「作成」をクリックしデプロイします。
その後、「デプロイが完了しました」と表示されれば成功です。
2. バックエンドプールヘの仮想マシンの追加
バックエンドサーバーとして使用する2つのVMを作成し、バックエンドプールに追加します。
※今回myVM, myVM2という仮想マシンを用意していますが、作成方法については割愛します。
1「すべてのリソース」をクリックし、作成した「myAppGateway」をクリックします。
左側のメニューで「バックエンドプール」を選択し、「myBackendPool」をクリックします。
2「ターゲットの種類」の下のドロップダウンで「仮想マシン」を選択し、「ターゲット」で、myVMに関連付けられているネットワーク インターフェイスをドロップダウンから選択します。
myVM2についても同じ手順を繰り返し、「保存」を選択して完了です。
3. Web Application Firewall (WAF) の作成
WAFの設定とカスタマイズはWAFポリシーと呼ばれるところに含まれています。このポリシーはApplication Gatewayに関連付けられている必要があります。
1Azureポータルから「リソースの作成」を選択し、WAFを検索すると「Web アプリケーション ファイアウォール」が出てきますので「作成」をクリックします。
2「基本」タブで以下設定を入力します。
- 次に対するポリシー:リージョンの WAF (Application Gateway)
- リソースグループ:使用しているリソースを選択
- ポリシー名:任意の名称
その後、上の「関連付け」タブをクリックします。
3「関連付けの追加」をクリックし、「Application Gateway」を選択します。
「現在の構成と異なる場合でも Web Application Firewall ポリシーの構成を適用する」にチェックし、「追加」をクリックします。
4「確認および作成」の「作成」をクリックします。
「デプロイが完了しました」と表示されたら完了です。
まとめ
Web Application Firewall (WAF) とAzureでの利用・設定方法についてお伝えいたしました。 WAFでは一般的な悪用や脆弱性からWebアプリケーションを一元的に保護することが分かり、Azureでの利用は意外と簡単だと理解いただけたかと思います。
Webアプリケーションが、一般的な既知の脆弱性を悪用した攻撃の標的になるケースが増えている現在、必要不可欠なセキュリティ対策と言えるでしょう。