AWSでWAFを導入する理由と最適な選択
はじめに
AWS環境にWAFの導入をお考えのかたが多くなったと感じています。 改めて、なぜWAFを導入するのかを考え、最適な選択をするために必要な情報を整理したいと思います。
WAFを導入する一般的な理由
AWS Black Belt Tech Webinarで「なぜWAFを使うのか」が紹介されています。 一般的なユースケースとして、SQLi対策、XSS対策、BOT対策、DDoS緩和、PCI-DSS対応があげられています。 その他にも、組織の規定上導入しなければならないといったケースがあります。
Webアプリケーションに大きな影響を与える脆弱性が話題になる事があります。 Apache Struts2の脆弱性は記憶に新しいかと思います。 脆弱性対策として、WAFをお考えの方も多いのではないでしょうか。
脆弱性対策としてのWAFはあくまで支援ツール
アプリケーション、ミドルウェア、OSの脆弱性について、根本的な解決はそのアップデートです。 しかし、アップデートを行うとアプリケーションが正常に動作しなくなる場合があります。 事前にアップデートを検証したり、切り戻しが出来るように別環境を用意するといった対応が必要になります。
あくまで、WAFによる保護はアップデートまでの時間稼ぎと考えます。 WAFを導入するだけでなく、定期的な脆弱性診断を行いつつ、緊急性の高い脆弱性についてはすぐに対応出来るように準備する事が大切です。
誤検知や誤遮断が発生するリスクがある
製品やサービスによって違いはありますが、WAFはポリシーに一致した通信を通過または遮断します。 つまり、正しい通信でもポリシーに一致した場合、WAFで遮断されてしまう可能性があります。 反対に悪意のある通信でもWAFを通過する可能性もあります。
正しい通信と悪意のある通信を見極める事は、難しい事が多いです。 大量のアクセスがあった場合に通信を遮断するポリシーがあるとして、「大量のアクセス」の閾値はアプリケーションによって異なります。 ユーザ数やアプリケーションの通信内容などによって、アクセス数は大きく異なるからです。
誤った遮断を防ぐためにポリシーチューニングを行う
正しい通信を誤って遮断しないようにポリシーチューニングを行います。 新しいポリシーについては"通知モード"でしばらく様子をみて、正しい通信をブロックしていないか確認します。 確認後、"遮断モード"に移行します。
誤検知や誤遮断の発生しにくいポリシーもあります。 "指定したIPアドレスからの通信を遮断するポリシー"は、ほとんどの場合正しく動作するでしょう。
どのWAFを選ぶのか
様々なWAFが様々な価格で提供されています。 ここではWAFを選択する上で検討すべき3つの視点を紹介します。
WAFの種類
WAFは大きくクラウド型、バーチャルアプライアンス型、ホスト型に分類できます。 クラウド型は保護対象の外で通信を遮断します。 通信が保護対象まで到達しないこと、WAF自体の冗長化やファームウェアアップデートなどをユーザー側で行わずにすむ点がメリットです。
バーチャルアプライアンス型はEC2として、WAFを利用します。 オンプレミスで利用しているアプライアンスを継続利用出来る点がメリットです。 コスト面では、ソフトウェアライセンスの他にEC2利用料金も必要な点に注意が必要です。
ホスト型は保護対象のEC2にインストールして利用します。 通信が保護対象まで到達してしまう点がデメリットです。 詳しくは、新入社員のためのWAF(Web Application Firewall)入門をご覧ください。
コスト
月額数ドルで利用できるAWS WAFから、数百万円かかる製品まで様々です。 WAFに追加のコストを支払えない場合、AWS WAFが最も適したソリューションです。
高コストのWAFでは柔軟なポリシーを設定できる傾向があります。 WAFの価格体系は様々ですが、通信量が多い場合に高コストになる場合があります。
WAFの運用支援サービス
ユーザーが自分でWAFを運用できないケースも多いかと思います。 様々なサードパーティがWAFの運用支援サービスを提供しています。 サービス内容は各社で異なりますが、一般的な内容を整理します。 サービス利用費は様々ですが、費用の高いサービスでは柔軟な対応が可能なケースが多いようです。
レポート
週単位、月単位などでレポートを作成したり、報告会を行うサービスです。
危険な通信の通知
危険な通信を検知した場合、担当者にメールや電話で通知するサービスです。
ポリシーチューニング
ユーザーと協力してポリシーチューニングを行うサービスです。 柔軟なポリシーを設定できるWAFでは、ポリシーチューニングの難易度が高い事があります。 そのため、自前でのポリシーチューニングが難しい場合、支援サービスを利用するか、シンプルなWAFを検討します。
AWS WAFという選択肢
AWS WAFは、低コストでシンプルなクラウド型WAFです。 AWS環境で利用できるWAFとしては、最も低コストな選択肢の1つです。 コストの詳細はこちらをご覧ください。
運用コストの低いクラウド型
クラウド型はバーチャルアプライアンス型と比較すると、ユーザーの担当範囲が少なく運用コストが低いです。 EC2のリタイアメントや冗長化などの考慮が不要です。 さらに、WAFのファームウェアアップデートについても、ユーザー側で考慮しなくて済みます。
シンプルなポリシー
AWS WAFは非常にシンプルです。WAFの条件として設定可能な項目は以下の通りです。 最新の情報はこちらをご覧ください。
- クロスサイトスクリプティング
- 地域制限
- IPアドレス一致
- サイズ制約
- SQL injection
- 文字列と正規表現の一致
- レートベースのアクセス制限
AWS WAFマネージドルールによる保護
一般的なユースケースの1つである「BOT対策」については、AWS WAFマネージドルールで対応できます。 AWS Marketplaceで、サードパーティのベンダーが様々なユースケースに対して適切なルールを提供しています。 具体的には、OWASPトップ10のセキュリティリスク、CMS固有の脅威、CVE、悪意のあるBOTなどからの保護が提供されます。 詳しくは、【新機能】AWS WAFマネージドルールを使ってWordPressに対する攻撃を防いでみた #reinventをご覧ください。
PCI DSS準拠
PCI DSSへの対応状況はこちらをご覧ください。
さいごに
WAFの導入を検討されているかた向けに、WAFを導入する理由とWAFを選択するための情報を整理しました。 AWS環境で利用できるWAFとしては、AWS WAFは最も低コストな選択肢の1つです。 他のWAFとコスト面で比較する場合、ライセンス費用、EC2などのランニングコスト、運用コストなども踏まえて考えてみてください。 多機能なWAFを検討する場合、サードパーティの運用支援サービスについても検討ください。